summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Mark Wooding [Sat, 20 Oct 2012 14:31:44 +0000 (15:31 +0100)]
linux.c: Remove stray debugging code.
Mark Wooding [Sat, 20 Oct 2012 14:28:55 +0000 (15:28 +0100)]
linux.c: Do NAT detection using address-independent machinery.
Mark Wooding [Sat, 20 Oct 2012 12:55:30 +0000 (13:55 +0100)]
linux.c: Mark `get_default_gw' as static.
Nothing outside needs to know about it any more.
Mark Wooding [Sat, 20 Oct 2012 12:54:12 +0000 (13:54 +0100)]
yaid.c: Reorder `proxy_query': don't use `c' after `conn_init'.
It might have been freed if the connection completes immediately (so
`proxy_connected' is called synchronously) and then something goes
wrong (so `c' will be freed).
Mark Wooding [Sat, 20 Oct 2012 12:51:57 +0000 (13:51 +0100)]
yaid.c: Common function for fixing connected sockets.
Previously I'd forgotten to drag `out-of-band' data inline, which will
cause a select(2) spin, and to make the client connection be nonblocking.
Put all of the relevant stuff in a utility function.
Mark Wooding [Sat, 20 Oct 2012 12:35:21 +0000 (13:35 +0100)]
yaid.c: Beef up `reply' with an extra token argument.
Eliminates the need for `proxy_line' to call `write_to_client' explicitly,
duplicating functionality.
Mark Wooding [Thu, 18 Oct 2012 09:35:35 +0000 (10:35 +0100)]
linux.c, yaid.c, yaid.h: Open the NAT table just once at init time.
This file requires privileges to open, so it must be done before we
drop them. (We don't, yet, but it's coming.)
Mark Wooding [Thu, 18 Oct 2012 09:27:28 +0000 (10:27 +0100)]
addr.c, linux.h, yaid.h: Move things out of the address-type list macro.
Things which are only needed to initialize the table are now in
systematically named macros which are determined by the table population
machinery. This means we can build the system-specific operations
table in the same way.
Mark Wooding [Thu, 18 Oct 2012 09:23:45 +0000 (10:23 +0100)]
linux.c (identify): Don't leak the file handle.
Mark Wooding [Wed, 17 Oct 2012 23:11:56 +0000 (00:11 +0100)]
Dispatch to methods handling address-family specifics.
This is a fairly invasive change to the program. Rather than carry
around an address family type and switch on it throughout, carry around
a pointer to a vtable containing methods. Methods needed by the system-
specific machinery are properly integrated.
Mark Wooding [Wed, 17 Oct 2012 23:09:00 +0000 (00:09 +0100)]
Makefile.am, configure.ac, ident.c -> linux.c: System specifics.
Rename `ident.c' to indicate that this is where the system-specific
machinery lives, and provide build system support for other platforms
should they be contributed.
Mark Wooding [Wed, 17 Oct 2012 04:40:57 +0000 (05:40 +0100)]
ident.c, yaid.c, yaid.h: Make `get_default_gw' be internal to `ident.c'.
Don't really need the diagnostics any more.
Mark Wooding [Wed, 17 Oct 2012 04:39:41 +0000 (05:39 +0100)]
yaid.c: Don't fail if either IPv4 or IPv6 is unavailable.
Do continue to fail if the ports can't be bound, or if neither protocol
is available.
Mark Wooding [Wed, 17 Oct 2012 04:42:09 +0000 (05:42 +0100)]
policy.c: Implement IPv6 matching in match_addrpat.
Missing piece. Whoops.
Mark Wooding [Sun, 14 Oct 2012 23:21:21 +0000 (00:21 +0100)]
Apparently working version, but still ugly.
It needs a lot of commentary, a proper command-line interface, logging,
pidfiles, and so on.
Also, there's a bunch of inconsistency surrounding IPv4/IPv6 handling:
the core uses a vtable, while most of the rest of the code uses
switches. This ought to be sorted out before a proper release.
Mark Wooding [Sat, 29 Sep 2012 14:37:27 +0000 (15:37 +0100)]
Initial ugly non-portable core of an ident daemon.