Re: POST/CGI arguments?

Thorben Thuermer <[email protected]>
Newsgroups gmane.network.mathopd
Message-ID <[email protected]>
Tobias DiPasquale wrote:
> 
> Hi all,
> 
>         I was looking at the source today, trying to find the place where
> mathopd passes the arguments to CGIs, but was unable to locate it. I
> thought I did, when I came upon the add_argv function in cgi.c, but when
> I inserted the following line in the function, it failed to yield the
> POST parameters:

POST? i only see this in request.c:
        if (r->method == M_POST)
                return 405;

-> always returns 405 method not allowed

also, cgi parameters are normally not passed in argv[], but in the environment
(for GET parameters), or on stdin (for POST, which mathod doesn't seem to
support anyway).

simply try something like:
index.cgi:
#!/bin/bash
echo "HTTP/1.0 200 OK
Content-Type: text/plain
"
set


> static int add_argv(const char *a, const char *b, int decode)
[...]

with a bit of experimenting i found that mathopd passes GET parameters in
argv (split at spaces ("+", assuming the requets is  URLencoded)) if they
don't contain '='... (why anyway?)

that is in make_cgi_argv():
        a = r->args;
        if (a && strchr(a, '=') == 0)
                do {
                        w = strchr(a, '+');
                        if (add_argv(a, w, 1, cp) == -1)
                                return -1;
                        if (w)
                                a = w + 1;
                } while (w);

> << T o b i a s   D i P a s q u a l e >>


Thorben Thuermer
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.