Контролер беспроводных точек доступа Ubiquiti

Тут описывается нелёгкий путь настройки ОС FreeBSD, начиная с установки дистрибутива и заканчивая настройкой каждого сервиса
Ответить
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Контролер беспроводных точек доступа Ubiquiti

Сообщение RomA »

Введение:
Казалось бы и писать тут нечего - всё становится и работает из портов. Но после очередного обновления перестал работать гостевой портал - люди не могут авторизоваться по ваучерам, а админы не могут их выписать....

Задача:
Починить работу ваучеров в контролере Unifi

Изучение проблемы:
В интернет проблема освещена тут: https://bugs.launchpad.net/ubuntu/+sour ... ug/1692870
а решение предложено тут: https://github.com/madler/zlib/commit/f ... 7f260db0a1

Решение:
Итак, для того что бы всё заработало нужно:
1) исправить исходники мира
2) пересобрать и переустановить мир
3) перезагрузиться

В оригинальном тексте говорится, что для проверки можно выполнить команду

Код: Выделить всё

curl -vvvv --compress localhost:8880/guest/s/default/
и получить ошибку, в то же время если выполнить ту же команду, но без ключа компрессии, то ответ будет положительным.

Вот код, который нужно исправить:

Код: Выделить всё

         s->wrap == 2 ? crc32(0L, Z_NULL, 0) :
 #endif
         adler32(0L, Z_NULL, 0);
-    s->last_flush = Z_NO_FLUSH;
+    s->last_flush = -2;
 
     _tr_init(s);
 
@@ -587,12 +587,12 @@ int ZEXPORT deflateParams(strm, level, strategy)
     func = configuration_table[s->level].func;
 
     if ((strategy != s->strategy || func != configuration_table[level].func) &&
-        s->high_water) {
+        s->last_flush != -2) {
         /* Flush the last buffer: */
         int err = deflate(strm, Z_BLOCK);
         if (err == Z_STREAM_ERROR)
             return err;
-        if (strm->avail_out == 0)
+        if (strm->avail_in || (s->strstart - s->block_start) + s->lookahead)
             return Z_BUF_ERROR;
     }
     if (s->level != level) {
То же самое картинкой:
2017-11-13_08-55-09.png
Ответить