mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-01 06:55:30 +00:00
assign to a int before calling setsockopt
This commit is contained in:
@@ -5969,22 +5969,21 @@ isc__socket_ipv6only(isc_socket_t *sock0, isc_boolean_t yes) {
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
setdscp(isc__socket_t *sock, isc_dscp_t dscp) {
|
setdscp(isc__socket_t *sock, isc_dscp_t dscp) {
|
||||||
|
#if defined(IP_TOS) || defined(IPV6_TCLASS)
|
||||||
|
int value = dscp << 2;
|
||||||
|
#endif
|
||||||
|
|
||||||
sock->dscp = dscp;
|
sock->dscp = dscp;
|
||||||
|
|
||||||
#if defined(IP_TOS) || defined(IPV6_TCLASS)
|
|
||||||
dscp <<= 2;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef IP_TOS
|
#ifdef IP_TOS
|
||||||
if (sock->pf == AF_INET) {
|
if (sock->pf == AF_INET) {
|
||||||
if (setsockopt(sock->fd, IPPROTO_IP, IP_TOS,
|
if (setsockopt(sock->fd, IPPROTO_IP, IP_TOS,
|
||||||
(void *)&dscp, sizeof(int)) < 0) {
|
(void *)&value, sizeof(value)) < 0) {
|
||||||
char strbuf[ISC_STRERRORSIZE];
|
char strbuf[ISC_STRERRORSIZE];
|
||||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||||
"setsockopt(%d, IP_TOS, %.02x) "
|
"setsockopt(%d, IP_TOS, %.02x) "
|
||||||
"%s: %s", sock->fd, dscp >> 2,
|
"%s: %s", sock->fd, value >> 2,
|
||||||
isc_msgcat_get(isc_msgcat,
|
isc_msgcat_get(isc_msgcat,
|
||||||
ISC_MSGSET_GENERAL,
|
ISC_MSGSET_GENERAL,
|
||||||
ISC_MSG_FAILED,
|
ISC_MSG_FAILED,
|
||||||
@@ -5996,7 +5995,7 @@ setdscp(isc__socket_t *sock, isc_dscp_t dscp) {
|
|||||||
#ifdef IPV6_TCLASS
|
#ifdef IPV6_TCLASS
|
||||||
if (sock->pf == AF_INET6) {
|
if (sock->pf == AF_INET6) {
|
||||||
if (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_TCLASS,
|
if (setsockopt(sock->fd, IPPROTO_IPV6, IPV6_TCLASS,
|
||||||
(void *)&dscp, sizeof(int)) < 0) {
|
(void *)&value, sizeof(value)) < 0) {
|
||||||
char strbuf[ISC_STRERRORSIZE];
|
char strbuf[ISC_STRERRORSIZE];
|
||||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||||
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
UNEXPECTED_ERROR(__FILE__, __LINE__,
|
||||||
|
Reference in New Issue
Block a user