diff options
author | Bill Fenner <fenner@FreeBSD.org> | 1996-10-28 23:26:37 +0000 |
---|---|---|
committer | Bill Fenner <fenner@FreeBSD.org> | 1996-10-28 23:26:37 +0000 |
commit | d71ba03df8b628db7dccc1333d0f4b92ca5c1a81 (patch) | |
tree | 7ca3f7c60fc473f6d2c5942e9df23b52f637ef4c /sbin/dump | |
parent | d4788da623d086a254dbe085d78ec593cad8cb23 (diff) | |
download | src-d71ba03df8b628db7dccc1333d0f4b92ca5c1a81.tar.gz src-d71ba03df8b628db7dccc1333d0f4b92ca5c1a81.zip |
If rcmd() fails, return immediately instead of trying a bunch of
setsockopt()'s on a -1 file descriptor.
Remove attempt to decrease TCP MSS; it makes no sense.
Set the IP TOS to IPTOS_THROUGHPUT as an indication that this is an
application sending large blocks of data, as recommended by RFC1700.
Notes
Notes:
svn path=/head/; revision=19239
Diffstat (limited to 'sbin/dump')
-rw-r--r-- | sbin/dump/dumprmt.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/sbin/dump/dumprmt.c b/sbin/dump/dumprmt.c index 48d07d48cc4f..643e56165b40 100644 --- a/sbin/dump/dumprmt.c +++ b/sbin/dump/dumprmt.c @@ -49,7 +49,8 @@ static char sccsid[] = "@(#)dumprmt.c 8.1 (Berkeley) 6/5/93"; #endif #include <netinet/in.h> -#include <netinet/tcp.h> +#include <netinet/in_systm.h> +#include <netinet/ip.h> #include <protocols/dumprestore.h> @@ -121,7 +122,7 @@ rmtgetconn() #endif char *tuser; int size; - int maxseg; + int throughput; if (sp == NULL) { sp = getservbyname("shell", "tcp"); @@ -148,6 +149,8 @@ rmtgetconn() rmt = _PATH_RMT; rmtape = rcmd(&rmtpeer, (u_short)sp->s_port, pwd->pw_name, tuser, rmt, (int *)0); + if (rmtape < 0) + return; size = ntrec * TP_BSIZE; if (size > 60 * 1024) /* XXX */ size = 60 * 1024; @@ -157,10 +160,10 @@ rmtgetconn() setsockopt(rmtape, SOL_SOCKET, SO_SNDBUF, &size, sizeof (size)) < 0) size -= TP_BSIZE; (void)setsockopt(rmtape, SOL_SOCKET, SO_RCVBUF, &size, sizeof (size)); - maxseg = 1024; - if (setsockopt(rmtape, IPPROTO_TCP, TCP_MAXSEG, - &maxseg, sizeof (maxseg)) < 0) - perror("TCP_MAXSEG setsockopt"); + throughput = IPTOS_THROUGHPUT; + if (setsockopt(rmtape, IPPROTO_IP, IP_TOS, + &throughput, sizeof(throughput)) < 0) + perror("IP_TOS:IPTOS_THROUGHPUT setsockopt"); #ifdef notdef if (setsockopt(rmtape, IPPROTO_TCP, TCP_NODELAY, &on, sizeof (on)) < 0) |