diff options
author | sommerfe <none@none> | 2006-09-29 14:33:05 -0700 |
---|---|---|
committer | sommerfe <none@none> | 2006-09-29 14:33:05 -0700 |
commit | e78eaa4108d07decebe362a2a54acb49c00bd7a1 (patch) | |
tree | b4efd1366685e814823873aa6f34d290004e2210 /usr/src/uts/common/inet/tcp/tcp.c | |
parent | a255420765b0b2d93935f09709ebad35f6aa7ee3 (diff) | |
download | illumos-joyent-e78eaa4108d07decebe362a2a54acb49c00bd7a1.tar.gz |
6446620 SO_ALLZONES doesn't seem to work for IPv6
6461365 SO_ALLZONES doesn't get along with SO_DONTROUTE and IP_NEXTHOP
Diffstat (limited to 'usr/src/uts/common/inet/tcp/tcp.c')
-rw-r--r-- | usr/src/uts/common/inet/tcp/tcp.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/usr/src/uts/common/inet/tcp/tcp.c b/usr/src/uts/common/inet/tcp/tcp.c index e382675cf9..533f69b5d7 100644 --- a/usr/src/uts/common/inet/tcp/tcp.c +++ b/usr/src/uts/common/inet/tcp/tcp.c @@ -2426,9 +2426,11 @@ tcp_accept_swap(tcp_t *listener, tcp_t *acceptor, tcp_t *eager) if (eager->tcp_cred != NULL) crfree(eager->tcp_cred); eager->tcp_cred = econnp->conn_cred = aconnp->conn_cred; - econnp->conn_zoneid = aconnp->conn_zoneid; aconnp->conn_cred = NULL; + econnp->conn_zoneid = aconnp->conn_zoneid; + econnp->conn_allzones = aconnp->conn_allzones; + econnp->conn_mac_exempt = aconnp->conn_mac_exempt; aconnp->conn_mac_exempt = B_FALSE; @@ -5574,6 +5576,7 @@ tcp_conn_request(void *arg, mblk_t *mp, void *arg2) * zone id before the accept is completed in tcp_wput_accept(). */ econnp->conn_zoneid = connp->conn_zoneid; + econnp->conn_allzones = connp->conn_allzones; /* Copy nexthop information from listener to eager */ if (connp->conn_nexthop_set) { @@ -17726,7 +17729,9 @@ tcp_wput_accept(queue_t *q, mblk_t *mp) q->q_qinfo = &tcp_winit; listener = eager->tcp_listener; eager->tcp_issocket = B_TRUE; + econnp->conn_zoneid = listener->tcp_connp->conn_zoneid; + econnp->conn_allzones = listener->tcp_connp->conn_allzones; /* Put the ref for IP */ CONN_INC_REF(econnp); |