Commit Briefs

f20a053a00 Stefan Sperling

prevent leading spaces in rdomain-specific daemon config files (conf-indent)

Rules for rdomain-specific daemons have double-indentation in nshrc. When generating configuration files for daemons strip double-indentation instead of stripping only one level of indentation.


d601300890 Stefan Sperling

convert all command handlers to variadic functions (varargs)

Resolves dozens of: warning: passing arguments to a function without a prototype is deprecated in all versions of C and is not supported in C2x In traditional C the empty argument list () indicates that a function accepts an arbitrary amount of arguments of arbitary types. A function which takes no arguments must be declared with a (void) prototype instead. nsh has been making elaborate use of this feature by defining command handlers with () and passing arbitrary arguments to handlers depending on the use case. This coding style is not future-proof. In C++, () means "no arguments", the same as (void), and clang is now warning about this C feature going away in C2x, aligning C with C++. Make nsh future-proof by using variadic function prototypes (...) instead of () prototypes. Every handler now uses (int argc, char **argv, ...) as prototype: the argument count, an argument vector, followed by arbitrary arguments which can be extracted using the va_arg(3) function from stdarg.h. The variadic part of the argument list can be used to pass arguments of types other than char * without needing to convert them to strings and back. Using () as function prototype defeats type-checking done by the compiler, and the same is true for variadic arguments. We still need to manually make sure that the correct amount and types of arguments are passed in the variadic part of the handler's argument list. Many handlers already use the argument count + argument vector approach and do not need internal changes, just a new prototype. Some handlers now require use of va_start/va_arg/va_end to access additional arguments. For example, the interfaces handlers were passing an interface name and file descriptor before the argument count/vector. The order of arguments is now swapped, such that interface name and file descriptor get passed as part of the variable argument list.


b96221e6b0 Stefan Sperling

update K&R-C-style prototypes in kroute.c to modern C

Fixes warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x


d3156eb934 Stefan Sperling

implement 'clear' command in interface/bridge mode

resolves warning: unused function 'int_clear' [-Wunused-function]




0b2616cd90 Stefan Sperling

remove struct ctl2 and struct daemons2; convert everything to new format

test + ok Tom


4a206fc917 Stefan Sperling

fix whitespace in systatcs definition in commands.c


809a0cb537 Stefan Sperling

fix initialization of systatcs sentinel in commands.c

Repairs the following compile-time warning: nsh/commands.c:403:17: warning: suggest braces around initialization of subobject [-Wmissing-braces] { 0, 0, 0, 0 } ^~~~ { }



731e161842 Stefan Sperling

trim a comment which went beyond 80 columns


fcd96d69b5 Stefan Sperling

fix whitespace issues


fd352ad5f1 GitHub

if.c - vlan parent devices automatically disable

disable the child interface and change parent and enable interface after the change made... issue reported by Tom... fix authored by stsp tested by Tom and reviewed OK Tom and OK Chris


21775861a4 Stefan Sperling

preserve only manually added ndp table entries in startup config

nsh was mistakenly adding all ndp table entries to startup-config when the configuration was saved with write-config. This results in spurious 'permanent' ndp entries when the written config is loaded. If you find spurious permanent ndp entries on your system these entries must be removed via 'no ndp <IPv6 address>', then use 'write-config' to save the fixed the configuration. Alternatively, remove all lines which set unwanted permanent NDP entries from /etc/nshrc and reboot. Problem reported and fix tested by Tom. ok Tom


a199218926 GitHub

Merge pull request #164 from smytht/systat-feature

add show system-stats commands Ok Stsp@


bfc7e834d7 GitHub

Update cmdargs.c

Use proper english :) initialised not initalized and give an informative error



40daa21cd8 Stefan Sperling

oops, fix typo in previous which broke the build


0e3e46b7cc GitHub

add show system-stats commands

This is to allow nsh users to avail of systat functionality useful for queue stats and pf stats added full suite of systat features except nfs as I dont think those features are as interesting for a network appliance



00c101b246 GitHub

version bump for release 1.2.3 (tags/v1.2.3)


289def2f02 GitHub

fix misspelling of privileged (sorry)



0b080a2247 Stefan Sperling

don't skip empty lines in rules which store file contents

When file contents were stored in /etc/nshrc in a rules directive, such as contents of /etc/motd or sshd_config, empty lines were being stripped. ok Tom


9bdde78d5a Stefan Sperling

make the rtable command actually update the rtable of the nsh process

The assumption that nsh always runs in rdomain 0 is invalid. Stop assuming that cli_rtable is set to zero by default, and switch the nsh process rdomain accordingly as needed. Tests + ok Tom