12 |
|
#include <menes-api/process.hpp> |
13 |
|
#include <menes-app/simple.hpp> |
14 |
|
|
15 |
< |
int Main(const app::Options& options) |
15 |
> |
struct Environment |
16 |
|
{ |
17 |
< |
try |
17 |
> |
ext::String get(const ext::String& name) |
18 |
|
{ |
19 |
< |
Bender bender; |
19 |
> |
try |
20 |
> |
{ |
21 |
> |
return api::TheEnvironment.Get(name); |
22 |
> |
} |
23 |
> |
catch (ext::Exception) |
24 |
> |
{ |
25 |
> |
return ext::String(); |
26 |
> |
} |
27 |
|
} |
28 |
< |
catch (ext::Exception e) {} |
28 |
> |
} env; |
29 |
> |
|
30 |
> |
int Main(const app::Options& options) |
31 |
> |
{ |
32 |
> |
Bender bender; |
33 |
|
|
34 |
|
return 0; |
35 |
|
} |
36 |
|
|
37 |
|
Bender::Bender() |
38 |
|
{ |
39 |
< |
ext::String path(api::TheEnvironment.Get("PATH_TRANSLATED")); |
40 |
< |
Matcher matcher("^" + api::TheEnvironment.Get("SCRIPT_NAME")); |
39 |
> |
ext::String path(env.get("PATH_TRANSLATED")); |
40 |
> |
Matcher matcher("^" + env.get("SCRIPT_NAME")); |
41 |
|
|
42 |
< |
if (!path.IsEmpty() && api::TheEnvironment.Get("REQUEST_URI") != matcher) |
42 |
> |
if (!path.IsEmpty() && env.get("REQUEST_URI") != matcher) |
43 |
|
{ |
44 |
|
try |
45 |
|
{ |
46 |
|
api::FileReader file(path); |
47 |
|
|
48 |
< |
bend(path, api::TheEnvironment.Get("HTTP_USER_AGENT")); |
48 |
> |
bend(path, env.get("HTTP_USER_AGENT")); |
49 |
|
} |
50 |
|
catch (ext::Exception e) |
51 |
|
{ |
56 |
|
<< "<title>404 Not Found</title>\n" |
57 |
|
<< "</head><body>\n" |
58 |
|
<< "<h1>Not Found</h1>\n" |
59 |
< |
<< "<p>The requested URL " |
49 |
< |
<< api::TheEnvironment.Get("PATH_INFO") |
59 |
> |
<< "<p>The requested URL " << env.get("PATH_INFO") |
60 |
|
<< " was not found on this server.</p>\n" |
61 |
|
<< "<hr />\n" |
62 |
< |
<< api::TheEnvironment.Get("SERVER_SIGNATURE") |
53 |
< |
<< "</body></html>\n"; |
62 |
> |
<< env.get("SERVER_SIGNATURE") << "</body></html>\n"; |
63 |
|
} |
64 |
|
} |
65 |
|
else |