Форум

/ домой \ \ темы /



Тема: 3.06.23 у меня не взлетел ? или ...

21/08/2022 01:28 dimka:
3.06.23
скачал shttps_mg.exe ибо shttp3.exe не существует(пустая ссылка) ...
1) чем shttps_mg отличается от shttp3 и размер его больше ?
2) 64 бита будет?
3) Как ru поставить правильно ? в langpacks есть ru каталог переименовал в en а прога все равно на англицком языке.
4) Баг!? в "General setting" есть пункт "Disable saving log" по умолчанию галка включена. Снимаю галку и выбираю log-файл ... жму Ок и ... прога полностью закрылась(типа exit,quit,terminate ...). Запускаем заново повторяем и опять прога закрылась.
5) Чтоб https заработал я так понял нужна dll with TLS/SSL. По умолчанию предлагается seclib.dll - но самой dll нету !? где ее взять?
21/08/2022 02:30 dimka:
5) Нашел у Вас на страничке ... Вообщем выбрал GnuTLS_32бита(Вот из-за чего у Вас прога 32бита ... :)) & libsecgnutls.dll.
Выставляю cert-file,key,ca-file ... жмакую на кнопку ок и опять как в 4 пункте ...
25/12/2022 18:19 Max:
1) Разные компиляторы, думаю DJGPP больше не будет. останется только mingw
2) Под Linux есть. Под Windows не планирую переделывать.
3) Файл из ru нужно скопировать в каталог сервера, где конфигурация.
4,5) Сервер перезапускается если в этом есть необходимость. Проверьте сохраняются ли изменения в файле конфигурации. Если не сохраняются проверьте есть ли у сервера права на запись в этот файл.
19/01/2023 10:06 oigeg:
просто нажатие рестарт в меню не перезапускает сервер, просто закрывается и все. старые версии перезапускаются нормально.
19/01/2023 10:19 oigeg:
1. Положил сервер в новую папку, где есть права.
2 Запустил, в настройках изменил путь к файлу лога, нажал ок.
3. Сервер закрылся, изменения в файле не сохранились.
4. Под дебагером видно, что закрывается от произошедшего access violation.
EXCEPTION_DEBUG_INFO:
dwFirstChance: 1
ExceptionCode: C0000005 (EXCEPTION_ACCESS_VIOLATION)
ExceptionFlags: 00000000
ExceptionAddress: http.0040CD45
NumberParameters: 2
ExceptionInformation[00]: 00000000 Read
ExceptionInformation[01]: 00680000 Inaccessible Address
First chance exception on 0040CD45 (C0000005, EXCEPTION_ACCESS_VIOLATION)!

0040CD2B | E8 F8AC0100 | call http.427A28 |
0040CD30 | 8B8D D8FDFFFF | mov ecx, dword ptr ss:[ebp - 228] |
0040CD36 | 89C2 | mov edx, eax | edx:"uioio", eax:"uioio"
0040CD38 | 89C7 | mov edi, eax | eax:"uioio"
0040CD3A | 85FF | test edi, edi |
0040CD3C | 74 09 | je http.40CD47 |
0040CD3E | 85F6 | test esi, esi |
0040CD40 | 74 05 | je http.40CD47 |
0040CD42 | E3 03 | jecxz http.40CD47 |
0040CD44 | FC | cld |
0040CD45 | F3:A4 | rep movsb |

esi указывает на невалидный участок памяти
19/01/2023 10:27 oigeg:
0040CD30 | 8B8D D8FDFFFF | mov ecx, dword ptr ss:[ebp - 228] |
0040CD36 | 89C2 | mov edx, eax |
0040CD38 | 89C7 | mov edi, eax |
0040CD3A | 85FF | test edi, edi |
0040CD3C | 74 09 | je http.40CD47 |
0040CD3E | 85F6 | test esi, esi | esi:"D:\\work\\smallsrv\\log\\log"
0040CD40 | 74 05 | je http.40CD47 |
0040CD42 | E3 03 | jecxz http.40CD47 |
0040CD44 | FC | cld |
0040CD45 | F3:A4 | rep movsb |

проблема на адресе 0040CD30. в ecx вместо длины строки попадает очень большое число 7509BC0F (указатель кудато на user32.dll), соотвественно портит память. если длину строки исправить в ecx, то сохраняет конфигурацию нормально.
19/01/2023 10:33 oigeg:
0040CD30 | 8B8D DCFDFFFF | mov ecx, dword ptr ss:[ebp - 224] |
заменить 228 на 224. там лежит правильная значение длины строки. после этого не падает и сохраняет конфигурацию.

перезапуск же по-прежнему не работает, закрывается (без краша) и все.
22/01/2023 19:59 Max:
Спасибо за подробный отчет. Баг вызывающий Exception вроде пофиксил.
Тестовая версия 3.06.24test1 здесь:
smallsrv.com/pre/shttps_mg.exe

С перезапуском под windows пока не разбирался. В Linux- версиях все нормально.
Вероятно причина именно в этом баге.
25/01/2023 09:25 newuser:
Для рестарта под Windows нужно править больше:

в restart.cpp

t=cmdline; //GetCommandLine();
if(*t=='\"')++t;
RestartServer(t,0);

в cmdline может оказаться
c:\path\http.exe
"c:\path\http.exe"
"c:\path\http.exe"_ (пробел на конце строки)
в кавычках и без, также после завершающей кавычки может быть пробел. В зависимости как был запущен сервер (через проводник или когда он сам себя перезапускает). Все эти случаи надо обрабатывать чтобы в CreateProcess попадал путь без кавычек и пробелов.

Также исправить здесь:
x=SaveCfgFile(t);
delete t;
DestroyWindow(dwndc);
if(!lis_no_exit)
{
debug( s_R_N____R );
Sleep(500);
is_no_exit=0;
RestartServer(x,0);

в х - конфиг файл, а не исполнямый файл сервера.
Я исправил в бинарнике, т.к. не смог понять как собирать из исходников. make_pe.exe - приложение дос, вообще не запускается. Может подскажете, как собрать под Windows для mingw ?
27/01/2023 21:26 Max:
Вообще собрать должно быть легко, просто запускайте
perl.exe Configure --target=win --windir="c:\\MINGW" --wingcc="c:\\MINGW\\gcc.exe" --wininc=" -Ic:\\MINGW\\include" --winlib=" -Lc:\\MINGW\\lib"
(нужен Perl) и пути указать ваши. После этого
make
Но сам я под Windows не собирал, у меня Windows нет уже давно, проверял только под wine...
28/01/2023 12:58 Max:
Команда запуска исправлена в версии 3.06.24test3
smallsrv.com/pre/shttps_mg.exe
02/02/2023 21:11 newuser:
рестарт работает, крэша при сейве настроек тоже нет.

Пользователь: Пароль: Новый пользователь:   Запомнить пароль: