size /= 2;
if (size != orig_req)
- zlog_warn("%s: fd %d: SO_RCVBUF set to %d (requested %d)",
- __func__, sock, size, orig_req);
+ flog_err(EC_LIB_SOCKET,
+ "%s: fd %d: SO_RCVBUF set to %d (requested %d)",
+ __func__, sock, size, orig_req);
}
void setsockopt_so_sendbuf(const int sock, int size)
size /= 2;
if (size != orig_req)
- zlog_warn("%s: fd %d: SO_SNDBUF set to %d (requested %d)",
- __func__, sock, size, orig_req);
+ flog_err(EC_LIB_SOCKET,
+ "%s: fd %d: SO_SNDBUF set to %d (requested %d)",
+ __func__, sock, size, orig_req);
}
int getsockopt_so_sendbuf(const int sock)
int ret = getsockopt(sock, SOL_SOCKET, SO_SNDBUF, (char *)&optval,
&optlen);
if (ret < 0) {
- flog_err_sys(LIB_ERR_SYSTEM_CALL,
+ flog_err_sys(EC_LIB_SYSTEM_CALL,
"fd %d: can't getsockopt SO_SNDBUF: %d (%s)", sock,
errno, safe_strerror(errno));
return ret;
struct cmsghdr *cmsg;
void *ptr = NULL;
- for (cmsg = ZCMSG_FIRSTHDR(msgh); cmsg != NULL;
+ for (cmsg = CMSG_FIRSTHDR(msgh); cmsg != NULL;
cmsg = CMSG_NXTHDR(msgh, cmsg))
if (cmsg->cmsg_level == level && cmsg->cmsg_type == type)
return (ptr = CMSG_DATA(cmsg));
ret = setsockopt(sock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &val,
sizeof(val));
if (ret < 0)
- zlog_warn("can't setsockopt IPV6_RECVPKTINFO : %s",
- safe_strerror(errno));
+ flog_err(EC_LIB_SOCKET,
+ "can't setsockopt IPV6_RECVPKTINFO : %s",
+ safe_strerror(errno));
#else /*RFC2292*/
ret = setsockopt(sock, IPPROTO_IPV6, IPV6_PKTINFO, &val, sizeof(val));
if (ret < 0)
- zlog_warn("can't setsockopt IPV6_PKTINFO : %s",
- safe_strerror(errno));
+ flog_err(EC_LIB_SOCKET, "can't setsockopt IPV6_PKTINFO : %s",
+ safe_strerror(errno));
#endif /* INIA_IPV6 */
return ret;
}
ret = setsockopt(sock, IPPROTO_IPV6, IPV6_CHECKSUM, &val, sizeof(val));
#endif /* GNU_LINUX */
if (ret < 0)
- zlog_warn("can't setsockopt IPV6_CHECKSUM");
+ flog_err(EC_LIB_SOCKET, "can't setsockopt IPV6_CHECKSUM");
return ret;
}
ret = setsockopt(sock, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, &val,
sizeof(val));
if (ret < 0)
- zlog_warn("can't setsockopt IPV6_MULTICAST_HOPS");
+ flog_err(EC_LIB_SOCKET, "can't setsockopt IPV6_MULTICAST_HOPS");
return ret;
}
ret = setsockopt(sock, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &val,
sizeof(val));
if (ret < 0)
- zlog_warn("can't setsockopt IPV6_UNICAST_HOPS");
+ flog_err(EC_LIB_SOCKET, "can't setsockopt IPV6_UNICAST_HOPS");
return ret;
}
ret = setsockopt(sock, IPPROTO_IPV6, IPV6_RECVHOPLIMIT, &val,
sizeof(val));
if (ret < 0)
- zlog_warn("can't setsockopt IPV6_RECVHOPLIMIT");
+ flog_err(EC_LIB_SOCKET, "can't setsockopt IPV6_RECVHOPLIMIT");
#else /*RFC2292*/
ret = setsockopt(sock, IPPROTO_IPV6, IPV6_HOPLIMIT, &val, sizeof(val));
if (ret < 0)
- zlog_warn("can't setsockopt IPV6_HOPLIMIT");
+ flog_err(EC_LIB_SOCKET, "can't setsockopt IPV6_HOPLIMIT");
#endif
return ret;
}
ret = setsockopt(sock, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &val,
sizeof(val));
if (ret < 0)
- zlog_warn("can't setsockopt IPV6_MULTICAST_LOOP");
+ flog_err(EC_LIB_SOCKET, "can't setsockopt IPV6_MULTICAST_LOOP");
return ret;
}
ret = setsockopt(sock, IPPROTO_IPV6, IPV6_TCLASS, &tclass,
sizeof(tclass));
if (ret < 0)
- zlog_warn("Can't set IPV6_TCLASS option for fd %d to %#x: %s",
- sock, tclass, safe_strerror(errno));
+ flog_err(EC_LIB_SOCKET,
+ "Can't set IPV6_TCLASS option for fd %d to %#x: %s",
+ sock, tclass, safe_strerror(errno));
#endif
return ret;
}
ret = setsockopt(sock, IPPROTO_IP, IP_MULTICAST_LOOP, (void *)&val,
sizeof(val));
if (ret < 0)
- zlog_warn("can't setsockopt IP_MULTICAST_LOOP");
+ flog_err(EC_LIB_SOCKET, "can't setsockopt IP_MULTICAST_LOOP");
return ret;
}
#if defined(IP_PKTINFO)
if ((ret = setsockopt(sock, IPPROTO_IP, IP_PKTINFO, &val, sizeof(val)))
< 0)
- zlog_warn("Can't set IP_PKTINFO option for fd %d to %d: %s",
- sock, val, safe_strerror(errno));
+ flog_err(EC_LIB_SOCKET,
+ "Can't set IP_PKTINFO option for fd %d to %d: %s",
+ sock, val, safe_strerror(errno));
#elif defined(IP_RECVIF)
if ((ret = setsockopt(sock, IPPROTO_IP, IP_RECVIF, &val, sizeof(val)))
< 0)
- zlog_warn("Can't set IP_RECVIF option for fd %d to %d: %s",
- sock, val, safe_strerror(errno));
+ flog_err(EC_LIB_SOCKET,
+ "Can't set IP_RECVIF option for fd %d to %d: %s", sock,
+ val, safe_strerror(errno));
#else
#warning "Neither IP_PKTINFO nor IP_RECVIF is available."
#warning "Will not be able to receive link info."
ret = setsockopt(sock, IPPROTO_IP, IP_TOS, &tos, sizeof(tos));
if (ret < 0)
- zlog_warn("Can't set IP_TOS option for fd %d to %#x: %s", sock,
- tos, safe_strerror(errno));
+ flog_err(EC_LIB_SOCKET,
+ "Can't set IP_TOS option for fd %d to %#x: %s", sock,
+ tos, safe_strerror(errno));
return ret;
}
ret = setsockopt_ipv6_pktinfo(sock, val);
break;
default:
- zlog_warn("setsockopt_ifindex: unknown address family %d", af);
+ flog_err(EC_LIB_DEVELOPMENT,
+ "setsockopt_ifindex: unknown address family %d", af);
}
return ret;
}
return (getsockopt_ipv6_ifindex(msgh));
break;
default:
- zlog_warn("getsockopt_ifindex: unknown address family %d", af);
+ flog_err(EC_LIB_DEVELOPMENT,
+ "getsockopt_ifindex: unknown address family %d", af);
return 0;
}
}
int sockopt_tcp_signature(int sock, union sockunion *su, const char *password)
{
-#if defined(HAVE_TCP_MD5_LINUX24) && defined(GNU_LINUX)
-/* Support for the old Linux 2.4 TCP-MD5 patch, taken from Hasso Tepper's
- * version of the Quagga patch (based on work by Rick Payne, and Bruce
- * Simpson)
- */
-#define TCP_MD5_AUTH 13
-#define TCP_MD5_AUTH_ADD 1
-#define TCP_MD5_AUTH_DEL 2
- struct tcp_rfc2385_cmd {
- uint8_t command; /* Command - Add/Delete */
- uint32_t address; /* IPV4 address associated */
- uint8_t keylen; /* MD5 Key len (do NOT assume 0 terminated
- ascii) */
- void *key; /* MD5 Key */
- } cmd;
- struct in_addr *addr = &su->sin.sin_addr;
-
- cmd.command = (password != NULL ? TCP_MD5_AUTH_ADD : TCP_MD5_AUTH_DEL);
- cmd.address = addr->s_addr;
- cmd.keylen = (password != NULL ? strlen(password) : 0);
- cmd.key = password;
-
- return setsockopt(sock, IPPROTO_TCP, TCP_MD5_AUTH, &cmd, sizeof cmd);
-
-#elif HAVE_DECL_TCP_MD5SIG
+#if HAVE_DECL_TCP_MD5SIG
int ret;
#ifndef GNU_LINUX
/*
ret = 0;
else
flog_err_sys(
- LIB_ERR_SYSTEM_CALL,
+ EC_LIB_SYSTEM_CALL,
"sockopt_tcp_signature: setsockopt(%d): %s",
sock, safe_strerror(errno));
}