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

From: $B2,ED (okada@furuno.co.jp)
Date: Sun Sep 03 2000 - 23:34:30 CDT

  • Next message: Yoshinari Nomura: "[w3m-dev 01045] Re: Location: in local cgi."

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

    local CGI $B$N0z?t$,$J$$$H$-$NF0:n3NG'$r$7$F$^$;$s$G$7$?!#$9$_$^$;$s$,!"(B
    $B=$@5HG$rE:IU$7$^$9$N$G!"(B[w3m-dev 01043] $B$OGK4~$7$F$/$@$5$$!#(B

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

    *** local.c.dist Mon Sep 4 10:50:52 2000 --- local.c Mon Sep 4 13:33:11 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,357 ---- FILE * localcgi_get(char *file, char *request) { + Str name; int status; + name = Strnew_charp(file); file = cgi_filename(file, &status); if (check_local_cgi(file, status) < 0) return NULL; ! if (!strcmp(request, "")) ! set_cgi_environ(name->ptr, file, name->ptr); ! else { ! Str req_uri; ! ! 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:44:17 CDT