Commit Graph

188 Commits

Author SHA1 Message Date
ozaki-r e3db1a05a1 Fix that routed deletes local routes
routed previousely ignored local routes, which have RTF_LOCAL flag, because
such routes have RTF_LLINFO and routed ignored routes having the flag. When
we obsoleted RTF_LLINFO, we removed the ignoring logic from routed, then
routed started removing local routes unexpectedly.

Fix this behavior by teaching local routes to routed to ignore them.

kardel@ reported the issue and helped testing, thanks!
2016-12-20 03:35:12 +00:00
joerg 14c0cd3532 Shuffle pointer magic to not depend on temporary overaligned pointers
into a packed structure.
2016-10-07 22:32:50 +00:00
ozaki-r 09973b35ac Separate nexthop caches from the routing table
By this change, nexthop caches (IP-MAC address pair) are not stored
in the routing table anymore. Instead nexthop caches are stored in
each network interface; we already have lltable/llentry data structure
for this purpose. This change also obsoletes the concept of cloning/cloned
routes. Cloned routes no longer exist while cloning routes still exist
with renamed to connected routes.

Noticeable changes are:
- Nexthop caches aren't listed in route show/netstat -r
  - sysctl(NET_RT_DUMP) doesn't return them
  - If RTF_LLDATA is specified, it returns nexthop caches
- Several definitions of routing flags and messages are removed
  - RTF_CLONING, RTF_XRESOLVE, RTF_LLINFO, RTF_CLONED and RTM_RESOLVE
- RTF_CONNECTED is added
  - It has the same value of RTF_CLONING for backward compatibility
- route's -xresolve, -[no]cloned and -llinfo options are removed
  - -[no]cloning remains because it seems there are users
  - -[no]connected is introduced and recommended
    to be used instead of -[no]cloning
- route show/netstat -r drops some flags
  - 'L' and 'c' are not seen anymore
  - 'C' now indicates a connected route
- Gateway value of a route of an interface address is now not
  a L2 address but "link#N" like a connected (cloning) route
- Proxy ARP: "arp -s ... pub" doesn't create a route

You can know details of behavior changes by seeing diffs under tests/.

Proposed on tech-net and tech-kern:
  http://mail-index.netbsd.org/tech-net/2016/03/11/msg005701.html
2016-04-04 07:37:07 +00:00
dholland 4db4c6282f don't use sprintf 2014-03-23 05:36:58 +00:00
christos 52ebde656f gcc warns about array bounds limits, but unfortunately the API here requires
flex arrays in a union which is not allowed. So do a trivial pointer assignment
to baffle gcc again.
2013-10-19 00:57:41 +00:00
kardel b01c74c514 PR/44647: commit fix proposed by Takahiro HAYASHI
verified to be working in -current and also helps NetBSD-6 BETA2
2012-06-24 16:24:34 +00:00
wiz b3d989a54f Remove duplicate RS_LOCAL. From cppcheck via Henning Petersen in PR 46000. 2012-02-12 13:56:56 +00:00
christos 7f5fd4a5cd PR/45842: Henning Petersen: compare fgets with NULL not 0 2012-01-16 17:38:16 +00:00
joerg baa8e84b6f Use __dead 2011-08-29 14:34:58 +00:00
joerg cf30c8e1b5 main.c uses non-literal format strings. 2011-08-25 16:12:37 +00:00
christos 7d4b82edad document non-literal strings 2011-08-14 11:34:11 +00:00
joerg a216da57a6 Default to -Wno-sign-compare -Wno-pointer-sign for clang.
Push -Wno-array-bounds down to the cases that depend on it.
Selectively disable warnings for 3rd party software or non-trivial
issues to be reviewed later to get clang -Werror to build most of the
tree.
2011-05-26 12:56:24 +00:00
joerg 52b2e3b827 Use bitwise operators, logical and with a constant doesn't make sense 2011-05-24 12:03:04 +00:00
martin d524fd1707 Memcpy into local variable to ensure proper alignement.
Fixes PR port-sparc64/43965.
2010-10-13 09:19:40 +00:00
christos cad376bd0d merge 2.32 which is actually 2.31. Most important change is:
- use multicast over point-to-point (GRE) links as proposed by Dan Lukes.
2009-10-26 02:53:15 +00:00
wiz 94c9674d9d Add xref to pkgsrc/net/gated, so people know where to find gated(8).
Improve markup of RFCs in SEE ALSO.
Sort options.
Bump date.
2009-09-11 11:44:38 +00:00
lukem 73a6ad29bd fix sign-compare issue 2009-04-06 12:36:27 +00:00
christos b935e079cd fix printf formats. 2008-12-28 20:15:21 +00:00
lukem 6543a91fea Remove the \n and tabs from the __COPYRIGHT() strings.
(Tweak some to use a consistent format.)
2008-07-20 01:20:21 +00:00
perry 8b0f9554ff convert __attribute__s to applicable cdefs.h macros 2007-12-15 19:44:37 +00:00
ragge b531488dbc __attribute -> __attribute__. 2007-09-16 18:42:02 +00:00
dyoung 4287175475 Don't nul-terminate the interface name in a sockaddr_dl that is
part of an ifa_msghdr returned by sysctl(3), because that could
overwrite the ifam_len field of the following ifa_msgher.  Instead,
copy the interface name out of the sockaddr_dl, and then nul-terminate.
Fixes the bug reported by Frank Kardel on current-users@.  Thanks
Frank for reporting, and for testing the fix.
2007-08-14 03:39:19 +00:00
tls 4147a3c54a Add new Makefile knob, USE_FORT, which extends USE_SSP by turning on the
FORTIFY_SOURCE feature of libssp, thus checking the size of arguments to
various string and memory copy and set functions (as well as a few system
calls and other miscellany) where known at function entry.  RedHat has
evidently built all "core system packages" with this option for some time.

This option should be used at the top of Makefiles (or Makefile.inc where
this is used for subdirectories) but after any setting of LIB.

This is only useful for userland code, and cannot be used in libc or in
any code which includes the libc internals, because it overrides certain
libc functions with macros.  Some effort has been made to make USE_FORT=yes
work correctly for a full-system build by having the bsd.sys.mk logic
disable the feature where it should not be used (libc, libssp iteself,
the kernel) but no attempt has been made to build the entire system with
USE_FORT and doing so will doubtless expose numerous bugs and misfeatures.

Adjust the system build so that all programs and libraries that are setuid,
directly handle network data (including serial comm data), perform
authentication, or appear likely to have (or have a history of having)
data-driven bugs (e.g. file(1)) are built with USE_FORT=yes by default,
with the exception of libc, which cannot use USE_FORT and thus uses
only USE_SSP by default.  Tested on i386 with no ill results; USE_FORT=no
per-directory or in a system build will disable if desired.
2007-05-28 12:06:17 +00:00
mrg 084c052803 quell GCC 4.1 uninitialised variable warnings.
XXX: we should audit the tree for which old ones are no longer needed
after getting the older compilers out of the tree..
2006-05-10 21:53:14 +00:00
mrg bc2e62d3b8 change (mostly) int to socklen_t. GCC 4 doesn't like that int and
socklen_t are different signness.
2006-05-09 20:30:15 +00:00
mrg 0c37c63edc change (mostly) int to socklen_t. GCC 4 doesn't like that int and
socklen_t are different signness.
2006-05-09 20:18:05 +00:00
christos 9a02e676ef Coverity CID 1301: Return early if we could not open /dev/null 2006-03-22 02:23:11 +00:00
christos aa1540d7a7 Coverity CID 2742: Avoid NULL deref. 2006-03-21 21:50:44 +00:00
christos 55303a4a4b Coverity CID 2307: Possible memory leak. 2006-03-18 20:25:28 +00:00
christos f04c9de45b Coverity CID 2306: Possible memory leak. 2006-03-18 20:23:51 +00:00
christos 5ac5bc844b Coverity CID 1079: Possible NULL deref. 2006-03-18 20:21:50 +00:00
christos 704b63146c Coverity CID 1080: Possible NULL deref. 2006-03-18 20:20:31 +00:00
christos 6672211d0f Coverity CID 2432: Dereference before NULL check. 2006-03-18 19:55:49 +00:00
christos 2044d4f590 Coverity CID 2671: Fix use of ifp after free. 2006-03-17 16:58:09 +00:00
wiz 1ad8067cb3 Fix typos, reported by Alexey Dobriyan ("Gathered from Linux"),
forwarded by jmc@openbsd.
2006-02-25 00:58:34 +00:00
christos 2c6eadc9ce Move WARNS=3 to the Makefile.inc, and add a little const to the remaining
programs that did not compile before.
2005-06-27 01:00:04 +00:00
xtraeme 4ad9c5a867 Kill __P(). 2005-02-05 13:47:19 +00:00
mycroft fc82ea195f PR 9431: if rnh_addradd() fails, total_routes will be wrong. 2004-07-06 23:36:24 +00:00
wiz de7136f83b usage: -F was missing the /mask part. Based on PR 26063
by Kouichirou Hiratsuka.
2004-07-06 16:43:18 +00:00
wiz a63a57aa28 Remove unimplemented and undescribed -p option from usage and man page
SYNOPSIS. Noted by Jeff Ito.
2004-05-17 15:38:20 +00:00
wiz 0a1db66278 Remove option letter from getopt string, since it does not
have a case handler below. From aaron@openbsd.
2004-05-13 00:18:46 +00:00
christos f29f4783da constification lossage (hi gimpy) 2004-04-21 19:01:17 +00:00
christos 7ed7713848 From Vernon Schryver:
Wolfgang Solfrank has explained the problem with router discovery
in `routed` in a way I can understand.

Let's assume that the configured preference of the interface is 5.
This gets converted to 0x80000005 through the use of the UNSIGN_PREF
macro.  Later on, this value gets put into the PREF macro, which
compares it against the interface metric(s) (let's assume those
values to be 0 for now).  Of course the 0x80000005, cast to int,
is much less than 0, so the clamping rule is triggered, which
gives us a value of 1.  This is then converted via SIGN_PREF into
0x80000001 and put into the message.  Certainly, this isn't what
was intended.
2004-03-27 20:50:43 +00:00
enami b3f1752123 Initialize an uninitialized variable. 2003-11-14 01:31:24 +00:00
wiz bc0e64144c Correct error in previous, noted by Nick Hudson. 2003-09-23 12:14:49 +00:00
wiz 47190e80b8 Consistently use 'RFC 1234' instead of 'RFC1234' or 'RFC-1234'.
From jmc@openbsd.
2003-09-07 16:22:20 +00:00
itojun e2c411ce3c use arc4random 2003-09-06 12:42:00 +00:00
itojun d9be8318c9 avoid FD_SET overrun. from openbsd 2003-08-13 08:51:05 +00:00
itojun efb986d740 sprintf can return negative 2003-07-12 14:36:07 +00:00
itojun e97be76fa1 strcat -> strlcat 2003-07-03 03:04:04 +00:00