Changeset 408424e in mainline for uspace/lib/http/src/receive-buffer.c


Ignore:
Timestamp:
2013-09-26T23:31:50Z (11 years ago)
Author:
Martin Sucha <sucha14@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
c42f50d
Parents:
4d4f656
Message:

libhttp: reimplement receiving status

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/http/src/receive-buffer.c

    r4d4f656 r408424e  
    210210}
    211211
     212/** Receive a prefix of constant string discard and return number of bytes read
     213 * @return number of characters discarded or negative error code
     214 */
     215ssize_t recv_discard_str(receive_buffer_t *rb, const char *discard)
     216{
     217        size_t discarded = 0;
     218        while (*discard) {
     219                ssize_t rc = recv_discard(rb, *discard);
     220                if (rc < 0)
     221                        return rc;
     222                if (rc == 0)
     223                        break;
     224                discarded++;
     225                discard++;
     226        }
     227        return discarded;
     228}
     229
     230ssize_t recv_while(receive_buffer_t *rb, char_class_func_t class)
     231{
     232        size_t received = 0;
     233       
     234        while (true) {
     235                char c = 0;
     236                int rc = recv_char(rb, &c, false);
     237                if (rc != EOK)
     238                        return rc;
     239               
     240                if (!class(c))
     241                        break;
     242               
     243                rc = recv_char(rb, &c, true);
     244                if (rc != EOK)
     245                        return rc;
     246               
     247                received++;
     248        }
     249       
     250        return received;
     251}
     252
    212253/** Receive an end of line, either CR, LF, CRLF or LFCR
    213254 *
Note: See TracChangeset for help on using the changeset viewer.