我使用的是G-Wan v4.12.31。
有人知道为什么get_env(US_VHOST_DATA)在处理程序/main.c中首次调用main()时返回NULL吗?
int init(int argc, char *argv[])
{
u32 *states = (u32 *)get_env(argv, US_HANDLER_STATES);
*states = (1 << HDL_AFTER_READ);
return 0;
}
int main(int argc, char *argv[])
{
void **vhost = (void **)get_env(argv, US_VHOST_DATA);
printf(%pn", vhost); //NULL first time, non-NULL all other times
return 255;
}
get_env(US_VHOST_DATA)
调用返回虚拟主机信息。
只要client request
不为parsed
, G-WAN就没有可用的host information
。
这就是为什么在HDL_AFTER_PARSE处理程序状态之前不能返回有意义的主机以及为什么G-WAN返回NULL的原因。