lukem
a1ea50ee45
* in_pcblookup_port(): deprecate INPLOOKUP_WILDCARD and flags in favour
...
of a lookup_wildcard arg; simplifies the logic a bit.
* when assigning ephemeral ports in in_pcbbind(), always call
in_pcblookup_port() with lookup_wildcard=1, so that ephemeral port
allocation on sockets with SO_REUSEADDR set won't potentially bind to a
port in use by something else (principle of least surprise).
1998-10-05 14:33:14 +00:00
tls
c4730d65cf
Switch order of TNF and UCB copyrights so UCB copyright is first; this seems more appropriate since UCB wrote the original code, after all.
1998-09-30 21:52:24 +00:00
thorpej
47e9dcf841
Use the pool allocator for inpcbs.
1998-08-02 00:35:31 +00:00
pk
84840da908
in_pcballoc(): we can't afford to wait for memory.
1998-07-23 08:24:33 +00:00
tls
91de585d5f
Add correct copyright notice for IP address hash change. This code is donated to TNF by the original copyright holder, Panix.
1998-02-15 18:24:23 +00:00
tls
c9934a9084
Change list of interface IP addresses to a hash. Improves performance on hosts with a large number of IP addresses significantly.
1998-02-13 18:21:38 +00:00
chs
f64abc7b4c
add flags arg to hashinit(), to pass to malloc().
1998-02-07 02:44:44 +00:00
lukem
c0e8ee54e9
* start from the top of the given ephemeral range and work down;
...
results in reserved ephemeral ports starting at the top (as per
current practice), and shouldn't have a negative effect on normal
ephemeral ports...
* initialise inpt_lastlow in in_pcbinit
1998-01-08 11:56:50 +00:00
lukem
1a63d90320
add missing ; ...
1998-01-08 00:32:39 +00:00
lukem
c80b4400e5
add the following, derived from FreeBSD:
...
* IP_PORTRANGE socket option, which controls how the ephemeral ports
are allocated. it takes the following settings:
IP_PORTRANGE_DEFAULT use anonportmin (49152) -> anonportmax (65535)
IP_PORTRANGE_HIGH as IP_PORTRANGE_DEFAULT (retained for FreeBSD
compat reasons, where these are separate)
IP_PORTRANGE_LOW use 600 -> 1023. only works if uid==0.
* in_pcb flag INP_ANONPORT. set if port was allocated ephmerally
1998-01-07 22:51:22 +00:00
thorpej
e5e283e02d
Finishing merging 4.4BSD-Lite2 netinet. At this point, the only changes
...
left were SCCS IDs and Copyright dates.
1998-01-05 10:31:44 +00:00
lukem
1f8f74b669
enhance ephemeral port allocation code:
...
* support sysctl net.inet.ip.anonportmin (lowest ephemeral port)
and net.inet.ip.anonportmax (highest ephemeral port).
these can't be set to >65535, < IPPORT_RESERVED (unless IPNOPRIVPORTS
is defined), and anonportmin has to be < anonportmax.
* use a cleaner way of only cycling through the available set once;
this will be useful for when a random allocation scheme is used
* define IPPORT_ANON{MIN,MAX} instead of IPPORT_USER{LOW,HIGH}
1998-01-05 09:52:02 +00:00
lukem
0b57ba7265
as per the IANA assigned ports numbers document, use ports
...
49152..65535 for ephemeral ports (instead of 1024..5000).
closes my [kern/4440], but with correct code :)
1997-12-30 02:54:08 +00:00
mrg
3300e3e43e
fix compile error when "options IPNOPROVPORTS"
1997-11-27 14:03:32 +00:00
thorpej
ad1ef53725
Deal with a problem where ephemeral port shortage would case a PCB's
...
local address to be set, causing all further attemps to bind that PCB
to fail. From Koji Imada, PR #3857 .
1997-11-20 04:53:37 +00:00
matt
8c42ff649b
Add support for returning maximum supported MTU when ip_output fails with
...
EMSGSIZE.
1997-10-14 00:52:39 +00:00
thorpej
de572198ad
Implement in_pcbrtentry() - return the route associated with a PCB. If
...
one does not exist, attempt to allocate one. This is mostly pulled from
tcp_input.c.
1997-09-22 21:39:40 +00:00
thorpej
efa8881dbe
Pull SYN_cache_branch down into the main line.
1997-07-23 21:26:40 +00:00
mycroft
a26a19aeda
Return EAGAIN if binding with no specified port and the pool is empty.
1996-12-10 11:38:42 +00:00
christos
5545959d0b
backout previous kprintf changes
1996-10-13 02:03:00 +00:00
christos
6d7ad25bea
printf -> kprintf, sprintf -> ksprintf
1996-10-10 23:12:43 +00:00
mycroft
9bfa240a98
Hash unconnected PCBs.
1996-09-15 18:11:06 +00:00
mycroft
62a6cce9ca
Add in_nullhost() and in_hosteq() macros, to hide some protocol
...
details. Also, fix a bug in TCP wrt SYN+URG packets.
1996-09-09 14:51:07 +00:00
perry
94a217e163
Commit PR 2671, which adds an "IPNOPRIVPORTS" config option that turns
...
off the code that normally only allows root to bind low TCP
ports. Useful on firewalls and such.
1996-09-05 18:10:03 +00:00
thorpej
3ca11aa1ad
Fix some DIAGNOSTIC printf() formats; ntohl() provides a 32-bit quantity,
...
and should be printed with %x, not %lx.
1996-08-14 03:46:44 +00:00
cgd
9764a289cd
print result of ntohl/htonl as a long. (makes -Wformat work on the
...
Alpha.)
1996-07-10 18:13:35 +00:00
mycroft
49d52c9b1c
Pass a proc pointer down to the usrreq and pcbbind functions for PRU_ATTACH, PRU_BIND and
...
PRU_CONTROL. The usrreq interface really needs to be split up, but this will have to wait.
Remove SS_PRIV completely.
1996-05-22 13:54:55 +00:00
mrg
32cdb91fa3
two more local addr changes, all done differently now (idea from charles)
1996-02-26 23:16:42 +00:00
mrg
86b9b4d6be
if we are connecting *to* an address of any local interface, default the
...
local address of the socket to the same address.
1996-02-26 08:25:47 +00:00
christos
14d9cd33af
netinet prototypes
1996-02-13 23:40:59 +00:00
mycroft
67e78477db
Build a hash table of PCBs. Hash function needs tweaking.
1996-01-31 03:49:23 +00:00
mycroft
873ed30f83
so_pcb should be a void *.
1995-08-17 02:57:20 +00:00
mycroft
5482957905
splnet --> splsoftnet
1995-08-12 23:59:09 +00:00
cgd
f90cf78fba
convert pcb lists to CIRCLEQs, so that the end can be looked at more
...
easily, and so that the original (insque/remque) logic can be effectively
mimiced. (This fixes a bug in the previous set of list changes.)
also (since terminator is no longer null) reinstate uninitted list checks,
but mark them XXX.
1995-06-18 20:01:08 +00:00
mycroft
cd7edee1ca
in_pcbnotify*() don't return anything.
1995-06-12 06:49:55 +00:00
mycroft
22687aa834
Change in_pcbnotify*() to take an errno value. Make inetctlerrmap[] an
...
array on ints, not u_chars.
1995-06-12 06:46:34 +00:00
mycroft
6897f39ae9
Various cleanup, including:
...
* Convert several data structures to use queue.h.
* Split in_pcbnotify() into two parts; one for notifying a specific PCB, and
one for notifying all PCBs for a particular foreign address.
1995-06-12 00:46:47 +00:00
mycroft
51a0da73db
Remove one more bogus cast.
1995-06-04 06:03:53 +00:00
mycroft
41703012d6
Don't cast things unnecessarily.
1995-06-04 05:58:20 +00:00
mycroft
0a99592372
Clean up many more casts.
1995-06-04 05:06:49 +00:00
mycroft
eb216fd6c2
Avoid byte-swapping IP addresses at run time.
1995-06-01 21:35:34 +00:00
cgd
b5b72d26ea
be a bit more careful and explicit with types. (basically a large no-op.)
1995-04-13 06:25:36 +00:00
deraadt
d6bfeb6b71
failure to bind to a reserved port should return EACCES not EPERM.
1994-09-29 02:31:35 +00:00
cgd
cf92afd66e
New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD'
1994-06-29 06:29:24 +00:00
mycroft
07b4f2ab54
Update to 4.4-Lite networking code, with a few local changes.
1994-05-13 06:02:48 +00:00
hpeyerl
d7038296be
Multicast is no longer optional.
1994-02-02 05:58:50 +00:00
mycroft
4fe12e6e88
Fix some inconsistent spacing; spaces at the end of lines, etc.
1994-01-08 21:21:28 +00:00
mycroft
95b048b53a
Canonicalize all #includes.
1993-12-18 00:40:47 +00:00
hpeyerl
aa7f3b23a8
multicast support.
...
>From Chris Maeda, cmaeda@cs.washington.edu
These patches are derived from the IP Multicast patches for BSDI.
1993-12-06 04:50:19 +00:00
deraadt
bda8918483
The latest patch was hosed. There is some program that I used which
...
left extra crud at the end of the file. I blame ftpd for not doing an
ftruncate().
1993-06-11 09:12:21 +00:00