|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Andrey Khavryuchenko 2:5020/400 24 Feb 2002 00:02:21 To : Eugene B. Berdnikov Subject : Re: непонятки с getpeername в ipop3d -------------------------------------------------------------------------------- Eugene, "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> сервера). EBB> Подозреваю, что первая строчка содержит выдачу getsockname(), EBB> а 2я и 3я - выдачу getpeername(). Т.е. это разные сущности. Увы, нет. Вхождение 'service init from' есть только в этой функции: /* Initialize server * Accepts: server name for syslog or NIL * /etc/services service name or NIL * alternate /etc/services service name or NIL * SASL service name or NIL * clock interrupt handler * kiss-of-death interrupt handler * hangup interrupt handler * termination interrupt handler */ void server_init (char *server,char *service,char *sslservice,char *sasl, void *clkint,void *kodint,void *hupint,void *trmint) { /* only do this if for init call */ if (server && service && sslservice && sasl) { long port; struct servent *sv; struct sockaddr_in sin; int i = sizeof (struct sockaddr_in); /* Don't use tcp_clienthost() since reverse DNS problems may slow down the * greeting message and cause the client to time out. */ char *client = getpeername (0,(struct sockaddr *) &sin,(void *) &i) ? "UNKNOWN" : ((sin.sin_family == AF_INET) ? inet_ntoa (sin.sin_addr) : "NON-IPv4"); /* set server name in syslog */ openlog (server,LOG_PID,LOG_MAIL); fclose (stderr); /* possibly save a process ID */ dorc (NIL,NIL); /* do systemwide configuration */ /* Use SSL if SSL service, or if server starts with "s" and not service */ if (((port = tcp_serverport ()) >= 0)) { if ((sv = getservbyname (service,"tcp")) && (port == ntohs (sv->s_port))) syslog (LOG_DEBUG,"%s service init from %s",service,client); [...] Где C-шным по фону написано, что client берется из getpeername. Щось я не втну :( -- Andrey V Khavryuchenko http://www.kds.com.ua/ Offshore Software Development --- ifmail v.2.15dev5 * Origin: KDS Software Group (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/180263dd15623.html, оценка из 5, голосов 10
|