From: Adam Dickmeiss Date: Thu, 2 May 2013 11:53:51 +0000 (+0200) Subject: Make z_HTTP_header_set public and extend z_HTTP_errmsg X-Git-Tag: v4.2.57~6 X-Git-Url: http://lists.indexdata.dk/?a=commitdiff_plain;h=bd0fee845a611e98d52590ade70c5ef414289e24;p=yaz-moved-to-github.git Make z_HTTP_header_set public and extend z_HTTP_errmsg Utility z_HTTP_errmsg should now map all HTTP 1.1 diagnostic codes. --- diff --git a/include/yaz/zgdu.h b/include/yaz/zgdu.h index 40bb12e..5ce5e47 100644 --- a/include/yaz/zgdu.h +++ b/include/yaz/zgdu.h @@ -76,6 +76,8 @@ typedef struct { YAZ_EXPORT int z_GDU (ODR o, Z_GDU **p, int opt, const char *name); YAZ_EXPORT void z_HTTP_header_add(ODR o, Z_HTTP_Header **hp, const char *n, const char *v); +YAZ_EXPORT void z_HTTP_header_set(ODR o, Z_HTTP_Header **hp, const char *n, + const char *v); YAZ_EXPORT void z_HTTP_header_add_content_type(ODR o, Z_HTTP_Header **hp, const char *content_type, const char *charset); diff --git a/src/http.c b/src/http.c index 43e2786..62bfa6f 100644 --- a/src/http.c +++ b/src/http.c @@ -206,9 +206,7 @@ void z_HTTP_header_add(ODR o, Z_HTTP_Header **hp, const char *n, (*hp)->next = 0; } -#if 0 -/* not in use yet */ -static void z_HTTP_header_set(ODR o, Z_HTTP_Header **hp, const char *n, +void z_HTTP_header_set(ODR o, Z_HTTP_Header **hp, const char *n, const char *v) { while (*hp) @@ -225,7 +223,6 @@ static void z_HTTP_header_set(ODR o, Z_HTTP_Header **hp, const char *n, (*hp)->value = odr_strdup(o, v); (*hp)->next = 0; } -#endif const char *z_HTTP_header_lookup(const Z_HTTP_Header *hp, const char *n) { @@ -372,18 +369,85 @@ Z_GDU *z_get_HTTP_Response(ODR o, int code) const char *z_HTTP_errmsg(int code) { - if (code == 200) + switch (code) + { + case 100: + return "Continue"; + case 101: + return "Switching Protocols"; + case 200: return "OK"; - else if (code == 400) + case 201: + return "Created"; + case 202: + return "Accepted"; + case 203: + return "Non-Authoritative Information"; + case 204: + return "No Content"; + case 205: + return "Reset Content"; + case 206: + return "Partial Content"; + case 300: + return "Multiple Choices"; + case 301: + return "Moved Permenently"; + case 302: + return "Found"; + case 303: + return "See Other"; + case 304: + return "Not Modified"; + case 305: + return "Use Proxy"; + case 307: + return "Temporary Redirect"; + case 400: return "Bad Request"; - else if (code == 404) + case 404: return "Not Found"; - else if (code == 405) + case 405: return "Method Not Allowed"; - else if (code == 500) + case 406: + return "Not Acceptable"; + case 407: + return "Proxy Authentication Required"; + case 408: + return "Request Timeout"; + case 409: + return "Conflict"; + case 410: + return "Gone"; + case 411: + return "Length Required"; + case 412: + return "Precondition Failed"; + case 413: + return "Request Entity Too Large"; + case 414: + return "Request-URI Too Long"; + case 415: + return "Unsupported Media Type"; + case 416: + return "Requested Range Not Satisfiable"; + case 417: + return "Expectation Failed"; + case 500: return "Internal Error"; - else + case 501: + return "Not Implemented"; + case 502: + return "Bad Gateway"; + case 503: + return "Service Unavailable"; + case 504: + return "Gateway Timeout"; + case 505: + return "HTTP Version Not Supported"; + default: return "Unknown Error"; + } } int yaz_decode_http_response(ODR o, Z_HTTP_Response **hr_p)