12909 Commits

Author SHA1 Message Date
hrs
d4f481b290 Revert bogus changes accidentally merged in the previous commit. 2011-06-08 16:07:44 +00:00
hrs
c4a42ea417 Merge from HEAD@222861. 2011-06-08 16:06:27 +00:00
hrs
1eefc7ab06 - Accumulate RA options instead of replacing old ones when a new RA arrived.
RFC 4861 6.3.4 clearly defines handling multiple RAs in this way.

- RDNSS/DNSSL options from multiple RAs on a single link will be
  gathered and sent to resolvconf(8).

- Call "resolvconf -d" only after at least one RDNSS or DNSSL option is
  received and then all of them are expired.

- The rtsold.dump output now supports displaying a list of the RA options.

- Use more human-readable expression for logging values of struct timeval.

Discussed with:	ume
2011-06-08 16:03:29 +00:00
hrs
af69660e0e Merge from HEAD@222848. 2011-06-08 12:03:34 +00:00
hrs
e8152d9ab6 - Disable "resolvconf -d" temporarily to avoid extra invocations of the script
under a certain condition.
- Fix argv handling.

Spotted by:	ume
2011-06-08 04:06:56 +00:00
hrs
efd82720da Fix a bug that prevents tc=xxx from working. 2011-06-07 15:40:17 +00:00
hrs
9f4e390038 - Use ELM_MALLOC() for struct rainfo.
- Fix a missing back pointer assignment in struct prefix to struct rainfo
  when addr="" is specified.  This caused SIGSEGV.

- Insert a prefix element to a tail queue after setting parameters.
2011-06-07 12:00:29 +00:00
attilio
6ed3ca2c5b MFC 2011-06-07 08:24:29 +00:00
marcel
e58c149ca2 Lower WARNS level to 3 to eliminate alignment warnings related to
casting inherent in CMSG_DATA().
2011-06-07 04:38:33 +00:00
attilio
fcefe479fe MFC 2011-06-06 21:38:39 +00:00
ed
52acbc4c0a Remove redundant assignments to WARNS.
For these directories, WARNS is already implied to be 6.
2011-06-06 20:24:17 +00:00
hrs
3f1de98b34 Set WARNS=1 temporarily to unbreak universe. 2011-06-06 20:14:50 +00:00
ed
d5bd22e229 Allow custom files to be opened and allow sorting by timestamp.
While implementing a tool to import lastlog entries into utmpx, I
noticed lastlogin doesn't allow custom database files to be opened. Add
a -f switch to support this. Also, add -r and -t similar to ls(1),
ruptime(1), etc. where you can sort entries by timestamp and reverse
them. This allows you to spot active/idle users more easily.
2011-06-06 18:40:01 +00:00
bz
2b4f16d8ca Include param.h for CACHE_LINE_SIZE to unbreak the build. 2011-06-06 17:07:38 +00:00
bz
8faa1a484f Remove TODO which is not longer needed and the default. 2011-06-06 12:21:42 +00:00
hrs
5eef59f051 Fix build on 64-bit arch.
Submitted by:	dim
Pointy hat to:	hrs
2011-06-06 10:51:00 +00:00
hrs
10df0af5a5 - Implement RDNSS and DNSSL options (RFC 6106, IPv6 Router Advertisement
Options for DNS Configuration) into rtadvd(8) and rtsold(8).  DNS
  information received by rtsold(8) will go to resolv.conf(5) by
  resolvconf(8) script.  This is based on work by J.R. Oldroyd (kern/156259)
  but revised extensively[1].

- rtadvd(8) now supports "noifprefix" to disable gathering on-link prefixes
  from interfaces when no "addr" is specified[2].  An entry in rtadvd.conf
  with "noifprefix" + no "addr" generates an RA message with no prefix
  information option.

- rtadvd(8) now supports RTM_IFANNOUNCE message to fix crashes when an
  interface is added or removed.

- Correct bogus ND_OPT_ROUTE_INFO value to one in RFC 4191.

Reviewed by:	bz[1]
PR:		kern/156259 [1]
PR:		bin/152458 [2]
2011-06-06 03:06:43 +00:00
hrs
8ff65f2104 Merge from HEAD@222712. 2011-06-05 12:27:34 +00:00
hrs
de63a2bf83 Specify requirements for RA sending/receiving based on lifetime,
IFF_ND6_ACCEPT_RTADV, and net.inet6.ip6.forwarding.

 ra_output:
  (lifetime == 0) = output
  (lifetime != 0 && (ACCEPT_RTADV || !ip6.forwarding) = no output

 ra_input:
  ACCEPT_RTADV = input
  !ACCEPT_RTADV = no input

Note that the current implementation sends RAs with zero-lifetime even if
ip6.forwarding == 0.  This behavior is derived from KAME and different from
RFC 4861.
2011-06-05 11:20:19 +00:00
hrs
ba519ba6ac Support dynamically-added/removed interfaces. The rtadvd(8) daemon detects an
interface addition/removal via RTM_IFANNOUNCE message and update the internal
structure.

TO BE FIXED:
 The advertising interface list still depends on the command line argument.
 The configuration file cannot be reloaded.
2011-06-05 07:55:51 +00:00
hrs
c471b1b104 Simplify -D for LOG_DEBUG and -d for LOG_INFO. 2011-06-05 02:44:04 +00:00
hrs
aca9d9cac2 Document -M flag and fix a bug in handling of it. 2011-06-05 02:31:57 +00:00
hrs
58336f4cc2 Rename: s/noonlinkprefix/noifprefix/. 2011-06-05 02:20:11 +00:00
attilio
8e66ca1ff1 MFC 2011-06-04 22:05:20 +00:00
hrs
d93e07bcd6 Reword noonlinkprefix sentences. It is related to prefixes on the network
interfaces, not in the routing table actually.

PR:	bin/152458
2011-06-04 17:31:06 +00:00
hrs
5c9df52313 "noonlinkprefix" directive has been added. This disables gathering on-link
prefixes from the kernel's routing table.  A rtadvd.conf with "noonlinkprefix"
+ no "addr" generates an RA message with no prefix information option.

PR:	bin/152458
2011-06-04 17:22:43 +00:00
hrs
6bc38bb776 Fix various inconsistencies in symbol naming and data handling which
made the logic behind them unnecessarily complicated.  This change is
a preparation to add support of dynamically-added/removed interfaces and the
link status changes in a more reliable way.  Changes include:

- Use queue(3) for linked-list manipulation.
- Use consistent variable names.
- Use (AF_INET6, s, d, sizeof(d)) instead of (AF_INET6, s, a, INET6_ADDRSTRLEN)
  for inet_ntop().
- style(9) fixes.

No functional change in this commit.
2011-06-04 16:42:51 +00:00
bz
9723861d87 Fix resolv.conf search list creation:
1) do not print out an empty "search ", things do not like it.
2) the search list is not comma separated.

Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
2011-06-04 12:51:22 +00:00
hrs
5ea968aede - INET6_ADDRSTRLEN does not include \0.
- Add link-local scope check for received RA messages.  RFC 4861 Section 6.1.2
  requires this.
- Refer RFC 4861 instead of obsoleted RFC 2461.
2011-06-04 04:35:12 +00:00
hrs
00e43e0cd5 - Fixes for WARNS=6.
- Use IFNAMSIZ for an interface name.
2011-06-04 02:51:12 +00:00
hrs
d3d16bccfc - Use IANA reserved example.com domain for rtadvd.conf(5).
- Fix 8-octet boundary calculation.  Extra 8 octets were added when it was
  already on an 8-octet boundary.
- Typos and style(9) fixes.

Submitted by:	bz
2011-06-04 01:20:47 +00:00
hrs
414167aef9 - Add another length check for DNSSL option. A malformed ICMP message can have
no '\0' in the search list and/or invalid length field.

- NI_MAXHOST is defined including \0.
2011-06-04 01:11:34 +00:00
attilio
91525e4ff9 MFC 2011-06-03 17:09:15 +00:00
hrs
d45e9a2064 Use strchr() instead of index(). 2011-06-03 06:34:29 +00:00
hrs
7e254a82b1 Fix label encoding/decoding function for RFC 1035 Section 3.1 encoding.
Each label can have 63 octets at most, and the length of whole domain name
is limited to NI_MAXHOST.
2011-06-03 05:33:38 +00:00
hrs
3de0851e49 - style(9) fixes.
- Add length check for RDNSS and DNSSL option strings.
- Add check for resolv.conf(5) restriction (maximum number of entries).

Submitted by:	bz
2011-06-03 01:49:04 +00:00
rmacklem
985e3cbf51 Fix the nfs related daemons so that they don't intermittently
fail with "bind: address already in use". This problem was reported
to the freebsd-stable@ mailing list on Feb. 19 under the subject
heading "statd/lockd startup failure" by george+freebsd at m5p dot com.
The problem is that the first combination of {udp,tcp X ipv4,ipv6}
would select a port# dynamically, but one of the other three combinations
would have that port# already in use. The patch is somewhat involved
because it was requested by dougb@ that the four combinations use the
same port# wherever possible. The patch splits the create_service()
function into two functions. The first goes as far as bind(2) in a
loop for up to GETPORT_MAXTRY - 1 times, attempting to use the same port#
for all four cases. If these attempts fail, the last attempt allows
the 4 cases to use different port #s. After this function has succeeded,
the second function, called complete_service(), does the rest of what
create_service() did.
The three daemons mountd, rpc.lockd and rpc.statd all have a
create_service() function that is patched in a similar way. However,
create_service() has non-trivial differences for the three daemons
that made it impractical to share the same functions between them.

Reviewed by:	jhb
MFC after:	2 weeks
2011-06-02 20:15:32 +00:00
rmacklem
e0b83a11c6 Fix the nfs related daemons so that they don't intermittently
fail with "bind: address already in use". This problem was reported
to the freebsd-stable@ mailing list on Feb. 19 under the subject
heading "statd/lockd startup failure" by george+freebsd at m5p dot com.
The problem is that the first combination of {udp,tcp X ipv4,ipv6}
would select a port# dynamically, but one of the other three combinations
would have that port# already in use. The patch is somewhat involved
because it was requested by dougb@ that the four combinations use the
same port# wherever possible. The patch splits the create_service()
function into two functions. The first goes as far as bind(2) in a
loop for up to GETPORT_MAXTRY - 1 times, attempting to use the same port#
for all four cases. If these attempts fail, the last attempt allows
the 4 cases to use different port #s. After this function has succeeded,
the second function, called complete_service(), does the rest of what
create_service() did.
The three daemons mountd, rpc.lockd and rpc.statd all have a
create_service() function that is patched in a similar way. However,
create_service() has non-trivial differences for the three daemons
that made it impractical to share the same functions between them.

Reviewed by:	jhb
MFC after:	2 weeks
2011-06-02 19:49:47 +00:00
rmacklem
c0db2e6ab9 Fix the nfs related daemons so that they don't intermittently
fail with "bind: address already in use". This problem was reported
to the freebsd-stable@ mailing list on Feb. 19 under the subject
heading "statd/lockd startup failure" by george+freebsd at m5p dot com.
The problem is that the first combination of {udp,tcp X ipv4,ipv6}
would select a port# dynamically, but one of the other three combinations
would have that port# already in use. The patch is somewhat involved
because it was requested by dougb@ that the four combinations use the
same port# wherever possible. The patch splits the create_service()
function into two functions. The first goes as far as bind(2) in a
loop for up to GETPORT_MAXTRY - 1 times, attempting to use the same port#
for all four cases. If these attempts fail, the last attempt allows
the 4 cases to use different port #s. After this function has succeeded,
the second function, called complete_service(), does the rest of what
create_service() did.
The three daemons mountd, rpc.lockd and rpc.statd all have a
create_service() function that is patched in a similar way. However,
create_service() has non-trivial differences for the three daemons
that made it impractical to share the same functions between them.

Reviewed by:	jhb
MFC after:	2 weeks
2011-06-02 19:33:33 +00:00
bz
6bfe728b8a Write the multi step netconfig to a temporary file and only move that
to the final name if netconfig was completely finished.  This fixes
reentrance problems even better than r222611.

Suggested by:	nwhitehorn
Reviewed by:	nwhitehorn
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
2011-06-02 14:25:27 +00:00
attilio
3c36d05669 MFC 2011-06-02 14:09:30 +00:00
bz
c51270cda9 Empty the network configuration only after the user decided to pick an
interface.  Otherwise an accidental start of the netowrk configuration
and immediate cancel after the install has finished removes the previously
configured settings.

Discussed with:	nwhitehorn
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
2011-06-02 14:08:50 +00:00
nwhitehorn
575b3fb028 Fix opening a shell on the new system (prevent the shell's stderr from
ending up in the install log).
2011-06-02 13:57:49 +00:00
emaste
11e6bdb86e There are a couple of structs in mfireg.h with members named 'class'.
These cause problems when trying to include the header in a C++ project.
Rename them to 'evt_class', and track the change in mfi and mfiutil.

Submitted by:	Mark Johnston
Sponsored by:	Sandvine Incorporated
Reviewed by:	jhb@
MFC after:	1 week
2011-06-02 00:43:16 +00:00
attilio
9f19c1c64d MFC 2011-06-01 16:54:33 +00:00
jh
fcc5bce7bd Don't try to close the stream if fopen(3) fails.
PR:		bin/155349
Submitted by:	Urankar Mikael
2011-06-01 15:48:43 +00:00
attilio
bc4d32e80b MFC 2011-05-31 21:22:44 +00:00
attilio
27825059cd Revert r222363, as bde@ pointed out the initial solution was far more
correct.
2011-05-31 20:59:53 +00:00
bz
ca3458c071 Start teaching pc-sysinstall about IPv6.
Add some additional empty string checks for IPv4 and try to configure
a netmask along with the address rather than doing things twice.

Contrary to AUTO-DHCP, IPv6-SLAAC will accept static configuration
as well, which we will use at least for resolv.conf currently and
if we were given a static address configure that as an alias as well.

The pc-sysinstaller changes going along were committed to PC-BSD as r10773.

Reviewed by:	kmoore
Sponsored by:	The FreeBSD Foundation
Sponsored by:	iXsystems
MFC after:	20 days
2011-05-31 15:02:30 +00:00
attilio
b1bf71d3c5 MFC 2011-05-31 14:18:10 +00:00