madf 279 Опубліковано: 2008-06-29 16:06:30 Share Опубліковано: 2008-06-29 16:06:30 Если "file not found" - значит rlm_stg.so лежит в неправильнои месте. У меня, например (Gentoo Linux), в /usr/lib Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-06-29 19:11:06 Share Опубліковано: 2008-06-29 19:11:06 Если "file not found" - значит rlm_stg.so лежит в неправильнои месте. У меня, например (Gentoo Linux), в /usr/lib Да нет, там же где и все ... ладно, разберусь сообщу, мне кажется - формат файла.... # ./check-radiusd-config Ignoring deprecated command-line option -pStarting - reading configuration files ... reread_config: reading radiusd.conf Config: including file: /usr/local/freeradius/etc/raddb/clients.conf main: prefix = "/usr/local/freeradius" main: localstatedir = "/var" main: logdir = "/var/log/radius" main: libdir = "/usr/local/freeradius/lib" main: radacctdir = "/var/log/radius/radacct" ..... Module: Library search path is /usr/local/freeradius/lib Module: Loaded exec exec: wait = yes exec: program = "(null)" exec: input_pairs = "request" exec: output_pairs = "none" exec: packet_type = "(null)" Module: Instantiated exec (exec) Module: Loaded expr Module: Instantiated expr (expr) Module: Loaded PAP pap: encryption_scheme = "crypt" pap: auto_header = no Module: Instantiated pap (pap) Module: Loaded CHAP Module: Instantiated chap (chap) Module: Loaded MS-CHAP mschap: use_mppe = yes mschap: require_encryption = yes mschap: require_strong = no mschap: with_ntdomain_hack = no mschap: passwd = "(null)" mschap: ntlm_auth = "(null)" Module: Instantiated mschap (mschap) Module: Loaded DIGEST Module: Instantiated digest (digest) Module: Loaded preprocess ..... Module: Instantiated detail (detail) Module: Loaded System unix: cache = no unix: passwd = "(null)" unix: shadow = "(null)" unix: group = "(null)" unix: radwtmp = "/var/log/radius/radwtmp" unix: usegroup = no unix: cache_reload = 600 Module: Instantiated unix (unix) radiusd.conf[269] Failed to link to module 'rlm_stg': file not found radiusd.conf[480] Unknown module "stg". radiusd.conf[475] Failed to parse accounting section. .... Оказывается нужен файл rlm_stg.la: # rlm_stg.la - a libtool library file # Generated by hand # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='rlm_stg-1.1.6.so' # Names of this library. library_names='rlm_stg-1.1.6.so rlm_stg-1.1.6.so rlm_stg.so' # The name of the static archive. old_library='rlm_stg.a' # Libraries that this one depends upon. dependency_libs=' /usr/local/freeradius/lib/libradius.la -lcrypt -lnsl -lresolv -lpthread' # Version information for rlm_sqlcounter. current=0 age=0 revision=0 # Is this an already installed library? installed=yes # Should we warn about portability when linking against -modules? shouldnotlink=yes # Files to dlopen/dlpreopen dlopen='' dlpreopen='' # Directory that this library needs to be installed in: libdir='/usr/local/freeradius/lib' результат: rlm_stg: stg_init() Module: Loaded stg rlm_stg: stg_instantiate() stg: password = "varez" stg: server = "192.168.xxx.xx" stg: port = 8888 stg: local_port = 8887 Module: Instantiated stg (stg) Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-06-30 07:23:15 Share Опубліковано: 2008-06-30 07:23:15 Хм, а что за система? Первый раз вижу чтобы для динамической компоновки под Linux требовалось что-то кроме .so-шки Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-06-30 11:40:25 Share Опубліковано: 2008-06-30 11:40:25 Хм, а что за система?Первый раз вижу чтобы для динамической компоновки под Linux требовалось что-то кроме .so-шки RedHat 9.2, FreeRadius 1.1.6 радиус не из поставки, собирался отдельно, это алгоритм работы радиуса, судя по исходникам, он ищет сперва .la файлы и потом подгружает модули в соответствии с описанием. но это пол беды, правильно, когда модуль к радиусу кладется в src/modules и собирается вместе с радиусом. на текущий момент, загруженный модуль поставил колом радиус, через стг включен только аккаунтинг. вечером гляну с дебагом, вот кусок лога: Sun Jun 29 23:31:14 2008 : Info: Ready to process requests. Mon Jun 30 12:18:31 2008 : Auth: Login OK: [inavto/<CHAP-Password>] (from client C7204-IN-GW port 12) Mon Jun 30 12:18:36 2008 : Auth: Login OK: [tarbaza/<CHAP-Password>] (from client C7204-IN-GW port 17) Mon Jun 30 12:18:38 2008 : Auth: Login OK: [albreht/<CHAP-Password>] (from client C7204-IN-GW port 22) Mon Jun 30 12:18:42 2008 : Auth: Login OK: [dyuna2/<CHAP-Password>] (from client C7204-IN-GW port 8) Mon Jun 30 12:18:46 2008 : Auth: Login OK: [zenitavto/<CHAP-Password>] (from client C7204-IN-GW port 16) Mon Jun 30 12:19:06 2008 : Error: WARNING: Unresponsive child (id 32771) for request 1 Mon Jun 30 12:19:08 2008 : Error: WARNING: Unresponsive child (id 65541) for request 3 Mon Jun 30 12:19:12 2008 : Error: WARNING: Unresponsive child (id 16386) for request 5 Mon Jun 30 12:19:16 2008 : Error: WARNING: Unresponsive child (id 81926) for request 7 Mon Jun 30 12:19:18 2008 : Error: WARNING: Unresponsive child (id 49156) for request 9 Mon Jun 30 12:19:18 2008 : Auth: Login OK: [kredmaster/<CHAP-Password>] (from client C7204-IN-GW port 2) Mon Jun 30 12:19:36 2008 : Error: WARNING: Unresponsive child (id 114696) for request 10 Mon Jun 30 12:19:38 2008 : Error: WARNING: Unresponsive child (id 98311) for request 11 Mon Jun 30 12:19:42 2008 : Error: WARNING: Unresponsive child (id 131081) for request 12 Mon Jun 30 12:19:44 2008 : Error: WARNING: Unresponsive child (id 147466) for request 13 Mon Jun 30 12:19:44 2008 : Auth: Login OK: [malyshev/<CHAP-Password>] (from client C7204-IN-GW port 14) Mon Jun 30 12:19:48 2008 : Error: WARNING: Unresponsive child (id 163851) for request 14 Mon Jun 30 12:19:50 2008 : Error: WARNING: Unresponsive child (id 196621) for request 16 Mon Jun 30 12:20:05 2008 : Error: WARNING: Unresponsive child (id 180236) for request 17 Mon Jun 30 12:20:05 2008 : Auth: Login OK: [voip/<CHAP-Password>] (from client C7204-IN-GW port 21) Mon Jun 30 12:20:08 2008 : Error: WARNING: Unresponsive child (id 213006) for request 18 Mon Jun 30 12:20:11 2008 : Error: WARNING: Unresponsive child (id 229391) for request 19 Mon Jun 30 12:20:14 2008 : Error: WARNING: Unresponsive child (id 245776) for request 20 Mon Jun 30 12:20:16 2008 : Error: WARNING: Unresponsive child (id 278546) for request 22 Mon Jun 30 12:20:18 2008 : Error: WARNING: Unresponsive child (id 262161) for request 23 Mon Jun 30 12:20:35 2008 : Error: WARNING: Unresponsive child (id 294931) for request 24 Mon Jun 30 12:20:35 2008 : Error: WARNING: Unresponsive child (id 311316) for request 25 Mon Jun 30 12:20:44 2008 : Error: WARNING: Unresponsive child (id 344086) for request 27 Mon Jun 30 12:20:44 2008 : Error: WARNING: Unresponsive child (id 327701) for request 28 Mon Jun 30 12:20:44 2008 : Error: WARNING: Unresponsive child (id 360471) for request 29 Mon Jun 30 12:20:44 2008 : Error: WARNING: Unresponsive child (id 376856) for request 30 Mon Jun 30 12:20:48 2008 : Error: WARNING: Unresponsive child (id 393241) for request 31 Mon Jun 30 12:20:48 2008 : Error: WARNING: Unresponsive child (id 409626) for request 32 Mon Jun 30 12:21:19 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:21:19 2008 : Error: WARNING: Unresponsive child (id 458781) for request 35 Mon Jun 30 12:21:19 2008 : Error: WARNING: Unresponsive child (id 475166) for request 36 Mon Jun 30 12:21:35 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:21:35 2008 : Error: WARNING: Unresponsive child (id 507936) for request 38 Mon Jun 30 12:21:49 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:21:49 2008 : Error: WARNING: Unresponsive child (id 491551) for request 39 Mon Jun 30 12:21:49 2008 : Error: WARNING: Unresponsive child (id 524321) for request 40 Mon Jun 30 12:22:19 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:28 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:32 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:33 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:35 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:36 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:38 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:38 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:42 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:48 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:52 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:23:58 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:24:02 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:24:03 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:24:05 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:24:06 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:24:08 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:24:08 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Mon Jun 30 12:24:12 2008 : Info: The maximum number of threads (32) are active, cannot spawn new thread to handle request Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-06-30 11:56:17 Share Опубліковано: 2008-06-30 11:56:17 Вот уж не знаю. У меня не ищет .la-файлы. По поводу сборки. Да, можно ложить исходники в предварительно распакованный freeradius и оттудова собирать. Но это неверный путь, т.к. у человека может не быть исходников радиуса. На самом деле, для плагинов есть интерфейс, который описан несколькими заголовочными файлами. Вот эти файлики я вытащил из исходников радиуса, слегка подчистил и положил в include. С ними и собирается. Почему колом встает - это я совсем хз. На Gentoo и Debian работает прекрасно. Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-06-30 11:59:06 Share Опубліковано: 2008-06-30 11:59:06 Вот уж не знаю. У меня не ищет .la-файлы.По поводу сборки. Да, можно ложить исходники в предварительно распакованный freeradius и оттудова собирать. Но это неверный путь, т.к. у человека может не быть исходников радиуса. На самом деле, для плагинов есть интерфейс, который описан несколькими заголовочными файлами. Вот эти файлики я вытащил из исходников радиуса, слегка подчистил и положил в include. С ними и собирается. Почему колом встает - это я совсем хз. На Gentoo и Debian работает прекрасно. У тебя какая версия радиуса ? судя по хеадерам 1.1.3 ? Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-06-30 12:21:09 Share Опубліковано: 2008-06-30 12:21:09 На рабочей машине (Gentoo) 1.1.7 На дебиане не помню. Кажется, 1.1.6 Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-06-30 12:27:18 Share Опубліковано: 2008-06-30 12:27:18 На рабочей машине (Gentoo) 1.1.7На дебиане не помню. Кажется, 1.1.6 Кинь мне почтой свою собранную версию стг модуля с либами (ldd) - посмотрю в дебаге отличие в поведении... Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-07-03 20:48:52 Share Опубліковано: 2008-07-03 20:48:52 ... разобрался с радиусом, на циске надо: no aaa authorization network default group radius authorization данный модуль не предусматривает Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-07-04 04:55:48 Share Опубліковано: 2008-07-04 04:55:48 Ммм... Не понял при чем тут модуль к авторизации на циске. Циска работает с FreeRADIUS, а не с модулем. Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-07-04 09:03:57 Share Опубліковано: 2008-07-04 09:03:57 Ммм... Не понял при чем тут модуль к авторизации на циске. Циска работает с FreeRADIUS, а не с модулем. А зачем тогда модуль ? Где тебе freeradius возьмет network authorization ? правильно, в каком либо хранилище отличным от данного модуля так как он это не умеет, как следствие, описывать пользователей надо 2 раза, 1 - в старгайзере, 2 - еще где либо = mysql,file,.... Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-07-04 09:22:18 Share Опубліковано: 2008-07-04 09:22:18 Все равно ничего не понял. Решение об авторизации принимает FreeRADIUS. Основываясь на информации от модулей. Чего не хватает твоей циске, что она не хочет авторизоваться через FreeRADIUS? И зачем описывать пользователя 2 раза? Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-07-04 12:04:30 Share Опубліковано: 2008-07-04 12:04:30 Все равно ничего не понял.Решение об авторизации принимает FreeRADIUS. Основываясь на информации от модулей. Чего не хватает твоей циске, что она не хочет авторизоваться через FreeRADIUS? И зачем описывать пользователя 2 раза? 1. network authorization 2. av-pair Ну глянь в гугле например, что из себя представляет "aaa authorization network default group radius", не перепечатывать же сдесь цискины мануалы. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-07-04 13:24:57 Share Опубліковано: 2008-07-04 13:24:57 The aaa authorization network default group radius command configures network authorization via RADIUS. This can be used to govern address assignment, the application of access lists, and various other per-user quantities. Видимо, это ты чего-то не понимаеш. Модуль rlm_stg.so представляет собой прослойку между FreeRADIUS и Stargazer. Ответ Access-Accept посылает FreeRADIUS, а не модуль. Решение о посылке аксепта он принимает на основании правильности пароля и дополнительного ответа старгейзера. Смотри, в секции authorization модуль rlm_stg.so просто предоставляет FreeRADIUS'у Cleartext-Password для запрошенного юзера (из базы Stg). В секции authentication модуль rlm_stg.so принимает решение, позволять авторизоваться этому юзеру или нет. То есть, даже если пароли совпадают, этот модуль в этой секции может отменить решение. Молчание циски на Access-Accept, скорее всего, результат отсутствия некого поля в этом ответе. Так поле ж недолго добавить - нужно только понять какое... И я так подозреваю, что это поле Service-Type. Но, по скольку, "на руках" у меня циски нету и я с ними никогда не работал - я не могу свои подозрения проверить. Еще раз повторюсь: связка модулей mod_radius.so (со стороны Stg) и rlm_stg.so (со стороны FreeRADIUS) сама по себе RADIUS-сервером не является. Она просто предоставляет FreeRADIUS'у необходимую информацию и, дополнительно, авторизует, если надо, пользователей в системе Stargazer. Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-07-04 19:26:19 Share Опубліковано: 2008-07-04 19:26:19 Видимо, это ты чего-то не понимаеш. Модуль rlm_stg.so представляет собой прослойку между FreeRADIUS и Stargazer. Это все чудесно, и я с тобой совершенно согласен, вероятно я нетак преподношу свою мысль, ибо ты описываеш совершенно правильную ситуацию, но не касающуюся данной темы, попробую цитатами из мануалов: http://www.cisco.com/en/US/tech/tk59/techn...080093f4b.shtml User passes authentication (i.e. username/password is good) but fails authorization (profile not set up for Service-Type=Framed & Framed-Protocol=PPP): RADIUS: Received from id 13 171.68.118.101:1645, Access-Accept, len 20 RADIUS: saved authorization data for user 15AD58 at 15ADF0 AAA/AUTHEN (56862281): status = PASS AAA/AUTHOR/LCP As1: Authorize LCP AAA/AUTHOR/LCP: Async1: (959162008): user='cse' AAA/AUTHOR/LCP: Async1: (959162008): send AV service=ppp AAA/AUTHOR/LCP: Async1: (959162008): send AV protocol=lcp AAA/AUTHOR/LCP: Async1: (959162008): Method=RADIUS RADIUS: no appropriate authorization type for user. AAA/AUTHOR (959162008): Post authorization status = FAIL AAA/AUTHOR/LCP As1: Denied AAA/AUTHEN: free_user (0x15AD58) user='cse' ruser='' port='Async1' rem_addr='async' authen_type=PAP service=PPP priv=1 As1 PAP: O AUTH-NAK id 27 len 25 msg is "Authorization failed" Это и есть результат неправильной отработки aaa authorization network default group radius И при чем сдесь фрирадиус ? Он использует любые доступные для него хранилища в зависимости от секции/действия которые от него требуют. Если данный/данные методы не заложены/описаны в хранилищах он возвращает отказ. rlm_stg = хранилище, не умеющее authorization. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-07-05 07:14:09 Share Опубліковано: 2008-07-05 07:14:09 Авторизация - это неотъемлимая часть RADIUS. Если бы rlm_stg.so ее не умел - его бы небыло в секции авторизации. Я еще раз перечитал доступные материалы по Cisco и FreeRADIUS и еще раз убедился в том, что циске не хватает некоторых полей в ответе радиуса. В частности: Service-Type := NAS-Prompt-User и/или cisco-avpair = "shell:priv-lvl=15" (это поле не является обязательным). Их можно дописывать к ответу в секции post-auth (смотри документацию на FreeRADIUS). Именно так работает rlm_stg.so, если необходимо назначать пользователям статические IP-адреса в VPN - он добавляет параметр Framed-IP-Address. Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-07-05 09:20:04 Share Опубліковано: 2008-07-05 09:20:04 Авторизация - это неотъемлимая часть RADIUS. Если бы rlm_stg.so ее не умел - его бы небыло в секции авторизации.Я еще раз перечитал доступные материалы по Cisco и FreeRADIUS и еще раз убедился в том, что циске не хватает некоторых полей в ответе радиуса. В частности: Service-Type := NAS-Prompt-User и/или cisco-avpair = "shell:priv-lvl=15" (это поле не является обязательным). Их можно дописывать к ответу в секции post-auth (смотри документацию на FreeRADIUS). Именно так работает rlm_stg.so, если необходимо назначать пользователям статические IP-адреса в VPN - он добавляет параметр Framed-IP-Address. Ну да это я и имел в виду. Только не надо путать механизм authentication и authorization Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубліковано: 2008-07-05 12:12:15 Share Опубліковано: 2008-07-05 12:12:15 А никто и не путает Ссылка на сообщение Поделиться на других сайтах
napTu 4 Опубліковано: 2008-07-10 20:48:43 Share Опубліковано: 2008-07-10 20:48:43 ... предлагаю свою помощь в отлове этого бага, он у меня встречается раз на 2-3 дня, а то и чаще. Говорите чего делать. Код курить... Ну, в общем, делаеш отладочные вставки во все места, где только можно и ждеш пока не произойдет баг. Потом начинаеш анализ логов. В принципе, если мужество присутствует, могу через некоторое время выслать по почте или где-то выложить спецверсию сорсов mod_auth_ia - чтобы вы его покатали а потом мне логи заслали. madf, сделай плиз inetaccess.cpp с дебаг инфом густым. Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-07-10 20:56:29 Share Опубліковано: 2008-07-10 20:56:29 ... предлагаю свою помощь в отлове этого бага, он у меня встречается раз на 2-3 дня, а то и чаще. Говорите чего делать. Код курить... Ну, в общем, делаеш отладочные вставки во все места, где только можно и ждеш пока не произойдет баг. Потом начинаеш анализ логов. В принципе, если мужество присутствует, могу через некоторое время выслать по почте или где-то выложить спецверсию сорсов mod_auth_ia - чтобы вы его покатали а потом мне логи заслали. madf, сделай плиз inetaccess.cpp с дебаг инфом густым. Сам навставляй printfd(__FILE__, "чего меня интересует\n"); или syslog(LOG_CRIT, "чего меня интересует"); если лениво в дебаг моде перед консолью зрение портить Ссылка на сообщение Поделиться на других сайтах
napTu 4 Опубліковано: 2008-07-11 08:16:25 Share Опубліковано: 2008-07-11 08:16:25 Сам навставляй printfd(__FILE__, "чего меня интересует\n");или syslog(LOG_CRIT, "чего меня интересует"); если лениво в дебаг моде перед консолью зрение портить да навставлял в пару мест, но в структуре кода я не разбираюсь и с ГЦЦ/срр не силен, не знаю как например вывести адрес или имя пользователя в тех местах где мне надо. Ссылка на сообщение Поделиться на других сайтах
den68 0 Опубліковано: 2008-07-11 13:11:09 Share Опубліковано: 2008-07-11 13:11:09 да навставлял в пару мест, но в структуре кода я не разбираюсь и с ГЦЦ/срр не силен, не знаю как например вывести адрес или имя пользователя в тех местах где мне надо. printfd(__FILE__, "чего меня интересует %s %d\n", переменная_типа_строка, переменная_типа_число); или char tmpbuf[255]; sprintf(tmpbuf,"чего меня интересует %s %d\n", переменная_типа_строка, переменная_типа_число); syslog(LOG_CRIT, tmpbuf); Ссылка на сообщение Поделиться на других сайтах
napTu 4 Опубліковано: 2008-07-11 14:10:02 Share Опубліковано: 2008-07-11 14:10:02 printfd(__FILE__, "чего меня интересует %s %d\n", переменная_типа_строка, переменная_типа_число); насчет этого я тоже догадался а как быть тут: int AUTH_IA::Timeouter() { STG_LOCKER lock(&mutex, __FILE__, __LINE__); map<uint32_t, IA_USER>::iterator it; it = ip2user.begin(); uint32_t sip; //printfd(__FILE__, "ip2user.size=%d \n", ip2user.size()); while (it != ip2user.end()) { sip = it->first; if (it->second.phase == 0) it->second.phase = 1; static UTIME currTime; gettimeofday(&currTime, NULL); if ((it->second.phase == 2) && (currTime - it->second.phaseTime) > iaSettings.GetUserDelay()) { it->second.phase = 1; gettimeofday(&it->second.phaseTime, NULL); //it->second.phaseTime = stgTime; //#ifdef IA_DEBUG printfd(__FILE__, "Phase changed from 2 to 1. Reason: timeout $s \n" , sip ); //#endif ? где тут адрес или имя юзверя? какого типа тут переменные? нифига не понимаю... Ссылка на сообщение Поделиться на других сайтах
napTu 4 Опубліковано: 2008-07-11 19:07:13 Share Опубліковано: 2008-07-11 19:07:13 все же я был прав в прошлый раз: http://local.com.ua/forum/index.php?showto...indpost&p=84759 http://local.com.ua/forum/index.php?showto...=45entry92614 Ссылка на сообщение Поделиться на других сайтах
napTu 4 Опубліковано: 2008-07-11 19:35:19 Share Опубліковано: 2008-07-11 19:35:19 а переменную типа UTIME можно вывести? Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения