Commit Briefs

4267117b60 Stefan Sperling

add commands to control syslogd (syslog)

Currently supported syslog commands: syslog no syslog syslog reload syslog udp-af inet4 syslog udp-af inet6


444134c06c Stefan Sperling

add cmdargs_output_setenv; will be needed for future work

ok tom


f6eb52baa9 GitHub

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


e071ad386d GitHub

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; }


87295e3641 GitHub

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


41499e1536 GitHub

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:


a0faec76c1 Stefan Sperling

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.


574d5c2d6a Stefan Sperling

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


cec4f8cecc Stefan Sperling

leave pf processing of rc(8) enabled in integration script

Otherwise pfctl -e will never be run during boot, leaving pf disabled by default.


e84a83799e GitHub

Merge pull request #139 from stspdotname/env

add 'show environment', 'setenv', and 'unsetenv' commands


660067642d Stefan Sperling

add 'show environment', 'setenv', and 'unsetenv' commands

Being able to manage environment variables from within nsh will be useful, especially if nsh is used as a login shell because nsh's environment is visible to other commands run by nsh. Setting variables can now affect the behaviour of nsh itself. For example, it is possible to set NSH_MANUAL_PAGE from within a running nsh session and the new value will immediately be used by the 'manual' command. This particular variable is only useful to nsh developers themselves but the same mechanism could be used for user-facing variables in the future. If 'show environment' is run without further arguments all variables will be displayed. Otherwise the value of the specified variable will be displayed if the variable exists. All commands support tab-completion for names which already exist in the environment. The 'setenv' commands appends "=" if the name being completed does not yet exist in the environment.


2d331b3f3d GitHub

Merge pull request #138 from stspdotname/cron

add crontab commands: show crontab, crontab edit, crontab install


d84619f382 chris

wgpeer description

ok stsp@



5cf29cab52 chris

Remove ndp repeat (unused)

ok stsp@


a514ecfd17 Stefan Sperling

add crontab commands: show crontab, crontab edit, crontab install

For now, display and edit the crontab file of the root user only. The "show crontab" command displays the root user's crontab as shown by the crontab -l command. Editing is implemented via a new CTL handler which knows about the semantics of the crontab(1) command. If an NSH configuration contains crontab rules then the "crontab install" command appears in the running-config in order to install the crontab file managed by nsh to the system with crontab(1).



dbd13edec1 Stefan Sperling

fix section number displayed in the bgpnsh man page


e1055a045b Stefan Sperling

backout previous: the bgpnsh manual page belongs in manual section 1

Tom suggests sticking to section 8; I overlooked that bgplgsh is in section 8


4bd0390c24 Stefan Sperling

the bgpnsh manual page belongs in manual section 1


c68848fc55 Stefan Sperling

point readers at Section 7 from the enable command section


eeb7412e12 Stefan Sperling

document new behaviour of the enable commmand



e5955f9ed5 Stefan Sperling

fix a typo I put into the man page


8a89202652 Stefan Sperling

man page updates related to the new -e re-exec feature