Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

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

[apache-talk] Перечитать конфиг...



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@xxxxxxxxxxxxx
---------------------+-------------------+-------------------------
***   It`s always a long day, 86400 doesn`t fit into a short.   ***


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






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.