Print this page
OS-4699 lxbrand netty complains about SO_LINGER (really IP_TOS)
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
OS-4018 lxbrand support TCP SO_REUSEPORT
Reviewed by: Robert Mustacchi <rm@joyent.com>
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Cody Mello <cody.mello@joyent.com>

*** 19,28 **** --- 19,29 ---- * CDDL HEADER END */ /* * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright 2016 Joyent, Inc. */ /* Copyright (c) 1990 Mentat Inc. */ #include <sys/types.h> #include <sys/stream.h>
*** 617,626 **** --- 618,630 ---- *i1 = connp->conn_oobinline ? SO_OOBINLINE : 0; break; case SO_REUSEADDR: *i1 = connp->conn_reuseaddr ? SO_REUSEADDR : 0; break; /* goto sizeof (int) option return */ + case SO_REUSEPORT: + *i1 = connp->conn_reuseport; + break; /* goto sizeof (int) option return */ case SO_TYPE: *i1 = connp->conn_so_type; break; /* goto sizeof (int) option return */ case SO_DONTROUTE: *i1 = (ixa->ixa_flags & IXAF_DONTROUTE) ?
*** 1184,1195 **** zoneid_t zoneid = IPCL_ZONEID(connp); ipif_t *ipif; ip_stack_t *ipst = connp->conn_netstack->netstack_ip; int error; ! if (connp->conn_family != AF_INET) return (EINVAL); switch (name) { case IP_TTL: /* Don't allow zero */ if (*i1 < 1 || *i1 > 255) --- 1188,1215 ---- zoneid_t zoneid = IPCL_ZONEID(connp); ipif_t *ipif; ip_stack_t *ipst = connp->conn_netstack->netstack_ip; int error; ! if (connp->conn_family == AF_INET6 && ! connp->conn_ipversion == IPV4_VERSION) { ! /* ! * Allow certain IPv4 options to be set on an AF_INET6 socket ! * if the connection is still IPv4. ! */ ! switch (name) { ! case IP_TOS: ! case T_IP_TOS: ! case IP_TTL: ! case IP_DONTFRAG: ! break; ! default: return (EINVAL); + } + } else if (connp->conn_family != AF_INET) { + return (EINVAL); + } switch (name) { case IP_TTL: /* Don't allow zero */ if (*i1 < 1 || *i1 > 255)