]>
Commit | Line | Data |
---|---|---|
50be92f1 | 1 | --- fetch.c 2008-06-16 16:34:37.000000000 +0200 |
2 | +++ fetch.c.new 2009-05-19 02:35:48.473000809 +0200 | |
3 | @@ -30,18 +30,34 @@ | |
4 | char *pathInfoString; | |
5 | char *queryString; | |
6 | char *userStr; | |
7 | + char *pch; | |
8 | + char *p[3]; | |
9 | + int i=0; | |
10 | ||
11 | DEBUG_Msg("\n"); | |
12 | ||
13 | userStr = (char *) 0; | |
14 | - pathInfoString = getenv("PATH_INFO"); | |
15 | + //pathInfoString = getenv("PATH_INFO"); | |
16 | + pathInfoString = getenv("PATH_TRANSLATED"); | |
17 | if ( pathInfoString ) /* use PATH_INFO */ | |
18 | { | |
19 | if ( pathInfoString[0] != 0 ) | |
20 | { | |
21 | - DEBUG_Msg("Trying to extract user from PATH_INFO."); | |
22 | + DEBUG_Msg("Trying to extract user from PATH_TRANSLATED."); | |
23 | + | |
24 | + userStr = GetPathComponents(3, pathInfoString); | |
25 | + DEBUG_Str("userstr1", userStr); | |
26 | + | |
27 | + pch = strtok(userStr, "/"); | |
28 | + | |
29 | + while (pch != NULL) { | |
30 | + p[i] = pch; | |
31 | + pch = strtok (NULL, "/"); | |
32 | + i++; | |
33 | + } | |
34 | ||
35 | - userStr = GetPathComponents(1, pathInfoString); | |
36 | + userStr = p[2]; | |
37 | + DEBUG_Str("userstr2", userStr); | |
38 | } | |
39 | else | |
40 | { | |
41 | @@ -68,9 +84,10 @@ | |
42 | /* Handle ~ notation */ | |
43 | if (userStr) | |
44 | { | |
45 | - if (userStr[0] == '~') | |
46 | + DEBUG_Str("userstr3", userStr); | |
47 | + if (userStr[0] == 'home') | |
48 | { | |
49 | - userStr++; | |
50 | + userStr = userStr + 2; | |
51 | } | |
52 | } | |
53 | ||
54 | @@ -100,7 +117,7 @@ | |
55 | DEBUG_Msg("Trying to extract script from PATH_INFO"); | |
56 | ||
57 | scrStr = StripPathComponents(1,pathInfoString); | |
58 | - if ( ! strlen(scrStr) ) { scrStr = 0; } | |
59 | + if ( ! strlen(scrStr) ) { scrStr = StripPathComponents(0,pathInfoString); } | |
60 | ||
61 | DEBUG_Str("Extracted PATH_INFO", scrStr); | |
62 | } |