Как вызвать исполняемый файл с помощью системного вызова из модуля apache type_checker hook?

static int x_post_config(apr_pool_t *pconf, apr_pool_t *plog,
                          apr_pool_t *ptemp, server_rec *s)
{
        system("/home/user/workspace/CheckVideo/Debug/CheckVideo.exe"); 
        return OK;
}


static void register_hooks(apr_pool_t* pool)
{
    ap_hook_post_config(x_post_config, NULL, NULL, APR_HOOK_MIDDLE);
}

module AP_MODULE_DECLARE_DATA MyModule_module = {
    STANDARD20_MODULE_STUFF,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    register_hooks
};

Я разработал этот модуль на C и интегрировал его в сервер Apache, используя инструмент расширения Apache (apxs). Я могу запустить исполняемый файл, используя системный вызов в фоновом режиме при вызове из post_config крюк.

Теперь я хочу изменить тот же код для запуска исполняемого файла с использованием системного вызова, только когда на Apache вызывается определенный тип MIME, например.mp4 video. Так что вместо post_configЯ хочу запустить этот исполняемый файл на этапе ответа Apache. Я пытаюсь выполнить то же самое system() функция например:

static int My_handler(request_rec* r)
{
   if (strcmp(r->content_type, "video/mp4"))
   {
       system("/home/user/workspace/CheckVideo/Debug/CheckVideo.exe");  
   }
   return DECLINED;
}



static void register_hooks(apr_pool_t* pool)
{
    ap_hook_handler(My_handler, NULL, NULL, APR_HOOK_MIDDLE);
}

module AP_MODULE_DECLARE_DATA My_handler = {
    STANDARD20_MODULE_STUFF,
    NULL,
    NULL,
    NULL,
    NULL,
    NULL,
    register_hooks
};

Я хочу запускать этот исполняемый файл непрерывно в фоновом режиме видео, и он должен вызываться только для определенного типа видео. Итак, как я могу вызвать исполняемый файл с помощью системного вызова из модуля Apache ap_hook_handler?

0 ответов

Другие вопросы по тегам