[syslog-ng]Re: [PATCH] make log_msg_size tunable

Balazs Scheidler bazsi@balabit.hu
Wed, 17 Apr 2002 14:04:55 +0200


--8t9RHnE3ZwKMSgU+
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Wed, Apr 17, 2002 at 01:55:57PM +0200, Balazs Scheidler wrote:
> Hi,
> 
> The attached patch makes the maximum length of a log message tunable as a
> global option. Testers welcome.
> 
> Usage:
> 
> options { log_msg_size(8192); };

ops... forgot to include the patch.

-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1

--8t9RHnE3ZwKMSgU+
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="syslog-ng-1.5.16-logmsg.diff"

Index: ChangeLog
===================================================================
RCS file: /var/cvs/syslog-ng/ChangeLog,v
retrieving revision 1.50
diff -u -r1.50 ChangeLog
--- ChangeLog	2002/04/12 07:42:16	1.50
+++ ChangeLog	2002/04/17 11:54:02
@@ -1,3 +1,13 @@
+2002-04-17  Balazs Scheidler  <bazsi@balabit.balabit>
+
+	* af*.c: changed invocation of make_log_reader to pass new required arguments
+
+	* sources.c: changed make_log_reader() to accept log_msg_size argument
+
+	* cfg-grammar.y: added log_msg_size
+
+	* cfg-lex.l: added log_msg_size
+
 2002-04-12  Balazs Scheidler  <bazsi@balabit.balabit>
 
 	* src/afinet.c: tcp wrapper fix (added two variable
Index: src/affile.c
===================================================================
RCS file: /var/cvs/syslog-ng/src/affile.c,v
retrieving revision 1.49
diff -u -r1.49 affile.c
--- src/affile.c	2002/04/12 07:42:16	1.49
+++ src/affile.c	2002/04/17 11:54:02
@@ -161,7 +161,7 @@
 	if (do_open_file(self->name, flags, -1, -1, -1, -1, -1, -1, 0, &fd)) {
 		lseek(fd, 0, SEEK_END);
 		self->src = io_read(make_io_fd(cfg->backend, fd, ol_string_use(self->name)), 
-			make_log_reader_ext(0, self->prefix, c), 
+			make_log_reader(0, self->prefix, cfg->log_msg_size, c), 
 			NULL);
 		self->res = REMEMBER_RESOURCE(cfg->resources, &self->src->super.super);
 		return ST_OK | ST_GOON;
Index: src/afinet.c
===================================================================
RCS file: /var/cvs/syslog-ng/src/afinet.c,v
retrieving revision 1.16
diff -u -r1.16 afinet.c
--- src/afinet.c	2002/04/12 07:42:16	1.16
+++ src/afinet.c	2002/04/17 11:54:02
@@ -89,13 +89,13 @@
 		notice("AF_INET client connected from %S, port %i\n", 
 		       inet->ip, inet->port);
 		io_read(self->client, 
-			make_log_reader(0, c), 
+			make_log_reader(0, NULL, cfg->log_msg_size, c), 
 			make_afsocket_source_close_callback(self));
 	}
 	else {
 		/* SOCK_DGRAM */
 		io_read(self->client, 
-			make_log_reader(1, c), 
+			make_log_reader(1, NULL, cfg->log_msg_size, c), 
 			make_afsocket_source_close_callback(self));
 	}
 	
Index: src/afstreams.c
===================================================================
RCS file: /var/cvs/syslog-ng/src/afstreams.c,v
retrieving revision 1.12
diff -u -r1.12 afstreams.c
--- src/afstreams.c	2001/07/08 17:04:21	1.12
+++ src/afstreams.c	2002/04/17 11:54:02
@@ -145,7 +145,7 @@
 			
 			length = eol - bol;
 			if (length) {
-				li = make_log_info(length, bol);
+				li = make_log_info(length, bol, NULL);
 				li->pri = pri;
 				HANDLE_LOG(self->pipe, li);
 			}
Index: src/afunix.c
===================================================================
RCS file: /var/cvs/syslog-ng/src/afunix.c,v
retrieving revision 1.20
diff -u -r1.20 afunix.c
--- src/afunix.c	2002/02/28 13:05:37	1.20
+++ src/afunix.c	2002/04/17 11:54:02
@@ -51,7 +51,7 @@
 	CAST(afsocket_source_connection, self, c);
 
 	io_read(self->client, 
-		make_log_reader(0, c), 
+		make_log_reader(0, NULL, cfg->log_msg_size, c), 
 		make_afsocket_source_close_callback(self));
 	
 	return ST_OK | ST_GOON;
Index: src/cfg-grammar.y
===================================================================
RCS file: /var/cvs/syslog-ng/src/cfg-grammar.y,v
retrieving revision 1.51
diff -u -r1.51 cfg-grammar.y
--- src/cfg-grammar.y	2002/03/19 09:26:16	1.51
+++ src/cfg-grammar.y	2002/04/17 11:54:02
@@ -66,7 +66,7 @@
 /* option items */
 %token KW_FLAGS KW_CATCHALL KW_FALLBACK KW_FINAL
 %token KW_FSYNC KW_MARK_FREQ KW_SYNC_FREQ KW_STATS_FREQ KW_CHAIN_HOSTNAMES KW_KEEP_HOSTNAME
-%token KW_LOG_FIFO_SIZE 
+%token KW_LOG_FIFO_SIZE KW_LOG_MSG_SIZE
 %token KW_TIME_REOPEN KW_TIME_REAP KW_USE_TIME_RECVD
 %token KW_USE_DNS KW_USE_FQDN KW_GC_BUSY_THRESHOLD 
 %token KW_GC_IDLE_THRESHOLD KW_CREATE_DIRS 
@@ -580,6 +580,7 @@
 	| KW_DNS_CACHE_EXPIRE '(' NUMBER ')'	{ configuration->dns_cache_expire = $3; }
 	| KW_DNS_CACHE_EXPIRE_FAILED '(' NUMBER ')'
 	  			{ configuration->dns_cache_expire_failed = $3; }
+	| KW_LOG_MSG_SIZE '(' NUMBER ')'	{ configuration->log_msg_size = $3; }
 	;
 
 filter_stmt
Index: src/cfg-lex.l
===================================================================
RCS file: /var/cvs/syslog-ng/src/cfg-lex.l,v
retrieving revision 1.22
diff -u -r1.22 cfg-lex.l
--- src/cfg-lex.l	2002/03/19 09:26:16	1.22
+++ src/cfg-lex.l	2002/04/17 11:54:02
@@ -98,6 +98,7 @@
 	{ "dns_cache_expire",	KW_DNS_CACHE_EXPIRE },
 	{ "dns_cache_expire_failed", KW_DNS_CACHE_EXPIRE_FAILED },
 	{ "log_prefix",		KW_LOG_PREFIX },
+	{ "log_msg_size",	KW_LOG_MSG_SIZE },
 
 	/* source or destination items */
 	{ "file",		KW_FILE },
Index: src/cfgfile.c
===================================================================
RCS file: /var/cvs/syslog-ng/src/cfgfile.c,v
retrieving revision 1.38
diff -u -r1.38 cfgfile.c
--- src/cfgfile.c	2002/03/19 09:26:16	1.38
+++ src/cfgfile.c	2002/04/17 11:54:02
@@ -319,6 +319,7 @@
 	self->dns_cache_size = 1007;
 	self->dns_cache_expire = 3600;
 	self->dns_cache_expire_failed = 60;
+	self->log_msg_size = 2048;
 	if ((cfg = fopen(name, "r")) != NULL) {
 		lex_init(cfg);
 		res = yyparse();
Index: src/cfgfile.h
===================================================================
RCS file: /var/cvs/syslog-ng/src/cfgfile.h,v
retrieving revision 1.22
diff -u -r1.22 cfgfile.h
--- src/cfgfile.h	2001/08/26 15:06:25	1.22
+++ src/cfgfile.h	2002/04/17 11:54:02
@@ -70,6 +70,8 @@
 	(cache simple "struct nscache *")
 	(gc_busy_threshold simple UINT32)
 	(gc_idle_threshold simple UINT32)
+	;
+	(log_msg_size simple UINT32)
 	; internal messages should come from this source
 	(internal object log_handler)
         (sources object log_source_group)
Index: src/sources.c
===================================================================
RCS file: /var/cvs/syslog-ng/src/sources.c,v
retrieving revision 1.32
diff -u -r1.32 sources.c
--- src/sources.c	2002/04/03 08:37:02	1.32
+++ src/sources.c	2002/04/17 11:54:02
@@ -50,7 +50,7 @@
          (dgram simple UINT32)
          (prefix pointer UINT8)
 	 (pos simple UINT32)
-	 (buffer array UINT8 MAX_LOG_LINE)
+	 (buffer space UINT8)
          (next object log_handler)))
 */
 
@@ -136,9 +136,10 @@
 }
 
 struct read_handler *
-make_log_reader_ext(UINT32 dgram, 
-		    UINT8 *prefix,
-		    struct log_handler *next)
+make_log_reader(UINT32 dgram, 
+		UINT8 *prefix,
+		UINT32 max_log_line,
+		struct log_handler *next)
 {
 	NEW(log_reader, self);
 
@@ -146,15 +147,9 @@
 	self->dgram = dgram;
 	self->next = next;
 	self->prefix = prefix;
+	self->buffer = ol_space_alloc(max_log_line);
 	
 	return &self->super;
-}
-
-struct read_handler *
-make_log_reader(UINT32 dgram, 
-		struct log_handler *next)
-{
-	return make_log_reader_ext(dgram, NULL, next);
 }
 
 /* source_group */
Index: src/sources.h
===================================================================
RCS file: /var/cvs/syslog-ng/src/sources.h,v
retrieving revision 1.13
diff -u -r1.13 sources.h
--- src/sources.h	2002/03/19 09:26:16	1.13
+++ src/sources.h	2002/04/17 11:54:02
@@ -60,11 +60,11 @@
          (name string)))
 */
 
-struct read_handler *make_log_reader(UINT32 dgram, struct log_handler *next);
 struct read_handler *
-make_log_reader_ext(UINT32 dgram, 
-		    UINT8 *prefix,
-		    struct log_handler *next);
+make_log_reader(UINT32 dgram, 
+		UINT8 *prefix,
+		UINT32 max_log_line,
+		struct log_handler *next);
 
 struct log_source_group *make_source_group(const char *name, struct log_source_driver *drvs);
 

--8t9RHnE3ZwKMSgU+--