Index: /branches/rel_apv_10_7/usr/src/sys/click/app/ssl/ssl_input.c
===================================================================
--- /branches/rel_apv_10_7/usr/src/sys/click/app/ssl/ssl_input.c	(revision 39493)
+++ /branches/rel_apv_10_7/usr/src/sys/click/app/ssl/ssl_input.c	(working copy)
@@ -1885,7 +1885,9 @@
 			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);
-			}
+			} else {
+				bcopy(vs->ssl_vhost_p->client_req_domainname, sslp->ssl_array_data->domain_name, MAXHOSTNAMELEN+1);
+                        }
 		}
 
 		/* If topo is (TCPS vs -- TCPS rs) and vhost's sslp support http2, set rhost support http2 also */
Index: /branches/rel_apv_10_7/usr/src/sys/click/app/ssl/ssl_server.c
===================================================================
--- /branches/rel_apv_10_7/usr/src/sys/click/app/ssl/ssl_server.c	(revision 39493)
+++ /branches/rel_apv_10_7/usr/src/sys/click/app/ssl/ssl_server.c	(working copy)
@@ -483,6 +483,7 @@
 							/* 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);
 
 							if (ssl_log_record_on) {
 								if (sslp->app_visual_data != NULL) {
Index: /branches/rel_apv_10_7/usr/src/sys/click/app/ssl/ssl_var_shared.h
===================================================================
--- /branches/rel_apv_10_7/usr/src/sys/click/app/ssl/ssl_var_shared.h	(revision 39493)
+++ /branches/rel_apv_10_7/usr/src/sys/click/app/ssl/ssl_var_shared.h	(working copy)
@@ -959,6 +959,7 @@
 	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 .*/
