ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[apache-talk] =?koi8-r?B?8MXSxd7J1MHU2CDLz87GyccuLi4=?=



Hello всем,

Вот  возникла  нужда  написать  можуль,  который будет перечитывать
конфиг  апаче  при  изменении  даты  последнего  доступа  к  нему.
Зацыклился  на  одном:  как реализовать  ap_handle_command  внутри
самого  модуля  --  функция  не  экспортируется... Время последнего
доступа  хранится  в  sharedmem  и  с  этим  проблем  нету,  конфиг
открывается  могу  его  перечесть  все  комманды получаю, но как их
правильно  обработать не знаю даже. Уже мучаюсь черт знает сколько.
Может  у  кого  есть  соображения  (но  мне  не  надо  использовать
ap_srm_command_loop)?  Можно  сделать  допустим  ap_handle_command
экспортируемой и доступной модулям? Всем заранее благодарен.
===================================================================
ap_block_alarms();
sem_grab();
if (shm_base->modified_time < sb.st_mtime)
{
        shm_base->modified_time = sb.st_mtime;
        ap_table_set(r->subprocess_env, "CONF_MODIFIED", ap_ht_time(r->pool, 
shm_base->modified_time, "%a %d %b %Y %T %Z", 0));
        cfg = ap_pcfg_openfile(r->pool, "/path/to/httpd.conf");
        if (!cfg)
        {
                return HTTP_INTERNAL_SERVER_ERROR;
        }
        while (!(ap_cfg_getline(l, MAX_STRING_LEN, cfg))) {
                if ((l[0] == '#') || (!l[0])) {
                        continue;
                }
                args = l;
                cmd_name = ap_getword_conf(r->pool, &args);
                if (*cmd_name == '\0') {
                        continue;
                }
                ap_log_error (APLOG_MARK, APLOG_NOERRNO|APLOG_NOTICE, 
r->server, "cmd_name: %s", cmd_name);
                /*
                 * здесь обработать комманду, если
                 * неправильная, то выйти
                 */
        }
        ap_cfg_closefile(cfg);
}
sem_free();
ap_unblock_alarms();
===================================================================

Best regards,
Alexei V. Alexandrov | @ ElcomSoft Ltd.  | Phone:  +7 095 974-11-62 
System Administrator | www.elcomsoft.com | Mail:  ava@elcomsoft.com
---------------------+-------------------+-------------------------
***   It`s always a long day, 86400 doesn`t fit into a short.   ***


=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.