Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F156913501
D27206.id79503.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D27206.id79503.diff
View Options
Index: usr.sbin/syslogd/syslogd.8
===================================================================
--- usr.sbin/syslogd/syslogd.8
+++ usr.sbin/syslogd/syslogd.8
@@ -41,6 +41,7 @@
.Op Fl b Ar bind_address
.Op Fl f Ar config_file
.Op Fl l Oo Ar mode Ns \&: Oc Ns Ar path
+.Op Fl M Ar fwd_length
.Op Fl m Ar mark_interval
.Op Fl O Ar format
.Op Fl P Ar pid_file
@@ -243,6 +244,9 @@
.Dq kern
facility is reserved for messages read directly from
.Pa /dev/klog .
+.It Fl M Ar fwd_length
+Set limit length of forwarded messages. Minimum is 480 octets. Maximum for
+RFC 3164 output format is 1024 octets. The default is 1024 octets.
.It Fl m Ar mark_interval
Select the number of minutes between
.Dq mark
Index: usr.sbin/syslogd/syslogd.c
===================================================================
--- usr.sbin/syslogd/syslogd.c
+++ usr.sbin/syslogd/syslogd.c
@@ -97,8 +97,7 @@
* Priority comparison code by Harlan Stenn.
*/
-/* Maximum number of characters in time of last occurrence */
-#define MAXLINE 2048 /* maximum line length */
+#define MAXLINE 8192 /* maximum line length */
#define MAXSVLINE MAXLINE /* maximum saved line length */
#define DEFUPRI (LOG_USER|LOG_NOTICE)
#define DEFSPRI (LOG_KERN|LOG_CRIT)
@@ -383,6 +382,7 @@
static int MarkSeq; /* mark sequence number */
static int NoBind; /* don't bind() as suggested by RFC 3164 */
static int SecureMode; /* when true, receive only unix domain socks */
+static int MaxForwardLen = 1024; /* max length of forwared message */
#ifdef INET6
static int family = PF_UNSPEC; /* protocol family (IPv4, IPv6 or both) */
#else
@@ -394,7 +394,7 @@
static int no_compress; /* don't compress messages (1=pipes, 2=all) */
static int logflags = O_WRONLY|O_APPEND; /* flags used to open log files */
-static char bootfile[MAXLINE+1]; /* booted kernel file */
+static char bootfile[MAXPATHLEN]; /* booted kernel file */
static int RemoteAddDate; /* Always set the date on remote messages */
static int RemoteHostname; /* Log remote hostname from the message */
@@ -553,7 +553,7 @@
if (madvise(NULL, 0, MADV_PROTECT) != 0)
dprintf("madvise() failed: %s\n", strerror(errno));
- while ((ch = getopt(argc, argv, "468Aa:b:cCdf:FHkl:m:nNoO:p:P:sS:Tuv"))
+ while ((ch = getopt(argc, argv, "468Aa:b:cCdf:FHkl:M:m:nNoO:p:P:sS:Tuv"))
!= -1)
switch (ch) {
#ifdef INET
@@ -666,6 +666,12 @@
});
break;
}
+ case 'M': /* max length of forwarded message */
+ MaxForwardLen = atoi(optarg);
+ if (MaxForwardLen < 480)
+ errx(1, "max length of forwarded message "
+ "couldn't be less 480 octets");
+ break;
case 'm': /* mark interval */
MarkInterval = atoi(optarg) * 60;
break;
@@ -710,6 +716,10 @@
if ((argc -= optind) != 0)
usage();
+ if (RFC3164OutputFormat && MaxForwardLen > 1024)
+ errx(1, "max length of forwarded message couldn't be more "
+ "than 1024 octets in case of RFC3164");
+
/* Pipe to catch a signal during select(). */
s = pipe2(sigpipe, O_CLOEXEC);
if (s < 0) {
@@ -948,9 +958,9 @@
fprintf(stderr,
"usage: syslogd [-468ACcdFHknosTuv] [-a allowed_peer]\n"
" [-b bind_address] [-f config_file]\n"
- " [-l [mode:]path] [-m mark_interval]\n"
- " [-O format] [-P pid_file] [-p log_socket]\n"
- " [-S logpriv_socket]\n");
+ " [-l [mode:]path] [-M fwd_length]\n"
+ " [-m mark_interval] [-O format] [-P pid_file]\n"
+ " [-p log_socket] [-S logpriv_socket]\n");
exit(1);
}
@@ -1840,27 +1850,27 @@
switch (f->f_type) {
case F_FORW:
- /* Truncate messages to RFC 5426 recommended size. */
dprintf(" %s", f->fu_forw_hname);
switch (f->fu_forw_addr->ai_family) {
#ifdef INET
case AF_INET:
dprintf(":%d\n",
ntohs(satosin(f->fu_forw_addr->ai_addr)->sin_port));
- iovlist_truncate(il, 480);
break;
#endif
#ifdef INET6
case AF_INET6:
dprintf(":%d\n",
ntohs(satosin6(f->fu_forw_addr->ai_addr)->sin6_port));
- iovlist_truncate(il, 1180);
break;
#endif
default:
dprintf("\n");
}
+ /* Truncate messages to maximum forward length */
+ iovlist_truncate(il, MaxForwardLen);
+
lsent = 0;
for (r = f->fu_forw_addr; r; r = r->ai_next) {
memset(&msghdr, 0, sizeof(msghdr));
@@ -2553,7 +2563,7 @@
char *p;
char oldLocalHostName[MAXHOSTNAMELEN];
char hostMsg[2*MAXHOSTNAMELEN+40];
- char bootfileMsg[LINE_MAX];
+ char bootfileMsg[MAXLINE + 1];
dprintf("init\n");
WantInitialize = 0;
@@ -2900,7 +2910,7 @@
int error, i, pri, syncfile;
const char *p, *q;
char *bp, *pfilter_dup;
- char buf[MAXLINE], ebuf[100];
+ char buf[LINE_MAX], ebuf[100];
dprintf("cfline(\"%s\", f, \"%s\", \"%s\", \"%s\")\n", line, prog,
host, pfilter);
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, May 18, 7:48 AM (12 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33238535
Default Alt Text
D27206.id79503.diff (4 KB)
Attached To
Mode
D27206: syslogd: Added -M option that limit maximum length of forwarded message
Attached
Detach File
Event Timeline
Log In to Comment