chiark / gitweb /
secnet.git
4 years agofix stub Makefile to use MAKECMDGOALS
Ian Jackson [Wed, 13 Nov 2019 17:20:22 +0000 (17:20 +0000)]
fix stub Makefile to use MAKECMDGOALS

otherwise if you give multiple goals it would reenter main.mk

4 years agoactually reject missing .sd.mk files when appropriate
Ian Jackson [Wed, 13 Nov 2019 17:20:12 +0000 (17:20 +0000)]
actually reject missing .sd.mk files when appropriate

4 years agodeps .*.d
Ian Jackson [Wed, 13 Nov 2019 17:17:28 +0000 (17:17 +0000)]
deps .*.d

4 years agodocs
Ian Jackson [Wed, 13 Nov 2019 16:52:49 +0000 (16:52 +0000)]
docs

4 years agoadd missing ignore
Ian Jackson [Wed, 13 Nov 2019 16:52:43 +0000 (16:52 +0000)]
add missing ignore

4 years agobetter generation of MAKEFILE_TEMPLATES (dedupe)
Ian Jackson [Wed, 13 Nov 2019 16:52:29 +0000 (16:52 +0000)]
better generation of MAKEFILE_TEMPLATES (dedupe)

4 years agodo not demand \W after CAPS and lc
Ian Jackson [Wed, 13 Nov 2019 16:52:12 +0000 (16:52 +0000)]
do not demand \W after CAPS and lc

4 years agomake TARGETS make :: rules
Ian Jackson [Wed, 13 Nov 2019 16:51:53 +0000 (16:51 +0000)]
make TARGETS make :: rules

4 years agochange filenames
Ian Jackson [Wed, 13 Nov 2019 16:12:20 +0000 (16:12 +0000)]
change filenames

4 years agowip docs
Ian Jackson [Wed, 13 Nov 2019 15:27:02 +0000 (15:27 +0000)]
wip docs

4 years agoalways run regenerate from config.status
Ian Jackson [Wed, 13 Nov 2019 15:26:43 +0000 (15:26 +0000)]
always run regenerate from config.status

it is too hard to figure out when to do this, and it is fast

4 years agowip docs, before rename .mk.in
Ian Jackson [Wed, 13 Nov 2019 15:20:56 +0000 (15:20 +0000)]
wip docs, before rename .mk.in

4 years agomake Perdir.mk.in optional
Ian Jackson [Wed, 13 Nov 2019 15:16:43 +0000 (15:16 +0000)]
make Perdir.mk.in optional

4 years agofurther refactor filter_subdir_mk, replace loop with calls, nfc
Ian Jackson [Wed, 13 Nov 2019 15:16:23 +0000 (15:16 +0000)]
further refactor filter_subdir_mk, replace loop with calls, nfc

4 years agofurther refactor filter_subdir_mk, moving $srcdir, nfc
Ian Jackson [Wed, 13 Nov 2019 15:15:41 +0000 (15:15 +0000)]
further refactor filter_subdir_mk, moving $srcdir, nfc

4 years agorefactor filter_subdir_mk, breaking out $pi, nfc
Ian Jackson [Wed, 13 Nov 2019 15:14:55 +0000 (15:14 +0000)]
refactor filter_subdir_mk, breaking out $pi, nfc

4 years agowip docs
Ian Jackson [Wed, 13 Nov 2019 15:05:27 +0000 (15:05 +0000)]
wip docs

4 years agosort regen
Ian Jackson [Wed, 13 Nov 2019 15:05:22 +0000 (15:05 +0000)]
sort regen

4 years agovarious stuff into submakefiles
Ian Jackson [Wed, 13 Nov 2019 15:05:14 +0000 (15:05 +0000)]
various stuff into submakefiles

4 years agowip docs
Ian Jackson [Wed, 13 Nov 2019 14:48:15 +0000 (14:48 +0000)]
wip docs

4 years agomove much into usual.mk.in
Ian Jackson [Wed, 13 Nov 2019 13:48:52 +0000 (13:48 +0000)]
move much into usual.mk.in

4 years agocheck right thing in config_targets
Ian Jackson [Wed, 13 Nov 2019 13:48:34 +0000 (13:48 +0000)]
check right thing in config_targets

4 years ago&:include feature
Ian Jackson [Wed, 13 Nov 2019 13:48:21 +0000 (13:48 +0000)]
&:include feature

4 years ago$enoent_ok and GEN filehandle (nfc)
Ian Jackson [Wed, 13 Nov 2019 13:47:48 +0000 (13:47 +0000)]
$enoent_ok and GEN filehandle (nfc)

4 years agobuffering_output feature (nfc)
Ian Jackson [Wed, 13 Nov 2019 13:47:16 +0000 (13:47 +0000)]
buffering_output feature (nfc)

4 years agobreak out process_input_mk (nfc)
Ian Jackson [Wed, 13 Nov 2019 13:26:00 +0000 (13:26 +0000)]
break out process_input_mk (nfc)

4 years agorun config.status with selective tags, better, docs
Ian Jackson [Wed, 13 Nov 2019 13:13:19 +0000 (13:13 +0000)]
run config.status with selective tags, better, docs

4 years agorun config.status with selective tags
Ian Jackson [Wed, 13 Nov 2019 13:04:43 +0000 (13:04 +0000)]
run config.status with selective tags

4 years agoWIP attempt to run config.status with selective tags
Ian Jackson [Wed, 13 Nov 2019 12:54:19 +0000 (12:54 +0000)]
WIP attempt to run config.status with selective tags

Does not work right now...

4 years agoclarify comment
Ian Jackson [Wed, 13 Nov 2019 01:30:35 +0000 (01:30 +0000)]
clarify comment

4 years agofix out of tree builds
Ian Jackson [Wed, 13 Nov 2019 01:24:52 +0000 (01:24 +0000)]
fix out of tree builds

4 years agofixes
Ian Jackson [Wed, 13 Nov 2019 01:09:37 +0000 (01:09 +0000)]
fixes

4 years agodocs
Ian Jackson [Wed, 13 Nov 2019 00:54:51 +0000 (00:54 +0000)]
docs

4 years agodocs
Ian Jackson [Wed, 13 Nov 2019 00:53:01 +0000 (00:53 +0000)]
docs

4 years ago&! new esc can be anything
Ian Jackson [Wed, 13 Nov 2019 00:52:41 +0000 (00:52 +0000)]
&! new esc can be anything

4 years agotidying
Ian Jackson [Wed, 13 Nov 2019 00:44:11 +0000 (00:44 +0000)]
tidying

4 years agotidying
Ian Jackson [Wed, 13 Nov 2019 00:43:46 +0000 (00:43 +0000)]
tidying

4 years agotidying
Ian Jackson [Wed, 13 Nov 2019 00:42:38 +0000 (00:42 +0000)]
tidying

4 years agotidying
Ian Jackson [Wed, 13 Nov 2019 00:41:30 +0000 (00:41 +0000)]
tidying

4 years agotidying
Ian Jackson [Wed, 13 Nov 2019 00:34:02 +0000 (00:34 +0000)]
tidying

4 years agodep on subdirmk.ac
Ian Jackson [Wed, 13 Nov 2019 00:29:04 +0000 (00:29 +0000)]
dep on subdirmk.ac

4 years agoCONFIGURE_ACS
Ian Jackson [Wed, 13 Nov 2019 00:28:08 +0000 (00:28 +0000)]
CONFIGURE_ACS

4 years agoPerdir dep
Ian Jackson [Wed, 13 Nov 2019 00:23:39 +0000 (00:23 +0000)]
Perdir dep

4 years agocleaning
Ian Jackson [Wed, 13 Nov 2019 00:23:32 +0000 (00:23 +0000)]
cleaning

4 years agoWIP
Ian Jackson [Tue, 12 Nov 2019 17:56:46 +0000 (17:56 +0000)]
WIP

4 years agoWIP
Ian Jackson [Tue, 12 Nov 2019 17:51:40 +0000 (17:51 +0000)]
WIP

4 years agoWIP REORG
Ian Jackson [Tue, 12 Nov 2019 17:34:03 +0000 (17:34 +0000)]
WIP REORG

4 years agoWORKS
Ian Jackson [Tue, 12 Nov 2019 17:13:06 +0000 (17:13 +0000)]
WORKS

4 years agoDOES NOT WORK
Ian Jackson [Tue, 12 Nov 2019 17:11:26 +0000 (17:11 +0000)]
DOES NOT WORK

4 years agoTEST MULTI OUTPUT THING
Ian Jackson [Tue, 12 Nov 2019 17:10:03 +0000 (17:10 +0000)]
TEST MULTI OUTPUT THING

4 years agoWIP
Ian Jackson [Mon, 11 Nov 2019 02:15:08 +0000 (02:15 +0000)]
WIP

4 years agowip
Ian Jackson [Mon, 11 Nov 2019 02:12:54 +0000 (02:12 +0000)]
wip

4 years agoWIP
Ian Jackson [Mon, 11 Nov 2019 01:46:10 +0000 (01:46 +0000)]
WIP

4 years agowip
Ian Jackson [Mon, 11 Nov 2019 00:57:54 +0000 (00:57 +0000)]
wip

4 years agoWIP
Ian Jackson [Mon, 11 Nov 2019 00:55:16 +0000 (00:55 +0000)]
WIP

4 years agowip
Ian Jackson [Mon, 11 Nov 2019 00:16:44 +0000 (00:16 +0000)]
wip

4 years agoWIP
Ian Jackson [Mon, 11 Nov 2019 00:03:27 +0000 (00:03 +0000)]
WIP

4 years agoWIP
Ian Jackson [Sun, 10 Nov 2019 21:05:54 +0000 (21:05 +0000)]
WIP

4 years agoCOMING ALONG
Ian Jackson [Sun, 10 Nov 2019 21:00:25 +0000 (21:00 +0000)]
COMING ALONG

4 years agoWIP
Ian Jackson [Sun, 10 Nov 2019 20:55:50 +0000 (20:55 +0000)]
WIP

4 years agoWIP
Ian Jackson [Sun, 10 Nov 2019 20:54:28 +0000 (20:54 +0000)]
WIP

4 years agoRUNS BUT NOT VERY GOOD
Ian Jackson [Sun, 10 Nov 2019 20:49:18 +0000 (20:49 +0000)]
RUNS BUT NOT VERY GOOD

4 years agoWIP
Ian Jackson [Sun, 10 Nov 2019 20:40:23 +0000 (20:40 +0000)]
WIP

4 years agoWIP
Ian Jackson [Sun, 10 Nov 2019 20:39:57 +0000 (20:39 +0000)]
WIP

4 years agoWIP
Ian Jackson [Sun, 10 Nov 2019 20:31:11 +0000 (20:31 +0000)]
WIP

4 years agoWIP
Ian Jackson [Sun, 10 Nov 2019 20:28:32 +0000 (20:28 +0000)]
WIP

4 years agoWIP
Ian Jackson [Sun, 10 Nov 2019 20:28:18 +0000 (20:28 +0000)]
WIP

4 years agoWIP
Ian Jackson [Sun, 10 Nov 2019 20:24:06 +0000 (20:24 +0000)]
WIP

4 years agoBEFORE CHANGE &&
Ian Jackson [Sun, 10 Nov 2019 19:24:39 +0000 (19:24 +0000)]
BEFORE CHANGE &&

4 years agoGO BACK TO HIER
Ian Jackson [Sun, 10 Nov 2019 13:41:00 +0000 (13:41 +0000)]
GO BACK TO HIER

4 years agoBFORE NOT QUAD
Ian Jackson [Sun, 10 Nov 2019 13:40:26 +0000 (13:40 +0000)]
BFORE NOT QUAD

4 years agoWIP PART OF SUBDIR
Ian Jackson [Sun, 10 Nov 2019 13:32:37 +0000 (13:32 +0000)]
WIP PART OF SUBDIR

4 years agoRevert "BEFORE NO BUILD TREE"
Ian Jackson [Sun, 10 Nov 2019 13:31:36 +0000 (13:31 +0000)]
Revert "BEFORE NO BUILD TREE"

This reverts commit a423046ad42c0fbdf7fd3afad88dfe57dfbd30ca.

4 years agoBEFORE NO BUILD TREE
Ian Jackson [Sun, 10 Nov 2019 13:31:08 +0000 (13:31 +0000)]
BEFORE NO BUILD TREE

4 years agoWIP
Ian Jackson [Sun, 10 Nov 2019 13:10:29 +0000 (13:10 +0000)]
WIP

4 years agoWIP NEW STYLE
Ian Jackson [Sun, 10 Nov 2019 12:43:18 +0000 (12:43 +0000)]
WIP NEW STYLE

4 years agoRENAME TO .IN
Ian Jackson [Sun, 10 Nov 2019 12:05:13 +0000 (12:05 +0000)]
RENAME TO .IN

4 years agolib/t/toytest.c: Make test more perspicuous.
Mark Wooding [Fri, 8 Nov 2019 17:32:50 +0000 (17:32 +0000)]
lib/t/toytest.c: Make test more perspicuous.

What was I thinking?

4 years agoExample project using nonrecursive make.
Mark Wooding [Fri, 8 Nov 2019 16:55:32 +0000 (16:55 +0000)]
Example project using nonrecursive make.

4 years agomake-secnet-sites: Delete old `reserved' attempt
Ian Jackson [Wed, 6 Nov 2019 21:47:18 +0000 (21:47 +0000)]
make-secnet-sites: Delete old `reserved' attempt

This appears to be a nascent attempt to fix the problem now solved by
  "make-secnet-sites: prefix names when writing sites file"
by reserving the names of make-secnet-sites keywords.

However this is wrong because what needs to be reserved are secnet
config file conventional key names, and predefined words; there is no
clash between node names and make-secnet-sites keywords because they
appear in different parts of the sites file syntax (and the mss
keywords don't appear in the config file at all).

And anyway the `reserved' dictionary was never used anywhere so this
mechanism wasn't complete.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agomake-secnet-sites: prefix names when writing sites file
Ian Jackson [Mon, 4 Nov 2019 15:09:44 +0000 (15:09 +0000)]
make-secnet-sites: prefix names when writing sites file

SUMMARY

make-secnet-sites must copy names (vpn, location and site names) from
the input sites file (which is not wholly trusted) to the secnet
config file.

Since secnet 0.5.0 we check these name strings for syntactic sanity.

However, they still live in a common namespace.  When secnet is
evaluating a part of the config file, it looks up through the
containing structures.

It is possible for a sites file to specify, say, a site called "dh" or
something.  These currently generate bad configuration files.

IMPLEMENTATION

There are 4 lines of code which look like a nascent attempt to fix
this problem but (i) they are wrong and (ii) the reserved list is not
actually used anywhere.

Instead, we fix this by prefixing vpn names with V, location names
with L, and site names with S.  These obviously won't clash with
conventional names, predefined (builtin) closures, etc.  This is fine
because sensible configurations do not refer to the individual
make-secnet-sites config key names directly.

We achieve this by replacing the relevant references to the node's
name with calls to a new kname() method on the `level' class.  The new
behaviour is made optional, for compatibility reasons, but is enabled
by default.

We must disable this feature in the make-secnet-site tests because we
have a fixed expected output.  But the tests with actual secnet are
oblivious, since "stest: Use top-level mss-generated `all-sites' key".

THREAT ANALYSIS

An attacker can't do anything very interesting with this. right now.
A malicious sites file can generate a configuration file which secnet
will reject.  This is a nuisance but right now we don't have a system
for automatically incorporating sites data.  So I am not treating this
as a vulnerability.

It's not a more serious problem because the attacker can only bind the
keys to dictionaries containing site information written by
make-secnet-sites.  When the secnet configuration consumer code looks
something up and gets a dictionary when it was expecting something
else, it is an error.

There are few places where a dictionary is expected:

Path lookups expect a dictionary, but the only interesting scopes that
the attacker can pollute are the per-site config dictionaries, which
do not refer to paths, only individual keys.  (The "vpn" and
"all-sites" constructs from make-secnet sites contain path references,
but all the attacker can do there is to rebind what is supposed to be
an entry in the root namespace, resulting in a path which cannot be
resolved because it looks for too many subcomponents.)

There aren't currently any conventional keys with dictionary values
other than site's "comm-info" where the only key is
"dedicated-interface-addr".  The attacker could define a location
"comm-info" with a site "dedicated-interface-addr", which would be
interpreted as by peer sites as a "dedicated-interface-addr" key
referrinng to a dictionary (an error), or a site "comm-info" which
wouldn't contain that subkey at all and would therefore have no
effect.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agostest: Use top-level mss-generated `all-sites' key
Ian Jackson [Wed, 6 Nov 2019 18:29:11 +0000 (18:29 +0000)]
stest: Use top-level mss-generated `all-sites' key

We are going to change the inner-level names in a moment.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agopython: Provide feature for argparse --[no-]foo options
Ian Jackson [Mon, 4 Nov 2019 15:08:13 +0000 (15:08 +0000)]
python: Provide feature for argparse --[no-]foo options

This is surprisingly awkward.  StackExchange has one.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoMakefile.in: break out PYMODULES
Ian Jackson [Mon, 4 Nov 2019 15:01:22 +0000 (15:01 +0000)]
Makefile.in: break out PYMODULES

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agomake-secnet-sites: output_data: Change recursive variables
Ian Jackson [Sun, 3 Nov 2019 16:58:17 +0000 (16:58 +0000)]
make-secnet-sites: output_data: Change recursive variables

Pass a tuple path, of the objects. rather than the string so far and
an indent value.

This will make it easier to more complex things here.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agomake-secnet-sites: output_vpnflat: Change recursive variables
Ian Jackson [Sun, 3 Nov 2019 12:52:31 +0000 (12:52 +0000)]
make-secnet-sites: output_vpnflat: Change recursive variables

Pass a tuple path, of the objects. rather than the string so far and
an indent value.

This will make it easier to more complex things here.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agotests: Rename locations to `in' and `out'
Ian Jackson [Sun, 3 Nov 2019 12:51:05 +0000 (12:51 +0000)]
tests: Rename locations to `in' and `out'

It is better for testing for the location names not to be equal to the
site names.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agomake-secnet-sites: Fix argument parsing with options
Ian Jackson [Thu, 7 Nov 2019 00:01:44 +0000 (00:01 +0000)]
make-secnet-sites: Fix argument parsing with options

In "make-secnet-sites: Use argparse rather than ad-hoc parser",
we missed a reference to sys.argv.  The effect is that if
make-secnet-sites run in sites file output mode, and provided
with options, the output is written to the wrong place.

The only syntax that worked in 0.4.5 and broke in 0.5.0 is
make-secnet-sites -P.  So here we fix that regression.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoMakefile.in: release checklist: use -j8 for sbuild
Ian Jackson [Thu, 24 Oct 2019 18:23:07 +0000 (19:23 +0100)]
Makefile.in: release checklist: use -j8 for sbuild

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Start 0.5.1~
Ian Jackson [Thu, 24 Oct 2019 18:22:58 +0000 (19:22 +0100)]
changelog: Start 0.5.1~

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: finalise 0.5.0 v0.5.0
Ian Jackson [Thu, 24 Oct 2019 18:12:01 +0000 (19:12 +0100)]
changelog: finalise 0.5.0

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agochangelog: Document NAK logging changes
Ian Jackson [Thu, 24 Oct 2019 17:33:07 +0000 (18:33 +0100)]
changelog: Document NAK logging changes

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agosite: Provide NAK reasons mentioning names and unpick failure
Ian Jackson [Sat, 21 Sep 2019 15:41:12 +0000 (16:41 +0100)]
site: Provide NAK reasons mentioning names and unpick failure

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoutil: priomsg: Provide and use priomsg_update_fixed
Ian Jackson [Sat, 21 Sep 2019 15:40:15 +0000 (16:40 +0100)]
util: priomsg: Provide and use priomsg_update_fixed

We are going to want to reuse this.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agosite: Record whynot in default (end of comm_notify) case
Ian Jackson [Sat, 21 Sep 2019 15:13:29 +0000 (16:13 +0100)]
site: Record whynot in default (end of comm_notify) case

send_nak will print the type and the two indices, so we don't.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agosite: named_for_us: Reorganise into "if"s
Ian Jackson [Sat, 21 Sep 2019 15:29:33 +0000 (16:29 +0100)]
site: named_for_us: Reorganise into "if"s

This gives us somewhere to put our whynot updates.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agosite: named_for_us: Introduce NAME_MATCHES
Ian Jackson [Sat, 21 Sep 2019 15:17:56 +0000 (16:17 +0100)]
site: named_for_us: Introduce NAME_MATCHES

This will make the next changes much smaller.

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agosite: Pass whynot through to named_for_us
Ian Jackson [Sat, 21 Sep 2019 15:10:59 +0000 (16:10 +0100)]
site: Pass whynot through to named_for_us

We only pass this as non-0 when, if named_for_us rejects, we actually
return false from comm_notify.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoudp: Use commcommon->why_unwanted
Ian Jackson [Sat, 21 Sep 2019 14:21:09 +0000 (15:21 +0100)]
udp: Use commcommon->why_unwanted

This is the one call site of comm_notify.  (If we had had any comm
that wasn't based on udp.c, that would have needed updating too.)

No overall functional change: nothing ever sets this yet, so we always
use the default message.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
4 years agoutil: Reorder information in NAK log messages
Ian Jackson [Sat, 21 Sep 2019 15:46:34 +0000 (16:46 +0100)]
util: Reorder information in NAK log messages

In particular, put the supplied reason string last so that it will be
unambiguous.  And putting the message type first seems more natural.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>