2016-08-27 2 views
1

Я использую G-Wan v4.12.31.Почему get_env (US_VHOST_DATA) имеет NULL при первом вызове main() в обработчиках/main.c

Кто-нибудь знает, почему get_env (US_VHOST_DATA) возвращает NULL при первом вызове main() в обработчиках/main.c?

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(%p\n", vhost); //NULL first time, non-NULL all other times 
    return 255; 
} 

ответ

0

Вызов get_env(US_VHOST_DATA) возвращает информацию виртуального хоста.

Для G-WAN нет host information, если client request не был parsed.

Вот почему никакой смыслный хост не может быть возвращен до состояния обработчика HDL_AFTER_PARSE и почему G-WAN возвращает NULL.

+0

Gil, спасибо. Я думаю, что я должен был использовать US_HANDLER_DATA в моем случае. – soundwave

Смежные вопросы