dovecot: Added -b parameter which writes packet boundaries like ...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Feb 2 12:12:41 EET 2008
details: http://hg.dovecot.org/dovecot/rev/83a3239808d3
changeset: 7206:83a3239808d3
user: Timo Sirainen <tss at iki.fi>
date: Sat Feb 02 12:12:37 2008 +0200
description:
Added -b parameter which writes packet boundaries like <<<packet>>>.
diffstat:
1 file changed, 16 insertions(+), 3 deletions(-)
src/util/rawlog.c | 19 ++++++++++++++++---
diffs (70 lines):
diff -r a17e3d81a517 -r 83a3239808d3 src/util/rawlog.c
--- a/src/util/rawlog.c Thu Jan 31 21:50:03 2008 +0200
+++ b/src/util/rawlog.c Sat Feb 02 12:12:37 2008 +0200
@@ -27,7 +27,8 @@ enum rawlog_flags {
enum rawlog_flags {
RAWLOG_FLAG_LOG_INPUT = 0x01,
RAWLOG_FLAG_LOG_OUTPUT = 0x02,
- RAWLOG_FLAG_LOG_TIMESTAMPS = 0x04
+ RAWLOG_FLAG_LOG_TIMESTAMPS = 0x04,
+ RAWLOG_FLAG_LOG_BOUNDARIES = 0X10
};
struct rawlog_proxy {
@@ -79,11 +80,16 @@ static void proxy_write_in(struct rawlog
if (proxy->fd_in == -1 || size == 0)
return;
+ if ((proxy->flags & RAWLOG_FLAG_LOG_BOUNDARIES) != 0)
+ write_full(proxy->fd_in, "<<<", 3);
+
if (write_full(proxy->fd_in, data, size) < 0) {
/* failed, disable logging */
i_error("write(in) failed: %m");
(void)close(proxy->fd_in);
proxy->fd_in = -1;
+ } else if ((proxy->flags & RAWLOG_FLAG_LOG_BOUNDARIES) != 0) {
+ write_full(proxy->fd_in, ">>>\n", 4);
}
}
@@ -107,15 +113,20 @@ static void proxy_write_out(struct rawlo
i_fatal("Can't write to log file: %m");
}
+ if ((proxy->flags & RAWLOG_FLAG_LOG_BOUNDARIES) != 0)
+ write_full(proxy->fd_out, "<<<", 3);
if (write_full(proxy->fd_out, data, size) < 0) {
/* failed, disable logging */
i_error("write(out) failed: %m");
(void)close(proxy->fd_out);
proxy->fd_out = -1;
+ } else if ((proxy->flags & RAWLOG_FLAG_LOG_BOUNDARIES) != 0) {
+ write_full(proxy->fd_out, ">>>\n", 4);
}
proxy->last_write = ioloop_time;
- proxy->last_out_lf = ((const unsigned char *)buf)[size-1] == '\n';
+ proxy->last_out_lf = ((const unsigned char *)buf)[size-1] == '\n' ||
+ (proxy->flags & RAWLOG_FLAG_LOG_BOUNDARIES) != 0;
}
static void server_input(struct rawlog_proxy *proxy)
@@ -340,6 +351,8 @@ int main(int argc, char *argv[], char *e
flags &= ~RAWLOG_FLAG_LOG_OUTPUT;
else if (strcmp(argv[0], "-o") == 0)
flags &= ~RAWLOG_FLAG_LOG_INPUT;
+ else if (strcmp(argv[0], "-b") == 0)
+ flags |= RAWLOG_FLAG_LOG_BOUNDARIES;
else {
argc = 0;
break;
@@ -349,7 +362,7 @@ int main(int argc, char *argv[], char *e
}
if (argc < 1)
- i_fatal("Usage: rawlog [-i | -o] <binary> <arguments>");
+ i_fatal("Usage: rawlog [-i | -o] [-b] <binary> <arguments>");
executable = argv[0];
if (strstr(executable, "/imap") != NULL)
More information about the dovecot-cvs
mailing list