C Gwan处理程序仅接受文件请求
使用以下代码时,处理程序将无法识别非文件请求(例如,请求必须包含www文件夹中的文件)。 对于所有其他请求,main甚至没有被调用,我不知道为什么会这样C Gwan处理程序仅接受文件请求,c,g-wan,C,G Wan,使用以下代码时,处理程序将无法识别非文件请求(例如,请求必须包含www文件夹中的文件)。 对于所有其他请求,main甚至没有被调用,我不知道为什么会这样 int init(int argc, char *argv[]) { printf("init\n"); *(u32 *)get_env(argv, US_HANDLER_STATES) = (1L << HDL_AFTER_ACCEPT) | (1L << HDL_AFTER_READ) | (1L &
int init(int argc, char *argv[])
{
printf("init\n");
*(u32 *)get_env(argv, US_HANDLER_STATES) = (1L << HDL_AFTER_ACCEPT) | (1L << HDL_AFTER_READ) | (1L << HDL_BEFORE_WRITE);
return 0;
}
void clean(int argc, char *argv[])
{
printf("clean\n");
}
int main(int argc, char *argv[])
{
printf("%s\n", (char *)get_env(argv, REQUEST));
return 255;
}
intinit(intargc,char*argv[]
{
printf(“init\n”);
*(u32*)get_env(argv,US_HANDLER_STATES)=(1L处理程序获取任何关于文件或其他方面的请求,无论是否有效
您的处理程序不正确。因为您在进行HTTP
和HTML
解析之前请求通知:
*(u32*)get_env(argv, US_HANDLER_STATES) =
(1L << HDL_AFTER_ACCEPT)
| (1L << HDL_AFTER_READ)
| (1L << HDL_BEFORE_WRITE);
您在上面发布的代码每次都会崩溃,因为HTTPREQUEST
值为NULL
(目前不可用)当连接被接受
,或者请求被读取
时,您使用的是哪个版本的G-wan?您的开发环境如何?最新版本的G-wan已知与许多发行版不兼容。如果是这样,那么您最好使用旧的G-wan 3.3,或者尝试匹配G-wan团队的开发环境(我相信是Ubuntu10.04)我不好,我正在运行Ubuntu12.10和glibc版本2.15。root@desktop-Ubuntu:~#/lib/x86_64-linux-gnu/libc.so.6 gnu C库(Ubuntu EGLIBC 2.15-0ubuntu20)稳定发行版2.15,由罗兰·麦格拉斯等人编写,由gnu CC版本4.6.3 20120918(预发行版)编译。于2012年10月4日在Linux 3.5.4系统上编译。可用扩展:Michael Glady的crypt插件版本2.1和其他人Simon Josefsson的GNU Libidn本地POSIX线程库Ulrich Drepper等人的BIND-8.2.3-T5B libc ABIs:UNIQUE IFUNC
const char *req = (char*)get_env(argv, REQUEST);
printf("%s\n", req ? req : "not parsed yet");