Index: /branches/rel_apv_10_7_3/usr/click/lib/libepolicy/ssl_policy.c
===================================================================
--- /branches/rel_apv_10_7_3/usr/click/lib/libepolicy/ssl_policy.c	(revision 39586)
+++ /branches/rel_apv_10_7_3/usr/click/lib/libepolicy/ssl_policy.c	(working copy)
@@ -438,7 +438,7 @@
 
 	bzero(sni_name, sizeof(sni_name));
 	if (sslp->domain_index != 0 && sslp->ssl_array_data) {
-		bcopy(sslp->ssl_array_data->domain_name, sni_name, SSL_MAXHOSTNAMELEN);
+		bcopy(sslp->domain_name, sni_name, SSL_MAXHOSTNAMELEN);
 		Tcl_SetObjResult(interp, Tcl_NewStringObj((const unsigned char*)sni_name, strlen(sni_name) + 1));
 	} 
 
Index: /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_client.c
===================================================================
--- /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_client.c	(revision 39586)
+++ /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_client.c	(working copy)
@@ -241,7 +241,7 @@
 			return 0;
 		}
 
-		if (strncmp(sp->domain_name, sslp->ssl_array_data->domain_name, sizeof(sp->domain_name))) {
+		if (strncmp(sp->domain_name, sslp->domain_name, sizeof(sp->domain_name))) {
 			/*Don't mach*/
 			return 0;
 		}
@@ -637,7 +637,7 @@
 	
 
 	/* if there is SNI, client hello must sent servername extension */
-	if ((sslp->vhost->ver[1] >= 0x01) && (sslp->ssl_array_data->domain_name[0] != '\0')) {
+	if ((sslp->vhost->ver[1] >= 0x01) && (sslp->domain_name[0] != '\0')) {
 		/* server name extension flag */
 		*cp++ = 0x00;
 		*cp++ = 0x00;
@@ -650,8 +650,8 @@
 		cp += 2;
 		
 		i = 0;
-		while (sslp->ssl_array_data->domain_name[i] != '\0' && i < MAXHOSTNAMELEN) {
-			*cp++ = sslp->ssl_array_data->domain_name[i++];
+		while (sslp->domain_name[i] != '\0' && i < MAXHOSTNAMELEN) {
+			*cp++ = sslp->domain_name[i++];
 		}
 
 		INTTOLEN2(cp_before_host_name, i);
@@ -863,7 +863,7 @@
 	sslp->ver[0] = 0;
 	sslp->ver[1] = 0;
 	
-	si_printf("%s: %s\n",ssl_refer->ssl_array_data->domain_name,__func__);
+	si_printf("%s: %s\n",ssl_refer->domain_name,__func__);
 	/*Assemble new client-hello message*/
 	rp = ssl_alloc_ssl_record(sslp);
 	if (!rp) {
@@ -1031,8 +1031,8 @@
 		*cp++ = 0x00;  /*host_name type*/
 		uint8_t *cp_before_server_name = cp;
 		cp += 2;
-		uint16_t sni_len = strlen(ssl_refer->ssl_array_data->domain_name);
-		bcopy(ssl_refer->ssl_array_data->domain_name, cp, sni_len);
+		uint16_t sni_len = strlen(ssl_refer->domain_name);
+		bcopy(ssl_refer->domain_name, cp, sni_len);
 
 		cp += sni_len;
 		INTTOLEN2(cp_before_server_name, sni_len);
@@ -1460,7 +1460,7 @@
 					}
 				}
 			} 
-			si_printf("(%s:%d)%s\n",__func__,__LINE__, sslp->ssl_array_data->domain_name);
+			si_printf("(%s:%d)%s\n",__func__,__LINE__, sslp->domain_name);
 		} else {
 			sslp->tlsext_flags = 0;
 		}
@@ -1752,7 +1752,7 @@
 			while (*ch2 != '\r') {
 				ch2++;
 			}
-			memcpy(sslp->ssl_array_data->domain_name, ch1, (int)(ch2 - ch1));
+			memcpy(sslp->domain_name, ch1, (int)(ch2 - ch1));
 			sslp->tlsext_flags |= TLS_EXT_FLAG_SERVERNAME;
 		}
 		ch1++;
@@ -1851,7 +1851,7 @@
 		
 		if (vhost_sslp->apv_ssli_webagent_data && vhost_sslp->apv_ssli_webagent_data->domain_name[0] != '\0') {
 			sslp->tlsext_flags |= TLS_EXT_FLAG_SERVERNAME;
-			bcopy(vhost_sslp->apv_ssli_webagent_data->domain_name, sslp->ssl_array_data->domain_name, strlen(vhost_sslp->apv_ssli_webagent_data->domain_name));
+			bcopy(vhost_sslp->apv_ssli_webagent_data->domain_name, sslp->domain_name, strlen(vhost_sslp->apv_ssli_webagent_data->domain_name));
 		}else if (vhost_sslp->tlsext_flags & TLS_EXT_FLAG_SUPPORT_HTTP2){
 
 		}
@@ -2158,7 +2158,7 @@
 		}
 	} 
 	else if ((sslp->vhost->flags & SSL_VHOST_REUSE) && (session_id_len != 0) &&
-				!(sslp->flags & SSL_FLAG_INTERCEPT_ERHOST && sslp->ssl_array_data->domain_name[0] == '\0')) {
+				!(sslp->flags & SSL_FLAG_INTERCEPT_ERHOST && sslp->domain_name[0] == '\0')) {
 		sslp->session_cache =
 			ssl_new_session_cache(sslp, ssl_client_data->session_id, session_id_len);
 		if (!sslp->session_cache) {
Index: /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_input.c
===================================================================
--- /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_input.c	(revision 39586)
+++ /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_input.c	(working copy)
@@ -1873,7 +1873,7 @@
 
         if (vhost->domainname[0][0] != '\0') {
                 /* SNI for real host has set */
-                bcopy(vhost->domainname[0], sslp->ssl_array_data->domain_name, MAXHOSTNAMELEN+1);
+                bcopy(vhost->domainname[0], sslp->domain_name, MAXHOSTNAMELEN+1);
         } else if (vs_pcb != NULL
 			&& vs_pcb->cp_vs != NULL
 			&& (slb_vs_t *)(vs_pcb->cp_vs)->ssl_vhost_p != NULL) {
@@ -1884,9 +1884,9 @@
 		if (vhost->flags & SSL_RHOST_AUTOSNI) {
 			char *vhost_sni = ssl_lookup_domain_by_index(vs_sslp->domain_index, vs->ssl_vhost_p);
 			if (vhost_sni) {
-				bcopy(vhost_sni, sslp->ssl_array_data->domain_name, MAXHOSTNAMELEN+1);
+				bcopy(vhost_sni, sslp->domain_name, MAXHOSTNAMELEN+1);
 			} else {
-				bcopy(vs->ssl_vhost_p->client_req_domainname, sslp->ssl_array_data->domain_name, MAXHOSTNAMELEN+1);
+				bcopy(vs_sslp->domain_name, sslp->domain_name, MAXHOSTNAMELEN+1);
                         }
 		}
 
Index: /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_misc.c
===================================================================
--- /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_misc.c	(revision 39586)
+++ /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_misc.c	(working copy)
@@ -5489,7 +5489,7 @@
 		KASSERT((sp->domain_name)[0] == '\0', ("(sp->domain_name)[0] = %c\n", (sp->domain_name)[0]));
 		/* record domain-name for determining whether reuse */
 		if (sslp->tlsext_flags & TLS_EXT_FLAG_SERVERNAME) {
-			strncpy(sp->domain_name, sslp->ssl_array_data->domain_name, sizeof(sp->domain_name));
+			strncpy(sp->domain_name, sslp->domain_name, sizeof(sp->domain_name));
 		}
 
 		sp->vhost = sslp->vhost;
@@ -5583,7 +5583,7 @@
 	KASSERT((sp->domain_name)[0] == '\0', ("(sp->domain_name)[0] = %c\n", (sp->domain_name)[0]));
 	/* record domain-name for determining whether reuse */
 	if (sslp->tlsext_flags & TLS_EXT_FLAG_SERVERNAME) {
-		strncpy(sp->domain_name, sslp->ssl_array_data->domain_name, sizeof(sp->domain_name));
+		strncpy(sp->domain_name, sslp->domain_name, sizeof(sp->domain_name));
 	}
 
 	sp->vhost = sslp->vhost;
@@ -5951,8 +5951,8 @@
 		memcpy(&tmp_sp.tcpaddr.ip6, &sslp->tcpaddr.ip6, sizeof(sslp->tcpaddr.ip6));
 		tmp_sp.tcpaddr.ip.s_addr = sslp->tcpaddr.ip.s_addr;
 		tmp_sp.tcpaddr.port = sslp->tcpaddr.port;
-		if (sslp->ssl_array_data->domain_name[0] != '\0') {
-			strncpy(tmp_sp.domain_name, sslp->ssl_array_data->domain_name, sizeof(tmp_sp.domain_name));
+		if (sslp->domain_name[0] != '\0') {
+			strncpy(tmp_sp.domain_name, sslp->domain_name, sizeof(tmp_sp.domain_name));
 		}
 
 		idx = TLSV13_SC_KEY(&tmp_sp);
@@ -5986,8 +5986,8 @@
 	memcpy(&sp->tcpaddr.ip6, &sslp->tcpaddr.ip6, sizeof(sslp->tcpaddr.ip6));
 	sp->tcpaddr.ip.s_addr = sslp->tcpaddr.ip.s_addr;
 	sp->tcpaddr.port = sslp->tcpaddr.port;
-	if (sslp->ssl_array_data->domain_name[0] != '\0') {
-		strncpy(sp->domain_name, sslp->ssl_array_data->domain_name, sizeof(sp->domain_name));
+	if (sslp->domain_name[0] != '\0') {
+		strncpy(sp->domain_name, sslp->domain_name, sizeof(sp->domain_name));
 	}
 
 	idx = TLSV13_SC_KEY(sp);
Index: /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_server.c
===================================================================
--- /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_server.c	(revision 39586)
+++ /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_server.c	(working copy)
@@ -482,8 +482,7 @@
 							sslp->tlsext_flags |= TLS_EXT_FLAG_SERVERNAME;
 							/* Search for the domain-index in the array
 							 * of domain-names for the virtual host. */
-							bcopy(extp->data, sslp->ssl_array_data->domain_name, len+1);
-							bcopy(sslp->ssl_array_data->domain_name, sslp->vhost->client_req_domainname, len+1);
+							bcopy(extp->data, sslp->domain_name, len+1);
 
 							if (ssl_log_record_on) {
 								if (sslp->app_visual_data != NULL) {
@@ -491,7 +490,7 @@
 								}
 							}
 
-							sslp->lookup_index = ssl_lookup_domain_by_name_wild(sslp->ssl_array_data->domain_name, sslp->vhost);
+							sslp->lookup_index = ssl_lookup_domain_by_name_wild(sslp->domain_name, sslp->vhost);
 							if (sslp->lookup_index == -1) {
 								/* The SNI domain-name is not found on the list of domain-names available on the server side. */
 								sslp->domain_index = 0;
@@ -1464,7 +1463,7 @@
 
 					/* compare domain name */
 					if (sslp->tlsext_flags & TLS_EXT_FLAG_SERVERNAME) {
-						if (strncmp(sp->domain_name, sslp->ssl_array_data->domain_name, sizeof(sp->domain_name))) {
+						if (strncmp(sp->domain_name, sslp->domain_name, sizeof(sp->domain_name))) {
 							LIST_REMOVE(sslp, sc_data);
 							SSL_SC_REM_REFCNT(sp);
 							sslp->session_cache = NULL;
@@ -2060,13 +2059,13 @@
 		goto  by_pass_for_internal;
 	}
 
-	if (strlen(sslp->ssl_array_data->domain_name) > 0) {
+	if (strlen(sslp->domain_name) > 0) {
 	
-		bcopy(sslp->ssl_array_data->domain_name, sslp->apv_ssli_webagent_data->domain_name, strlen(sslp->ssl_array_data->domain_name));	
+		bcopy(sslp->domain_name, sslp->apv_ssli_webagent_data->domain_name, strlen(sslp->domain_name));	
 	
 		/*Search the white list.*/
 		if (ssli_domainlist) {
-			dl_ret = ssli_dl_sni_match(sslp->vhost, sslp->ssl_array_data->domain_name);
+			dl_ret = ssli_dl_sni_match(sslp->vhost, sslp->domain_name);
 			if (dl_ret == SSLI_DO_BYPASS) {
 				/*Hit bypass domain list*/
 				bypass_by_configure = 1;
@@ -2103,15 +2102,15 @@
 						get_sslp_peer_ip(sslp, ssl_peerip);
 						if (sslp->vhost->segment_id == SEGMENT_ID_INVALID) {
 							if(sslp->proxy_data.vs_info.vs_p){
-								fastlog_logex_vs(WC_HIT_BYPASS_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+								fastlog_logex_vs(WC_HIT_BYPASS_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 							}else{
-								fastlog_logex(WC_HIT_BYPASS_CATEGORY, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+								fastlog_logex(WC_HIT_BYPASS_CATEGORY, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 							}
 						} else {
 							if(sslp->proxy_data.vs_info.vs_p){
-								segment_fastlog_logex_vs(WC_HIT_BYPASS_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+								segment_fastlog_logex_vs(WC_HIT_BYPASS_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 							}else{
-								segment_fastlog_logex(WC_HIT_BYPASS_CATEGORY, sslp->vhost->segment_id, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+								segment_fastlog_logex(WC_HIT_BYPASS_CATEGORY, sslp->vhost->segment_id, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 							}
 						}
 						bypass_by_configure = 1;
@@ -2124,15 +2123,15 @@
 							get_sslp_peer_ip(sslp, ssl_peerip);
 							if (sslp->vhost->segment_id == SEGMENT_ID_INVALID) {
 								if(sslp->proxy_data.vs_info.vs_p){
-									fastlog_logex_vs(WC_HIT_INTERCEPT_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+									fastlog_logex_vs(WC_HIT_INTERCEPT_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 								}else{
-									fastlog_logex(WC_HIT_INTERCEPT_CATEGORY, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+									fastlog_logex(WC_HIT_INTERCEPT_CATEGORY, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 								}
 							} else {
 								if(sslp->proxy_data.vs_info.vs_p){
-									segment_fastlog_logex_vs(WC_HIT_INTERCEPT_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+									segment_fastlog_logex_vs(WC_HIT_INTERCEPT_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 								}else{
-									segment_fastlog_logex(WC_HIT_INTERCEPT_CATEGORY, sslp->vhost->segment_id, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+									segment_fastlog_logex(WC_HIT_INTERCEPT_CATEGORY, sslp->vhost->segment_id, 3, all_web_categories[cc_entry->category_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 								}
 							}
 							/*Cateogry hit intercept configuration, then must not to bypass*/
@@ -2147,15 +2146,15 @@
 									get_sslp_peer_ip(sslp, ssl_peerip);
 									if (sslp->vhost->segment_id == SEGMENT_ID_INVALID) {
 										if(sslp->proxy_data.vs_info.vs_p){
-											fastlog_logex_vs(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+											fastlog_logex_vs(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->domain_name);
 										}else{
-											fastlog_logex(WC_BYPASS_UNRECOGNIZED_CATEGORY, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+											fastlog_logex(WC_BYPASS_UNRECOGNIZED_CATEGORY, 2, ssl_peerip, sslp->domain_name);
 										}
 									} else {
 										if(sslp->proxy_data.vs_info.vs_p){
-											segment_fastlog_logex_vs(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+											segment_fastlog_logex_vs(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->domain_name);
 										}else{
-											segment_fastlog_logex(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+											segment_fastlog_logex(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, 2, ssl_peerip, sslp->domain_name);
 										}
 									}
 								} else {
@@ -2163,15 +2162,15 @@
 									get_sslp_peer_ip(sslp, ssl_peerip);
 									if (sslp->vhost->segment_id == SEGMENT_ID_INVALID) {
 										if(sslp->proxy_data.vs_info.vs_p){
-											fastlog_logex_vs(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+											fastlog_logex_vs(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->domain_name);
 										}else{
-											fastlog_logex(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+											fastlog_logex(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, 2, ssl_peerip, sslp->domain_name);
 										}
 									} else {
 										if(sslp->proxy_data.vs_info.vs_p){
-											segment_fastlog_logex_vs(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+											segment_fastlog_logex_vs(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->domain_name);
 										}else{
-											segment_fastlog_logex(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+											segment_fastlog_logex(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, 2, ssl_peerip, sslp->domain_name);
 										}
 									}
 								}
@@ -2215,7 +2214,7 @@
 		#endif
 		}
 	}
-	if (!bypass_by_configure && (strlen(sslp->ssl_array_data->domain_name) > 0)) {
+	if (!bypass_by_configure && (strlen(sslp->domain_name) > 0)) {
 		ssli_cached_cert_t *ccertp = ssli_cached_cert_lookup(sslp);
 		sslp->sign_algo = 0;
 		if (ccertp) {
@@ -2496,15 +2495,15 @@
 			get_sslp_peer_ip(sslp, ssl_peerip);
 			if (sslp->vhost->segment_id == SEGMENT_ID_INVALID) {
 				if(sslp->proxy_data.vs_info.vs_p){
-					fastlog_logex_vs(WC_HIT_BYPASS_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+					fastlog_logex_vs(WC_HIT_BYPASS_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 				}else{
-					fastlog_logex(WC_HIT_BYPASS_CATEGORY, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+					fastlog_logex(WC_HIT_BYPASS_CATEGORY, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 				}
 			} else {
 				if(sslp->proxy_data.vs_info.vs_p){
-					segment_fastlog_logex_vs(WC_HIT_BYPASS_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+					segment_fastlog_logex_vs(WC_HIT_BYPASS_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 				}else{
-					segment_fastlog_logex(WC_HIT_BYPASS_CATEGORY, sslp->vhost->segment_id, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+					segment_fastlog_logex(WC_HIT_BYPASS_CATEGORY, sslp->vhost->segment_id, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 				}
 			}
 			bypass_by_configure = 1;
@@ -2517,15 +2516,15 @@
 			get_sslp_peer_ip(sslp, ssl_peerip);
 			if (sslp->vhost->segment_id == SEGMENT_ID_INVALID) {
 				if(sslp->proxy_data.vs_info.vs_p){
-					fastlog_logex_vs(WC_HIT_INTERCEPT_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+					fastlog_logex_vs(WC_HIT_INTERCEPT_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 				}else{
-					fastlog_logex(WC_HIT_INTERCEPT_CATEGORY, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+					fastlog_logex(WC_HIT_INTERCEPT_CATEGORY, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 				}
 			} else {
 				if(sslp->proxy_data.vs_info.vs_p){
-					segment_fastlog_logex_vs(WC_HIT_INTERCEPT_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+					segment_fastlog_logex_vs(WC_HIT_INTERCEPT_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 				}else{
-					segment_fastlog_logex(WC_HIT_INTERCEPT_CATEGORY, sslp->vhost->segment_id, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->ssl_array_data->domain_name);
+					segment_fastlog_logex(WC_HIT_INTERCEPT_CATEGORY, sslp->vhost->segment_id, 3, all_web_categories[sslp->apv_ssli_webagent_data->ssli_webcat_id[index]].cat_name, ssl_peerip, sslp->domain_name);
 				}
 			}
 		} else {
@@ -2540,15 +2539,15 @@
 					get_sslp_peer_ip(sslp, ssl_peerip);
 					if (sslp->vhost->segment_id == SEGMENT_ID_INVALID) {
 						if(sslp->proxy_data.vs_info.vs_p){
-							fastlog_logex_vs(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+							fastlog_logex_vs(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->domain_name);
 						}else{
-							fastlog_logex(WC_BYPASS_UNRECOGNIZED_CATEGORY, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+							fastlog_logex(WC_BYPASS_UNRECOGNIZED_CATEGORY, 2, ssl_peerip, sslp->domain_name);
 						}
 					} else {
 						if(sslp->proxy_data.vs_info.vs_p){
-							segment_fastlog_logex_vs(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+							segment_fastlog_logex_vs(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->domain_name);
 						}else{
-							segment_fastlog_logex(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+							segment_fastlog_logex(WC_BYPASS_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, 2, ssl_peerip, sslp->domain_name);
 						}
 					}
 				} else {
@@ -2556,15 +2555,15 @@
 					get_sslp_peer_ip(sslp, ssl_peerip);
 					if (sslp->vhost->segment_id == SEGMENT_ID_INVALID) {
 						if(sslp->proxy_data.vs_info.vs_p){
-							fastlog_logex_vs(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+							fastlog_logex_vs(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->domain_name);
 						}else{
-							fastlog_logex(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+							fastlog_logex(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, 2, ssl_peerip, sslp->domain_name);
 						}
 					} else {
 						if(sslp->proxy_data.vs_info.vs_p){
-							segment_fastlog_logex_vs(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+							segment_fastlog_logex_vs(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, sslp->proxy_data.vs_info.vs_p->name, 2, ssl_peerip, sslp->domain_name);
 						}else{
-							segment_fastlog_logex(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, 2, ssl_peerip, sslp->ssl_array_data->domain_name);
+							segment_fastlog_logex(WC_INTERCEPT_UNRECOGNIZED_CATEGORY, sslp->vhost->segment_id, 2, ssl_peerip, sslp->domain_name);
 						}
 					}
 				}
@@ -2597,7 +2596,7 @@
 	#endif
 	
 	rp = STAILQ_FIRST(&sslp->record_in);
-	if (!bypass_by_configure && (strlen(sslp->ssl_array_data->domain_name) > 0)) {
+	if (!bypass_by_configure && (strlen(sslp->domain_name) > 0)) {
 			ssli_cached_cert_t *ccertp = ssli_cached_cert_lookup(sslp);
 			sslp->sign_algo = 0;
 			if (ccertp) {
@@ -3215,7 +3214,7 @@
 		sslstats.ssli_resign_cert_error++;
 		SSL_SM_ERROR(sslp, RST_ID_SSL_SERVER_96);
 	}
-	if (strlen(sslp->ssl_array_data->domain_name) > 0) {
+	if (strlen(sslp->domain_name) > 0) {
 		if (ssli_add_cached_cert(sslp) != SSL_OK) {
 			si_printf("(%s:%d)Failed to add resigned cert into the cache!\n",__func__,__LINE__);
 		}
@@ -4535,7 +4534,7 @@
 
 				/* compare domain name */
 				if (sslp->tlsext_flags & TLS_EXT_FLAG_SERVERNAME) {
-					if (strncmp(sp->domain_name, sslp->ssl_array_data->domain_name, sizeof(sp->domain_name))) {
+					if (strncmp(sp->domain_name, sslp->domain_name, sizeof(sp->domain_name))) {
 
 						LIST_REMOVE(sslp, sc_data);
 						SSL_SC_REM_REFCNT(sp);
@@ -4829,8 +4828,8 @@
 		sslp->tlsext_flags = 0;
 	}
 
-	if ((strlen(sslp->ssl_array_data->domain_name) > 0) && (ssli_egress_rhost_count > 0)) {
-		bcopy(sslp->ssl_array_data->domain_name, sslp->apv_ssli_webagent_data->domain_name, sizeof(sslp->apv_ssli_webagent_data->domain_name));	
+	if ((strlen(sslp->domain_name) > 0) && (ssli_egress_rhost_count > 0)) {
+		bcopy(sslp->domain_name, sslp->apv_ssli_webagent_data->domain_name, sizeof(sslp->apv_ssli_webagent_data->domain_name));	
 	}
 	
 	found = 0;
@@ -15707,21 +15706,21 @@
 	int i = 0;
 	struct mbuf *mp;
 	/* all domain names stored in ptree are in lower case */
-	while (*(sslp->ssl_array_data->domain_name + i) != '\0') {
-		*(lower_name + i) = tolower(*(sslp->ssl_array_data->domain_name + i));
+	while (*(sslp->domain_name + i) != '\0') {
+		*(lower_name + i) = tolower(*(sslp->domain_name + i));
 		i++;
 	}
 	lower_name[i] = '\0';
 
 	flag = PATRICIA_MATCH_EXACT;
-	pnode = patricia_insearch(sslp->vhost->vhost_atcp[curatcp].cache_cert_ptree, lower_name, strlen(sslp->ssl_array_data->domain_name), flag);
+	pnode = patricia_insearch(sslp->vhost->vhost_atcp[curatcp].cache_cert_ptree, lower_name, strlen(sslp->domain_name), flag);
 	si_cc_printf("(%s:%d)curatcp:%d\n",__func__,__LINE__,curatcp);
 	if (pnode == NULL) {
-		si_cc_printf("(%s:%d) fail to find domain_name : %s  and lower name : %s in pat tree.\n", __func__,__LINE__, sslp->ssl_array_data->domain_name, lower_name);
+		si_cc_printf("(%s:%d) fail to find domain_name : %s  and lower name : %s in pat tree.\n", __func__,__LINE__, sslp->domain_name, lower_name);
 		return NULL;
 	}
 
-	si_cc_printf("(%s:%d)Found the domain name : %s and lower name : %s\n",__func__,__LINE__, sslp->ssl_array_data->domain_name, lower_name);
+	si_cc_printf("(%s:%d)Found the domain name : %s and lower name : %s\n",__func__,__LINE__, sslp->domain_name, lower_name);
 	ccertp = pnode->data;
 	//TIMER_RESET(ccertp, &ssli_cert_cache_timeout_queue, cached_cert_timeout);
 	
@@ -15742,20 +15741,20 @@
 	si_printf("(%s:%d)curatcp:%d\n",__func__,__LINE__,curatcp);
 	
 	/*All domain names stored in ptree are in lower case */
-	while (*(sslp->ssl_array_data->domain_name + i) != '\0') {
-		*(lower_name + i) = tolower(*(sslp->ssl_array_data->domain_name + i));
+	while (*(sslp->domain_name + i) != '\0') {
+		*(lower_name + i) = tolower(*(sslp->domain_name + i));
 		i++;
 	}   
 	lower_name[i] = '\0';
 	vhost = sslp->vhost;
 	flag = PATRICIA_MATCH_EXACT;
-	pnode = patricia_insearch(vhost->vhost_atcp[curatcp].cache_cert_ptree, lower_name, strlen(sslp->ssl_array_data->domain_name), flag);
+	pnode = patricia_insearch(vhost->vhost_atcp[curatcp].cache_cert_ptree, lower_name, strlen(sslp->domain_name), flag);
 	if (pnode) {
 		ssli_cached_cert_t *find_cc = (ssli_cached_cert_t *)(pnode->data);
 		/*If the same certificate type exsit then return SSL_OK, else just store it to the right store(ecc_mp new added).*/
 		if (((sslp->apv_ssli_webagent_data->ssli_server_certificate_algo == e_ecc) && (find_cc->ecc_mp)) || 
 				((sslp->apv_ssli_webagent_data->ssli_server_certificate_algo == e_rsa) && (find_cc->mp))) {
-			si_cc_printf("(%s:%d) sslp domain name: %s had been added concurrently or fetch cert once more\n",__func__,__LINE__,sslp->ssl_array_data->domain_name);
+			si_cc_printf("(%s:%d) sslp domain name: %s had been added concurrently or fetch cert once more\n",__func__,__LINE__,sslp->domain_name);
 			return SSL_OK;
 		} else {
 			if (sslp->apv_ssli_webagent_data->ssli_server_certificate_algo == e_ecc) {
@@ -15819,10 +15818,10 @@
 	flag = PATRICIA_INSERT;
 	len = strlen(lower_name);
 	ccert->vhost = sslp->vhost;
-	si_cc_printf("(%s:%d) sslp domain name: %s,lower_name: %s\n",__func__,__LINE__,sslp->ssl_array_data->domain_name,lower_name);
+	si_cc_printf("(%s:%d) sslp domain name: %s,lower_name: %s\n",__func__,__LINE__,sslp->domain_name,lower_name);
 	pnode = patricia_insearch(vhost->vhost_atcp[curatcp].cache_cert_ptree, lower_name, len, flag);
 	if (pnode == NULL) {
-		si_cc_printf("Fail to insert cert to pat tree in %s with lower name : %s , and domain name: %s\n",__func__,lower_name,sslp->ssl_array_data->domain_name);
+		si_cc_printf("Fail to insert cert to pat tree in %s with lower name : %s , and domain name: %s\n",__func__,lower_name,sslp->domain_name);
 		sslstats.ssli_failed_insert_pat_tree++;
 		ssli_remove_cached_cert(ccert);
 		return SSL_ERROR;
@@ -16321,14 +16320,14 @@
 
 	/* sslp->doamin_name is always valid,it's original value is {0} */ 
 	if (sslp->ssl_array_data) {
-		if (sslp->ssl_array_data->domain_name[0] == '\0') {
+		if (sslp->domain_name[0] == '\0') {
 			if ((sslp->app_visual_data != NULL) && (sslp->app_visual_data->domain_name[0] != '\0')) {
 				sni_info = sslp->app_visual_data->domain_name;
 			} else {
 				sni_info = "None";
 			}
 		} else {
-			sni_info = sslp->ssl_array_data->domain_name;
+			sni_info = sslp->domain_name;
 		}
 	} else {
 		sni_info = "None";
Index: /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_var_shared.h
===================================================================
--- /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_var_shared.h	(revision 39586)
+++ /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/ssl_var_shared.h	(working copy)
@@ -554,7 +554,6 @@
 	uint8_t verify_sha_iv[64];
 	uint8_t handshake_word_local[8];	
 	uint8_t signature_algorithm[MAX_SIGNATURE_ALGORITHM_SIZE];	/* the signature algorithm packets from the ClientHello Extension */
-	uint8_t domain_name[SSL_MAXHOSTNAMELEN + 1]; /* SNI domain-name. */
 	uint8_t	session_data[SSL_MAX_SSL_SESSION_ID_LENGTH];
 }ssl_array_data_t;
 
@@ -810,7 +809,7 @@
 	void *reng_enc_write_ctx;
 #endif
 	struct timeval hs_start_time;
-
+	uint8_t domain_name[SSL_MAXHOSTNAMELEN + 1]; /* SNI domain-name. */
 } ssl_data_t;
 
 typedef LIST_HEAD(vh_sdhead_smp, ssl_data) vh_sdhead_smp_t;
@@ -959,7 +958,6 @@
 	int                 slb_service_count; /* Associated slb vs or rs count */
 	int no_of_domains;  /* For Server Name Indication extension. */
 	uint8_t domainname[MAX_DOMAIN_NAMES+1][MAXHOSTNAMELEN+1];
-	uint8_t client_req_domainname[MAXHOSTNAMELEN+1];
 	struct mbuf        *certificate[MAX_DOMAIN_NAMES+1];		/*This member stores RSA certificate .*/
 	struct mbuf        *certificate_rsapss[MAX_DOMAIN_NAMES+1];	/*This member stores RSAPSS certificate .*/
 	struct mbuf        *certificate_ecc[MAX_DOMAIN_NAMES+1];    /*This member stores ECC certificate .*/
Index: /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/tlsv13_client.c
===================================================================
--- /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/tlsv13_client.c	(revision 39586)
+++ /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/tlsv13_client.c	(working copy)
@@ -1241,8 +1241,8 @@
 		memcpy(&(tmp_sp.tcpaddr.ip6), &sslp->tcpaddr.ip6, sizeof(sslp->tcpaddr.ip6));
 		tmp_sp.tcpaddr.ip.s_addr = sslp->tcpaddr.ip.s_addr;
 		tmp_sp.tcpaddr.port = sslp->tcpaddr.port;
-		if (sslp->ssl_array_data->domain_name[0] != '\0') {
-			strncpy(tmp_sp.domain_name, sslp->ssl_array_data->domain_name, sizeof(sslp->ssl_array_data->domain_name));
+		if (sslp->domain_name[0] != '\0') {
+			strncpy(tmp_sp.domain_name, sslp->domain_name, sizeof(sslp->domain_name));
 		}
 		for (i = 0; i < sslp->vhost->cipherlen[INDEX_TLSv13]; i++) {
 			tmp_sp.cipher = sslp->vhost->ciphers[INDEX_TLSv13][i];
@@ -1331,7 +1331,7 @@
 	sslp->tlsv13_data->c_ext_len_offset = (uint16_t)(cp - mtod(mp, uint8_t *));
 	cp += 2;
 
-	if (sslp->ssl_array_data->domain_name[0] != '\0'){
+	if (sslp->domain_name[0] != '\0'){
 		cp = tlsv13_c_package_extension(sslp, cp, TLSEXT_TYPE_server_name);
 	}
 
@@ -1506,8 +1506,8 @@
 		memcpy(&(tmp_sp.tcpaddr.ip6), &sslp->tcpaddr.ip6, sizeof(sslp->tcpaddr.ip6));
 		tmp_sp.tcpaddr.ip.s_addr = sslp->tcpaddr.ip.s_addr;
 		tmp_sp.tcpaddr.port = sslp->tcpaddr.port;
-		if (sslp->ssl_array_data->domain_name[0] != '\0') {
-			strncpy(tmp_sp.domain_name, sslp->ssl_array_data->domain_name, sizeof(sslp->ssl_array_data->domain_name));
+		if (sslp->domain_name[0] != '\0') {
+			strncpy(tmp_sp.domain_name, sslp->domain_name, sizeof(sslp->domain_name));
 		}
 		
 		tmp_sp.cipher = sslp->pending_cipher;
@@ -1734,10 +1734,10 @@
 			*cp++ = 0x00;
 			cp_before_host_name = cp;
 			cp += 2;
-			if (sslp->ssl_array_data->domain_name[0] != '\0') {
+			if (sslp->domain_name[0] != '\0') {
 				i = 0;
-				while (sslp->ssl_array_data->domain_name[i] != '\0' && i < MAXHOSTNAMELEN) {
-					*cp++ = sslp->ssl_array_data->domain_name[i++];
+				while (sslp->domain_name[i] != '\0' && i < MAXHOSTNAMELEN) {
+					*cp++ = sslp->domain_name[i++];
 				}
 
 				INTTOLEN2(cp_before_host_name, i);
@@ -1754,7 +1754,7 @@
 			INTTOLEN2(cp_before_sni + 2, cp - cp_before_sni - 4);
 		} else {
 			/* if there is SNI, client hello must sent servername extension */
-			if (sslp->ssl_array_data->domain_name[0] != '\0') {
+			if (sslp->domain_name[0] != '\0') {
 				INTTOLEN2(cp, ext_type);
 				cp += 2;
 				cp_before_sni = cp;
@@ -1766,8 +1766,8 @@
 				cp += 2;
 				
 				i = 0;
-				while (sslp->ssl_array_data->domain_name[i] != '\0' && i < MAXHOSTNAMELEN) {
-					*cp++ = sslp->ssl_array_data->domain_name[i++];
+				while (sslp->domain_name[i] != '\0' && i < MAXHOSTNAMELEN) {
+					*cp++ = sslp->domain_name[i++];
 				}
 
 				INTTOLEN2(cp_before_host_name, i);
Index: /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/tlsv13_server.c
===================================================================
--- /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/tlsv13_server.c	(revision 39586)
+++ /branches/rel_apv_10_7_3/usr/src/sys/click/app/ssl/tlsv13_server.c	(working copy)
@@ -188,8 +188,8 @@
 				sslp->tlsext_flags |= TLS_EXT_FLAG_SERVERNAME;
 				/* Search for the domain-index in the array
 				 * of domain-names for the virtual host. */
-				bcopy(extp->data, sslp->ssl_array_data->domain_name, sn_len);
-				sslp->lookup_index = ssl_lookup_domain_by_name_wild(sslp->ssl_array_data->domain_name, sslp->vhost);
+				bcopy(extp->data, sslp->domain_name, sn_len);
+				sslp->lookup_index = ssl_lookup_domain_by_name_wild(sslp->domain_name, sslp->vhost);
 				if (sslp->lookup_index == -1) {
 					/* The SNI domain-name is not found on the list of domain-names available on the server side. */
 					sslp->domain_index = 0;
@@ -218,8 +218,8 @@
 	}
 
 	/* used for vhost ssli off, but rhost ssli on case, to transfer sni to rhost */
-	if ((strlen(sslp->ssl_array_data->domain_name) > 0) && (ssli_egress_rhost_count > 0) && sslp->apv_ssli_webagent_data) {
-		bcopy(sslp->ssl_array_data->domain_name, sslp->apv_ssli_webagent_data->domain_name, sizeof(sslp->apv_ssli_webagent_data->domain_name));	
+	if ((strlen(sslp->domain_name) > 0) && (ssli_egress_rhost_count > 0) && sslp->apv_ssli_webagent_data) {
+		bcopy(sslp->domain_name, sslp->apv_ssli_webagent_data->domain_name, sizeof(sslp->apv_ssli_webagent_data->domain_name));	
 	}
 
 	return SSL_OK;
@@ -2914,7 +2914,7 @@
 	sni_len = *((uint8_t*)identity + sizeof(ticket_identity_cleartext_t)) ;
 
 	ssl_printf("sni_len = %d\n", sni_len);
-	if ((psk_fail_reason == TLSV13_PSK_SUCCESS) && (sni_len != strlen(sslp->ssl_array_data->domain_name))) {
+	if ((psk_fail_reason == TLSV13_PSK_SUCCESS) && (sni_len != strlen(sslp->domain_name))) {
 		psk_fail_reason = TLSV13_PSK_FAIL_SNI_MISMATCH;
 		ssl_printf("psk_fail_reason = %d\n", psk_fail_reason);
 		if (sslp->vhost->segment_id == SEGMENT_ID_INVALID) {
@@ -2932,7 +2932,7 @@
 		}
 		record_handshake_state(sslp, TLSV13_TICKET_SNI_MISMATCH, NULL, 0);
 	} else {
-		if ((psk_fail_reason == TLSV13_PSK_SUCCESS) && (memcmp((uint8_t*)identity + sizeof(ticket_identity_cleartext_t) + 1, sslp->ssl_array_data->domain_name, sni_len)!= 0)) {
+		if ((psk_fail_reason == TLSV13_PSK_SUCCESS) && (memcmp((uint8_t*)identity + sizeof(ticket_identity_cleartext_t) + 1, sslp->domain_name, sni_len)!= 0)) {
 			psk_fail_reason = TLSV13_PSK_FAIL_SNI_MISMATCH;
 			ssl_printf("psk_fail_reason = %d\n", psk_fail_reason);
 			if (sslp->vhost->segment_id == SEGMENT_ID_INVALID) {
@@ -4387,7 +4387,7 @@
 	/* may supported extensions: server_name, supported_groups, alpn, early_data*/
 
 	/* SNI */
-	if (sslp->domain_index > 0 && sslp->ssl_array_data->domain_name[0] != '\0') {
+	if (sslp->domain_index > 0 && sslp->domain_name[0] != '\0') {
 		/* two bytes extension type */
 		INTTOLEN2(cp, TLSEXT_TYPE_server_name); 
 		cp += 2;
@@ -9029,7 +9029,7 @@
 	bcopy(TLSV13_TICKET_NONCE(sslp), sslp->tlsv13_data->vhost_nonce, lable.context_len);
 	bcopy(sslp->tlsv13_data->vhost_nonce, cp, lable.context_len);
 
-	sni_len = strlen(sslp->ssl_array_data->domain_name);
+	sni_len = strlen(sslp->domain_name);
 	identity_len = sizeof(ticket_identity_cleartext_t) + sizeof(uint8_t) + sni_len + sizeof(uint8_t) + psk_len;
 	padding_len = ROUNDUP16(identity_len) - identity_len;
 
@@ -9093,7 +9093,7 @@
 	*cp++ = sni_len;
 	ssl_printf("sni_len = %d\n", *cp);
 
-	bcopy(sslp->ssl_array_data->domain_name, cp, sni_len);
+	bcopy(sslp->domain_name, cp, sni_len);
 	cp += sni_len;
 	*cp++ = psk_len;
 	ssl_printf("psk_len = %d\n", *cp);	
Index: /branches/rel_apv_10_7_3/usr/src/sys/click/app/web_classify/amp_web_classify.c
===================================================================
--- /branches/rel_apv_10_7_3/usr/src/sys/click/app/web_classify/amp_web_classify.c	(revision 39586)
+++ /branches/rel_apv_10_7_3/usr/src/sys/click/app/web_classify/amp_web_classify.c	(working copy)
@@ -246,7 +246,7 @@
 					break;
 				} else {
 					si_wc_amp_printf("(%s:%d) %s : category ID : %d, resource: %d\n", 
-							__func__, __LINE__, sslp->ssl_array_data->domain_name, req->category_id[i], req->resp_status); 
+							__func__, __LINE__, sslp->domain_name, req->category_id[i], req->resp_status); 
 					sslp->apv_ssli_webagent_data->ssli_webcat_id[i] = req->category_id[i];
 				}	
 			}
@@ -296,7 +296,7 @@
 
 	req->type = WC_URL_REQ;
 	sslp->apv_ssli_webagent_data->wc_req = (void *)req;
-	memcpy(req->req_info.url_info, sslp->ssl_array_data->domain_name, sizeof(sslp->ssl_array_data->domain_name));
+	memcpy(req->req_info.url_info, sslp->domain_name, sizeof(sslp->domain_name));
 	req->data = (void *)sslp;
 	req->func = wc_url_req_callback;
 	si_wc_amp_printf("(%s:%d) start to put queue\n",__func__, __LINE__);
Index: /branches/rel_apv_10_7_3/usr/src/sys/click/app/web_classify/website_classify_kern.c
===================================================================
--- /branches/rel_apv_10_7_3/usr/src/sys/click/app/web_classify/website_classify_kern.c	(revision 39586)
+++ /branches/rel_apv_10_7_3/usr/src/sys/click/app/web_classify/website_classify_kern.c	(working copy)
@@ -156,21 +156,21 @@
 	int i = 0;
 	struct mbuf *mp;
 	/* all domain names stored in ptree are in lower case */
-	while (*(sslp->ssl_array_data->domain_name + i) != '\0') {
-		*(lower_name + i) = tolower(*(sslp->ssl_array_data->domain_name + i));
+	while (*(sslp->domain_name + i) != '\0') {
+		*(lower_name + i) = tolower(*(sslp->domain_name + i));
 		i++;
 	}
 	lower_name[i] = '\0';
 
 	flag = PATRICIA_MATCH_EXACT;
-	pnode = patricia_insearch(sslp->vhost->vhost_atcp[curatcp].website_category_ptree, lower_name, strlen(sslp->ssl_array_data->domain_name), flag);
+	pnode = patricia_insearch(sslp->vhost->vhost_atcp[curatcp].website_category_ptree, lower_name, strlen(sslp->domain_name), flag);
 	wc_cc_printf("(%s:%d)curatcp:%d\n",__func__,__LINE__,curatcp);
 	if (pnode == NULL) {
-		wc_cc_printf("(%s:%d) fail to find domain_name : %s  and lower name : %s in pat tree.\n", __func__,__LINE__, sslp->ssl_array_data->domain_name, lower_name);
+		wc_cc_printf("(%s:%d) fail to find domain_name : %s  and lower name : %s in pat tree.\n", __func__,__LINE__, sslp->domain_name, lower_name);
 		return NULL;
 	}
 
-	wc_cc_printf("(%s:%d)Found the domain name : %s and lower name : %s\n",__func__,__LINE__, sslp->ssl_array_data->domain_name, lower_name);
+	wc_cc_printf("(%s:%d)Found the domain name : %s and lower name : %s\n",__func__,__LINE__, sslp->domain_name, lower_name);
 	cc_entryp = pnode->data;
 	TIMER_RESET(cc_entryp, &website_category_cache_timeout_queue, category_cache_timeout);
 	
@@ -190,14 +190,14 @@
 	wc_cc_printf("(%s:%d)curatcp:%d\n",__func__,__LINE__,curatcp);
 	
 	/*All domain names stored in ptree are in lower case */
-	while (*(sslp->ssl_array_data->domain_name + i) != '\0') {
-		*(lower_name + i) = tolower(*(sslp->ssl_array_data->domain_name + i));
+	while (*(sslp->domain_name + i) != '\0') {
+		*(lower_name + i) = tolower(*(sslp->domain_name + i));
 		i++;
 	}   
 	lower_name[i] = '\0';
 	vhost = sslp->vhost;
 	flag = PATRICIA_MATCH_EXACT;
-	pnode = patricia_insearch(vhost->vhost_atcp[curatcp].website_category_ptree, lower_name, strlen(sslp->ssl_array_data->domain_name), flag);
+	pnode = patricia_insearch(vhost->vhost_atcp[curatcp].website_category_ptree, lower_name, strlen(sslp->domain_name), flag);
 	if (pnode) {
 		ssli_category_cache_entry_t *find_cc = (ssli_category_cache_entry_t *)(pnode->data);
 		TIMER_RESET(find_cc, &website_category_cache_timeout_queue, category_cache_timeout);
@@ -238,10 +238,10 @@
 	flag = PATRICIA_INSERT;
 	len = strlen(lower_name);
 	cc_entry->vhost = sslp->vhost;
-	wc_cc_printf("(%s:%d) sslp domain name: %s,lower_name: %s\n",__func__,__LINE__,sslp->ssl_array_data->domain_name,lower_name);
+	wc_cc_printf("(%s:%d) sslp domain name: %s,lower_name: %s\n",__func__,__LINE__,sslp->domain_name,lower_name);
 	pnode = patricia_insearch(vhost->vhost_atcp[curatcp].website_category_ptree, lower_name, len, flag);
 	if (pnode == NULL) {
-		wc_cc_printf("Fail to insert cert to pat tree in %s with lower name : %s , and domain name: %s\n",__func__,lower_name,sslp->ssl_array_data->domain_name);
+		wc_cc_printf("Fail to insert cert to pat tree in %s with lower name : %s , and domain name: %s\n",__func__,lower_name,sslp->domain_name);
 		wc_category_cache_remove(cc_entry);
 		return SSL_ERROR;
 	}
