summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/inet/tcp/tcp.c
diff options
context:
space:
mode:
authorDan McDonald <danmcd@sun.com>2009-08-20 14:58:57 -0400
committerDan McDonald <danmcd@sun.com>2009-08-20 14:58:57 -0400
commit4d6131f65592ec4a75e471b05022c6c1987347eb (patch)
tree0505b24743e0b191345653e77962038ae7491556 /usr/src/uts/common/inet/tcp/tcp.c
parenta150bf8532245eea0ae6e08e711e1f62c0a30adc (diff)
downloadillumos-joyent-4d6131f65592ec4a75e471b05022c6c1987347eb.tar.gz
6826091 in.iked falls over trying to bind to the first non-global link local
Diffstat (limited to 'usr/src/uts/common/inet/tcp/tcp.c')
-rw-r--r--usr/src/uts/common/inet/tcp/tcp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/usr/src/uts/common/inet/tcp/tcp.c b/usr/src/uts/common/inet/tcp/tcp.c
index f53d0de39f..540809dce5 100644
--- a/usr/src/uts/common/inet/tcp/tcp.c
+++ b/usr/src/uts/common/inet/tcp/tcp.c
@@ -25932,7 +25932,8 @@ tcp_bind_select_lport(tcp_t *tcp, in_port_t *requested_port_ptr,
connp = tcp->tcp_connp;
if (connp->conn_anon_mlp && is_system_labeled()) {
zone = crgetzone(cr);
- addrtype = tsol_mlp_addr_type(zone->zone_id,
+ addrtype = tsol_mlp_addr_type(
+ connp->conn_allzones ? ALL_ZONES : zone->zone_id,
IPV6_VERSION, &v6addr,
tcps->tcps_netstack->netstack_ip);
if (addrtype == mlptSingle) {
@@ -25983,7 +25984,8 @@ tcp_bind_select_lport(tcp_t *tcp, in_port_t *requested_port_ptr,
connp = tcp->tcp_connp;
if (is_system_labeled()) {
zone = crgetzone(cr);
- addrtype = tsol_mlp_addr_type(zone->zone_id,
+ addrtype = tsol_mlp_addr_type(
+ connp->conn_allzones ? ALL_ZONES : zone->zone_id,
IPV6_VERSION, &v6addr,
tcps->tcps_netstack->netstack_ip);
if (addrtype == mlptSingle) {