Mark Wooding [Wed, 27 Sep 2017 22:56:07 +0000 (23:56 +0100)]
pkstream/pkstream.c: Fetch protocol family codes from addresses.
Now the only mentions of `AF_INET' are in the address-handling
functions.
Mark Wooding [Wed, 27 Sep 2017 22:49:01 +0000 (23:49 +0100)]
pkstream/pkstream.c: Introduce helper functions to fiddle with addresses.
The remaining places where pieces of addresses are fiddled with
directly, outside of these new functions, are:
* in `doaccept', where we continue inspect the peer address to see if
it's a wildcard, because we'll handle this in a very different way
later; and
* in `parseaddr', which needs to fill in addresses and port numbers.
Mark Wooding [Wed, 27 Sep 2017 22:38:38 +0000 (23:38 +0100)]
pkstream/pkstream.c: Wrap addresses up in a union.
This makes casting to `struct sockaddr' pointers more pleasant, but
doesn't do anything else of use yet. No functional change.
Mark Wooding [Wed, 27 Sep 2017 22:30:30 +0000 (23:30 +0100)]
pkstream/pkstream.c: Set a flag if we're listening.
Rather than having to check the address. This means that we don't need
to initialize `cw.me' if we /aren't/ listening, so don't.
Mark Wooding [Wed, 27 Sep 2017 19:49:00 +0000 (20:49 +0100)]
pkstream/pkstream.c: Rearrange socket setup, particularly `parseaddr'.
* Have `parseaddr' fill in a socket address structure directly.
* Change the interface to pass in either separate host and
service (does this remind you of anything?) names, or a single
combined string to be parsed apart, as indicated by a new flag
`paf_parse'.
* Have `main' keep track of the various host and service name strings
and then sort everything out at the end, rather than exercising the
resolver during option parsing. Take advantage of this by
diagnosing incompatible option combinations.
* To make this work, upgrade `cw.peer' to be full socket address.
* Factor out socket-address initialization, and initialize the
structures on demand rather than in advance.
Mark Wooding [Wed, 27 Sep 2017 09:49:38 +0000 (10:49 +0100)]
pkstream/pkstream.c: Reformat to my current conventions.
Squash tightly related instructions onto single lines where they fit.
Hoist variable declarations from inner scopes up to the function scope.
Mark Wooding [Wed, 27 Sep 2017 09:03:06 +0000 (10:03 +0100)]
peerdb/tripe-newpeers.in: Add a new resolver based on adnshost(1).
This can resolve names to IPv6 addresses, so use it if it's available.
Mark Wooding [Wed, 27 Sep 2017 08:51:04 +0000 (09:51 +0100)]
peerdb/tripe-newpeers.in: Split out a resolver base class.
Now we can add different kinds of resolvers a bit more easily, and
choose which one we want to use.
Mark Wooding [Wed, 27 Sep 2017 08:07:20 +0000 (09:07 +0100)]
peerdb/tripe-newpeers.in: Add support for v4 and v6 address literals.
At least they get canonified now. I think v4 literals should have
worked before, but it seems that they didn't. This adds a `6' flag to
request only the v6 addresses for a name, but currently you can predict
which addresses you get pretty well.
Mark Wooding [Wed, 27 Sep 2017 08:40:01 +0000 (09:40 +0100)]
peerdb/tripe-newpeers.in: Split `prepare' in twain.
There's now a front-end, still called `prepare', which establishes the
`ResolvingHost' if necessary, and a back-end, `_prepare' which actually
does the work.
You might well think that this is preparatory work for splitting out a
superclass. I couldn't possibly comment.
Mark Wooding [Tue, 26 Sep 2017 22:06:42 +0000 (23:06 +0100)]
peerdb/tripe-newpeers.in: Introduce the idea of multiple address families.
Have `ResolvingHost' track a list per address family. Add a `4' flag
requesting just the IPv4 address(es), as if we had any other kind to
return.
Mark Wooding [Tue, 26 Sep 2017 21:56:19 +0000 (22:56 +0100)]
peerdb/tripe-newpeers.in: Keep track of the canonical hostname too.
Not that I plan to do anything useful with that.
Mark Wooding [Tue, 26 Sep 2017 21:51:59 +0000 (22:51 +0100)]
peerdb/tripe-newpeers.in: Enhance addr-lookup syntax; return multiple addrs.
Keep track of multiple addresses for each host. Extend the $[...]
syntax to allow substitution of all of the addresses, rather than just
the first.
Mark Wooding [Tue, 26 Sep 2017 21:37:16 +0000 (22:37 +0100)]
peerdb/tripe-newpeers.in: Split out a class for a host's resolved names.
This becomes the primary kind of object maintained in the resolver's
dictionary.
Also formalize the arrangements for reporting whether name resolution
failed.
This is an initial step towards introducing IPv6 support, initially in
this program, and later across the entire project.
Mark Wooding [Sun, 13 May 2018 01:02:05 +0000 (02:02 +0100)]
server/tripe-admin.5.in: Add missing docs about `PRIVSEP' warnings.
I don't know where these went.
Mark Wooding [Wed, 13 Jun 2018 10:21:21 +0000 (11:21 +0100)]
keys/tripe-keys.conf.5.in: Fix typoed signature scheme name.
Mark Wooding [Sat, 12 May 2018 10:38:08 +0000 (11:38 +0100)]
server/admin.c: Delete a redundant ignoring of `SIGPIPE'.
The real one is in `main' in `tripe.c'.
Mark Wooding [Sat, 19 May 2018 19:41:45 +0000 (20:41 +0100)]
server/tripe.h: Fix indentation of a preprocessor directive.
This appears to have been broken since 2005.
Mark Wooding [Mon, 11 Jun 2018 12:09:33 +0000 (13:09 +0100)]
peerdb/tripe-newpeers.in (MissingSectionException): Fix constructor.
Mark Wooding [Mon, 11 Jun 2018 12:02:03 +0000 (13:02 +0100)]
svc/connect.in (addpeer): Use `boolean' filter rather than a local hack.
Now that `Peer.get' actually works properly, this is safe.
Mark Wooding [Mon, 11 Jun 2018 12:00:07 +0000 (13:00 +0100)]
svc/connect.in (Peer.get): Don't apply filter to default value.
Callers don't expect this, and there will be unfortunate behaviour. For
example, `T.timespec' explodes if handed a literal integer rather than a
string.
Mark Wooding [Mon, 11 Jun 2018 11:58:01 +0000 (12:58 +0100)]
server/tripe-admin.5.in: Add missing documentation for error messages.
Mark Wooding [Mon, 11 Jun 2018 11:45:29 +0000 (12:45 +0100)]
server/tripe-admin.5.in: Fix markup for error messages.
Mark Wooding [Sun, 27 May 2018 15:43:16 +0000 (16:43 +0100)]
peerdb/tripe-newpeers.in: Mark expected errors and report appropriately.
Introduce an `ExpectedError' class and catch it at top level, reporting
the error message in the traditional Unix style.
Mark Wooding [Sun, 27 May 2018 17:14:42 +0000 (18:14 +0100)]
peerdb/tripe-newpeers.in (BulkResolver): Add exception for resolution failure.
There's a space for describing the error properly, but we can't do that
at the moment because mLib's background resolver isn't loved.
Mark Wooding [Sun, 27 May 2018 13:49:24 +0000 (14:49 +0100)]
peerdb/tripe-newpeers.in (ConfigSection.items): Report `name'.
It's always there, even if it's synthetic. This changes the output,
including a `name' item in each host, but this is harmless (or possibly
even useful).
Maybe this should have been `@name', but it's too late for that now.
Mark Wooding [Sun, 27 May 2018 13:00:02 +0000 (14:00 +0100)]
peerdb/tripe-newpeers.in (ConfigSection): Fix handling of `@inherits'.
* Make `get' return it properly -- unexpanded (because that wouldn't
make sense).
* Make `items' mention it if applicable.
This doesn't affect the final output, since the CDB writing stage omits
keys whose name begins with `@'.
Mark Wooding [Sun, 27 May 2018 12:51:45 +0000 (13:51 +0100)]
peerdb/tripe-newpeers.in (ConfigSection.items): Push more cautiously.
Instead of recording which sections have been visited, record all
sections which have been pushed and avoid pushing them again. This
reduces pointless stack activity.
Mark Wooding [Sun, 27 May 2018 11:57:53 +0000 (12:57 +0100)]
peerdb/tripe-newpeers.in (ConfigSection.items): Rename `d' to `seen'.
We haven't tried to store useful values in this dictionary for a long
time. Give it a more useful name.
See? I do think about this.
Mark Wooding [Sun, 27 May 2018 01:28:20 +0000 (02:28 +0100)]
peerdb/tripe-newpeers.in: Fix memoization while resolving inheritance.
The memoization never worked properly. It's clear, because the code
tries to store old values in the `map' dictionary, that it /wants/ to
optimize repeated visits to the same parent section, but unfortunately
nothing actually picks these saved values up again. I can't tell any
more, but I think this is because the memoization map never stored the
path, so a second visit would return an unhelpful truncated path.
Also, the per-lookup memoization isn't really very effective: we
pointlessly walk the inheritance graph afresh for each `get' call.
Replace this with a per-section cache of inheritance-resolved lookups,
complete with path information.
Mark Wooding [Sun, 27 May 2018 01:20:47 +0000 (02:20 +0100)]
peerdb/tripe-newpeers.in: Factor out calculating the parent-section list.
Mark Wooding [Sat, 26 May 2018 13:48:11 +0000 (14:48 +0100)]
peerdb/tripe-newpeers.in: Remove (undocumented) whitespace fixing.
I don't think we ever needed this, except that there's a longstanding
mLib bug which means that newlines (and other whitespace other than
actual space characters) aren't escaped in `lax' mode, which would have
caused the `cdb-map' output to be broken.
Easy fix: turn off lax mode.
Mark Wooding [Sat, 26 May 2018 13:47:06 +0000 (14:47 +0100)]
peerdb/tripe-newpeers.in (ConfigSection.items): Just return names.
It has to do a full `get' for each one anyway, which the caller can do
just as well if they actually want to. Sometimes they don't, which
saves some effort.
Mark Wooding [Sat, 26 May 2018 13:42:36 +0000 (14:42 +0100)]
peerdb/tripe-newpeers.in: Abolish `ConfigSection.has_option'.
Instead, the caller just catches `MissingKeyException'.
Mark Wooding [Sat, 26 May 2018 13:38:03 +0000 (14:38 +0100)]
peerdb/tripe-newpeers.in: Split out a class for config sections.
This looks like a mess, but it mostly involves moving a bunch of methods
from `MyConfigParser' into the new `ConfigSection' class and fiddling
with callers.
Mark Wooding [Sat, 26 May 2018 12:55:02 +0000 (13:55 +0100)]
peerdb/tripe-newpeers.in (MyConfigParser): Abandon Python `ConfigParser'.
Instead, just parse the input by hand. This makes the behaviour easier
to specify properly. The language accepted is now actually as described
in the manpage, rather than also, say, stripping `;' comments (but not
`#' comments) from assignment and continuation lines, or interpreting a
`""' as an empty value.
Fortunately, the rest of the program doesn't make much use of the
`ConfigParser' protocol, so this isn't missed.
Mark Wooding [Sat, 26 May 2018 11:22:22 +0000 (12:22 +0100)]
peerdb/tripe-newpeers.in: Upper-case the compiled regexp names.
Just a cosmetic change.
Mark Wooding [Sat, 26 May 2018 11:14:41 +0000 (12:14 +0100)]
peerdb/tripe-newpeers.in (MyConfigParser._get): Compress vertically.
Just a cosmetic change.
Mark Wooding [Sat, 26 May 2018 11:01:29 +0000 (12:01 +0100)]
peerdb/tripe-newpeers.in (MyConfigParser._get): Automate path maintenance.
Rather than having lots of `path.pop()' calls, and hoping that
everything balances, wrap `try ... finally ...' around the method body.
Remove the explicit poppings, and simplify.
We still need to copy the path if we find a local result or raise an
exception.
Mark Wooding [Sat, 26 May 2018 10:53:11 +0000 (11:53 +0100)]
peerdb/tripe-newpeers.in: Count enhancements correctly.
I'll come in again.
Mark Wooding [Sun, 27 May 2018 14:59:13 +0000 (15:59 +0100)]
(Python): Use more modern `raise' syntax.
Mark Wooding [Sun, 27 May 2018 13:11:43 +0000 (14:11 +0100)]
peerdb/peers.in.5.in: It's not just `@inherits' which is excluded.
It has always been thus: keys which start with `@' are omitted. Fix the
manual so that it tells the truth.
Mark Wooding [Sun, 27 May 2018 13:08:19 +0000 (14:08 +0100)]
peerdb/peers.in (@PASSIVE): Remove redundant `@GLOBAL' parent.
It's not as if the order of direct parents makes any difference to the
resolution algorithm.
Mark Wooding [Fri, 25 May 2018 23:23:13 +0000 (00:23 +0100)]
(manpages): Fix inclusion of `defs.man'.
When the manpage machinery was last turned upside-down, way back in
2008 (commit
e99aedcf9373b3305c32e510c086bf3357b4736a), all of the
manpages were fixed to say `.so ../common/defs.man' instead of `.so
../defs.man.in'. Inexplicably, all but one of the manpages added since
then have had the wrong include request. Fix this silliness.
Note that this only affects formatting the manpages directly from the
source tree: there's build machinery which embeds the common definitions
in the built manpages which are installed or packaged, and that works
just fine. But it's still good to get this stuff right.
Just maybe I can avoid introducing more broken manpages in the future.
Mark Wooding [Fri, 11 May 2018 23:45:59 +0000 (00:45 +0100)]
svc/connect.in: Compress the code a bit.
Only whitespace changes.
Mark Wooding [Fri, 11 May 2018 23:45:14 +0000 (00:45 +0100)]
svc/connect.in: Add a backstop exception handler to the pinger loop.
It'll moan, but it won't actually kill the loop any more.
Mark Wooding [Fri, 11 May 2018 23:44:27 +0000 (00:44 +0100)]
svc/connect.in: Cope if a peer vanishes when we're trying to reconnect.
Mark Wooding [Sun, 1 Oct 2017 11:48:36 +0000 (12:48 +0100)]
svc/connect.in: Export the admin-socket name to inferior processes.
This way, if `connect' is run with a nonstandard `-a' option, it will
pass that along to `tripe-ifup' or whatever, so that, when it in turn
runs `tripectl', it'll be able to talk to the correct server.
Mark Wooding [Sat, 16 Sep 2017 15:22:36 +0000 (16:22 +0100)]
server/keyset.c: Present message types in hex.
Mark Wooding [Sun, 3 Sep 2017 23:18:41 +0000 (00:18 +0100)]
server/peer.c: Abstract out updating a peer's address.
Mark Wooding [Mon, 4 Sep 2017 01:25:41 +0000 (02:25 +0100)]
server/: Calculate address size on demand, rather than tracking it.
It's fine when the address is just in the peer spec, but this isn't
going to be the case forever.
Mark Wooding [Tue, 22 Aug 2017 23:10:49 +0000 (00:10 +0100)]
server/servutil.c: Reorder and categorize the functions.
Might be more coming. Not saying yet. :-)
Mark Wooding [Tue, 22 Aug 2017 23:08:54 +0000 (00:08 +0100)]
server/tripe.h: Fix commentary markup.
Mark Wooding [Tue, 19 Sep 2017 09:01:18 +0000 (10:01 +0100)]
server/tripe.8.in: The default port is the IANA-assigned one.
To get a kernel-assigned port, pass `-p0' explicitly. Fix the manpage
so that it doesn't tell lies any more.
Mark Wooding [Tue, 22 Aug 2017 23:07:16 +0000 (00:07 +0100)]
server/keyset.c, server/tripe.h: Fix commentary for `ks_gen'.
Part of the point of this interface is that we no longer assume that
there are distinct secrecy and integrity keys. And, indeed, the `iiv'
transform also has the IV-derivation blockcipher to deal with.
Mark Wooding [Sat, 2 Sep 2017 21:08:38 +0000 (22:08 +0100)]
server/keyset.c: Print correct key directions when tracing.
Mark Wooding [Sun, 3 Sep 2017 13:12:47 +0000 (14:12 +0100)]
server/keymgmt.c: Check algorithms on public keys too.
As well as checking stuff, this also calculates some important stuff,
such as preferred key lengths. Also, it's quite quick, so this isn't
going to cause any performance trouble.
Mark Wooding [Wed, 6 Sep 2017 18:52:26 +0000 (19:52 +0100)]
server/bulkcrypto.c: Fix printf argument-type bug (64-bit specific).
Mark Wooding [Mon, 4 Sep 2017 08:09:16 +0000 (09:09 +0100)]
server/bulkcrypto.c (gencomp_chal): Remove pointless extra `tagsz' member.
It's not like anybody ever did anything with it.
Mark Wooding [Sat, 2 Sep 2017 21:03:27 +0000 (22:03 +0100)]
server/bulkcrypto.c (naclbox_decrypt): Trace calculated MAC tag.
Mark Wooding [Wed, 6 Sep 2017 11:25:31 +0000 (12:25 +0100)]
server/admin.c: Fix ordering of commands in the help list.
And the manual. Oops.
Mark Wooding [Wed, 6 Sep 2017 10:54:38 +0000 (11:54 +0100)]
server/admin.c: Publish `corked' and `mobile' flags in `peerinfo'.
Mark Wooding [Sun, 3 Sep 2017 12:43:21 +0000 (13:43 +0100)]
server/admin.c: Some light reformatting.
Mark Wooding [Sun, 3 Sep 2017 12:40:16 +0000 (13:40 +0100)]
server/admin.c: Don't leak `privtag' from `ADD' command.
Mark Wooding [Sat, 2 Sep 2017 18:55:09 +0000 (19:55 +0100)]
server/admin.c: Use the more modern mLib `codec' classes for Base64.
The main effect, other than making the code slightly briefer, is that
decoding is now significantly stricter.
Mark Wooding [Tue, 12 Sep 2017 23:36:33 +0000 (00:36 +0100)]
server/addrmap.c: Mark internal functions as actually `static'.
Must have been like this forever, since this is the first change this
file has seen since it was created.
Mark Wooding [Thu, 7 Sep 2017 09:50:00 +0000 (10:50 +0100)]
server/tests.at: Use `tripe-mitm' instead of `pkstream'.
Only one process for the two directions, and it hacks UDP directly.
Mark Wooding [Tue, 5 Sep 2017 08:07:24 +0000 (09:07 +0100)]
server/tests.at: Eliminate redundant `-talice' option.
This makes searching for the correct `tripe' process easier at runtime.
But it means that we have to associate explicit `kx-group' attributes
with the keys rather than attaching the group to the key type.
Mark Wooding [Wed, 6 Sep 2017 00:33:19 +0000 (01:33 +0100)]
wireshark/tripe.lua (dissect_ciphertext): Return correct final position.
Mark Wooding [Tue, 5 Sep 2017 09:34:05 +0000 (10:34 +0100)]
uslip/uslip.c: Be more reliable about tidying up.
Trap `SIGHUP' because shells sometimes send it to us during testing; and
don't give up on select(2) because of `EINTR'.
Mark Wooding [Fri, 29 Sep 2017 00:20:09 +0000 (01:20 +0100)]
svc/conntrack.in: Iterate over the output of `svcsubmit'.
This forces out exceptions caused by command failures which were
otherwise being dropped.
Mark Wooding [Thu, 28 Sep 2017 17:55:26 +0000 (18:55 +0100)]
svc/conntrack.in: Use correct interface to fetch NetworkManager state.
Mark Wooding [Thu, 28 Sep 2017 17:53:32 +0000 (18:53 +0100)]
svc/conntrack.in: Write debug trace if we fail to attach to DBus services.
Mark Wooding [Sat, 16 Sep 2017 19:36:11 +0000 (20:36 +0100)]
svc/conntrack.8.in: Document the ConnMan support.
Mark Wooding [Sat, 16 Sep 2017 19:23:28 +0000 (20:23 +0100)]
svc/conntrack.8.in: Sort the notification strings.
Mark Wooding [Fri, 8 Sep 2017 09:28:45 +0000 (10:28 +0100)]
svc/connect.in: Add a new `sabotage' command to test ping-failure actions.
Mark Wooding [Fri, 8 Sep 2017 08:51:31 +0000 (09:51 +0100)]
svc/connect.in: Report statistics about adopted peers.
These are thrown into the `info' output along with the configuration.
Mark Wooding [Fri, 8 Sep 2017 08:10:25 +0000 (09:10 +0100)]
svc/connect.in (cmd_kick): Don't assume there's a `connect' command.
The `malformed-peer' message reported if there isn't is rather
unpleasant. Instead, just force a key exchange. (This will make more
sense later.)
Mark Wooding [Fri, 8 Sep 2017 08:06:47 +0000 (09:06 +0100)]
svc/connect.in: Add a method for finding a named PingPeer.
And use it in `cmd_kick' to avoid the need for a linear search through
the peers list.
Mark Wooding [Fri, 8 Sep 2017 08:04:08 +0000 (09:04 +0100)]
svc/connect.in (Pinger.kill): Don't assume the peer exists.
It's quite possible that it's already gone, so be careful.
Mark Wooding [Sat, 16 Sep 2017 14:11:50 +0000 (15:11 +0100)]
py/tripe.py.in: Send the right command when you call `eping'.
Oops. So that's why mobile peers get forgotten.
Mark Wooding [Thu, 7 Sep 2017 09:50:43 +0000 (10:50 +0100)]
proxy/tripe-mitm.c: Don't try to interpret the keys.
The plan to attack the cryptography never really materialized. This
program's understanding of the crypto is now seriously out of date and
would need a major overhaul. Instead, just check that the arguments are
vaguely right and get on with shovelling packets about.
Mark Wooding [Wed, 13 Sep 2017 09:19:41 +0000 (10:19 +0100)]
proxy/tripe-mitm.c: Report errors from select(2).
Mark Wooding [Wed, 13 Sep 2017 10:10:29 +0000 (11:10 +0100)]
proxy/tripe-mitm.8.in: Fix synopsis line for `rfilt'.
Mark Wooding [Wed, 27 Sep 2017 19:27:09 +0000 (20:27 +0100)]
pkstream/pkstream.c: Handle errors from select(2) properly.
Mark Wooding [Wed, 6 Sep 2017 20:32:27 +0000 (21:32 +0100)]
mon/tripemon.in (AddPeerDialog): Factor out entry-and-tickybox construction.
Three almost identical stanzas is a bit much, really.
Mark Wooding [Wed, 6 Sep 2017 20:22:04 +0000 (21:22 +0100)]
mon/tripemon.in: Update peer IP address displays when the address changes.
This affects both the main MonitorWindow and individual PeerWindows.
Mark Wooding [Wed, 6 Sep 2017 20:20:37 +0000 (21:20 +0100)]
mon/tripemon.in (CryptoInfo): Use the `cryptolayout' table to populate.
Mark Wooding [Wed, 6 Sep 2017 20:19:42 +0000 (21:19 +0100)]
mon/tripemon.in (CryptoInfo): Make the window a bit wider.
The information didn't usually fit.
Mark Wooding [Wed, 6 Sep 2017 20:07:55 +0000 (21:07 +0100)]
mon/tripemon.in (cryptolayout): Use formatting functions for details.
This fixes two bugs.
* Firstly, key, block, tag, and hash sizes are no longer wrong by a
factor of 8 (because they're described as being in bits, but are
actually shown in bytes since Python format strings can't do
arithmetic).
* And, secondly, new bulk crypto transforms don't always report things
like `cipher-blksz' or `mac-keysz', so there's additional logic for
coping with these situations.
Also, report the bulk transform, because it's probably useful.
The first of these bugs didn't affect the CryptoInfo window, which
calculates everything properly, but the second does, and this commit
doesn't change that.
Mark Wooding [Wed, 6 Sep 2017 20:06:05 +0000 (21:06 +0100)]
mon/tripemon.in: Add simple function for formatting `statslayout' entries.
This adds extra functionality: now an entry can be a function rather
than just a format string. But nothing takes advantage of this yet, so
there's still no functional change.
Mark Wooding [Wed, 6 Sep 2017 20:03:18 +0000 (21:03 +0100)]
mon/tripemon.in: Split out crypto-specific pieces of `statslayout'.
One notices that these are suspiciously similar to (though less good)
than the things displayed by CryptoInfo. It would be nice if we could
share them somehow...
No functional change yet.
Mark Wooding [Wed, 6 Sep 2017 19:59:00 +0000 (20:59 +0100)]
mon/tripemon.in (xlate_bytes): Trim a character from the docstring.
Now it fits into my (unusually narrow) editor column. Yay.
Mark Wooding [Sat, 16 Sep 2017 18:39:11 +0000 (19:39 +0100)]
mon/tripemon.in: Add a `default' tunnel entry to the `Add peer' box.
The code at the other end was already written to assume that this had
been done, but it hadn't.
Mark Wooding [Fri, 29 Sep 2017 09:10:59 +0000 (10:10 +0100)]
mon/tripemon.in: Add missing support for the `cork' option.
Mark Wooding [Wed, 6 Sep 2017 19:56:50 +0000 (20:56 +0100)]
mon/tripemon.in (AddPeerDialog): Actually honour the `Mobile' option.
Mark Wooding [Tue, 26 Sep 2017 10:38:05 +0000 (11:38 +0100)]
contrib/README: `knock' is better used as a forced-command.
Mark Wooding [Tue, 26 Sep 2017 10:35:07 +0000 (11:35 +0100)]
contrib/README: Add missing descriptions of things added over the years.
Mark Wooding [Tue, 26 Sep 2017 10:34:42 +0000 (11:34 +0100)]
contrib/README: Fix typo.
Mark Wooding [Tue, 26 Sep 2017 10:24:05 +0000 (11:24 +0100)]
contrib/: Add copyright notices to contributed scripts.