misc/178295: small change to dmesg utility
Levent Serinol
lserinol at gmail.com
Thu May 2 09:30:00 UTC 2013
>Number: 178295
>Category: misc
>Synopsis: small change to dmesg utility
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu May 02 09:30:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Levent Serinol
>Release: 9 and 10
>Organization:
Mynet
>Environment:
FreeBSD webmail105.mynet.com 10.0-CURRENT FreeBSD 10.0-CURRENT #5: Thu Mar 14 20:28:24 EET 2013 root at xxx.com:/usr/obj/usr/src/sys/GENERIC amd64
>Description:
I would like to submit a small patch for dmesg system utility which implements "-c" parameter like the other *nix systems support to clear current kernel message buffer instead of using "sysctl kern.msgbuf_clear=1" command for easier administration usage and similarity between other unix systems.
Here i wrote an article about this issue sometime ago.
http://lserinol.blogspot.com/2012/02/linux-like-dmesg-in-freebsd.html
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
*** dmesg.c.org Tue Jan 3 19:04:44 2012
--- dmesg.c Mon Mar 12 15:48:34 2012
***************
*** 82,95 ****
size_t buflen, bufpos;
long pri;
! int all, ch;
all = 0;
(void) setlocale(LC_CTYPE, "");
memf = nlistf = NULL;
! while ((ch = getopt(argc, argv, "aM:N:")) != -1)
switch(ch) {
case 'a':
all++;
break;
case 'M':
memf = optarg;
--- 82,99 ----
size_t buflen, bufpos;
long pri;
! int all, ch, clear;
all = 0;
+ clear = 0;
(void) setlocale(LC_CTYPE, "");
memf = nlistf = NULL;
! while ((ch = getopt(argc, argv, "acM:N:")) != -1)
switch(ch) {
case 'a':
all++;
break;
+ case 'c':
+ clear++;
+ break;
case 'M':
memf = optarg;
***************
*** 192,195 ****
--- 196,202 ----
(void)strvisx(visbp, p, nextp - p, 0);
(void)printf("%s", visbp);
+ if (clear)
+ if (sysctlbyname("kern.msgbuf_clear", NULL, NULL, &clear, sizeof(int)) == -1)
+ err(1, "sysctl kern.msgbuf_clear");
}
exit(0);
***************
*** 199,203 ****
usage(void)
{
! (void)fprintf(stderr, "usage: dmesg [-a] [-M core [-N system]]\n");
exit(1);
}
--- 206,210 ----
usage(void)
{
! (void)fprintf(stderr, "usage: dmesg [-a] [-c] [-M core [-N system]]\n");
exit(1);
}
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list