Skip to content

Instantly share code, notes, and snippets.

@mitsuhiko
Created August 13, 2012 22:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mitsuhiko/3344440 to your computer and use it in GitHub Desktop.
Save mitsuhiko/3344440 to your computer and use it in GitHub Desktop.
diff --git a/http_parser.c b/http_parser.c
index 0c11eb8..c51704f 100644
--- a/http_parser.c
+++ b/http_parser.c
@@ -124,7 +124,7 @@ do { \
static const char *method_strings[] =
{
-#define XX(num, name, string) #string,
+#define XX(num, name, string) #string
HTTP_METHOD_MAP(XX)
#undef XX
};
@@ -379,7 +379,7 @@ do { \
/* Map errno values to strings for human-readable output */
-#define HTTP_STRERROR_GEN(n, s) { "HPE_" #n, s },
+#define HTTP_STRERROR_GEN(n, s) { "HPE_" #n, s }
static struct {
const char *name;
const char *description;
diff --git a/http_parser.h b/http_parser.h
index 8ed4180..0651f7d 100644
--- a/http_parser.h
+++ b/http_parser.h
@@ -86,41 +86,41 @@ typedef int (*http_cb) (http_parser*);
/* Request Methods */
#define HTTP_METHOD_MAP(XX) \
- XX(0, DELETE, DELETE) \
- XX(1, GET, GET) \
- XX(2, HEAD, HEAD) \
- XX(3, POST, POST) \
- XX(4, PUT, PUT) \
+ XX(0, DELETE, DELETE), \
+ XX(1, GET, GET), \
+ XX(2, HEAD, HEAD), \
+ XX(3, POST, POST), \
+ XX(4, PUT, PUT), \
/* pathological */ \
- XX(5, CONNECT, CONNECT) \
- XX(6, OPTIONS, OPTIONS) \
- XX(7, TRACE, TRACE) \
+ XX(5, CONNECT, CONNECT), \
+ XX(6, OPTIONS, OPTIONS), \
+ XX(7, TRACE, TRACE), \
/* webdav */ \
- XX(8, COPY, COPY) \
- XX(9, LOCK, LOCK) \
- XX(10, MKCOL, MKCOL) \
- XX(11, MOVE, MOVE) \
- XX(12, PROPFIND, PROPFIND) \
- XX(13, PROPPATCH, PROPPATCH) \
- XX(14, SEARCH, SEARCH) \
- XX(15, UNLOCK, UNLOCK) \
+ XX(8, COPY, COPY), \
+ XX(9, LOCK, LOCK), \
+ XX(10, MKCOL, MKCOL), \
+ XX(11, MOVE, MOVE), \
+ XX(12, PROPFIND, PROPFIND), \
+ XX(13, PROPPATCH, PROPPATCH), \
+ XX(14, SEARCH, SEARCH), \
+ XX(15, UNLOCK, UNLOCK), \
/* subversion */ \
- XX(16, REPORT, REPORT) \
- XX(17, MKACTIVITY, MKACTIVITY) \
- XX(18, CHECKOUT, CHECKOUT) \
- XX(19, MERGE, MERGE) \
+ XX(16, REPORT, REPORT), \
+ XX(17, MKACTIVITY, MKACTIVITY), \
+ XX(18, CHECKOUT, CHECKOUT), \
+ XX(19, MERGE, MERGE), \
/* upnp */ \
- XX(20, MSEARCH, M-SEARCH) \
- XX(21, NOTIFY, NOTIFY) \
- XX(22, SUBSCRIBE, SUBSCRIBE) \
- XX(23, UNSUBSCRIBE, UNSUBSCRIBE) \
+ XX(20, MSEARCH, M-SEARCH), \
+ XX(21, NOTIFY, NOTIFY), \
+ XX(22, SUBSCRIBE, SUBSCRIBE), \
+ XX(23, UNSUBSCRIBE, UNSUBSCRIBE), \
/* RFC-5789 */ \
- XX(24, PATCH, PATCH) \
- XX(25, PURGE, PURGE) \
+ XX(24, PATCH, PATCH), \
+ XX(25, PURGE, PURGE)
enum http_method
{
-#define XX(num, name, string) HTTP_##name = num,
+#define XX(num, name, string) HTTP_##name = num
HTTP_METHOD_MAP(XX)
#undef XX
};
@@ -146,47 +146,48 @@ enum flags
*/
#define HTTP_ERRNO_MAP(XX) \
/* No error */ \
- XX(OK, "success") \
+ XX(OK, "success"), \
\
/* Callback-related errors */ \
- XX(CB_message_begin, "the on_message_begin callback failed") \
- XX(CB_url, "the on_url callback failed") \
- XX(CB_header_field, "the on_header_field callback failed") \
- XX(CB_header_value, "the on_header_value callback failed") \
- XX(CB_headers_complete, "the on_headers_complete callback failed") \
- XX(CB_body, "the on_body callback failed") \
- XX(CB_message_complete, "the on_message_complete callback failed") \
+ XX(CB_message_begin, "the on_message_begin callback failed"), \
+ XX(CB_url, "the on_url callback failed"), \
+ XX(CB_header_field, "the on_header_field callback failed"), \
+ XX(CB_header_value, "the on_header_value callback failed"), \
+ XX(CB_headers_complete, "the on_headers_complete callback failed"),\
+ XX(CB_body, "the on_body callback failed"), \
+ XX(CB_message_complete, "the on_message_complete callback failed"),\
\
/* Parsing-related errors */ \
- XX(INVALID_EOF_STATE, "stream ended at an unexpected time") \
+ XX(INVALID_EOF_STATE, "stream ended at an unexpected time"), \
XX(HEADER_OVERFLOW, \
- "too many header bytes seen; overflow detected") \
+ "too many header bytes seen; overflow detected"), \
XX(CLOSED_CONNECTION, \
- "data received after completed connection: close message") \
- XX(INVALID_VERSION, "invalid HTTP version") \
- XX(INVALID_STATUS, "invalid HTTP status code") \
- XX(INVALID_METHOD, "invalid HTTP method") \
- XX(INVALID_URL, "invalid URL") \
- XX(INVALID_HOST, "invalid host") \
- XX(INVALID_PORT, "invalid port") \
- XX(INVALID_PATH, "invalid path") \
- XX(INVALID_QUERY_STRING, "invalid query string") \
- XX(INVALID_FRAGMENT, "invalid fragment") \
- XX(LF_EXPECTED, "LF character expected") \
- XX(INVALID_HEADER_TOKEN, "invalid character in header") \
+ "data received after completed connection: close message"), \
+ XX(INVALID_VERSION, "invalid HTTP version"), \
+ XX(INVALID_STATUS, "invalid HTTP status code"), \
+ XX(INVALID_METHOD, "invalid HTTP method"), \
+ XX(INVALID_URL, "invalid URL"), \
+ XX(INVALID_HOST, "invalid host"), \
+ XX(INVALID_PORT, "invalid port"), \
+ XX(INVALID_PATH, "invalid path"), \
+ XX(INVALID_QUERY_STRING, "invalid query string"), \
+ XX(INVALID_FRAGMENT, "invalid fragment"), \
+ XX(LF_EXPECTED, "LF character expected"), \
+ XX(INVALID_HEADER_TOKEN, "invalid character in header"), \
XX(INVALID_CONTENT_LENGTH, \
- "invalid character in content-length header") \
+ "invalid character in content-length header"), \
XX(INVALID_CHUNK_SIZE, \
- "invalid character in chunk size header") \
- XX(INVALID_CONSTANT, "invalid constant string") \
- XX(INVALID_INTERNAL_STATE, "encountered unexpected internal state")\
- XX(STRICT, "strict mode assertion failed") \
- XX(PAUSED, "parser is paused") \
+ "invalid character in chunk size header"), \
+ XX(INVALID_CONSTANT, "invalid constant string"), \
+ XX(INVALID_INTERNAL_STATE, \
+ "encountered unexpected internal state"),\
+ XX(STRICT, "strict mode assertion failed"), \
+ XX(PAUSED, "parser is paused"), \
XX(UNKNOWN, "an unknown error occurred")
/* Define HPE_* values for each errno value above */
-#define HTTP_ERRNO_GEN(n, s) HPE_##n,
+#define HTTP_ERRNO_GEN(n, s) HPE_##n
enum http_errno {
HTTP_ERRNO_MAP(HTTP_ERRNO_GEN)
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment