<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>Форум ApacheDev : Разработка</title>
<link>http://apachedev.ru/forum</link>
<description> Форум ApacheDev</description>
<language>en</language>
<docs>http://backend.userland.com/rss</docs>
<item>
<title>Не правильлный uri на входе handlera in Разработка : Создание модулей для Apache 1.3</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=689#689</link>
<guid isPermaLink="false">689@http://apachedev.ru/forum</guid>
<description>Topic: Не правильлный uri на входе handlera

Message: Ага а раскручивать как такой сайт
</description>
<pubDate>Fri, 12 Jun 2009 15:24:58 +0400</pubDate>
</item>
<item>
<title>Проблемы с вызовами конструкторов/деструктор С++ при разработке модуля in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=653#653</link>
<guid isPermaLink="false">653@http://apachedev.ru/forum</guid>
<description>Topic: Проблемы с вызовами конструкторов/деструктор С++ при разработке модуля

Message: Прочтите http://apachedev.ru/forum/viewtopic.php?id=3В этой книге есть вся интересующая вас информация.
</description>
<pubDate>Sat, 17 Jan 2009 19:15:48 +0300</pubDate>
</item>
<item>
<title>Новая книга про создание моделей для Apache in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=652#652</link>
<guid isPermaLink="false">652@http://apachedev.ru/forum</guid>
<description>Topic: Новая книга про создание моделей для Apache

Message: Эту книгу можно почитать онлайн:http://www.dleex.com/read/?42118 (откроется в этом же окне)
</description>
<pubDate>Wed, 14 Jan 2009 16:07:45 +0300</pubDate>
</item>
<item>
<title>Задача по созданию модуля (Функциональность RapidShare) in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=651#651</link>
<guid isPermaLink="false">651@http://apachedev.ru/forum</guid>
<description>Topic: Задача по созданию модуля (Функциональность RapidShare)

Message: Здравствуйте.Описание задачи:Существует система, по доставке контента в виде медиа-файлов пользователям.Схема: Web-server - содержит сайт с системой авторизации.MySQL - БД в которой хранятся учетные записи пользователей и данные системы.Прочие сервера - отвечающие за доставку файлов (сервера хранения и отдачи):Пользователь при просмотре страниц Web-сервера получает те или иные ссылки на скачку с этих серверов,например - http://down1.server/?id=832947230sdkfh здесь - id есть временный идентификатор какого то файла в структуре каталогов серверов хранения и отдачиСоответствие id и конкретного файла задается в БД MySQL. Когда и как, пока не обсуждается.Пользователи БД:3 типа пользователей: vip (в единственном числе), user, гость.ГЛАВНОЕ ТРЕБОВАНИЕ:Управлять пропускной способностью канала во время скачивания в зависимости от типа пользователя и загруженности канала в целом.Обеспечить выполнение следующих условий:- если качает vip, то отдавать ему ширину канала на столько на сколько широкий он у него, урезая в то же время всех остальных качающих users и гостей (вплоть до какого-то минимального значения). Докачка поддерживается. Скачивание множества объектов в множество потоков поддерживается.- если качает гость: позволять скачивать только 1 объект в 1 поток в единицу времени. Докачка не поддерживается. Ограничение канала из настроек в какую-либо величину, например 100кБайт/сек.- если качает User: позволять скачивать множество объектов (но не более определенной величины), в несколько потоков на объект (не более определенной величины), докачка поддерживается. Ограничение на суммарную пропускную способность отдачи от всех закачек в данный момент равно какой-либо величине, например 250кБайт/сек.Очевидно, что решение лежит в области создания собственного модуля Apache. Имеет место быть аналогичный модуль по управлению пропускной способностью и трафиком - имя ему mod_cband. Его разработка прекращена, но есть исходники.При решении данной задачи в контексте описанного, очевидно, что модуль должен взаимодействовать с БД MySQL, что решаемо с помощью функций APR. Драйвер для доступа к MySQL из APR распространяется отдельно в виде исходников.Требования к модулю:Модуль необходим для платформы Windows и FreeBSD.Должен поддерживать настройку в виде директив http.conf и/или .htaccess.Точные параметры настройки определяются в процессе разработки.Кто знает как решить задачу, кому интересно, кто имеет возражения и видит свое решение задачи - пишите в ICQ 476201644, или на e-mail: ean.garbage.mail{sobak)mail(dot]ruPS. и кто хочет заработать или помочь в разработке.С уважением UNKOWN212.
</description>
<pubDate>Wed, 14 Jan 2009 16:02:56 +0300</pubDate>
</item>
<item>
<title>помогите разобраться с apache 2.2 in Разработка : Разработка Apache</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=636#636</link>
<guid isPermaLink="false">636@http://apachedev.ru/forum</guid>
<description>Topic: помогите разобраться с apache 2.2

Message: добрый день, помогите разобраться:server/mpm/prefork/prefork.c if (current_conn) { ap_process_connection(current_conn, csd); ap_lingering_close(current_conn);}вот этим кодом происходит обработка запроса в preforkap_process_connection приводит нас вserver/connection.cAP_CORE_DECLARE(void) ap_process_connection(conn_rec *c, void *csd)&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;{&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; &#160; int rc;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; &#160; ap_update_vhost_given_ip(c);&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; rc = ap_run_pre_connection(c, csd);&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; &#160; if (rc != OK &#38;&#38; rc != DONE) {&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; &#160; &#160; &#160; c-&#62;aborted = 1;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; &#160; }&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; if (!c-&#62;aborted) {&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; ap_run_process_connection(c);&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;&#160; &#160; }&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;} я не могу понять как и куда происходит маппинг вот этой: ap_run_process_connection# grep -ir ap_run_process_connection *|grep -v Binaryserver/connection.c:&#160; &#160; &#160; &#160; ap_run_process_connection(c);server/mpm/experimental/event/event.c:&#160; &#160; &#160; &#160; ap_run_process_connection(c);server/mpm/experimental/event/event.c:&#160; &#160; &#160; &#160; &#160; &#160; ap_run_process_connection(c);server/httpd.exp:ap_run_process_connectionserver/exports.c:const void *ap_hack_ap_run_process_connection = (const void *)ap_run_process_connection;
</description>
<pubDate>Tue, 30 Sep 2008 14:05:36 +0400</pubDate>
</item>
<item>
<title>О времени жизни переменных в модулях in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=602#602</link>
<guid isPermaLink="false">602@http://apachedev.ru/forum</guid>
<description>Topic: О времени жизни переменных в модулях

Message: Память нужна для динамической работы. Не уверен, что после выделения её под конфиг она не копируется в область памяти каждого процесса сервера. В любом случае это не совсем кошерный метод.Решил выделять ресурсы в каждом процессе отдельно. Небольшие потери ресурсов, зато конкретная стабильность.
</description>
<pubDate>Wed, 23 Apr 2008 17:44:49 +0400</pubDate>
</item>
<item>
<title>О времени жизни переменных в модулях in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=601#601</link>
<guid isPermaLink="false">601@http://apachedev.ru/forum</guid>
<description>Topic: О времени жизни переменных в модулях

Message: тебе Нужна общая память для всех модулей или только для одного!? Если общая память для одного модуля то выделяй ее в&#160;  функциях создания и слияния;module my_module = {STANDARD20_MODULE_STUFF,my_create_dir_conf, /* Создание конфигурации каталога */my_merge_dir_conf, /* Слияние конфигураций каталогов */my_create_svr_conf, /* Создание конфигурации сервера */my_merge_svr_conf, /* Слияние конфигураций серверов */my_cmds, /* Директивы конфигурации */my_hooks}; а вот если глобально видели все модули  то в структуре http://apachedev.ru/2006/06/10/strukturyi-dannyih-apache-request_rec/ есть переменная apr_table_t *notes; через нее можно передавать
</description>
<pubDate>Tue, 22 Apr 2008 14:47:39 +0400</pubDate>
</item>
<item>
<title>Глобальная переманная in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=600#600</link>
<guid isPermaLink="false">600@http://apachedev.ru/forum</guid>
<description>Topic: Глобальная переманная

Message: nre, отпишись если разобрался с глобальными переменными.
</description>
<pubDate>Tue, 15 Apr 2008 11:44:58 +0400</pubDate>
</item>
<item>
<title>О времени жизни переменных в модулях in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=599#599</link>
<guid isPermaLink="false">599@http://apachedev.ru/forum</guid>
<description>Topic: О времени жизни переменных в модулях

Message: Интересное наблюдение сделал. Выделял большие объёмы памяти и смотрел процессы по используемым ресурсам.Выделенная память действительно НЕ пропадает на протяжении всего времени жизни сервера, но через минуту apr_pool_userdata_get уже данных получить не может, потому что запрос обрабатывает уже другой поток сервера. Значит нужно только как-то определять область памяти доступную всем потокам. http://httpd.apache.org/docs/2.0/develo &#8230; afety.html - здесь написано что необходимо использовать функции apr_atomic_* и apr_thread_mutex_*. Так же нашёл группу функций apr_shm_*, но не могу понять чем и как пользоваться, чтобы выделить раздяемую потоками память.
</description>
<pubDate>Mon, 14 Apr 2008 05:40:36 +0400</pubDate>
</item>
<item>
<title>О времени жизни переменных в модулях in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=597#597</link>
<guid isPermaLink="false">597@http://apachedev.ru/forum</guid>
<description>Topic: О времени жизни переменных в модулях

Message: Некорректно я поставил вопрос.Немного разобрался в проблеме, читайте следующий комментарий.Интересную картину наблюдаю при работе с переменными, время жизни которых не ограничивается одним request или connection циклом.Пробовал разные способы выделения динамической переменной через apr_palloc (c apr_pool_userdata_set и без) и в пул модуля, и в главный пул сервера, и с использованием мутекса, да даже просто через malloc в памяти, не связывая ни как с пулом соответственно. Как бы не пробовал - переменные живут только небольшое время. Если обращений к серверу нет ~минуту то ссылка обязательно обнуляется в любом случае. Хотя пул не пропадает вроде. Подскажите пожалуйста какая логика работы сервера? Почему выделенная память пропадает даже из глобального пула после некоторого времени застоя?
Код:static int test_handler(request_rec *r)
{
    int *bb;
    void *dd = NULL;
    
    if (apr_pool_userdata_get (&#38;dd, &#34;my:data&#34;, r-&#62;server-&#62;process-&#62;pool) != APR_SUCCESS ) {
        jdc_echo_debug(&#34;data get bad&#34;);
    } else {
        jdc_echo_debug(&#34;data get ok&#34;);
        bb = (int*)dd;
    }
        
    if (dd == NULL) {
        echo_debug(&#34;dd == NULL&#34;);
        bb = (int*) apr_palloc (jdc_pglobal, sizeof (int));
        *bb = 17;
        dd = (void*)bb;
        apr_pool_userdata_set (dd, &#34;my:data&#34;, NULL, r-&#62;server-&#62;process-&#62;pool);
    } else {
        *bb += 1;
        dd = (void*)bb;
    }
    echo_debug(&#34;bb = &#34;);
    echo_debug_simple_i(*bb);
    
    
    r-&#62;content_type = &#34;plain/text&#34;;
    
    ap_rputs(&#34;OK&#34;, r);
    
    echo_debug(&#34;All OK&#34;);
    
    return OK;
}
Вот вывод:DEBUG [16:49:55] : data get okDEBUG [16:49:55] : dd == NULLDEBUG [16:49:55] : bb = 17DEBUG [16:49:55] : All OKDEBUG [16:50:00] : data get okDEBUG [16:50:00] : bb = 18DEBUG [16:50:00] : All OKDEBUG [16:50:04] : data get okDEBUG [16:50:04] : bb = 19DEBUG [16:50:04] : All OKDEBUG [16:51:30] : data get okDEBUG [16:51:30] : dd == NULLDEBUG [16:51:30] : bb = 17DEBUG [16:51:30] : All OK
</description>
<pubDate>Sun, 13 Apr 2008 09:59:13 +0400</pubDate>
</item>
<item>
<title>Дериктива конфигурации in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=571#571</link>
<guid isPermaLink="false">571@http://apachedev.ru/forum</guid>
<description>Topic: Дериктива конфигурации

Message: Как в модуле получить доступ к директиве&#160; &#34;DocumentRoot&#34; ?
</description>
<pubDate>Thu,  7 Feb 2008 08:15:15 +0300</pubDate>
</item>
<item>
<title>Работа с MySQL через apr in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=543#543</link>
<guid isPermaLink="false">543@http://apachedev.ru/forum</guid>
<description>Topic: Работа с MySQL через apr

Message: Подскажите в какой последовательности использовать функции apr_dbd_ для корректной работы с MySQL?&#160; И как заполнять&#160; &#160;apr_dbd_driver_t ?
</description>
<pubDate>Mon, 24 Dec 2007 16:35:55 +0300</pubDate>
</item>
<item>
<title>Apache и IPC in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=540#540</link>
<guid isPermaLink="false">540@http://apachedev.ru/forum</guid>
<description>Topic: Apache и IPC

Message: Решил все таки переписать модуль под 2-й апач, Создаю Shared Memory для хранения данных общих всех процессов, возникает вопрос есть ли в апаче 2 реализация семафоров или использовать системные семафоры?если существует то ткните мордой.
</description>
<pubDate>Thu, 20 Dec 2007 12:42:33 +0300</pubDate>
</item>
<item>
<title>Не правильлный uri на входе handlera in Разработка : Создание модулей для Apache 1.3</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=538#538</link>
<guid isPermaLink="false">538@http://apachedev.ru/forum</guid>
<description>Topic: Не правильлный uri на входе handlera

Message: Здравствуйте снова!Снова у меня та же проблема.На этот раз я хочу узнать что делаеться в обработчике translate_handler модуля апач,а именно, у меня в этом обработчике устанавливаеться переменная handler из request_rec. Что будет если ее (эту переменную не устанавливать) и если устанавливать всегда.Почитав вот тут http://httpd.apache.org/docs/1.3/misc/API.html#HMR не понял совсем зачем он нужен этот обработчик.В общем описал проблему как смог.
</description>
<pubDate>Wed, 19 Dec 2007 12:33:30 +0300</pubDate>
</item>
<item>
<title>Запрос POST in Разработка : Создание модулей для Apache 2.*</title>
<link>http://apachedev.ru/forum/viewtopic.php?pid=534#534</link>
<guid isPermaLink="false">534@http://apachedev.ru/forum</guid>
<description>Topic: Запрос POST

Message: Если идет большой поток данных, а если весь запрос POST не большой и укладывается в один пакет то как посмотреть тело запроса.
</description>
<pubDate>Tue, 11 Dec 2007 11:58:14 +0300</pubDate>
</item>
</channel>
</rss>
