- Description:
- OpenBSD Network Shell
- Last Change:
- Clone URL:
ssh://anonymous@git.chirpysoft.be/nsh.git
Commit Briefs
add commands to control syslogd (syslog)
Currently supported syslog commands: syslog no syslog syslog reload syslog udp-af inet4 syslog udp-af inet6
BUG-FIX Update sysctl.c to fix no ip ipsec-pfs command bug
Update sysctl.c to fix no ip ipsec-pfs command bug ip ipsec-pfs and no ipipsec-pfs were broken and not having an effect on the net.inet.ip.ipsec-pfs
Update stats.c to fix mbuf prints (compatibility broken due to changes in base)
Stefan@ reviewed On Sun, Aug 06, 2023 at 11:20:07PM +0100, Tom Smyth wrote: > Folks, > > I was trying to test the functions I was proposing to edit and I got the > following warning > > nsh(p)/sho kernel mbuf > % mbpr: unexpected change to mbstat; check source > > This issue occurs before and after made changes to get rid of the warning We will need the tweak below to fix this issue. This tweak is coming from the bottom of https://gothub.org/?action=diff&commit=cea35e798e12953fe0c2bf514e802d209589bc05&path=src.git which is another diff by yasuoka related to resizing mbstat.m_mtypes. diff /home/stsp/src/nsh commit - 574d5c2d6a16ae5600d65fedc157d03e7fcfdd43 path + /home/stsp/src/nsh blob - 8fc7ec538398cea9a0d4e2a87d378caf25b7ab6f file + stats.c --- stats.c +++ stats.c @@ -782,7 +782,7 @@ mbpr(void) memset(&seen, 0, sizeof(seen)); - if (nmbtypes != 256) { + if (nmbtypes != MBSTAT_COUNT) { printf("%% mbpr: unexpected change to mbstat; check source\n"); return; }
Update stats.c to fix format types due to changes in 7.3+ current
Peer reviewed by Stefan@ On Sun, Aug 06, 2023 at 09:25:23PM +0100, Tom Smyth wrote: > Does the following diff make sense ... ti does get rid of the compiler > warnings.. but I wanted to be certain... > > tobsd# diff nsh1.2.4/nsh/stats.c nsh1.2.2/nsh/stats.c > 855c855 > < printf("\t\t%u mbuf%s allocated to %s\n", > --- > > printf("\t\t%ld mbuf%s allocated to %s\n", > 863c863 > < printf("\t\t%u mbuf%s allocated to <mbuf type %d>\n", > --- > > printf("\t\t%ld mbuf%s allocated to <mbuf type %d>\n" These %u should be changed to %lu, not %ld. Then this fix is OK. The same %u -> %lu change was made in yasuoka's diff for OpenBSD netstat: https://gothub.org/?action=diff&commit=032e1cec45baf26f9fcab0835526606daebe822f&headref=HEAD&path=src.git
Update stats.c compiler warnings
diff nsh1.2.4/nsh/stats.c nsh1.2.2/nsh/stats.c > 781c781 > < int nmbtypes = sizeof(mbstat.m_mtypes) / sizeof(short); > --- > > int nmbtypes = sizeof(mbstat.m_mtypes) / sizeof(long); Your fix is correct. I would prefer an alternative fix which infers the size of array elements via the sizeof(array[0]) idiom: int nmbtypes = sizeof(mbstat.m_mtypes) / sizeof(mbstat.m_mtypes[0]); The above expression will remain correct regardless of any future element size changes. And since other nsh code is already using the OpenBSD-specific nitems() macro, which is a shorthand for the above idiom, we might as well use it to write the above expression in a more readable way:
important regression fix: do not truncate config files in /etc
Tom Smyth found during testing that when editing config files via the "edit" ctl commands we would always truncate existing files in /etc. And thus always see an empty file to load an example for. Fix this by passing the correct mode to fopen(): a+ instead of w+ Committing right now to prevent data loss. People running nsh built from the previous commit 574d5c2d6a16ae5600d65fedc157d03e7fcfdd43 should update.
fill empty configuration files with an example config from /etc/examples
If the user begins editing an empty file which corresponds to a file in the /etc/examples directory offer to load this example for editing. Suggested by Tom Smyth. ok tom, chris
leave pf processing of rc(8) enabled in integration script
Otherwise pfctl -e will never be run during boot, leaving pf disabled by default.
Merge pull request #139 from stspdotname/env
add 'show environment', 'setenv', and 'unsetenv' commands
Branches
Tree
README
nsh//network config shell//Chris Cappuccio <chris@nmedia.net> version 1.1 NSH is a CLI intended for OpenBSD-based network appliances. It replaces ifconfig, sysctl and route with its own simple command language, and encapsulates configuration for other daemons into one place, effectively replacing /etc/netstart and parts of /etc/rc for appliance-style usage. Daemons and services encapsulated by nsh: bgpd, dhcpd, dhcpleased, dhcrelay, dvmrpd, eigrpd, ftp-proxy, ifstated, inetd, iked, ipsecctl, ldapd, ldpd, npppd, ntpd, ospfd, ospf6d, pf, rad, relayd, resolvd, ripd, sasyncd, slaacd, smtpd, snmpd, sshd, tftpd, tftp-proxy. NSH is freely licensed, in the BSD style. In conjunction with the OpenBSD kernel and the daemons you wish to control, you have a fully functioning system. See https://github.com/yellowman/nsh/wiki/NSH-Manual-page or nsh.8 manual for installation instructons and command set. See the Todo list on https://github.com/users/yellowman/projects/1 for details on implementation status and future ideas. See http://github.com/yellowman/nsh/ for current source code repository. See http://www.nmedia.net/nsh/ for example configurations and mailing list. See https://www.youtube.com/watch?v=WMKxIHaWaG0 for an EurobsdCon 2022 Presentation on NSH for network administrators.