Changeset b7fd2a0 in mainline for uspace/lib/http/src
- Timestamp:
- 2018-01-13T03:10:29Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a53ed3a
- Parents:
- 36f0738
- Location:
- uspace/lib/http/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/http/src/headers.c
r36f0738 rb7fd2a0 94 94 } 95 95 96 int http_header_receive_name(receive_buffer_t *rb,96 errno_t http_header_receive_name(receive_buffer_t *rb, 97 97 receive_buffer_mark_t *name_end) 98 98 { … … 102 102 recv_mark_update(rb, name_end); 103 103 104 int rc = recv_char(rb, &c, true);104 errno_t rc = recv_char(rb, &c, true); 105 105 if (rc != EOK) 106 106 return rc; … … 113 113 } 114 114 115 int http_header_receive_value(receive_buffer_t *rb,115 errno_t http_header_receive_value(receive_buffer_t *rb, 116 116 receive_buffer_mark_t *value_start, receive_buffer_mark_t *value_end) 117 117 { 118 int rc = EOK;118 errno_t rc = EOK; 119 119 char c = 0; 120 120 … … 167 167 } 168 168 169 int http_header_receive(receive_buffer_t *rb, http_header_t *header,169 errno_t http_header_receive(receive_buffer_t *rb, http_header_t *header, 170 170 size_t size_limit, size_t *out_bytes_used) 171 171 { … … 176 176 recv_mark(rb, &mark_end); 177 177 178 int rc = http_header_receive_name(rb, &mark_end);178 errno_t rc = http_header_receive_name(rb, &mark_end); 179 179 if (rc != EOK) 180 180 goto end; … … 259 259 } 260 260 261 int http_headers_find_single(http_headers_t *headers, const char *name,261 errno_t http_headers_find_single(http_headers_t *headers, const char *name, 262 262 http_header_t **out_header) 263 263 { … … 282 282 } 283 283 284 int http_headers_append(http_headers_t *headers, const char *name,284 errno_t http_headers_append(http_headers_t *headers, const char *name, 285 285 const char *value) 286 286 { … … 293 293 } 294 294 295 int http_headers_set(http_headers_t *headers, const char *name,295 errno_t http_headers_set(http_headers_t *headers, const char *name, 296 296 const char *value) 297 297 { 298 298 http_header_t *header = NULL; 299 int rc = http_headers_find_single(headers, name, &header);299 errno_t rc = http_headers_find_single(headers, name, &header); 300 300 if (rc != EOK && rc != HTTP_EMISSING_HEADER) 301 301 return rc; … … 313 313 } 314 314 315 int http_headers_get(http_headers_t *headers, const char *name, char **value)315 errno_t http_headers_get(http_headers_t *headers, const char *name, char **value) 316 316 { 317 317 http_header_t *header = NULL; 318 int rc = http_headers_find_single(headers, name, &header);318 errno_t rc = http_headers_find_single(headers, name, &header); 319 319 if (rc != EOK) 320 320 return rc; … … 324 324 } 325 325 326 int http_headers_receive(receive_buffer_t *rb, http_headers_t *headers,326 errno_t http_headers_receive(receive_buffer_t *rb, http_headers_t *headers, 327 327 size_t limit_alloc, unsigned limit_count) 328 328 { 329 int rc = EOK;329 errno_t rc = EOK; 330 330 unsigned added = 0; 331 331 -
uspace/lib/http/src/http.c
r36f0738 rb7fd2a0 47 47 #include <http/receive-buffer.h> 48 48 49 static int http_receive(void *client_data, void *buf, size_t buf_size,49 static errno_t http_receive(void *client_data, void *buf, size_t buf_size, 50 50 size_t *nrecv) 51 51 { … … 69 69 70 70 http->buffer_size = 4096; 71 int rc = recv_buffer_init(&http->recv_buffer, http->buffer_size,71 errno_t rc = recv_buffer_init(&http->recv_buffer, http->buffer_size, 72 72 http_receive, http); 73 73 if (rc != EOK) { … … 79 79 } 80 80 81 int http_connect(http_t *http)81 errno_t http_connect(http_t *http) 82 82 { 83 83 if (http->conn != NULL) 84 84 return EBUSY; 85 85 86 int rc = inet_host_plookup_one(http->host, ip_any, &http->addr, NULL,86 errno_t rc = inet_host_plookup_one(http->host, ip_any, &http->addr, NULL, 87 87 NULL); 88 88 if (rc != EOK) … … 110 110 } 111 111 112 int http_close(http_t *http)112 errno_t http_close(http_t *http) 113 113 { 114 114 if (http->conn == NULL) -
uspace/lib/http/src/receive-buffer.c
r36f0738 rb7fd2a0 43 43 #include <http/receive-buffer.h> 44 44 45 int recv_buffer_init(receive_buffer_t *rb, size_t buffer_size,45 errno_t recv_buffer_init(receive_buffer_t *rb, size_t buffer_size, 46 46 receive_func_t receive, void *client_data) 47 47 { … … 61 61 } 62 62 63 static int dummy_receive(void *unused, void *buf, size_t buf_size,63 static errno_t dummy_receive(void *unused, void *buf, size_t buf_size, 64 64 size_t *nrecv) 65 65 { … … 68 68 } 69 69 70 int recv_buffer_init_const(receive_buffer_t *rb, void *buf, size_t size)71 { 72 int rc = recv_buffer_init(rb, size, dummy_receive, NULL);70 errno_t recv_buffer_init_const(receive_buffer_t *rb, void *buf, size_t size) 71 { 72 errno_t rc = recv_buffer_init(rb, size, dummy_receive, NULL); 73 73 if (rc != EOK) 74 74 return rc; … … 107 107 } 108 108 109 int recv_cut(receive_buffer_t *rb, receive_buffer_mark_t *a, receive_buffer_mark_t *b, void **out_buf, size_t *out_size)109 errno_t recv_cut(receive_buffer_t *rb, receive_buffer_mark_t *a, receive_buffer_mark_t *b, void **out_buf, size_t *out_size) 110 110 { 111 111 if (a->offset > b->offset) … … 123 123 } 124 124 125 int recv_cut_str(receive_buffer_t *rb, receive_buffer_mark_t *a, receive_buffer_mark_t *b, char **out_buf)125 errno_t recv_cut_str(receive_buffer_t *rb, receive_buffer_mark_t *a, receive_buffer_mark_t *b, char **out_buf) 126 126 { 127 127 if (a->offset > b->offset) … … 147 147 148 148 /** Receive one character (with buffering) */ 149 int recv_char(receive_buffer_t *rb, char *c, bool consume)149 errno_t recv_char(receive_buffer_t *rb, char *c, bool consume) 150 150 { 151 151 if (rb->out == rb->in) { … … 170 170 171 171 size_t nrecv; 172 int rc = rb->receive(rb->client_data, rb->buffer + rb->in, free, &nrecv);172 errno_t rc = rb->receive(rb->client_data, rb->buffer + rb->in, free, &nrecv); 173 173 if (rc != EOK) 174 174 return rc; … … 183 183 } 184 184 185 int recv_buffer(receive_buffer_t *rb, char *buf, size_t buf_size,185 errno_t recv_buffer(receive_buffer_t *rb, char *buf, size_t buf_size, 186 186 size_t *nrecv) 187 187 { … … 202 202 * @return EOK or an error code 203 203 */ 204 int recv_discard(receive_buffer_t *rb, char discard, size_t *ndisc)204 errno_t recv_discard(receive_buffer_t *rb, char discard, size_t *ndisc) 205 205 { 206 206 char c = 0; 207 int rc = recv_char(rb, &c, false);207 errno_t rc = recv_char(rb, &c, false); 208 208 if (rc != EOK) 209 209 return rc; … … 223 223 * @return EOK or an error code 224 224 */ 225 int recv_discard_str(receive_buffer_t *rb, const char *discard, size_t *ndisc)225 errno_t recv_discard_str(receive_buffer_t *rb, const char *discard, size_t *ndisc) 226 226 { 227 227 size_t discarded = 0; 228 228 while (*discard) { 229 229 size_t nd; 230 int rc = recv_discard(rb, *discard, &nd);230 errno_t rc = recv_discard(rb, *discard, &nd); 231 231 if (rc != EOK) 232 232 return rc; … … 241 241 } 242 242 243 int recv_while(receive_buffer_t *rb, char_class_func_t class)243 errno_t recv_while(receive_buffer_t *rb, char_class_func_t class) 244 244 { 245 245 while (true) { 246 246 char c = 0; 247 int rc = recv_char(rb, &c, false);247 errno_t rc = recv_char(rb, &c, false); 248 248 if (rc != EOK) 249 249 return rc; … … 266 266 * @return EOK on success or an error code 267 267 */ 268 int recv_eol(receive_buffer_t *rb, size_t *nrecv)268 errno_t recv_eol(receive_buffer_t *rb, size_t *nrecv) 269 269 { 270 270 char c = 0; 271 int rc = recv_char(rb, &c, false);271 errno_t rc = recv_char(rb, &c, false); 272 272 if (rc != EOK) 273 273 return rc; … … 292 292 293 293 /* Receive a single line */ 294 int recv_line(receive_buffer_t *rb, char *line, size_t size, size_t *nrecv)294 errno_t recv_line(receive_buffer_t *rb, char *line, size_t size, size_t *nrecv) 295 295 { 296 296 size_t written = 0; … … 299 299 while (written < size) { 300 300 char c = 0; 301 int rc = recv_char(rb, &c, true);301 errno_t rc = recv_char(rb, &c, true); 302 302 if (rc != EOK) 303 303 return rc; -
uspace/lib/http/src/request.c
r36f0738 rb7fd2a0 90 90 } 91 91 92 int http_request_format(http_request_t *req, char **out_buf,92 errno_t http_request_format(http_request_t *req, char **out_buf, 93 93 size_t *out_buf_size) 94 94 { … … 141 141 } 142 142 143 int http_send_request(http_t *http, http_request_t *req)143 errno_t http_send_request(http_t *http, http_request_t *req) 144 144 { 145 145 char *buf = NULL; 146 146 size_t buf_size = 0; 147 147 148 int rc = http_request_format(req, &buf, &buf_size);148 errno_t rc = http_request_format(req, &buf, &buf_size); 149 149 if (rc != EOK) 150 150 return rc; -
uspace/lib/http/src/response.c
r36f0738 rb7fd2a0 47 47 } 48 48 49 static int receive_number(receive_buffer_t *rb, char **str)49 static errno_t receive_number(receive_buffer_t *rb, char **str) 50 50 { 51 51 receive_buffer_mark_t start; … … 53 53 54 54 recv_mark(rb, &start); 55 int rc = recv_while(rb, is_digit);55 errno_t rc = recv_while(rb, is_digit); 56 56 if (rc != EOK) { 57 57 recv_unmark(rb, &start); … … 66 66 } 67 67 68 static int receive_uint8_t(receive_buffer_t *rb, uint8_t *out_value)68 static errno_t receive_uint8_t(receive_buffer_t *rb, uint8_t *out_value) 69 69 { 70 70 char *str = NULL; 71 int rc = receive_number(rb, &str);71 errno_t rc = receive_number(rb, &str); 72 72 73 73 if (rc != EOK) … … 80 80 } 81 81 82 static int receive_uint16_t(receive_buffer_t *rb, uint16_t *out_value)82 static errno_t receive_uint16_t(receive_buffer_t *rb, uint16_t *out_value) 83 83 { 84 84 char *str = NULL; 85 int rc = receive_number(rb, &str);85 errno_t rc = receive_number(rb, &str); 86 86 87 87 if (rc != EOK) … … 94 94 } 95 95 96 static int expect(receive_buffer_t *rb, const char *expect)96 static errno_t expect(receive_buffer_t *rb, const char *expect) 97 97 { 98 98 size_t ndisc; 99 int rc = recv_discard_str(rb, expect, &ndisc);99 errno_t rc = recv_discard_str(rb, expect, &ndisc); 100 100 if (rc != EOK) 101 101 return rc; … … 110 110 } 111 111 112 int http_receive_status(receive_buffer_t *rb, http_version_t *out_version,112 errno_t http_receive_status(receive_buffer_t *rb, http_version_t *out_version, 113 113 uint16_t *out_status, char **out_message) 114 114 { … … 117 117 char *message = NULL; 118 118 119 int rc = expect(rb, "HTTP/");119 errno_t rc = expect(rb, "HTTP/"); 120 120 if (rc != EOK) 121 121 return rc; … … 187 187 } 188 188 189 int http_receive_response(receive_buffer_t *rb, http_response_t **out_response,189 errno_t http_receive_response(receive_buffer_t *rb, http_response_t **out_response, 190 190 size_t max_headers_size, unsigned max_headers_count) 191 191 { … … 196 196 http_headers_init(&resp->headers); 197 197 198 int rc = http_receive_status(rb, &resp->version, &resp->status,198 errno_t rc = http_receive_status(rb, &resp->version, &resp->status, 199 199 &resp->message); 200 200 if (rc != EOK)
Note:
See TracChangeset
for help on using the changeset viewer.