powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
9 сообщений из 9, страница 1 из 1
Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
    #40008245
alex deeep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На сервере Firebird 4beta2. rdb$get_context('SYSTEM', 'CLIENT_ADDRESS') возвращает адрес в виде 192.168.1.10/32154 Как (и возможно ли) создать коннект, чтобы в триггере на on_connect возвращался чистый IP?

Поясню проблему: в триггере прописан host_ip=rdb$get_context('SYSTEM', 'CLIENT_ADDRESS') и сейчас сработало условие, когда это рубит любые подключения, если не равно. А оно не равно, потому что есть еще порт. Поэтому подключиться невозможно даже под sysdba. Триггер плавно тихо мигрировал с 2.5 (где порта не было) до 4.0 И вот час Ж настал. База живая, терять сутки данных с последнего бэкапа очень не хочется.
...
Рейтинг: 0 / 0
Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
    #40008268
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex deeepПоэтому подключиться невозможно даже под sysdba.

sysdba может подключиться с отключенными системными триггерами. Его такой мелочью не
остановить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
    #40008280
alex deeep
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, посыпаю голову пеплом, чтобы не быть слишком красным от стыда...
Спасибо
...
Рейтинг: 0 / 0
Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
    #40008347
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это еще в трешке появилось. Не очень удобно и не очень понятно, зачем надо.
...
Рейтинг: 0 / 0
Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
    #40008381
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
14.10.2020 10:10, Fr0sT-Brutal пишет:
> Не очень удобно и не очень понятно, зачем надо.

чтоб была возможность отскочить, наступив на грабли.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
    #40008571
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мимопроходящий

14.10.2020 10:10, Fr0sT-Brutal пишет:
> Не очень удобно и не очень понятно, зачем надо.

чтоб была возможность отскочить, наступив на грабли.

Разверни мысль, плиз. Не улавливаю, где тут грабли.
...
Рейтинг: 0 / 0
Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
    #40008792
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-Brutal,

понятно, что / добавляется чтобы различить коннекты с одного и того же ip - если это сервер приложений, или просто несколько коннектов с одного ip, и т.д. В триггере надо просто перед проверкой отрезать всё что за / написано.
...
Рейтинг: 0 / 0
Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
    #40008892
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv
понятно, что / добавляется чтобы различить коннекты с одного и того же ip - если это сервер приложений, или просто несколько коннектов с одного ip, и т.д. В триггере надо просто перед проверкой отрезать всё что за / написано.

В какой-то мере логично, хотя и не очень понятно зачем, если есть connection ID. Который уж точно уникален в рамках текущей базы. Порт-то м.б. реюзан сколько угодно.
Но реализация этого не очень нравится. Зачем было делать такой breaking change, когда порт не так уж часто нужен, по сравнению с чисто адресом? Назвали бы переменную по-другому и все. Зато так тихо и без предупреждения развалились все механизмы фильтрации. Еще и разделитель нестандартный, чисто Firebird-овский.

P.S. Нет, я без наезда, скорее с удивлением. Да, в релизнотах это есть. Нет, я не считаю присутствие в релизнотах достаточным основанием для ломающих изменений.
...
Рейтинг: 0 / 0
Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
    #40012891
shaposh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неудобно и непонятно на хрена это было сделано, ладно бы опционально...
Но все же терпят - втихаря написали функции которые возвращают нормальный IP и терпят
И ты терпи
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как установить коннект без порта в rdb$get_context('SYSTEM', 'CLIENT_ADDRESS')
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]