LINUX.ORG.RU

[Apache] изменения в per-server config не сохраняются

 


0

1

Пишу модуль для Apache. Нерабочий код.

Код синтетический - содержит лишь ключевые моменты без лишней шелухи. Поэтому обсуждать подход к реализации не имеет смысла.

От модуля требуется дописать строки к возвращаемым данным. Строки эти задаются специальной командой:

hunt@zeus:~/temp/apache/asdf$ nc 127.0.0.1 80
GET asdf
str1
str2
str3

но он это делать отказывается.

Добавление строк к данным происходит в строках 62 - 65:

  for (i = 0; i < cfg->commands->nelts; i++) {
    ap_fputs(f->next, bb,
             APR_ARRAY_IDX(cfg->commands, i, asdf_command_t).name);
  }

а сохранение в конфигурации в строках 116 - 121:

  while (s) {
    if (*s != '\n' && strlen(s) > 0 && strlen(s) < CMD_BUFF) {
      strcpy(APR_ARRAY_PUSH(commands, asdf_command_t).name, s);
    }
    s = apr_strtok(NULL, CMD_DELIMITERS, &last);
  }

Если раскомментировать строку 35:

//  strcpy(APR_ARRAY_PUSH(srv_conf->commands, asdf_command_t).name, "qwerq");

то модуль будет исправно добавлять этот «qwerq».

Чтение данных из сокета и заполнение массива asdf_srv_conf->commands проверял, вроде как не должно быть ошибок. В логах ничего нет, что логично, ибо опыта разработки модулей apache у меня немного, и туплю скорее всего я, а не сервер.

Почему могут не сохраняться данные в per-server config?


Разобрался. Не стоило вызывать exit() в строке 142. Теперь вместо вызова возвращаю ошибку, и конфигурация сохраняется.

hunt
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.