[Dovecot] IP in rawlog
Timo Sirainen
tss at iki.fi
Tue Mar 15 23:03:25 EET 2005
On Tue, 2005-03-15 at 10:45 +0100, Andreas Goertz wrote:
> | no - this patch doesn't seem to work, because in rawlog.c proxy is
> | not declared. So i looked for the call to rawlog_open() and saw that
> | it's only called from main.c in imap and pop3 folder. But there also
> | is no proxy declared. Do you have another idea? Thanks in advance.
That code was for 1.0-tests, 0.99.x has entirely different rawlog code.
> Hmm - while searching for another solution i found the function
> client_syslog() in imap-login/client.c. If i understand it correctly,
> i_info() only writes to the syslog and i have no clue, how to write into
> rawlog from client.c respectively client_syslog().
Only rawlog.c knows about rawlog, it's also running as separate process
so it's not even possible to see it in client.c code.
Here's a patch for 0.99.14:
--- rawlog.c.old 2005-03-15 22:59:52.731934694 +0200
+++ rawlog.c 2005-03-15 23:01:10.535201787 +0200
@@ -89,6 +89,7 @@
void rawlog_open(int *hin, int *hout)
{
struct io *io_imap, *io_client;
+ struct ip_addr ip;
const char *home, *path, *fname;
char timestamp[50];
struct tm *tm;
@@ -131,6 +132,11 @@
return;
}
+ if (net_getpeername(0, &ip, NULL) == 0) {
+ str = t_strdup_printf("IP: %s\n", net_ip2addr(&ip));
+ write_full(log_out, str, strlen(str));
+ }
+
/* we need to fork the rawlog writer to separate process since
imap process does blocking writes. */
if (socketpair(AF_UNIX, SOCK_STREAM, 0, sfd) < 0)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : http://dovecot.org/pipermail/dovecot/attachments/20050315/8c1ab03e/attachment.pgp
More information about the dovecot
mailing list