X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=parse.h;h=a56b1f4230edce227ff616603c8a9550d8b70c55;hp=de260640f56ebc4a0cbe0f6b06a39ead8d6bcbc0;hb=0ad0786c4f99aaa7bbb13a79e9fd579b3727d665;hpb=488f28bf7070f44469a006ed4a9d4c423788d175 diff --git a/parse.h b/parse.h index de26064..a56b1f4 100644 --- a/parse.h +++ b/parse.h @@ -4,6 +4,7 @@ // Various routines that deal with parsing; both HTTP requests and more generic text. #include +#include #include #include @@ -13,6 +14,11 @@ std::vector split_tokens(const std::string &line); // Split a string on \n or \r\n, e.g. "foo\nbar\r\n\nbaz\r\n\r\n" -> {"foo", "bar", "baz"}. std::vector split_lines(const std::string &str); +// Extract HTTP headers from a request or response. Ignores the first line, +// where the verb or the return code is. +std::multimap extract_headers( + const std::vector &lines, const std::string &log_context); + // Add the new data to an existing string, looking for \r\n\r\n // (typical of HTTP requests and/or responses). Will return one // of the given statuses.