add cookie support
authorFelix Fietkau <nbd@openwrt.org>
Sun, 29 Jun 2008 00:06:36 +0000 (00:06 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 29 Jun 2008 00:06:36 +0000 (00:06 +0000)
libs/sgi-webuci/boa-patches/200-plugin_api.patch
libs/sgi-webuci/root/usr/lib/boa/luci.lua
libs/sgi-webuci/src/luci.c

index 0d3a8116704d64e1b3895bd91d2f6f91ef86764e..c287ec50c506a40fd67b6dc3fdbf582144d7e813 100644 (file)
@@ -607,8 +607,8 @@ Index: boa-0.94.13/src/list.h
 Index: boa-0.94.13/src/plugin.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ boa-0.94.13/src/plugin.c   2008-06-29 01:22:01.000000000 +0200
-@@ -0,0 +1,190 @@
++++ boa-0.94.13/src/plugin.c   2008-06-29 02:02:42.000000000 +0200
+@@ -0,0 +1,191 @@
 +/*
 + * Simple plugin API for boa
 + * Copyright (C) 2008 John Crispin <blogic@openwrt.org>
@@ -674,6 +674,7 @@ Index: boa-0.94.13/src/plugin.c
 +      ctx.query_string = req->query_string;
 +      ctx.remote_addr = req->remote_ip_addr;
 +      ctx.remote_port = req->remote_port;
++      ctx.cookie = req->cookie;
 +      if (req->method == M_POST) {
 +              if (req->content_type)
 +                      ctx.content_type = req->content_type;
@@ -802,7 +803,7 @@ Index: boa-0.94.13/src/plugin.c
 Index: boa-0.94.13/src/request.c
 ===================================================================
 --- boa-0.94.13.orig/src/request.c     2008-06-29 01:11:52.000000000 +0200
-+++ boa-0.94.13/src/request.c  2008-06-29 01:12:36.000000000 +0200
++++ boa-0.94.13/src/request.c  2008-06-29 01:49:46.000000000 +0200
 @@ -50,6 +50,7 @@
          dequeue(&request_free, request_free); /* dequeue the head */
      } else {
@@ -852,6 +853,15 @@ Index: boa-0.94.13/src/request.c
  
      if (req->is_cgi) {
          return init_cgi(req);
+@@ -698,6 +716,8 @@
+         req->header_user_agent = value;
+         if (!add_cgi_env(req, "USER_AGENT", value, 1))
+             return 0;
++      } else if (!memcmp(line, "COOKIE", 7)) {
++              req->cookie = value;
+     } else {
+         if (!add_cgi_env(req, line, value, 1))
+             return 0;
 Index: boa-0.94.13/src/Makefile.in
 ===================================================================
 --- boa-0.94.13.orig/src/Makefile.in   2008-06-29 01:11:52.000000000 +0200
@@ -981,7 +991,7 @@ Index: boa-0.94.13/src/alias.c
 Index: boa-0.94.13/src/globals.h
 ===================================================================
 --- boa-0.94.13.orig/src/globals.h     2008-06-29 01:11:52.000000000 +0200
-+++ boa-0.94.13/src/globals.h  2008-06-29 01:12:36.000000000 +0200
++++ boa-0.94.13/src/globals.h  2008-06-29 01:47:25.000000000 +0200
 @@ -47,6 +47,7 @@
  struct request {                /* pending requests */
      int fd;                     /* client's socket fd */
@@ -998,6 +1008,14 @@ Index: boa-0.94.13/src/globals.h
  
      char *path_info;            /* env variable */
      char *path_translated;      /* env variable */
+@@ -99,6 +101,7 @@
+     char *query_string;         /* env variable */
+     char *content_type;         /* env variable */
+     char *content_length;       /* env variable */
++      char *cookie;               /* env variable */
+     struct mmap_entry *mmap_entry_var;
 Index: boa-0.94.13/src/read.c
 ===================================================================
 --- boa-0.94.13.orig/src/read.c        2008-06-29 01:11:52.000000000 +0200
@@ -1019,8 +1037,8 @@ Index: boa-0.94.13/src/read.c
 Index: boa-0.94.13/src/boa-plugin.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ boa-0.94.13/src/boa-plugin.h       2008-06-29 01:12:36.000000000 +0200
-@@ -0,0 +1,67 @@
++++ boa-0.94.13/src/boa-plugin.h       2008-06-29 02:02:27.000000000 +0200
+@@ -0,0 +1,68 @@
 +#ifndef _HTTPD_PLUGIN_H__
 +#define _HTTPD_PLUGIN_H__
 +
@@ -1047,6 +1065,7 @@ Index: boa-0.94.13/src/boa-plugin.h
 +      char *content_type;
 +      char *content_length;
 +      char *http_accept;
++      char *cookie;
 +
 +      void *priv;
 +};
index 879ef19b4f89f7e28956b05a51391453e83e6fe4..5c9531a2e6c0e072df39da2514139f2de1b82442 100644 (file)
@@ -58,6 +58,7 @@ function handle_req(context)
        env.PATH_INFO       = context.uri
        env.REMOTE_PORT     = context.remote_port
        env.SERVER_ADDR     = context.server_addr
+       env.HTTP_COOKIE     = context.cookie
        env.SCRIPT_NAME     = env.REQUEST_URI:sub(1, #env.REQUEST_URI - #env.PATH_INFO)
 
        luci.sgi.webuci.run(env, vars)
index 24d4324a9cbdbfad8226d0f24708b7bca1f893bf..44a44af149bb2bf6fd8fb6b69c06f4a59aa248a0 100644 (file)
@@ -160,6 +160,7 @@ static int luci_handle_req(struct httpd_plugin *p, struct http_context *ctx)
 
        /* convert http_context data structure to lua table */
 #define PUSH(x)        pushvar(#x, ctx->x)
+       PUSH(cookie);
        PUSH(request_method);
        PUSH(server_addr);
        PUSH(server_proto);