Commit Graph

47 Commits

Author SHA1 Message Date
Ruslan Ermilov
1d36c8992d 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
Ruslan Ermilov
1b33d61d20 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
Ruslan Ermilov
334b4431fa - 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
Poul-Henning Kamp
3a36e32d8c Add a couple of newlines in the output from route monitor 2001-01-15 12:28:48 +00:00
David E. O'Brien
1a37aa566b Add `_PATH_DEVZERO'.
Use _PATH_* where where possible.
2000-12-09 09:35:55 +00:00
Ruslan Ermilov
4eed20b85f 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
Ruslan Ermilov
ecfe112d3e Fixed the case where argument of 0.0.0.0/8 would match the default route. 2000-09-29 10:37:16 +00:00
Yoshinobu Inoue
b2fa7d408d 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
Yoshinobu Inoue
5dc2a47de7 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
Yoshinobu Inoue
94fafad064 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
Munechika SUMIKAWA
d59590d848 Fix return value check for inet_pton().
Obtained from:	KAME Project
2000-01-25 13:54:47 +00:00
Yoshinobu Inoue
1e6f93d8f5 Merge bug fix from KAME repository.
This fix enables inet6 default route addition.

Suggested by: itojun
2000-01-08 14:28:46 +00:00
Yoshinobu Inoue
cfa1ca9dfa 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
Bill Fumerola
b41d4634e2 Remove two more unnecessary function declarations/prototypes. 1999-09-25 03:22:52 +00:00
Bill Fumerola
c3922760ba Include the proper headers, remove the unnecessary function declarations. 1999-09-25 03:20:29 +00:00
Peter Wemm
7f3dea244c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
Archie Cobbs
eed2b804bf 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
Ruslan Ermilov
1e3b39d361 Get rid of segfaults in a set-uid program.
PR:		11823
Reviewed by:	des
1999-06-01 13:14:07 +00:00
Philippe Charnier
1cc580ef41 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
Warner Losh
b1a3bc5ea0 style(9) corrections
Submitted by:	bde
1997-12-26 23:28:17 +00:00
Warner Losh
006b3faebb Two fixes:
1) Correct strncpy usage
	2) gethostbyaddr paranoia from Julian Assange
1997-12-24 00:59:49 +00:00
Julian Elischer
ba68720f4f 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
Philippe Charnier
eee9b17e46 Sync beetween man page and usage string. 1997-06-18 06:30:34 +00:00
Poul-Henning Kamp
71044fa7ab Allow "modern" syntax:
route add -net 192.168.64.0/20 bla bla bla
1997-04-02 17:05:30 +00:00
Poul-Henning Kamp
8fd0ef3952 unifdef CCITT, ISO & CRUFT. 1997-04-02 16:52:45 +00:00
Peter Wemm
c0ec1f37ef Revert $FreeBSD$ to $Id$ 1997-02-22 14:40:44 +00:00
Ollivier Robert
a14390ccec Security patch from OpenBSD: fixes potential buffer overflow in a static
buffer (so more difficult to exploit but better safe than sorry). Found
by comparing FreeBSD & OpenBSD sources/logs for the auditing process.

Reviewed by:	Warner Losh
Obtained from:	OpenBSD
1997-02-20 22:16:39 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Garrett Wollman
97d1e20ef9 If the RTM_NEWMADDR and RTM_DELMADDR messages are defined
(in <net/route.h>), then interpret them appropriately.  This has
no effect until I commit the changes to multicast group
management (awaiting review).
1997-01-09 21:34:03 +00:00
Garrett Wollman
628d2ac1b0 Fix up programs which expect <net/if.h> to include <sys/time.h> to instead
do it themselves.  (Some of these programs actually depended on this
beyond compiling the definition of struct ifinfo!)  Also fix up some
other #include messes while we're at it.
1996-12-10 17:11:53 +00:00
Garrett Wollman
7948f68b85 Delete another unnecessary #include <sys/mbuf.h>. 1996-11-01 20:30:37 +00:00
Bill Fenner
4ba05f60ea setuid back to the original caller immediately after opening the route socket.
Opening the socket is the only privileged operation route requires.

Make a couple of static buffers bigger, and use strncpy() and snprintf() where
there's a chance of overflow.

Fixes PR bin/1903

Partially Submitted by: Ollivier Robert <roberto@keltia.freenix.fr>

Don't look up the network number if we're being asked to add a host route.

Fixes PR bin/1900

Submitted by:	Bruce A. Mah <bmah@cs.berkeley.edu> (pr bin/1900)
1996-10-27 17:42:14 +00:00
Bruce Evans
eaa86f9d7f Don't use __dead or __pure in user code. They were obfuscations
for gcc >= 2.5 and no-ops for gcc >= 2.6.  Converted to use __dead2
or __pure2 where it wasn't already done, except in math.h where use
of __pure was mostly wrong.
1996-09-14 03:00:32 +00:00
Julian Elischer
072a289aa4 back out a part of the previous patch that garrett objected to.. 1996-08-19 18:52:49 +00:00
Julian Elischer
aa648cf84b Submitted by: Archie@whistle.com
if making a interface route, and it's a P2P link,
then also automatically lable it as an llinfo entry so that
gated and friends don't clobber it..
1996-08-13 22:20:20 +00:00
Julian Elischer
914b41c2dc Reviewed by: julian
Submitted by:	archie@whistle.com

This patch allows true interface routing to be controlled
from the command line..
you can now do:
route add default -interface ppp0
even if you have no clue what the address at the other end is..

this is part of a set of changes that allow true "unnumbered links"
such as netcom run between their sites..
In practice you should assign the address from one of your ethernet
interfaces to the local side of the P2P link so that IP doesn't
say that the packet comes from 255.255.255.255, but
there is no need whatsoever to assign an address of any kind
to the remote end of the link.. useful for frame relay links etc also.
1996-08-09 22:52:02 +00:00
Julian Elischer
e56dd1bb4f Submitted by: archie@whistle.com
slight cleanups on yesterday's patches
1996-07-23 22:00:14 +00:00
Julian Elischer
3a67d2bc37 Submitted by: archie@whistle.com
appletalk cleanups
1996-07-23 01:18:47 +00:00
Julian Elischer
144b35344c changes to allow route to manipulate appletalk routes. 1996-07-09 19:02:28 +00:00
Garrett Wollman
00bbf73734 Update route(8) to print out current meanings of rt_flags RTF_* bits. 1996-05-08 20:48:59 +00:00
Mike Pritchard
2e32d69db1 Fix route to check if inet_addr and inet_network return INADDR_NONE,
instead of -1 which is never returned by those routines.
1996-02-17 21:13:32 +00:00
Garrett Wollman
cbc17e711e XNS sort-of-support is no more. 1996-02-13 17:30:37 +00:00
Garrett Wollman
0761cb293e Remove support for OSI networking in user-land (#ifdef OSI aor CCITT)
in preparation for its removal from the kernel source tree.  NB: because
a function was deleted, libc is now at version 3.0 (was 2.2 previously).
1996-02-06 20:36:15 +00:00
Mike Pritchard
49f523939f Route calls the errx routine with the wrong number of arguments
when printing "route: bad address: ...".
1996-01-20 12:56:57 +00:00
Garrett Wollman
ac9ce50507 Clean up GCC warnings, condition out some compatibility cruft, add $Id$.
Pointed-out-by: jmb
1996-01-02 20:09:22 +00:00
Paul Traina
57f30b48dc Missing 'break' after setting interface route flag was causing interface
routes to not be properly marked as static.
1994-09-15 08:35:37 +00:00
Rodney W. Grimes
8fae3551ec BSD 4.4 Lite sbin Sources
Note:  XNSrouted and routed NOT imported here, they shall be imported with
usr.sbin.
1994-05-26 06:35:07 +00:00