Better error checking in net.c

This commit is contained in:
Jef Poskanzer 2013-12-12 12:07:17 -08:00
parent fdcbd49578
commit 950f6c8f59

View File

@ -301,6 +301,10 @@ getsock_tcp_mss(int inSock)
/* query for mss */ /* query for mss */
len = sizeof(mss); len = sizeof(mss);
rc = getsockopt(inSock, IPPROTO_TCP, TCP_MAXSEG, (char *)&mss, &len); rc = getsockopt(inSock, IPPROTO_TCP, TCP_MAXSEG, (char *)&mss, &len);
if (rc == -1) {
perror("getsockopt TCP_MAXSEG");
return -1;
}
return mss; return mss;
} }
@ -323,7 +327,7 @@ set_tcp_options(int sock, int no_delay, int mss)
len = sizeof(no_delay); len = sizeof(no_delay);
rc = setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (char *)&no_delay, len); rc = setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, (char *)&no_delay, len);
if (rc == -1) { if (rc == -1) {
perror("TCP_NODELAY"); perror("setsockopt TCP_NODELAY");
return -1; return -1;
} }
} }
@ -337,11 +341,15 @@ set_tcp_options(int sock, int no_delay, int mss)
len = sizeof(new_mss); len = sizeof(new_mss);
rc = setsockopt(sock, IPPROTO_TCP, TCP_MAXSEG, (char *)&new_mss, len); rc = setsockopt(sock, IPPROTO_TCP, TCP_MAXSEG, (char *)&new_mss, len);
if (rc == -1) { if (rc == -1) {
perror("setsockopt"); perror("setsockopt TCP_MAXSEG");
return -1; return -1;
} }
/* verify results */ /* verify results */
rc = getsockopt(sock, IPPROTO_TCP, TCP_MAXSEG, (char *)&new_mss, &len); rc = getsockopt(sock, IPPROTO_TCP, TCP_MAXSEG, (char *)&new_mss, &len);
if (rc == -1) {
perror("getsockopt TCP_MAXSEG");
return -1;
}
if (new_mss != mss) { if (new_mss != mss) {
perror("setsockopt value mismatch"); perror("setsockopt value mismatch");
return -1; return -1;