前田です。

At Wed, 29 Mar 2000 13:10:37 +0900,
Wakou Aoyama <wakou / fsinet.or.jp> wrote:
> > mod_ruby-0.1.5とeRuby-0.0.5をRAAに登録しました。
> 
> REQUEST_URI の値が違うようです。(もっと早く比較してみるべきでしたね。)

おお、ほんとだ、すみません。
request lineから取り出さんといけんのですね。

> HTTP_ACCEPT_CHARSET --> euc-jp, iso-8859-1;q=0.01, us-ascii;q=0.01
> HTTP_ACCEPT_LANGUAGE --> ja,en

これらとHTTP_ACCEPT、HTTP_ACCEPT_ENCODINGを追加しましたので、パッ
チをつけます。
問題なければ0.1.6を置きます。

-- 
前田 修吾

--- mod_ruby.c 2000/03/28 05:41:57 1.6 +++ mod_ruby.c 2000/03/29 05:51:12 @@ -289,6 +289,27 @@ } } +static char *extract_uri(request_rec *r) +{ + char *p; + int n; + + if (r->the_request == NULL) + return (char *) ap_pcalloc(r->pool, 1); + + p = r->the_request; + while (*p && !ap_isspace(*p)) + p++; + while (ap_isspace(*p)) + p++; + + n = 0; + while (p[n] && !ap_isspace(p[n])) + n++; + + return ap_pstrndup(r->pool, p, n); +} + static void setup_env(request_rec *r, ruby_dir_config *dconf) { ruby_server_config *sconf = @@ -320,7 +341,7 @@ mr_setenv("REQUEST_METHOD", r->method); mr_setenv("SCRIPT_FILENAME", r->filename); mr_setenv("REQUEST_FILENAME", r->filename); - mr_setenv("REQUEST_URI", r->uri); + mr_setenv("REQUEST_URI", extract_uri(r)); if (!strcmp(r->protocol, "INCLUDED")) { mr_setenv("SCRIPT_NAME", r->uri); mr_setenv("PATH_INFO", r->path_info); @@ -361,7 +382,7 @@ else { ruby_unsetenv("PATH_TRANSLATED"); } - mr_setenv("QUERY_STRING", r->args); + mr_setenv("QUERY_STRING", r->args ? r->args : ""); mr_setenv("AUTH_TYPE", r->connection->ap_auth_type); mr_setenv("DOCUMENT_ROOT", ap_document_root(r)); mr_setenv("SERVER_ADMIN", r->server->server_admin); @@ -370,6 +391,14 @@ mr_setenv("SERVER_PORT", server_port); mr_setenv("SERVER_PROTOCOL", r->protocol); mr_setenv("SERVER_SOFTWARE", ap_get_server_version()); + mr_setenv("HTTP_ACCEPT", + ap_table_get(r->headers_in, "Accept")); + mr_setenv("HTTP_ACCEPT_CHARSET", + ap_table_get(r->headers_in, "Accept-Charset")); + mr_setenv("HTTP_ACCEPT_ENCODING", + ap_table_get(r->headers_in, "Accept-Encoding")); + mr_setenv("HTTP_ACCEPT_LANGUAGE", + ap_table_get(r->headers_in, "Accept-Language")); } static void get_error_pos(VALUE str)