- if (setsockopt(sd, SOL_SOCKET, SO_KEEPALIVE, (char *) &i, s)
- || setsockopt(sd, _gras_tcp_proto_number(), TCP_NODELAY, (char *) &i,
- s))
- THROW1(system_error, 0,
+ if (_gras_tcp_proto_number()!=-1)
+ if (setsockopt(sd, _gras_tcp_proto_number(), TCP_NODELAY, (char *) &i,s))
+ failed=1;
+
+ if (setsockopt(sd, SOL_SOCKET, SO_KEEPALIVE, (char *) &i, s))
+ failed=1;
+
+ if (failed)
+ THROWF(system_error, 0,