Roxen.git/
server/
etc/
modules/
Roxen.pmod
Branch:
Tag:
Non-build tags
All tags
No tags
2006-11-08
2006-11-08 17:03:39 by Henrik Grubbström (Grubba) <grubba@grubba.org>
91cf5b8f95b2b377259d9355ecc76ac45ff8d4ed (
33
lines) (+
28
/-
5
)
[
Show
|
Annotate
]
Branch:
5.2
Added some more CGI variables.
Rev: server/etc/modules/Roxen.pmod:1.220
1:
// This is a roxen pike module. Copyright © 1999 - 2004, Roxen IS. //
-
// $Id: Roxen.pmod,v 1.
219
2006/
10
/
30
17:
05
:
18
grubba Exp $
+
// $Id: Roxen.pmod,v 1.
220
2006/
11
/
08
17:
03
:
39
grubba Exp $
#include <roxen.h> #include <config.h>
1020:
//! with CGI-scripts or SSI scripts etc. //! //! @mapping
+
//! @member string REQUEST_URI
+
//! URI requested by the user.
+
//! @member string REDIRECT_URL
+
//! Target of the first internal redirect.
//! @member string INDEX //! @member string SCRIPT_NAME //! @member string PATH_INFO
1051:
{ string addr=id->remoteaddr || "Internal"; mapping(string:string) new = ([]);
-
RequestID tmpid;
+
if(id->query && strlen(id->query)) new->INDEX=id->query;
1092:
} } else new["SCRIPT_NAME"]=id->not_query;
-
tmpid = id;
-
while(tmpid->misc->orig)
+
+
// Find the original request.
+
RequestID
tmpid = id;
+
RequestID previd;
+
while(tmpid->misc->orig)
{
// internal get
-
tmpid = tmpid->misc->orig;
+
tmpid =
(previd =
tmpid
)
->misc->orig;
+
}
-
+
// The original URL.
+
environment["REQUEST_URI"] =
+
tmpid->misc->redirected_raw_url || tmpid->raw_url;
+
+
if(tmpid->misc->is_redirected || previd) {
+
// Destination of the first internal redirect.
+
if (tmpid->misc->redirected_to) {
+
environment["REDIRECT_URL"] =
+
Roxen.http_encode_invalids(tmpid->misc->redirected_to);
+
} else if (previd) {
+
environment["REDIRECT_URL"] = previd->raw_url;
+
}
+
environment["REDIRECT_STATUS"] = "200";
+
}
+
// Begin "SSI" vars. array(string) tmps; if(sizeof(tmps = tmpid->not_query/"/" - ({""})))