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" 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.