a bunch of small daemons that seem small packet flows can easily chew up
significant kernel memory (each BPF device opened takes 2*buffersize of
wired memory.) In each of these applications, add code to set the buffer
size to 32k before setting the interface.
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
If the va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end (since
it's the callers responsibility).
Improved by comments from enami and christos -- thanks!
Heimdal/krb4/KAME changes already fed back, rest to follow.
Inspired by, but not not based on, OpenBSD.
refusing to work in "-a" mode on a host with more than one Ethernet,
and at least one non-ethernet device. Frankly, the interface
initialization loop is badly structured and should be rewritten,
and these changes do nothing to fix that. However, they oughta do
the requested job, quick & dirty.
[This was broken when the 4.4BSD ARP table changes were done, and never
repaired.]
Inspired by Jarle Greipsland, PR 4531; code stolen from arp.a and cleaned
up (mostly removing global variables).
XXX As pointed out in the PR, this should be in some library (libutil?),
to be usable by other servers like bootpd and dhcpd.
* don't use LOG_CONS - it's unnecessary and spams the console if syslogd
fails (a bad thing, really)
From [misc/873] by Giles Lean <giles@nemeton.com.au>:
* explain why the name lookup failed
* always send debug() via syslog(3) (unlike the PR, which added a -s flag)
* enhance the man page a bit (even in the commented out section which
is only relevant to the -DREQUIRE_TFTPBOOT case
Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will
only support Ethernet. Tcpdump itself should be ok, but libpcap needs
lot of work.
For the detailed change history, look at the commit log entries for
the is-newarp branch.