Commit Graph

302 Commits

Author SHA1 Message Date
6e9d856a9d Code cleanup. Create struct ifchd_client and pull all of the global
static arrays that are indexed by the socket slot index into an array
of struct ifchd_clients.
2012-07-20 14:56:17 -04:00
c3272f07f4 Update copyright and license print spam. 2012-07-20 09:37:41 -04:00
25ce5cceaa Use seccomp system call filtering if present. 2012-07-20 09:23:18 -04:00
f4f9d02afd Enforce seccomp syscall restrictions when kernel support exists. 2012-07-20 07:05:56 -04:00
e990246207 Move nlbuf onto stack and don't share a single buffer for sending
and receiving.  Move nlportid into client state structure.
2012-04-12 20:06:05 -04:00
659aafaec8 Silence new kernel warning introduced in 3.3: 'netlink: 12 bytes leftover
after parsing attributes.' RTM_GETLINK messages should have a struct rtattr
as payload.
2012-04-12 04:52:26 -04:00
a8a761da14 Shrink stack use of nl_getifdata(). 2012-04-03 22:00:47 -04:00
93b44ed48d Tidy up nl_getifdata() a bit. Eliminate some unnecessary local variables,
and use NLMSG_LENGTH().
2012-04-03 10:06:00 -04:00
a419b85e4f Typo fix in documentation. 2012-04-03 10:04:58 -04:00
c3c76e48d5 Enable stricter warnings on format strings. 2012-04-03 10:04:47 -04:00
ed2ffbb862 Constify some invariant structures. 2011-09-17 02:30:52 -04:00
071e91941f Unify options.[ch] with the one used in ndhs. 2011-09-02 02:12:51 -04:00
c4b4938a59 Validate that server reply has the client hardware address field set
to be equal to our MAC address.  Win7 verifies this field, so it should
be safe enough to check it, too.
2011-09-01 23:05:56 -04:00
ab4a2e0b97 Switch to using clock_gettime() rather than gettimeofday(). 2011-07-31 01:27:59 -04:00
45c76dd548 More comment cleanups. Make the DHCP packet field comments more accurate. 2011-07-27 08:03:42 -04:00
f864a0317c Cosmetic cleanups of comments. 2011-07-27 07:49:30 -04:00
916ddf10e5 Update documentation: options concatenation is now supported. 2011-07-27 07:43:09 -04:00
13f5ab56e2 Rewrite DHCP options parsing to conform to RFC 3396: options concatenation is
now fully supported.
2011-07-27 07:39:45 -04:00
d7103c887d Move the length check in ifchd_cmd_str() before the snprintf() call, so that
failure cannot leave the ifchd_cmd in a state with unbalanced ':'.
2011-07-27 00:42:16 -04:00
7ef7fa8a8d Fix the return value of ifchd_cmd_str() and correct its length check. 2011-07-27 00:37:11 -04:00
17a2403635 Cosmetic fixes. 2011-07-26 06:43:12 -04:00
f2618ef79d Delete a lot of code that is now unused thanks to the previous commit. 2011-07-26 06:24:30 -04:00
0431b7d439 Replace the options -> ifchd command code with a much simpler translator. 2011-07-26 06:15:21 -04:00
b935180a2f Just keep a statically constructed options request payload. It's simpler
and more compact.
2011-07-26 01:58:05 -04:00
d00922df51 Abstract uses of get_option_data() outside of ifchange.c and options.c.
The eventual goal is to eliminate uses of get_option_data() in ifchange.c and
will make it a static function in options.c.
2011-07-26 01:04:59 -04:00
ea5d472424 Encapsulate all string option additions into options.c. Note that these
functions already existed, but were in dhcp.c -- this is just code motion
between compilation units.
2011-07-25 23:48:35 -04:00
286548b754 Encapsulate all numeric option additions into options.c. 2011-07-25 23:34:32 -04:00
0229373378 Remove the overkill type checking for sent options. 2011-07-25 04:34:14 -04:00
31d6d4cd92 Some options are never sent to ifchd, but we unfortunately would need to
sacrifice type checking to remove them from the options table.  It may
be worth doing that, but I want to audit each call point before.
2011-07-25 04:26:34 -04:00
e4a4c58856 BADOPTION -> BAD 2011-07-25 03:45:05 -04:00
8caf9e7d7a Remove support for RFC868 Time Server options. Totally obsolete, and
ifchd just had empty hooks that never received work messages anyway.

Shorten the names of ifchd commands.  This breaks wire protocol, but
thankfully I haven't released yet!
2011-07-25 03:39:17 -04:00
544a837944 Shrink and reorder the options table. 2011-07-25 03:28:04 -04:00
2cb0b9227d Consolidate DHCP option code numbers. 2011-07-25 03:11:47 -04:00
77af1d81fe Relicense under New BSD (2-clause) license. I don't see any advantage to
restricting use unnecessarily, and simple attribution is fine.
2011-07-25 02:30:57 -04:00
7e1e902b34 Share ifchd command defines between ifchd and ndhc. 2011-07-25 02:01:38 -04:00
fe85e52a4b Be less harsh to udhcp in HISTORY... there was no better choice among the
considered options at the time.
2011-07-24 18:02:25 -04:00
7f6721bb82 Pass around the DHCP message type as the literal data, not as a character
pointer to the matching data in the options field of the DHCP packet.
2011-07-18 10:47:35 -04:00
27081be84f Make netlink action logging messages more consistent: prefix with 'nl: ' and
always print the actual interface identifier.
2011-07-18 10:29:36 -04:00
19ad80bb57 Minor doc fix. I'm going to keep using libcap. 2011-07-13 04:54:15 -04:00
24db573005 Write man pages and do some misc cleanup on old files.
Add more documentation to the README.
2011-07-13 02:30:10 -04:00
2a1885bab4 Move the objs directory underneath the build directory when building with
the Makefile.
2011-07-12 18:45:29 -04:00
2aff36a274 Provide a gmake Makefile for distro builds and packagers.
Define _GNU_SOURCE in the CFLAGS.
Update the README.
Remove the duplicate Gentoo init script ndhc.sh that is in the root.
Remove DESIGN -- it's outdated.
2011-07-12 04:09:05 -04:00
efe50a30a6 Even more cosmetic log message changes. 2011-07-11 23:51:55 -04:00
0a0c74efcc Yet more log message tweaking. 2011-07-11 23:45:37 -04:00
8f80a10905 Remove some redundant log messages, and make the forced-release print a bit
more user-friendly.
2011-07-11 23:41:38 -04:00
af365be9b7 Convert all inet_aton() to inet_pton() since inet_pton() is POSIX. 2011-07-11 17:11:19 -04:00
b89c694bc9 Convert all uses of inet_ntoa() to inet_ntop(). inet_ntop() is POSIX,
supports ipv6 (doesn't matter to ndhc), and does not use a stupid internal
static buffer.  This fixes some cosmetic print bugs.
2011-07-11 17:02:32 -04:00
cfa22626e4 Check the server identifier option when receiving a DHCP ACK or NAK to make
sure that it matches that of our associated DHCP server.

Normalize, prune, and beautify the appearance of log messages.

Minor cosmetic cleanups/refactoring.
2011-07-11 16:33:57 -04:00
e0ef11848b Record the MAC address of the DHCP server and use it to identify the network
when the hardware link carrier is dropped and comes back.  Also, don't assume
that all networks have a default gateway.

Guard against spurious arp defense attempts that might be triggered by packets
that are still in the socket buffer from before the BPF was changed.

Split apart the AS_GW_CHECK and AS_GW_QUERY timeout handlers.

Cosmetic cleanups in state.c.
2011-07-11 13:24:59 -04:00
83594bce4a Track pending events in time by using absolute times rather than relative
timeouts.
2011-07-11 11:31:27 -04:00