Date: Thu, 2 May 2013 09:23:24 GMT From: Levent Serinol <lserinol@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: misc/178295: small change to dmesg utility Message-ID: <201305020923.r429NOGw061917@red.freebsd.org> Resent-Message-ID: <201305020930.r429U07t070798@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305020923.r429NOGw061917>