Commit Briefs

b740cdab60 Stefan Sperling

bump version number for release (tags/v1.2)


343280d828 Stefan Sperling

missed two makefiles for DESTDIR to PREFIX conversion



4d94c0a117 GitHub

Update ctl.c add Sentinal as caught and suggested by Stsp

Update ctl.c add Sentinal as caught and suggested by Stsp


217211a383 Stefan Sperling

sync dist file list


45cf44c0fe Stefan Sperling

only create nsh database in privileged mode

Avoids noisy warnings on startup as a regular user when the database does not exist yet. ok chris


b617ed0565 Stefan Sperling

ensure that build timestamp is kept up-to-date on each build


e5e26f31af Stefan Sperling

make -current builds display build timestamp and compilation info in greeting

Suggested by Tom


63eda621ba Stefan Sperling

generate man command tab-completion table with a script at build-time

This prevents the table from becoming out of date going forward. There were a few tags in nsh.8 which weren't yet being displayed: + { "inet6", "Search for tag inet6", CMPL0 NULL, 0 }, + { "powerdown", "Search for tag powerdown", CMPL0 NULL, 0 }, + { "saveenv", "Search for tag saveenv", CMPL0 NULL, 0 }, And an error has been corrected: - { "unsetenv", "Search for tag setenv", CMPL0 NULL, 0 }, + { "unsetenv", "Search for tag unsetenv", CMPL0 NULL, 0 },


16a04e0fcc Stefan Sperling

add a dhcp restart command; requested by Tom


eb5d12f955 Stefan Sperling

fix sqlite API error handling

- call sqlite3_errmsg(db) before closing the db, not after - sqlite3_errmsg() can only be used when sqlite3_step() returns SQLITE_ERROR - check for errors from sqlite3_finalize() - close db handle even when an error occurred during sqlite3_open() with suggestions from chris testing + ok tom


dd054fead9 Stefan Sperling

Fix dhcpd handling with respect to rdoamins

Run dhcpd in the correct rdomain when rdomain is != 0 and start dhcpd with a list of interfaces on its command line. All interfaces must be in the same rdomain; dhcpd will then set its own rdomain accordingly. Use a separate DHCP lease database per rdomain just in case a given MAC and IP tuple appears in multiple rdomains. earlier version ok + testing by Tom


85c6a75007 Stefan Sperling

allow T_HANDLER to process any number of arguments between 0 and 6

This way we can write handlers that accept all arguments listed in their ctl table as actual arguments, rather than passing unused parameters which contain ununitialized garbage. The benefit is better clarity about the expected values of arguments passed on by handler functions. Adjust motd and crontab handlers accordingly which use T_HANDLER. All instances of call_editor() now use T_HANDLER_FILL1. ok chris


b99c9f3f17 Stefan Sperling

fix conversion of struct ctl2->table to struct ctl->table

The old code would only convert the first command table entry to a dummy struct ctl sitting on the stack. This confuses code which loops over the command table and requires a sentinel to break out of this loop. Segfault found by Tom


51640dae4f Stefan Sperling

detect ambiguous matches from genget on a ctl2 table

Cannot happen right now since the table has only one entry but better be prepared for a future where we would crash otherwise.


8f5b5e45a9 Stefan Sperling

repair "write-config" command which broke with introduction of struct ctl2

Writing any changes to dhcp config was causing "genget internal failure". Regression found by Tom.


0b2393c6d7 Stefan Sperling

always keep basic environment variables intact after 'enable' command

Make nshdoas preserve some important environment variables even when there is no rule in /etc/doas.conf. Without a matching rule in doas.conf we ended up running the privileged shell in an empty environment, which leads to tools such as vi(4) erroring out for lack of a terminal type. As before, the keepenv option in /etc/doas.conf can be used to preserve the entire user environment. We now preserve the following variables by default: DOAS_USER=nsh # added by nshdoas HOME=/root # overridden by nshdoas LOGNAME=root # overridden by nshdoas PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin SHELL=/usr/local/bin/nsh TERM=xterm USER=root # overridden by nshdoas Problem noticed by Tom.


df1b71b4ff Stefan Sperling

introduce struct ctl2 with backwards compat wrappers

The new struct avoids the necessity to cast configuration file test handler arguments from char ** to a char *, such that the char ** pointer can be stored in ctl->args[1]. Such shadowing of variable types results in code that is hard to follow. We can convert daemons one-by-one to fully replace struct ctl eventually. As an example, convert dhcpd handling to struct ctl2 already. Ok tom, chris


e05df6135a GitHub

Merge pull request #143 from smytht/master

Improve Readme by converting to markdown and adding a quick installation guide for nsh


46c96f53cc GitHub

Update README.md use email addresses proper

Update README.md use email addresses proper


5b66ac0b69 Stefan Sperling

backout previous dhcp rdomain commits

I forgot that these diffs only work correctly with the &fillargs patch which has been backed out. This needs more work before it can come back...


00e8db4656 GitHub

Update README.md fix typo

fix typo screen not scree


2d3516ed89 Stefan Sperling

use a separate DHCP lease database per rdomain

ok Tom


58ba5c9058 GitHub

Update README.md fix number formats

Update README.md fix number formats


0698bd5fd3 Stefan Sperling

run dhcpd in the correct rdomain when rdomain is != 0

test + ok Tom