Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Eugene B. Berdnikov                  2:5020/400     24 Feb 2002  15:03:33
 To : Andrey Khavryuchenko
 Subject : Re: непонятки с getpeername в ipop3d
 -------------------------------------------------------------------------------- 
 
 Andrey Khavryuchenko <akhavr@kds.com.ua> wrote:
 
 AK> "EBB" == Eugene B Berdnikov wrote:
  EBB>> Andrey Khavryuchenko <akhavr@kds.com.ua> wrote:
  AK>> С некоторого очередного обновления у меня в логах стали появляться такие
  AK>> сообщения:
  AK>> 
  AK>> Feb 23 08:35:51 netmaster ipop3d[5800]: pop3 service init from 10.0.2.2
  AK>> Feb 23 08:35:51 netmaster ipop3d[5800]: Login user=sbelinsk
  AK>> host=sveta.kds.priv [10.0.2.3] nmsgs=0/0 Feb 23 08:35:51 netmaster
  AK>> ipop3d[5800]: Logout user=sbelinsk host=sveta.kds.priv [10.0.2.3] nmsgs=0 
  AK>> ndele=0 Вопрос в источнике, выдающем адрес 10.0.2.2 в первой строке (адрес
  AK>> сервера).
 AK> 
  EBB>> Подозреваю, что первая строчка содержит выдачу getsockname(),
  EBB>> а 2я и 3я - выдачу getpeername(). Т.е. это разные сущности.
 AK> 
 AK> Увы, нет.  Вхождение 'service init from' есть только в этой функции:
 
 [...]
 
 AK>     char *client =
 AK>       getpeername (0,(struct sockaddr *) &sin,(void *) &i) ? "UNKNOWN" :
 AK>         ((sin.sin_family == AF_INET) ? inet_ntoa (sin.sin_addr) :
 AK> "NON-IPv4");                                /* set server name in syslog */ 
 AK> openlog (server,LOG_PID,LOG_MAIL);    fclose (stderr);            /*
 AK> possibly save a process ID */    dorc (NIL,NIL);             /* do
 AK> systemwide configuration */
 
         ^^^^^^^^^^^^^^
  Есть подозрение, что в этом модуле inet_ntoa() вызывается еще раз,
  и его внутренний буфер затирается, после чего client показывает на
  строку, содержимое которой уже изменилось.
 
 AK>     /* Use SSL if SSL service, or if server starts with "s" and not service 
 AK> */    if (((port = tcp_serverport ()) >= 0)) {      if ((sv = getservbyname 
 AK> (service,"tcp")) && (port == ntohs (sv->s_port)))        syslog
 AK> (LOG_DEBUG,"%s service init from %s",service,client); [...] Где C-шным по
 AK> фону написано, что client берется из getpeername.
 
  Попробуйте вывести inet_ntoa(sin.sin_addr) сразу после getpeername().
 -- 
  Eugene Berdnikov
 --- ifmail v.2.15dev5
  * Origin: Institute for High Energy Physics, Protvino, Russia (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 непонятки с getpeername в ipop3d   Andrey Khavryuchenko   23 Feb 2002 11:02:23 
 Re: непонятки с getpeername в ipop3d   Eugene B. Berdnikov   23 Feb 2002 19:03:08 
 Re: непонятки с getpeername в ipop3d   Andrey Khavryuchenko   24 Feb 2002 00:02:21 
 Re: непонятки с getpeername в ipop3d   Eugene B. Berdnikov   24 Feb 2002 15:03:33 
 Re: непонятки с getpeername в ipop3d   Andrey Khavryuchenko   24 Feb 2002 17:22:27 
Архивное /ru.linux/53534224bc33.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional