Hi,
I'm in general +1 for such patch, but...
Please get rid of octstr_imm(...), because it's very very slow!
Just do for example:
+const char *http_reason_phrase(int status)
+{
+ switch (status) {
+ case HTTP_OK:
+ return "OK"; /* 200 */
...
+ }
+ return "Foo"; /* that's our default when status code not handled */
+}
Thanks in advance!
On Thursday 03 June 2004 12:59, Zolt�n Dud�s wrote:
> Hi All,
>
> Thanks for your comments. I modified the patch and I am testing it.
> There is the modified version but I didn't test it, yet.
>
> 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 10:43:49 -0000
> @@ -2338,6 +2338,81 @@
> return client;
> }
>
> +/*
> + * The http_send_reply(...) uses this function to determinate the
> + * reason pahrase for a status code.
> + */
> +Octstr *http_reason_phrase(int status)
> +{
> + Octstr *result=0;
> + switch (status) {
> + case HTTP_OK:
> + result= octstr_imm("OK");
> /* 200 */
> + break;
> + case HTTP_CREATED:
> + result= octstr_imm("Created"); /* 201
> */
> + break;
> + case HTTP_ACCEPTED:
> + result= octstr_imm("Accepted"); /* 202
> */
> + break;
> + case HTTP_NO_CONTENT:
> + result= octstr_imm("No Content"); /* 204
> */
> + break;
> + case HTTP_RESET_CONTENT:
> + result= octstr_imm("Reset Content"); /* 205 */
> + break;
> + case HTTP_MOVED_PERMANENTLY:
> + result= octstr_imm("Moved Permanently"); /* 301 */
> + break;
> + case HTTP_FOUND:
> + result= octstr_imm("Found"); /* 302
> */
> + break;
> + case HTTP_SEE_OTHER:
> + result= octstr_imm("See Other"); /* 303
> */
> + break;
> + case HTTP_NOT_MODIFIED:
> + result= octstr_imm("Not Modified"); /* 304
> */
> + break;
> + case HTTP_TEMPORARY_REDIRECT:
> + result= octstr_imm("Temporary Redirect"); /* 307 */
> + break;
> + case HTTP_BAD_REQUEST:
> + result= octstr_imm("Bad Request"); /* 400
> */
> + break;
> + case HTTP_UNAUTHORIZED:
> + result= octstr_imm("Unauthorized"); /* 401
> */
> + break;
> + case HTTP_FORBIDDEN:
> + result= octstr_imm("Forbidden"); /* 403
> */
> + break;
> + case HTTP_NOT_FOUND:
> + result= octstr_imm("Not Found"); /* 404
> */
> + break;
> + case HTTP_BAD_METHOD:
> + result= octstr_imm("Method Not Allowed"); /* 405 */
> + break;
> + case HTTP_NOT_ACCEPTABLE:
> + result= octstr_imm("Not Acceptable"); /* 406 */
> + break;
> + case HTTP_REQUEST_ENTITY_TOO_LARGE:
> + result= octstr_imm("Request Entity Too Large"); /* 413 */
> + break;
> + case HTTP_UNSUPPORTED_MEDIA_TYPE:
> + result= octstr_imm("Unsupported Media Type"); /* 415 */
> + break;
> + case HTTP_INTERNAL_SERVER_ERROR:
> + result= octstr_imm("Internal Server Error"); /* 500 */
> + break;
> + case HTTP_NOT_IMPLEMENTED:
> + result= octstr_imm("Not Implemented") ; /* 501 */
> + break;
> + case HTTP_BAD_GATEWAY:
> + result= octstr_imm("Bad Gateway"); /* 502
> */
> + break;
> + }
> + return result;
> +}
> +
>
> void http_send_reply(HTTPClient *client, int status, List *headers,
> Octstr *body)
> @@ -2347,9 +2422,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
--
Best regards / Mit besten Gr��en aus D�sseldorf
Dipl.-Ing.
Alexander Malysh
___________________________________________
Centrium GmbH
Vogelsanger Weg 80
40470 D�sseldorf
Fon: +49 (0211) 74 84 51 80
Fax: +49 (0211) 277 49 109
email: [EMAIL PROTECTED]
web: www.centrium.de
msn: [EMAIL PROTECTED]
icq: 98063111
___________________________________________
Please avoid sending me Word, Excel or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html