[syslog-ng]1.6.0rc1 / SunOS 5.8 (Solaris 8) - entries not logged with IP address
Brian C. Hill
syslog-ng@lists.balabit.hu
Wed, 16 Apr 2003 23:01:56 -0700
I am still trying to solve this problem.
I have verirified from debugging that there is some disconnect
in the values salen and addrlen and between
A_RECV(read, closure->max_log_line - closure->pos, closure-> buffer + closure->pos, (abstract_addr *) &sabuf, &salen);
in syslog-ng-1.6rc0/src/sources.c and
res = recvfrom(closure->fd, buffer, length, 0, (struct sockaddr *) addr, (socklen_t *) addrlen);
in libol-0.3.9/src/io.c. salen is set to 256 before and after the
A_RECV() is called, but addrlen is set to 0 and sockaddr seems to point
to nothing in before recvfrom() is called. As a result recvfrom()
simply doesn't record the address information of the sending host.
This is on SunOS-5.8-sparc in 64-bit mode with gcc 3.2.1
compiling 64-bit binaries.
Anyway, the result is that syslog-ng is unable to record the
address of the sending host and winds up prepending all logged messages
with it's own hostname, rather than the sending host's.
With all of the casting and and abstraction involved in the
code, I am not sure what to try next.
Any suggestions? Is this a 64-bit problem?
Brian