[prev in list] [next in list] [prev in thread] [next in thread]
List: midgard-dev
Subject: [midgard-cvs] cvs: midgard /mod mod_midgard.c /php/midgard mgd_apache.h mgd_basic.c
From: emile <cvslog () midgard-project ! org>
Date: 2000-10-30 18:50:02
[Download RAW message or body]
emile Mon Oct 30 19:50:02 2000 EDT
Modified files:
/midgard/mod mod_midgard.c
/midgard/php/midgard mgd_apache.h mgd_basic.c
Log:
$midgard->self holds the full path to the script. This will be == uri
for static pages, and uri sans argv parameters for active scripts.
Index: midgard/mod/mod_midgard.c
diff -u midgard/mod/mod_midgard.c:1.61 midgard/mod/mod_midgard.c:1.62
--- midgard/mod/mod_midgard.c:1.61 Mon Oct 30 11:35:10 2000
+++ midgard/mod/mod_midgard.c Mon Oct 30 19:50:02 2000
@@ -1,4 +1,4 @@
-/* $Id: mod_midgard.c,v 1.61 2000/10/30 10:35:10 emile Exp $
+/* $Id: mod_midgard.c,v 1.62 2000/10/30 18:50:02 emile Exp $
*
* mod_midgard.c Midgard address translation and user authentication module
*
@@ -79,6 +79,7 @@
} auth;
int prelen;
+ int self_len;
struct {
int status;
@@ -632,6 +633,7 @@
rcfg->author = 0;
rcfg->prelen = 0;
+ rcfg->self_len = 0;
rcfg->resource.id = 0;
rcfg->resource.status = DECLINED;
@@ -849,7 +851,6 @@
"up=$d AND name=$q", NULL,
rcfg->resource.id, path);
-
#if HAVE_MIDGARD_PAGELINKS
} // !pagelink_ok
#endif
@@ -901,6 +902,8 @@
char *uri, *tok, *part, **arg;
int tmp, addslash;
+ rcfg->self_len = rcfg->prelen;
+
tok = strrchr(rcfg->req->uri + rcfg->prelen, '/');
part = tok ? strchr(tok + 1, '.') : NULL;
addslash = !tok || (*(tok + 1) != '\0' && !part);
@@ -922,7 +925,9 @@
midgard_get_pelements(rcfg, 1);
/* Traverse the page structure */
- for (tok = strtok(uri, "/"); tok; tok = strtok(NULL, "/")) {
+ for (tok = strsep(&uri, "/"); tok; tok = strsep(&uri, "/")) {
+ if (!*tok) { rcfg->self_len += 1; continue; }
+
midgard_find_pathelement(dcfg, rcfg, tok);
if (rcfg->resource.status != OK) {
@@ -938,8 +943,12 @@
rcfg->resource.id);
break;
}
+
+ rcfg->self_len += strlen(tok) + 1;
}
+ rcfg->self_len--;
+
if (rcfg->resource.type == MOD_MIDGARD_RESOURCE_BLOB)
return;
if (rcfg->resource.type == MOD_MIDGARD_RESOURCE_PAGE) {
@@ -949,8 +958,9 @@
addslash = 0;
arg = (char **) ap_push_array(rcfg->argv);
*arg = ap_pstrdup(rcfg->pool, tok);
- tok = strtok(NULL, "/");
+ tok = strsep(&uri, "/");
}
+ if (!addslash) rcfg->self_len++;
}
if (addslash) {
@@ -1127,6 +1137,7 @@
rcfg->resource.id = 0;
rcfg->auth.required = ftstatus->auth_required;
rcfg->prelen = 0;
+ rcfg->self_len = strlen(r->uri);
#if HAVE_MIDGARD_SITEGROUPS
mgd_set_sitegroup(rcfg->mgd, ftstatus->sitegroup);
#endif
Index: midgard/php/midgard/mgd_apache.h
diff -u midgard/php/midgard/mgd_apache.h:1.7 midgard/php/midgard/mgd_apache.h:1.8
--- midgard/php/midgard/mgd_apache.h:1.7 Fri Oct 13 00:25:50 2000
+++ midgard/php/midgard/mgd_apache.h Mon Oct 30 19:50:02 2000
@@ -58,6 +58,7 @@
} auth;
int prelen;
+ int self_len;
struct {
int status;
Index: midgard/php/midgard/mgd_basic.c
diff -u midgard/php/midgard/mgd_basic.c:1.6 midgard/php/midgard/mgd_basic.c:1.7
--- midgard/php/midgard/mgd_basic.c:1.6 Tue Oct 3 15:09:49 2000
+++ midgard/php/midgard/mgd_basic.c Mon Oct 30 19:50:02 2000
@@ -1,4 +1,4 @@
-/* $Id: mgd_basic.c,v 1.6 2000/10/03 13:09:49 emile Exp $
+/* $Id: mgd_basic.c,v 1.7 2000/10/30 18:50:02 emile Exp $
*
* mgd_stub.c Sample stub for Midgard PHP module
*
@@ -207,6 +207,9 @@
add_property_string(return_value, "uri",
safe_estrdup(MGD_RCFG->req->uri), 0);
+
+ add_property_string(return_value, "self",
+ safe_estrndup(MGD_RCFG->req->uri, MGD_RCFG->self_len), 0);
}
MGD_FUNCTION(auth_midgard)
---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@midgard-project.org
For additional commands, e-mail: cvs-help@midgard-project.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic