903         }
 904         if (pconnp != NULL) {
 905                 pconnp->conn_next = connp;
 906                 connp->conn_prev = pconnp;
 907         } else {
 908                 connfp->connf_head = connp;
 909         }
 910         if (nconnp != NULL) {
 911                 connp->conn_next = nconnp;
 912                 nconnp->conn_prev = connp;
 913         }
 914         connp->conn_fanout = connfp;
 915         connp->conn_flags = (connp->conn_flags & ~IPCL_REMOVED) | IPCL_BOUND;
 916         CONN_INC_REF(connp);
 917         mutex_exit(&connfp->connf_lock);
 918 }
 919 
 920 void
 921 ipcl_hash_insert_wildcard(connf_t *connfp, conn_t *connp)
 922 {
 923         conn_t **list, *prev, *next;
 924         conn_t *pconnp = NULL, *nconnp;
 925         boolean_t isv4mapped = IN6_IS_ADDR_V4MAPPED(&connp->conn_laddr_v6);
 926 
 927         IPCL_HASH_REMOVE(connp);
 928         mutex_enter(&connfp->connf_lock);
 929         nconnp = connfp->connf_head;
 930         pconnp = NULL;
 931         while (nconnp != NULL) {
 932                 if (IN6_IS_ADDR_V4MAPPED_ANY(&nconnp->conn_laddr_v6) &&
 933                     isv4mapped && connp->conn_lport == nconnp->conn_lport)
 934                         break;
 935                 if (IN6_IS_ADDR_UNSPECIFIED(&nconnp->conn_laddr_v6) &&
 936                     (isv4mapped ||
 937                     connp->conn_lport == nconnp->conn_lport))
 938                         break;
 939 
 940                 pconnp = nconnp;
 941                 nconnp = nconnp->conn_next;
 942         }
 943         if (pconnp != NULL) {
 
 | 
 
 
 903         }
 904         if (pconnp != NULL) {
 905                 pconnp->conn_next = connp;
 906                 connp->conn_prev = pconnp;
 907         } else {
 908                 connfp->connf_head = connp;
 909         }
 910         if (nconnp != NULL) {
 911                 connp->conn_next = nconnp;
 912                 nconnp->conn_prev = connp;
 913         }
 914         connp->conn_fanout = connfp;
 915         connp->conn_flags = (connp->conn_flags & ~IPCL_REMOVED) | IPCL_BOUND;
 916         CONN_INC_REF(connp);
 917         mutex_exit(&connfp->connf_lock);
 918 }
 919 
 920 void
 921 ipcl_hash_insert_wildcard(connf_t *connfp, conn_t *connp)
 922 {
 923         conn_t *pconnp = NULL, *nconnp;
 924         boolean_t isv4mapped = IN6_IS_ADDR_V4MAPPED(&connp->conn_laddr_v6);
 925 
 926         IPCL_HASH_REMOVE(connp);
 927         mutex_enter(&connfp->connf_lock);
 928         nconnp = connfp->connf_head;
 929         pconnp = NULL;
 930         while (nconnp != NULL) {
 931                 if (IN6_IS_ADDR_V4MAPPED_ANY(&nconnp->conn_laddr_v6) &&
 932                     isv4mapped && connp->conn_lport == nconnp->conn_lport)
 933                         break;
 934                 if (IN6_IS_ADDR_UNSPECIFIED(&nconnp->conn_laddr_v6) &&
 935                     (isv4mapped ||
 936                     connp->conn_lport == nconnp->conn_lport))
 937                         break;
 938 
 939                 pconnp = nconnp;
 940                 nconnp = nconnp->conn_next;
 941         }
 942         if (pconnp != NULL) {
 
 |