Commit Graph

20 Commits

Author SHA1 Message Date
f78ea70d71 Ifchd: Convert some tabs to spaces. 2013-05-08 06:37:33 -04:00
3640c5bbf0 Ifchd: Print out log messages when commands are successfully dispatched. 2013-05-08 06:36:20 -04:00
b7e6f59fc7 Use a Ragel-generated DFA parser for ifchd command dispatch. 2013-05-08 06:27:22 -04:00
958a57d819 Convert to using strnkc(at|py). 2013-05-06 07:07:54 -04:00
87db9c70fd Enforce minimum physical MTU in ifchd.
Skip zero-length commands in execute_buffer().
2012-07-20 20:37:41 -04:00
f9c2059d37 Quit using malloc entirely in ifchd and reduce buffer copies.
This change also modifies the ndhc/ifchd wire protocol slightly.  The
new protocol doesn't overload the ':' character as a key:value separator
and a statement separator.  Instead ';' is now used as a statement separator.
The new format allows for more robust error-checking and reporting, and it
greatly simplifies the parser.  Old versions of ndhc/ifchd will not work
properly with ones compiled after this commit.

The 'domain' and 'search' keywords in resolv.conf updates are now used
more precisely.  The first domain in an update is the 'domain', and the
subsequent 5 domains are 'search' domains.

There are also supporting cleanups that pass struct ifchd_client pointers
to functions instead of passing index values.

This commit is large, but it cannot really be broken up into smaller
chunks since the changes are dependent on each other.
2012-07-20 17:31:15 -04:00
a60a5fddb1 Remove use of dynamic memory (strlist_t) from linux.c. 2012-07-20 15:17:44 -04:00
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
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
af365be9b7 Convert all inet_aton() to inet_pton() since inet_pton() is POSIX. 2011-07-11 17:11:19 -04:00
7ee0001e97 Constant correctness: socket(PF_*, ...) -> socket(AF_*, ...) 2011-06-25 11:11:48 -04:00
8ede75738f When setting route, don't print an error if EEXIST is returned by the ioctl().
This 'error' merely means that the installed route already exists.
2011-05-31 11:55:26 -04:00
d72b24a2fe Theoretical correctness fix:
Handle EAGAIN and EWOULDBLOCK more gracefully when dealing with safe_read().
All occurrences of safe_read() should only be invoked on fds that have signaled
ready-to-read state via the epoll() mechanism, so this change should not
result in any observable difference, but it is best to be safe.

Additionally, a constant stack variable is converted to an equivalent
macro define for cleanliness.

Finally, print the error type encountered if reading data from an ARP response
fails with a read error.
2011-05-30 10:54:05 -04:00
b3f9115689 Add a -V --verbose flag to enable the overly verbose list reciept logging.
Update interface flags only if it would provoke an actual change.
2011-04-30 07:30:07 -04:00
eb6009a5ee Make write() and sendto() properly handle short writes and errors in ndhc.
Make ndhc write a pidfile.
Clean up defines.h and split out ifchd and ndhc specifics.
2010-11-12 18:44:49 -05:00
f4a00f3826 Whitespace and indentation normalization. 2010-11-12 14:33:17 -05:00
b2daf09c10 Move set_cap() to ncmlib/cap.[ch]. 2010-11-12 09:04:43 -05:00
b882669f85 Convert to using shared ncmlib. 2010-11-12 05:42:07 -05:00
b42eeb8847 Move ifchd files to a subdirectory. 2010-11-12 04:51:49 -05:00