Commit Graph

74 Commits

Author SHA1 Message Date
bms
5bae048b01 When parsing an argument as an address in getaddr(), heed the -host option
in all cases.  The failure mode in the PR is easily reproducible without
this patch.

PR:		bin/43139
2004-06-16 06:29:41 +00:00
csjp
60a433f4c8 Teach route(8) how to deal with root being in a prison. If prison
root is allowed to create raw sockets, then they will be able to create
routing sockets, too.  However prison-root is not able to manipulate
routing tables.  So when route(8) attempts to write to a routing
socket and recieves EPERM from the kernel, exit rather than moving
on with execution.

Approved by:    bmilekic (mentor)
2004-05-07 15:33:17 +00:00
andre
5ecba3f8bc Link state change notification of ethernet media to the routing socket.
o Print the link state for interface messages in monitor mode.

No objections by:	sam, wpaul, ru, bms
Brucification by:	bde
2004-05-03 16:30:32 +00:00
ambrisko
8abe6632d3 For both ifconfig and route if we didn't get enough memory from the
prior sysctl due to the structure growing between calls try again.

Also try again for deleting routes if things fail.  We've seen
route -f fail this way which does not actually flush all routes.
This fixes it.  It will whine but it will do the work.

PR:		56732
Obtained from:	IronPort
2004-04-30 22:34:12 +00:00
luigi
ce58934c26 Replace ROUNDUP/ADVANCE with SA_SIZE 2004-04-13 11:24:43 +00:00
markm
90f91e7879 Remove advertising clause from University of California Regent's license,
per letter dated July 22, 1999.

Approved by: core, imp
2004-04-09 19:58:40 +00:00
ume
58cb5ad46c link-local multicast address must be converted to KAME specific
embeded scopeid form.

Reported by:	dwmalone
MFC after:	3 days
2003-12-07 11:11:26 +00:00
ru
af0cc424b0 There is an undocument feature that ``route -vnd flush'' prints
a nice dump of the entire routing table.  Allow non-root users
to see it too.
2003-04-16 12:06:53 +00:00
peter
558c08e2ec Kill #ifdef NS code 2003-03-05 19:18:05 +00:00
kbyanc
c9f898d44f Since route(8) itself is no longer setuid, we can get a meaningful
answer for the euid.  As a result, fix it such that setuid scripts or
programs may call route(8) to do work on their behalf.

Reviewed by:	ru
MFC after:	3 days
2003-01-25 01:28:11 +00:00
ume
e752ebdffb Don't have -prefixlen 128 on host routes.
Obtained from:	KAME
2002-06-08 19:49:22 +00:00
wollman
b865e88662 Avoid construction which results in label at end of block. 2002-05-30 21:41:42 +00:00
ru
6e7ea044c1 Respect -q with "add" and "delete". Document who respects -q.
PR:		bin/38531
2002-05-25 12:51:34 +00:00
ume
a491c6f95a Allow prefix/prefixlen syntax for IPv6 to have consistency
with IPv4.
2002-05-21 18:11:31 +00:00
ume
104c629954 Have RTF_HOST for /128 destionation. 2002-05-21 11:43:53 +00:00
ume
d2bc88b0d8 Try to guess prefixlen for guessable cases.
- /0 if matches ::/128
- /64 if matches 2000::/3 and lowermost 64 bit is all 0
- /128 if matches 2000::/3 and lowermost 64 bit is non-zero 0

Obtained from:	KAME/NetBSD
2002-05-20 15:01:19 +00:00
imp
ec2a00af74 o remove __P
o remove main prototype
2002-03-21 13:20:49 +00:00
obrien
73c6870b18 Remove 'register' keyword.
It does not help modern compilers, and some may take some hit from it.
(I also found several functions that listed *every* of its 10 local vars with
 "register" -- just how many free registers do people think machines have?)
2002-03-20 17:55:10 +00:00
ru
7bbde3fb1f Introduce an interface announcement message for the routing
socket so that routing daemons and other interested parties
know when an interface is attached/detached.

PR:		kern/33747
Obtained from:	NetBSD
MFC after:	2 weeks
2002-01-18 14:33:04 +00:00
ru
35ede48132 Bring in latest CSRG revisions to this file. 2001-10-17 09:11:23 +00:00
ru
3be01aaf66 Synch with NetBSD and OpenBSD.
Allow non-superuser to open, listen to, and send safe commands on the
routing socket.  Superuser priviledge is required for all commands
but RTM_GET.

Lose `setuid root' bit of route(8).

Reviewed by:	wollman, dd
2001-08-31 12:31:09 +00:00
brian
6820e8fb2d Handle snprintf() returning < 0 (not just -1)
MFC after:	2 weeks
2001-08-20 14:53:05 +00:00
brian
016b1a255a Handle snprintf() returning -1.
MFC after:	2 weeks
2001-08-20 12:56:45 +00:00
ru
637fad7f2d Due to the documented bug in inet_aton(3), it wasn't possible
to use 0xffffffff (INADDR_NONE) as a netmask value.  The fix
is to use inet_addr(3) which doesn't suffer from this problem.

PR:		bin/28873

Also, while here, fixed the bug when netmask value was ignored
(RTF_HOST flag was set) if the "destination gateway netmask"
syntax is used, e.g. ``route add 1.2.3.4 127.1 255.255.255.255''.
2001-07-11 16:11:15 +00:00
ru
1947791f91 Allow route(8) to create "proxy only" published ARP entries.
PR:		bin/12357
Submitted by:	Craig Leres <leres@ee.lbl.gov>
2001-06-12 13:31:53 +00:00
ru
e2ee5e2463 Fixed the -iface breakage introduced with the latest KAME merge
in revision 1.48.  It is pretty valid and often feasible to use
a non-point-to-point interface as the gateway.  One might, for
example, use this to route some hosts through an ARP on a local
interface, without having to assign an additional IP address:

Script started on Tue Jun 12 16:16:09 2001
# ifconfig rl0 inet
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	inet 192.168.4.115 netmask 0xffffff00 broadcast 192.168.4.255
# netstat -arn -finet | grep -w rl0
192.168.4          link#1             UC          3        0     rl0 =>
192.168.4.65       0:d0:b7:16:9c:c6   UHLW        1        0     rl0   1197
# route add -net 192.168.100 -iface rl0
add net 192.168.100: gateway rl0
# ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1): 56 data bytes
64 bytes from 192.168.100.1: icmp_seq=0 ttl=255 time=0.551 ms
64 bytes from 192.168.100.1: icmp_seq=1 ttl=255 time=0.268 ms
^C
--- 192.168.100.1 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.268/0.410/0.551/0.142 ms
# netstat -arn -finet | grep -w rl0
192.168.4          link#1             UC          3        0     rl0 =>
192.168.4.65       0:d0:b7:16:9c:c6   UHLW        1        0     rl0   1165
192.168.100        link#1             UCSc        1        0     rl0 =>
192.168.100.1      0:d0:b7:16:9c:c6   UHLW        1        4     rl0   1192

Script done on Tue Jun 12 16:17:12 2001
2001-06-12 13:23:43 +00:00
ume
832f8d2249 Sync with recent KAME.
This work was based on kame-20010528-freebsd43-snap.tgz and some
critical problem after the snap was out were fixed.
There are many many changes since last KAME merge.

TODO:
  - The definitions of SADB_* in sys/net/pfkeyv2.h are still different
    from RFC2407/IANA assignment because of binary compatibility
    issue.  It should be fixed under 5-CURRENT.
  - ip6po_m member of struct ip6_pktopts is no longer used.  But, it
    is still there because of binary compatibility issue.  It should
    be removed under 5-CURRENT.

Reviewed by:	itojun
Obtained from:	KAME
MFC after:	3 weeks
2001-06-11 12:39:29 +00:00
ru
9079964eda When changing an indirect route, kernel routing code allocates
a route to the gateway and caches it in the route structure.
It may happen (if the routing table is screwed) that the gateway
route is the same route as the one being modified, in which case
a kernel reports EDQUOT.  Be more verbose about this:

# route add -net 10 192.168.4.65
add net 10: gateway 192.168.4.65
# netstat -rn -finet
Routing tables

Internet:
Destination        Gateway            Flags     Refs     Use     Netif Expire
default            192.168.4.65       UGSc        1        7      rl0
10                 192.168.4.65       UGSc        0        0      rl0
127.0.0.1          127.0.0.1          UH          0      178      lo0
192.168.4          link#1             UC          2        0      rl0 =>
192.168.4.65       0:d0:b7:16:9c:c6   UHLW        2        0      rl0   1123

Before:

# route change -net 10 10.0.0.1
route: writing to routing socket: Disc quota exceeded
change net 10: gateway 10.0.0.1: Disc quota exceeded

After:

# ./route change -net 10 10.0.0.1
route: writing to routing socket: Disc quota exceeded
change net 10: gateway 10.0.0.1: gateway uses the same route

PR:		bin/1093, misc/26833
2001-06-08 12:44:25 +00:00
ru
50544d4e12 Change the host/bits syntax introduced in route.c,v 1.24 to the
net/bits syntax, for consistency with netstat(1) in particular.

OK'ed by:	phk
MFC after:	1 week
2001-06-08 09:07:34 +00:00
ru
e8be8c503b - Exit 1 if "add", "change", or "delete" operation fails.
PR:		bin/12489

- Use inet_ntoa(3) where it should have been used.  This
  part of code simply wasn't converted to the "new" style
  after the routename() function was converted from the
  protocol-generic version to protocol-specific version
  in CSRG revision 5.6.

MFC after:	1 week
2001-06-07 13:50:24 +00:00
phk
da8edc1457 Add a couple of newlines in the output from route monitor 2001-01-15 12:28:48 +00:00
obrien
c2ee1dcc02 Add `_PATH_DEVZERO'.
Use _PATH_* where where possible.
2000-12-09 09:35:55 +00:00
ru
8ab228cbb3 Interpret the address argument as network-type address for `destination'
argument only.  Before that, the `route add default gateway' first tried
the `gateway' as network address and passed its name to getnetbyname(3),
which in the BIND resolution case does the T_PTR lookup on that name.
2000-09-29 10:50:11 +00:00
ru
d9dc1e9701 Fixed the case where argument of 0.0.0.0/8 would match the default route. 2000-09-29 10:37:16 +00:00
shin
c7af3d33b2 Clear sin6_scope_id before passing routes into kernel, becaues kernel
don't support routes with sin6_scope_id set.
Without this fix, routes with IPv6 scoped addr won't work when it is
assigned by "route" command.

Approved by: jkh

Reviewed by: ume
2000-03-11 20:52:01 +00:00
shin
29d7018ad6 Add an scope index embedded IPv6 link local addr creation support, by route
command.
This is a workaround for some kernel interface which can't treat sin6_scope_id,
yet.
2000-02-23 18:00:33 +00:00
shin
681d6b5c31 Support IPv6 scoped addr in ifconfig and route
IPv6 scoped addr display is not yet supported by ifconfig
   and route. Now almost of IPv6 apps support it, so its support
   in ifconfig and route is important to keep consisetncy, and
   to avoid user confusion.

Approved by: jkh
2000-02-10 03:03:09 +00:00
sumikawa
348b00703f Fix return value check for inet_pton().
Obtained from:	KAME Project
2000-01-25 13:54:47 +00:00
shin
3b5615c3f3 Merge bug fix from KAME repository.
This fix enables inet6 default route addition.

Suggested by: itojun
2000-01-08 14:28:46 +00:00
shin
70f0bdf681 udp IPv6 support, IPv6/IPv4 tunneling support in kernel,
packet divert at kernel for IPv6/IPv4 translater daemon

This includes queue related patch submitted by jburkhol@home.com.

Submitted by: queue related patch from jburkhol@home.com
Reviewed by: freebsd-arch, cvs-committers
Obtained from: KAME project
1999-12-07 17:39:16 +00:00
billf
18137fc0e5 Remove two more unnecessary function declarations/prototypes. 1999-09-25 03:22:52 +00:00
billf
e4191ae2b0 Include the proper headers, remove the unnecessary function declarations. 1999-09-25 03:20:29 +00:00
peter
76f0c923fe $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
archie
9cf3e81787 When incrementing through a SIOCGIFCONF list, enforce a lower limit of
sizeof(ifr->ifr_addr) for the variable length field ifr->ifr_addr.sa_len.
Otherwise the increment will be wrong in certain cases.

Obtained from:  Whistle source tree
For the record: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> suggests
                SIOCGIFCONF should be dropped in favor of a sysctl mechanism.
1999-06-05 05:55:07 +00:00
ru
e4eef7ec7a Get rid of segfaults in a set-uid program.
PR:		11823
Reviewed by:	des
1999-06-01 13:14:07 +00:00
charnier
6999d30e2e Comment is .\" not .|'. Add -d and -t flags to SYNOPSIS and usage(). Getopt
returns -1. Correct use of .Nm. Spelling. Add rcsid and remove unused
#include.
1998-07-28 06:25:35 +00:00
imp
ec6e7a3cf8 style(9) corrections
Submitted by:	bde
1997-12-26 23:28:17 +00:00
imp
03672be414 Two fixes:
1) Correct strncpy usage
	2) gethostbyaddr paranoia from Julian Assange
1997-12-24 00:59:49 +00:00
julian
09554020d9 fix what appears to me to be absolutle bogus code
to do with netmasks.. we fed totally bogus data into the kernel
to do with default routes and it just believed us. this led to:
1/ kernel panics
2/ the default route refusing to be deleted or added
(depending on a number of factors, usually it worked ok.)
1997-07-18 09:05:12 +00:00
charnier
a7ec830880 Sync beetween man page and usage string. 1997-06-18 06:30:34 +00:00