Hi All,
There is the most newer version. If everybody agrees with it, I will send it
to the [EMAIL PROTECTED] :)
Dod
Index: gateway/gwlib/http.c
===================================================================
RCS file: /home/cvs/gateway/gwlib/http.c,v
retrieving revision 1.217
diff -u -r1.217 http.c
--- gateway/gwlib/http.c 16 Feb 2004 19:41:26 -0000 1.217
+++ gateway/gwlib/http.c 3 Jun 2004 13:01:04 -0000
@@ -2338,6 +2338,59 @@
return client;
}
+/*
+ * The http_send_reply(...) uses this function to determinate the
+ * reason pahrase for a status code.
+ */
+const char *http_reason_phrase(int status)
+{
+ switch (status) {
+ case HTTP_OK:
+ return "OK"; /* 200 */
+ case HTTP_CREATED:
+ return "Created"; /* 201 */
+ case HTTP_ACCEPTED:
+ return "Accepted"; /* 202 */
+ case HTTP_NO_CONTENT:
+ return "No Content"; /* 204 */
+ case HTTP_RESET_CONTENT:
+ return "Reset Content"; /* 205 */
+ case HTTP_MOVED_PERMANENTLY:
+ return "Moved Permanently"; /* 301 */
+ case HTTP_FOUND:
+ return "Found"; /* 302 */
+ case HTTP_SEE_OTHER:
+ return "See Other"; /* 303 */
+ case HTTP_NOT_MODIFIED:
+ return "Not Modified"; /* 304 */
+ case HTTP_TEMPORARY_REDIRECT:
+ return "Temporary Redirect"; /* 307 */
+ case HTTP_BAD_REQUEST:
+ return "Bad Request"; /* 400 */
+ case HTTP_UNAUTHORIZED:
+ return "Unauthorized"; /* 401 */
+ case HTTP_FORBIDDEN:
+ return "Forbidden"; /* 403 */
+ case HTTP_NOT_FOUND:
+ return "Not Found"; /* 404 */
+ case HTTP_BAD_METHOD:
+ return "Method Not Allowed"; /* 405 */
+ case HTTP_NOT_ACCEPTABLE:
+ return "Not Acceptable"; /* 406 */
+ case HTTP_REQUEST_ENTITY_TOO_LARGE:
+ return "Request Entity Too Large"; /* 413 */
+ case HTTP_UNSUPPORTED_MEDIA_TYPE:
+ return "Unsupported Media Type"; /* 415 */
+ case HTTP_INTERNAL_SERVER_ERROR:
+ return "Internal Server Error"; /* 500 */
+ case HTTP_NOT_IMPLEMENTED:
+ return "Not Implemented"; /* 501 */
+ case HTTP_BAD_GATEWAY:
+ return "Bad Gateway"; /* 502 */
+ }
+ return "Foo";
+}
+
void http_send_reply(HTTPClient *client, int status, List *headers,
Octstr *body)
@@ -2347,9 +2400,9 @@
int ret;
if (client->use_version_1_0)
- response = octstr_format("HTTP/1.0 %d Foo\r\n", status);
+ response = octstr_format("HTTP/1.0 %d %s\r\n", status,
http_reason_phrase(status));
else
- response = octstr_format("HTTP/1.1 %d Foo\r\n", status);
+ response = octstr_format("HTTP/1.1 %d %s\r\n", status,
http_reason_phrase(status));
/* identify ourselfs */
octstr_format_append(response, "Server: " GW_NAME "/%s\r\n", GW_VERSION);
--
Zoltan Dudas
Software Engineer
SEI Magyarorszag Kft.
WEB: http://www.sei-it.com
E-Mail: [EMAIL PROTECTED]
Phone: +36 52 889 532
Fax: +36 52 889 599
Index: gateway/gwlib/http.c
===================================================================
RCS file: /home/cvs/gateway/gwlib/http.c,v
retrieving revision 1.217
diff -u -r1.217 http.c
--- gateway/gwlib/http.c 16 Feb 2004 19:41:26 -0000 1.217
+++ gateway/gwlib/http.c 3 Jun 2004 13:01:04 -0000
@@ -2338,6 +2338,59 @@
return client;
}
+/*
+ * The http_send_reply(...) uses this function to determinate the
+ * reason pahrase for a status code.
+ */
+const char *http_reason_phrase(int status)
+{
+ switch (status) {
+ case HTTP_OK:
+ return "OK"; /* 200 */
+ case HTTP_CREATED:
+ return "Created"; /* 201 */
+ case HTTP_ACCEPTED:
+ return "Accepted"; /* 202 */
+ case HTTP_NO_CONTENT:
+ return "No Content"; /* 204 */
+ case HTTP_RESET_CONTENT:
+ return "Reset Content"; /* 205 */
+ case HTTP_MOVED_PERMANENTLY:
+ return "Moved Permanently"; /* 301 */
+ case HTTP_FOUND:
+ return "Found"; /* 302 */
+ case HTTP_SEE_OTHER:
+ return "See Other"; /* 303 */
+ case HTTP_NOT_MODIFIED:
+ return "Not Modified"; /* 304 */
+ case HTTP_TEMPORARY_REDIRECT:
+ return "Temporary Redirect"; /* 307 */
+ case HTTP_BAD_REQUEST:
+ return "Bad Request"; /* 400 */
+ case HTTP_UNAUTHORIZED:
+ return "Unauthorized"; /* 401 */
+ case HTTP_FORBIDDEN:
+ return "Forbidden"; /* 403 */
+ case HTTP_NOT_FOUND:
+ return "Not Found"; /* 404 */
+ case HTTP_BAD_METHOD:
+ return "Method Not Allowed"; /* 405 */
+ case HTTP_NOT_ACCEPTABLE:
+ return "Not Acceptable"; /* 406 */
+ case HTTP_REQUEST_ENTITY_TOO_LARGE:
+ return "Request Entity Too Large"; /* 413 */
+ case HTTP_UNSUPPORTED_MEDIA_TYPE:
+ return "Unsupported Media Type"; /* 415 */
+ case HTTP_INTERNAL_SERVER_ERROR:
+ return "Internal Server Error"; /* 500 */
+ case HTTP_NOT_IMPLEMENTED:
+ return "Not Implemented"; /* 501 */
+ case HTTP_BAD_GATEWAY:
+ return "Bad Gateway"; /* 502 */
+ }
+ return "Foo";
+}
+
void http_send_reply(HTTPClient *client, int status, List *headers,
Octstr *body)
@@ -2347,9 +2400,9 @@
int ret;
if (client->use_version_1_0)
- response = octstr_format("HTTP/1.0 %d Foo\r\n", status);
+ response = octstr_format("HTTP/1.0 %d %s\r\n", status, http_reason_phrase(status));
else
- response = octstr_format("HTTP/1.1 %d Foo\r\n", status);
+ response = octstr_format("HTTP/1.1 %d %s\r\n", status, http_reason_phrase(status));
/* identify ourselfs */
octstr_format_append(response, "Server: " GW_NAME "/%s\r\n", GW_VERSION);