napTu 4 Posted 2010-09-28 10:32:02 Share Posted 2010-09-28 10:32:02 О! madf, ты отказался от фиксированного порта источника, это радует, сразу решается проблема работы через роутер. С это версией, при входе-выходе из настроек, клиент перестает отвечать на keepalive серверу. Убрал вызов clnp->SetServer(settings.serverIP, settings.serverPort); из формы настроек и поставил в нажатие на подключиться. Link to post Share on other sites
madf 279 Posted 2010-09-29 07:47:32 Share Posted 2010-09-29 07:47:32 О! madf, ты отказался от фиксированного порта источника, это радует, сразу решается проблема работы через роутер. Сам не знаю зачем это было сделано раньше. Боря когда-то говорил что-то про файрволы, но я с нормальной схемой проблем с файрволами не наблюдаю. Link to post Share on other sites
napTu 4 Posted 2010-09-29 11:50:44 Share Posted 2010-09-29 11:50:44 собрал новую версию, главная фича - проверка обновлений: - в веб ссылку можно добавлять дополнительный текст, при нажатии будет выделен и открыт фрагмент с http:// - исправлен баг: если в момент автоподключения нажать отключиться, то срабатывало автосворачивание - исправлена ошибка, когда при отсутствии направлений не выводятся сообщения об ошибках - написана функция проверки обновлений. Поиск обновления ведется на сервере, который указан в настройках, по протоколу HTTP загружается файл /iaversion.txt в котором первой строкой идет текущая версия в таком формате, как подписано в авторизаторе, а второй строкой - ссылка на файл обновления. Проверка обновления происходит в момент первого подключения. Нажатие на ссылку открывает браузер. - внесена задержка при закрытии авторизатора для успешного отключения на сервере - новая библиотека ia_auth_c позволяет слать запрос с произвольного порта авторизатора, что решает проблему работы через роутеры типа d-link... Взята из qia. Обнаружена фича: - В ini файле можно вручную задать параметры IPEditable=0 и PortEditable=0 чтобы запретить пользователю менять адрес и порт сервера. Важное добавление: - запрещен запуск второй копии приложения http://icenet.net.ua/inetaccess2.61-11.8w_src.rar Link to post Share on other sites
napTu 4 Posted 2010-09-29 14:27:46 Share Posted 2010-09-29 14:27:46 madf, такой момент еще мне не понятен в работе ia_auth_c: пробую пропустить авторизацию через NAT, в этом случае подключение нормально происходит, но на keepalive посылки авторизатор не отвечает вообще. Может сервер где то кодирует посылку адресом интерфейса отправителя? ... Разрулил свою проблему ДНСом, вопрос теряет актуальность Link to post Share on other sites
madf 279 Posted 2010-09-30 07:12:13 Share Posted 2010-09-30 07:12:13 madf, такой момент еще мне не понятен в работе ia_auth_c: пробую пропустить авторизацию через NAT, в этом случае подключение нормально происходит, но на keepalive посылки авторизатор не отвечает вообще. Может сервер где то кодирует посылку адресом интерфейса отправителя? ... Разрулил свою проблему ДНСом, вопрос теряет актуальность Не кодирует. Но с NAT там действительно заморочка может быть. Это UDP все-таки, без установки соединения. Инициирующий пакет приходит от авторизатора, но потом инициатором диалога становится сервер. Может от этого сносит крышу NAT'у. Надо посмотреть tcpdump. Но DNS решает, да. Мы у себя уже год как на DNS авторизатор перевели. Это позволило избавиться от NAT на access'ах и переполнений таблиц conntrack. Link to post Share on other sites
napTu 4 Posted 2010-09-30 07:22:28 Share Posted 2010-09-30 07:22:28 Не кодирует. Но с NAT там действительно заморочка может быть. Это UDP все-таки, без установки соединения. Инициирующий пакет приходит от авторизатора, но потом инициатором диалога становится сервер. Может от этого сносит крышу NAT'у. Надо посмотреть tcpdump. смотрел tcpdump и windump - сто процентов пакет с измененным адресом источника доходит до авторизатора, но авторизатор не отвечает на него. Link to post Share on other sites
morfey 82 Posted 2010-09-30 08:25:34 Share Posted 2010-09-30 08:25:34 Дуже цікаво про оновлення авторизатора Воно працює, звідки оновлюється? Хочу в авторизатор вставити замість статистики банер, який буде малюваться і віддаваться в авторизатор. Зараз зробив через tcpbrowser, але це треш якийсь виходить. Як витягнути зображення в авторизатор іншими "правильними" методами, а то я в с++ не дуже)) Link to post Share on other sites
napTu 4 Posted 2010-09-30 08:31:44 Share Posted 2010-09-30 08:31:44 Дуже цікаво про оновлення авторизатора Воно працює, звідки оновлюється? - написана функция проверки обновлений. Поиск обновления ведется на сервере,который указан в настройках, по протоколу HTTP загружается файл /iaversion.txt в котором первой строкой идет текущая версия в таком формате, как подписано в авторизаторе, а второй строкой - ссылка на файл обновления. Проверка обновления происходит в момент первого подключения. Нажатие на ссылку открывает браузер. Хочу в авторизатор вставити замість статистики банер, який буде малюваться і віддаваться в авторизатор. Зараз зробив через tcpbrowser, але це треш якийсь виходить. Як витягнути зображення в авторизатор іншими "правильними" методами, а то я в с++ не дуже)) а чем не способ? по моему лучше не придумать Link to post Share on other sites
morfey 82 Posted 2010-09-30 08:46:10 Share Posted 2010-09-30 08:46:10 це ж якби використовує екслорер, хотілось би якесь інше рішення. Чи це саме те? )) Чи можна оновляти так як в мозіллі наприклад, при запуску авторизатор викачує нову версію, оновляється і перезапускається? Чи це вже я на грані фантастіки))) Моє рішення баннера browser->Navigate(WideString("http://host/banner_public.php")); banner_public.php: <html> <head> <style> *{ margin:0; padding:0; border:none; background-color:threedface; } </style> </head> <body oncontextmenu="return false" onselectstart="return false" oncopy="return false" ondragstart="return false" scroll="no"> <?php //print getenv('REMOTE_ADDR'); ?> <DIV STYLE="height:90px; width:401px;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://host/img_public.php', sizingMethod='scale');"></DIV> </body> </html> img_public.php: error_reporting(0); $ip = getenv('REMOTE_ADDR'); mysql_connect('localhost', 'user', 'pass'); mysql_select_db('stg') or (die('error')); $q = mysql_query('select * from users where IP = "' . $ip . '" ') or die('error'); $r = mysql_fetch_array($q) or die('error'); $q1 = mysql_query('select * from tariffs where name= "' . $r['Tariff'] . '"') or die('error'); $r1 = mysql_fetch_array($q1) or die('error'); $fee = $r1['Fee']; $cash = $r['Cash']; $tariff = $r['Tariff']; if ($cash == 0) { $month = 1; } elseif ($cash > 0) { $month = $cash / $fee; } $starttime = strtotime("now"); // strtotime("+$month month"); $endtime = mktime(0, 0, 0, date("n",strtotime("+$month month")),5, date("Y",strtotime("+$month month"))); $days = round(( $endtime - $starttime )/60/60/24); if(substr($days, -1) == 1 ) { $d = " ........"; } elseif(substr($days, -1) == 2 || substr($days, -1) == 2 || substr($days, -1) == 3 || substr($days, -1) == 4) { $d = " ......"; } else{ $d = " ........"; } header("Content-type: image/png"); $img = imagecreate(400, 80); $black = ImageColorAllocate($img, 0, 0, 0); $green = ImageColorAllocate($img, 0, 255, 0); $white = ImageColorAllocate($img, 255, 255, 255); $trans = ImageColorTransparent($img, $white); imagefill($img, 0, 0, $white); putenv('GDFONTPATH=' . realpath('.')); $font = '/usr/local/www/apache22/data/tahoma.ttf'; $tariff = "..........: " . $tariff; $money = "....................: " . $days . $d; imagettftext($img, 10, 0, 0, 10, $black, $font, $tariff); imagettftext($img, 10, 0, 0, 25, $black, $font, $money); imagepng($img); imagedestroy($img); ?> tcpwebbrowser зберігає в кеші зображення, і воно оновляється тільки при перезапуску авторизатора( але коли як) Link to post Share on other sites
napTu 4 Posted 2010-09-30 09:04:15 Share Posted 2010-09-30 09:04:15 це ж якби використовує екслорер, хотілось би якесь інше рішення. Чи це саме те? )) Чи можна оновляти так як в мозіллі наприклад, при запуску авторизатор викачує нову версію, оновляється і перезапускається? Чи це вже я на грані фантастіки))) не эксплорер, а браузер по умолчанию открывается. я не стал заморачиваться tcpwebbrowser зберігає в кеші зображення, і воно оновляється тільки при перезапуску авторизатора( але коли як) а если так: <META HTTP-EQUIV="Cache-Control" content="no-cache"> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META http-equiv=CONTENT-TYPE content="text/html; charset=windows-1251"> <META HTTP-EQUIV=Refresh CONTENT="60; URL=/desired.html"> ? Link to post Share on other sites
morfey 82 Posted 2010-09-30 09:07:54 Share Posted 2010-09-30 09:07:54 <META HTTP-EQUIV="Cache-Control" content="no-cache"> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> Не подумав, дякую) Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now