Отправлено: 12.06.16 18:16. Заголовок: Выложил на http://ww..
Выложил на http://www.kresin.ru/letodb.html обновленные дистрибутивы: исходники, бинарные сборки для Windows (Borland 5.5) и Linux Debian 7 (должны работать и на Ubuntu).
с выделенными строками удаления работает нормально, если убрать строки удаления переменной с длинным именем, то валится ShowVars() после arr1 := leto_varGetlist( arr[ i ] ), причем так, что спасает только перезапуск сервера
Pasha, alkresin Можно ли на клиенте получить установки сервера из ini EnableFileFunc = 0 Pass_for_Login = 1 Pass_for_Data = 1 Pass_for_Manage = 1 для понимая состояния сервера Например установка Pass_for_Login = 1 сваливает сервер, при коннекте с пустыми user, password это делает manage.exe из поставки \utils\* Скрытый текст
======= letodb.ini ======= [MAIN] Port = 2812 DataPath = . EnableFileFunc = 0 Pass_for_Login = 1 ======= LetoDb.log ======= 07/24/16 14:29:31: Leto DB Server has been started.
Leto DB Server v.2.17b2 ! INIT: DataPath=., ShareTables=0, MaxUsers=500, MaxTables=5000, CacheRecords=10
07/24/16 14:29:31: C:\LETO\LetoDb\bin\letoudf.hrb has been loaded.
ERROR! ParseCommand()
leto_errInternal!!!!!!!!!!!!!!!!!!
07/24/16 14:31:24: Can't STOP the server (not started?)...
Отправлено: 26.07.16 13:50. Заголовок: Еще вопросик по v.2...
Еще вопросик по v.2.17.b2. Что не так делаю при создании защищенной переменной на сервере ( LETO_VDENYWR - запрет присваивания значения другим пользователем )
letoudf.prg ======= #include "rddleto.ch" ... FUNCTION UDF_Init LOCAL cGroupName := "letodb.ini" LOCAL nUserStru // := 1 SET AUTORDER TO 1 LETO_VARSET(nUserStru, cGroupName, "lLower" , oApp:lLower, LETO_VCREAT + LETO_VDENYWR) RETURN Nil
Можно ли на клиенте получить установки сервера из ini EnableFileFunc = 0 Pass_for_Login = 1 Pass_for_Data = 1 Pass_for_Manage = 1 для понимая состояния сервера Например установка Pass_for_Login = 1 сваливает сервер, при коннекте с пустыми user, password
Получить параметры сервера до коннекта с ним конечно невозможно. Другое дело, что коннект с любыми параметрами не должен сваливать сервер. Посмотрю, в чем там дело.
Получить параметры сервера до коннекта с ним конечно невозможно
Разговор о после коннекта. Пытаюсь создать на сервере и получить на клиенте такие данные (к примеру):Скрытый текст
небольшие изменения для тестов: leto2016.prg ============ METHOD New() CLASS HApp ... msglog(procname(),"leto_SetAppOptions(...)") // !!! сработал вызов
Отправлено: 31.07.16 10:04. Заголовок: Петр пишет DATA..
Петр пишет [quote]`
DATA nPort INIT 2812 DATA ip DATA nTimeOut INIT -1 DATA DataPath INIT "" DATA LogFile INIT "" DATA lLower INIT .F. DATA lFileFunc INIT .F. DATA lAnyExt INIT .F. DATA lShare INIT .F. // .T. - new mode, which allows share tables with other processes DATA lNoSaveWA INIT .F. // .T. - new mode, which forces dbUseArea() each time "open table" is demanded DATA nDriver INIT 0 DATA lPass4M INIT .F. DATA lPass4L INIT .F. DATA lPass4D INIT .F. DATA cPassName INIT "leto_users" DATA lCryptTraffic INIT .F. DATA cTrigger DATA cPendingTrigger ... LOCAL lOptimize := .F. LOCAL lForceOpt := .F. LOCAL lSetTrigger := .F. т.е. 1.переменные инициализированы leto_SetAppOptions(...) 2. ::lFileFunc определена из ini ELSEIF aIni[i,2,j,1] == "ENABLEFILEFUNC" ::lFileFunc := ( aIni[i,2,j,2] == '1' ) leto_GetAppOptions() для нее дает NIL др. то же не так как устанавливались 3. по разному уст. среда tread - режим TEST PUBLIC oApp - доступна - режим RELOAD PUBLIC oApp - нет
Отправлено: 31.07.16 10:29. Заголовок: Петр пишет я уточнил..
Петр пишет
цитата:
я уточнил свой вопрос, что должна возвращать leto_GetAppOptions(3), исходя из ее реализации?
Исторически, я так понимаю, leto_GetAppOptions использовалась только для внутренних вызовов. Если так и оставлять, тогда должен быть доступна PUBLIC oApp в UDF функциях или приводить leto_GetAppOptions к состоянию использованию в UDF, а под словом "странные" результаты, я имел ввиду несоответствие устанавливаемых и получаемых данных
Отправлено: 31.07.16 10:40. Заголовок: SergKis пишет: а п..
SergKis пишет:
цитата:
а под словом "странные" результаты, я имел ввиду несоответствие устанавливаемых и получаемых данных
Поскольку описания ни leto_GetAppOptions ни leto_SetAppOptions нет в readme.txt, мы только можем догадываться о мотивах такой реализации. Если leto_GetAppOptions используется только на сервере (для внутренних вызовов), тогда ее реализацию можно назвать кривой
Отправлено: 31.07.16 10:54. Заголовок: Петр пишет тогда ее..
Петр пишет
цитата:
тогда ее реализацию можно назвать кривой
У каждой задачи, при взгляде назад (исторически) можно найти кучу старых реализаций, с сегодняшней точки зрения являющейся мусором, кривой реализацией. "Лучшее - враг хорошего !" (c)
Отправлено: 31.07.16 14:23. Заголовок: SergKis пишет: не п..
SergKis пишет:
цитата:
не понял, почему leto_GetAppOptions() дает такие странные данные после leto_SetAppOptions(...) ?
Пока единственное назначение функций leto_GetAppOptions()/leto_SetAppOptions() - запись/чтение глобальных установок между prg-кодом (это server.prg) и С-кодом (letofunc.c). Поскольку для server.prg нет необходимости чтения ряда параметров, это чтение и не реализовано в функции leto_GetAppOptions(). В дальнейшем планировалось переписать значительную часть кода из server.prg на C, и необходимость в в этих функция отпала бы. Но пока это не сделано. Раз уж клиенту надо знать значение ряда глобальных установок сервера, имеет смысл реализовать это чтение в leto_GetAppOptions(). Тогда клиент сможет их получать посредством вызовов udf-функций.
Пошли какие-то глюки с git. Когда я делаю коммит, то его сразу не видно. Сделаю следующий коммит - становится видно предыдущий. Таким образом, я сегодня сделал коммит, и стал виден вчерашний. А мой сегодняшний будет виден, когда я сделаю следующий. Такой кордебалет начался с августа.
Отправлено: 11.10.16 20:12. Заголовок: Leto_Ping() теперь п..
Leto_Ping() теперь принимает в качестве параметра адрес сервера или номер соединения - чтобы удобнее было пинговать при подключении к нескольким серверам. Leto_setCurrentConnection() тоже может теперь принимать адрес сервера вместо номера соединения и возвращает номер предыдущего соединения. Наверное, стоит build 3 выпустить.
Все даты в формате GMT
3 час. Хитов сегодня: 2293
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет