|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
Привет. Firebird-2.5.8 Хочу на основе rdb$get_context('SYSTEM', 'CLIENT_ADDRESS') сделать раздачу некоторой информации клиентам. Проблемка в том что:
В актуальной доке на 2.5 Firebird 2.5.9 10 ноября 2020 — v.0502-1 ничего ни про имя ни про порт не написано. Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 10:29 |
|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
fraks> А как отключить преобразование ip-адреса в имя? Запрети XNET-соединения. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:16 |
|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам fraks> А как отключить преобразование ip-адреса в имя? Запрети XNET-соединения. Не нашел где и как их запретить, но стало понятно куда смотреть. XNET у меня только в случае если программа запускается с той же тачки где и сервер, да и то только в некоторых случаях. Логичным будет, в механизме работы с rdb$get_context('SYSTEM', 'CLIENT_ADDRESS') сначала заглянуть в rdb$get_context('SYSTEM', 'NETWORK_PROTOCOL') Ну и добавил в свой лог коннектов поле с протоколом, что бы можно было ретроспективно смотреть подобные вещи. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 06:28 |
|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
fraks> Не нашел где и как их запретить От версии зависит. У тебя вроде 2.5, так что параметр -i в командной строке спасёт отца сибирской демократии. > XNET у меня в случае Ну и зря. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2021, 11:27 |
|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
Коллеги, чтобы не открывать новый топик, вопрос из схожей области: Firebird 2.5.9 Кодировка БД - UTF8 Есть триггер DB_CONNECT , задача которого закидывать в отдельную табличку информацию вида: Время события, IP с которого осуществлён коннект, имя юзера, процесс которым подключаемся. До недавнего времени всё работало безотказно, но стали появляться клиенты писаные на C# с .NetFramework и при размещении исполняемого файла в папке с кириллическими буквами RDB$GETCONTEXT('SYSTEM', 'CLIENT_PROCESS') плюётся "Malformed string". Опытным путём выяснилось, что проекты на .NetCore такой болезнью не болеют. Connection string правильный, кодировка подключения к БД указана как UTF8. При этом ломается не сам вызов процедуры, а момент вставки результата в табличку. В процессе отладки, триггер был заменён просто конструкцией вида Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Т.е. очевидно, что косяк в кодировке, но чем вылечить эту беду? Старые прилаги писаные на Delphi успешно стартуют из любых папок и RDB$GETCONTEXT('SYSTEM', 'CLIENT_PROCESS') отрабатывает без ошибок. Куда копать? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 15:59 |
|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
Zl0bnyТ.е. очевидно, что косяк в кодировке, но чем вылечить эту беду? Очевидно копанием в .NET провайдере с целью его исправления, поскольку сервер просто получает имя процесса от клиента и не контролирует его на входе. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 16:27 |
|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
Zl0bny Коллеги, чтобы не открывать новый топик, вопрос из схожей области: Zl0bny Т.е. очевидно, что косяк в кодировке, но чем вылечить эту беду? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 17:44 |
|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov Очевидно копанием в .NET провайдере с целью его исправления ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2021, 17:46 |
|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
hvlad Zl0bny Коллеги, чтобы не открывать новый топик, вопрос из схожей области: Не знаком с правилами и традициями этого "дома" потому так. В ряде сообществ встречал негативную реакцию на создание новых тем с аналогичными вопросами. hvlad Zl0bny Т.е. очевидно, что косяк в кодировке, но чем вылечить эту беду? А вот тут спасибо от души . Конструкция вида: Код: sql 1.
работает! И вот тут вопрос: как? Т.е. я могу логически понять для чего нужен каст в NONE, но из него напрямую в UTF8 вылетает всё тот же "Malformed string". Только через WIN1251, всё ожило. Где-нибудь описано такое волшебство или это знание добывается из исходников Firebird? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 08:23 |
|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
первый каст в NONE по идее лишний, т.к. GET_CONTEXT и так возвращает строку в чарсете NONE второй каст подменяет чарсет строки на WIN1251 (ибо кириллический путь в винде это cp1251), не производя перекодировку третий каст перекодирует корректную WIN1251-строку в UTF8 любые попытки обойти WIN1251 обречены, ибо сервер проверяет UTF8 строку на корректность и ругается если там на самом деле что-то другое (1251 в данном случае) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 08:40 |
|
Еще раз про формат данных в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
|
|||
---|---|---|---|
#18+
dimitr первый каст в NONE по идее лишний, т.к. GET_CONTEXT и так возвращает строку в чарсете NONE второй каст подменяет чарсет строки на WIN1251 (ибо кириллический путь в винде это cp1251), не производя перекодировку третий каст перекодирует корректную WIN1251-строку в UTF8 любые попытки обойти WIN1251 обречены, ибо сервер проверяет UTF8 строку на корректность и ругается если там на самом деле что-то другое (1251 в данном случае) Таки да! Каст в NONE действительно лишний. Спасибо ещё раз. Сутки безуспешно бился над этой задачкой, думал уже отказаться от протоколирования коннектов из-за этого бага. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2021, 09:52 |
|
|
start [/forum/topic.php?fid=40&msg=40101059&tid=1559929]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
159ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 278ms |
0 / 0 |