summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2007-06-13 07:29:56 +0000
committerChristian Grothoff <christian@grothoff.org>2007-06-13 07:29:56 +0000
commite6a6d5f18bf006ec3248c7e641670277f6ca4fae (patch)
tree04959af567172a3f8de7f61381c89bc810c6a9c9
parent9a0026c7f5aca6803f11b33bb61b0010c536a0cb (diff)
uri matching
-rw-r--r--README25
-rw-r--r--src/daemon/session.c10
2 files changed, 17 insertions, 18 deletions
diff --git a/README b/README
index 7b84bb00..70219998 100644
--- a/README
+++ b/README
@@ -1,18 +1,19 @@
Run "autoreconf -f -i" to create configure.
This is still pre-alpha software. The following
-things need to be implemented before it can be used
-at all:
+things need to be implemented (in list of importance)
+before certain features can be used at all:
-
-In general:
-===========
+For ANYTHING:
+=============
session.c:
- MHD_session_get_fdset (essentially not implemented)
-- MHD_find_access_handler (not implemented)
-- add additional LOG messages for debugging
+For GET args:
+=============
+session.c:
+- MHD_parse_session_headers: take URL apart
For PUT/POST:
=============
@@ -20,28 +21,18 @@ session.c:
- MHD_parse_session_headers (determine upload size)
- MHD_session_handle_read (proper handling of upload end)
-
For COOKIES:
============
session.c:
- MHD_parse_session_headers: take cookie header apart
-
-For GET args:
-=============
-session.c:
-- MHD_parse_session_headers: take URL apart
-
-
For IPv6:
=========
-
daemon.c:
- fix start daemon and accept handlers
(tricky bit will be supporting both on
the same socket / port!)
-
For SSL:
========
microhttpd.h:
diff --git a/src/daemon/session.c b/src/daemon/session.c
index 62e05edd..fc713137 100644
--- a/src/daemon/session.c
+++ b/src/daemon/session.c
@@ -282,7 +282,15 @@ MHD_parse_session_headers(struct MHD_Session * session) {
*/
static struct MHD_Access_Handler *
MHD_find_access_handler(struct MHD_Session * session) {
- /* FIXME: do real lookup based on URI! */
+ struct MHD_Access_Handler * pos;
+
+ pos = session->daemon->handlers;
+ while (pos != NULL) {
+ if (0 == strcmp(session->url,
+ pos->uri_prefix))
+ return pos;
+ pos = pos->next;
+ }
return &session->daemon->default_handler;
}