Add syntax highlighting to README C code

make-http-max-header-size-gyp-configurable
Uli Köhler 11 years ago committed by Ben Noordhuis
parent f5c779bb85
commit c4079e7c38

@ -36,38 +36,41 @@ Usage
One `http_parser` object is used per TCP connection. Initialize the struct One `http_parser` object is used per TCP connection. Initialize the struct
using `http_parser_init()` and set the callbacks. That might look something using `http_parser_init()` and set the callbacks. That might look something
like this for a request parser: like this for a request parser:
```c
http_parser_settings settings;
settings.on_url = my_url_callback;
settings.on_header_field = my_header_field_callback;
/* ... */
http_parser_settings settings; http_parser *parser = malloc(sizeof(http_parser));
settings.on_url = my_url_callback; http_parser_init(parser, HTTP_REQUEST);
settings.on_header_field = my_header_field_callback; parser->data = my_socket;
/* ... */ ```
http_parser *parser = malloc(sizeof(http_parser));
http_parser_init(parser, HTTP_REQUEST);
parser->data = my_socket;
When data is received on the socket execute the parser and check for errors. When data is received on the socket execute the parser and check for errors.
size_t len = 80*1024, nparsed; ```c
char buf[len]; size_t len = 80*1024, nparsed;
ssize_t recved; char buf[len];
ssize_t recved;
recved = recv(fd, buf, len, 0); recved = recv(fd, buf, len, 0);
if (recved < 0) { if (recved < 0) {
/* Handle error. */ /* Handle error. */
} }
/* Start up / continue the parser. /* Start up / continue the parser.
* Note we pass recved==0 to signal that EOF has been recieved. * Note we pass recved==0 to signal that EOF has been recieved.
*/ */
nparsed = http_parser_execute(parser, &settings, buf, recved); nparsed = http_parser_execute(parser, &settings, buf, recved);
if (parser->upgrade) { if (parser->upgrade) {
/* handle new protocol */ /* handle new protocol */
} else if (nparsed != recved) { } else if (nparsed != recved) {
/* Handle error. Usually just close the connection. */ /* Handle error. Usually just close the connection. */
} }
```
HTTP needs to know where the end of the stream is. For example, sometimes HTTP needs to know where the end of the stream is. For example, sometimes
servers send responses without Content-Length and expect the client to servers send responses without Content-Length and expect the client to

Loading…
Cancel
Save