Permalink
Browse files

Add syntax highlighting to README C code

  • Loading branch information...
1 parent f5c779b commit c4079e7c381a76688159f9f0812bbaa206d3b2eb @ulikoehler ulikoehler committed with bnoordhuis Oct 24, 2013
Showing with 27 additions and 24 deletions.
  1. +27 −24 README.md
View
@@ -36,38 +36,41 @@ Usage
One `http_parser` object is used per TCP connection. Initialize the struct
using `http_parser_init()` and set the callbacks. That might look something
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;
- settings.on_url = my_url_callback;
- settings.on_header_field = my_header_field_callback;
- /* ... */
-
- http_parser *parser = malloc(sizeof(http_parser));
- http_parser_init(parser, HTTP_REQUEST);
- 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.
- size_t len = 80*1024, nparsed;
- char buf[len];
- ssize_t recved;
+```c
+size_t len = 80*1024, nparsed;
+char buf[len];
+ssize_t recved;
- recved = recv(fd, buf, len, 0);
+recved = recv(fd, buf, len, 0);
- if (recved < 0) {
- /* Handle error. */
- }
+if (recved < 0) {
+ /* Handle error. */
+}
- /* Start up / continue the parser.
- * Note we pass recved==0 to signal that EOF has been recieved.
- */
- nparsed = http_parser_execute(parser, &settings, buf, recved);
+/* Start up / continue the parser.
+ * Note we pass recved==0 to signal that EOF has been recieved.
+ */
+nparsed = http_parser_execute(parser, &settings, buf, recved);
- if (parser->upgrade) {
- /* handle new protocol */
- } else if (nparsed != recved) {
- /* Handle error. Usually just close the connection. */
- }
+if (parser->upgrade) {
+ /* handle new protocol */
+} else if (nparsed != recved) {
+ /* Handle error. Usually just close the connection. */
+}
+```
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

0 comments on commit c4079e7

Please sign in to comment.