[w3m-dev 01043] Re: Location: in local cgi.

From: $B2,ED (okada@furuno.co.jp)
Date: Sun Sep 03 2000 - 22:50:10 CDT

  • Next message: $B2,ED: "[w3m-dev 01044] Re: Location: in local cgi."

    $B2,ED$G$9!#(B

    From: Yoshinari Nomura <nom@csce.kyushu-u.ac.jp>
    Subject: [w3m-dev 01042] Re: Location: in local cgi.
    Date: Mon, 04 Sep 2000 11:32:00 +0900

    > /hom/nom/cgi-bin/ $B$K(B test.cgi $B$rCV$$$F!"(B
    > file:///cgi-bin/test.cgi?param=foo $B$r(B local cgi $B$G8F$s$@$H$-$O!"(B
    >
    > SCRIPT_NAME /cgi-bin/test.cgi
    > SCRIPT_FILENAME /home/nom/cgi-bin/test.cgi
    > REQUEST_URI /cgi-bin/test.cgi?param=foo
    >
    > $B$N$h$&$K@_Dj$5$l$k$H$$$$$H;W$$$^$9!#(B

    $BBP1~$7$F$_$^$7$?!#(B

    -- 
    Tsutomu Okada <okada@furuno.co.jp>
    

    *** local.c.dist Mon Sep 4 10:50:52 2000 --- local.c Mon Sep 4 12:33:29 2000 *************** *** 224,236 **** } static void ! set_cgi_environ() { set_environ("SERVER_SOFTWARE", version); set_environ("SERVER_PROTOCOL", "HTTP/1.0"); set_environ("REMOTE_HOST", "localhost"); set_environ("REMOTE_ADDR", "127.0.0.1"); set_environ("SERVER_PORT", "80"); /* dummy */ } static Str --- 224,240 ---- } static void ! set_cgi_environ(char *name, char *fn, char *req_uri) { set_environ("SERVER_SOFTWARE", version); set_environ("SERVER_PROTOCOL", "HTTP/1.0"); set_environ("REMOTE_HOST", "localhost"); set_environ("REMOTE_ADDR", "127.0.0.1"); set_environ("SERVER_PORT", "80"); /* dummy */ + + set_environ("SCRIPT_NAME", name); + set_environ("SCRIPT_FILENAME", fn); + set_environ("REQUEST_URI", req_uri); } static Str *************** *** 290,302 **** localcgi_post(char *file, FormList * request) { FILE *f; ! Str tmp1, tmp2; int status; file = cgi_filename(file, &status); if (check_local_cgi(file, status) < 0) return NULL; ! set_cgi_environ(); set_environ("REQUEST_METHOD", "POST"); set_environ("CONTENT_LENGTH", Sprintf("%d", request->length)->ptr); if (request->enctype == FORM_ENCTYPE_MULTIPART) { --- 294,307 ---- localcgi_post(char *file, FormList * request) { FILE *f; ! Str name, tmp1, tmp2; int status; + name = Strnew_charp(file); file = cgi_filename(file, &status); if (check_local_cgi(file, status) < 0) return NULL; ! set_cgi_environ(name->ptr, file, name->ptr); set_environ("REQUEST_METHOD", "POST"); set_environ("CONTENT_LENGTH", Sprintf("%d", request->length)->ptr); if (request->enctype == FORM_ENCTYPE_MULTIPART) { *************** *** 332,343 **** FILE * localcgi_get(char *file, char *request) { int status; file = cgi_filename(file, &status); if (check_local_cgi(file, status) < 0) return NULL; ! set_cgi_environ(); set_environ("REQUEST_METHOD", "GET"); set_environ("QUERY_STRING", request); return popen(file, "r"); --- 337,351 ---- FILE * localcgi_get(char *file, char *request) { + Str name, req_uri; int status; + name = Strnew_charp(file); file = cgi_filename(file, &status); if (check_local_cgi(file, status) < 0) return NULL; ! req_uri = Strnew_m_charp(name->ptr, "?", request, NULL); ! set_cgi_environ(name->ptr, file, req_uri->ptr); set_environ("REQUEST_METHOD", "GET"); set_environ("QUERY_STRING", request); return popen(file, "r");



    This archive was generated by hypermail 2b29 : Sun Sep 03 2000 - 23:03:33 CDT