Index: /branches/rel_ag_9_4_5/uproxy/http_proxy/smanager/sec_misc.c
===================================================================
--- /branches/rel_ag_9_4_5/uproxy/http_proxy/smanager/sec_misc.c	(revision 20501)
+++ /branches/rel_ag_9_4_5/uproxy/http_proxy/smanager/sec_misc.c	(working copy)
@@ -52,26 +52,28 @@
 #define COOKIE_FOR_PORTAL_ERROR_MESSAGE "_AN_msgID=-1;path=/prx/000/http/;expires=Thu, 01-Jan-1970 00:00:01 GMT;secure;samesite=None;"
 #define COOKIE_FOR_PORTAL_ERROR_MESSAGE_STR "_AN_msgStr=\"\";path=/prx/000/http/;expires=Thu, 01-Jan-1970 00:00:01 GMT;secure;samesite=None;"
 
-
-
 #define QUICKLINK_STR "/quicklink_set?resource_id="
 #define QUICKLINK_STR_LEN strlen(QUICKLINK_STR)
 #define QUICKLINK_STR2 "&url="
 #define QUICKLINK_STR2_LEN strlen(QUICKLINK_STR2)
 
+#define FAVICON_STR "/favicon.ico"
+#define FAVICON_STR_LEN (sizeof(FAVICON_STR) - 1)
 
-#define FAVICON_STR      "/favicon.ico"
-#define FAVICON_STR_LEN   (sizeof(FAVICON_STR) - 1)
+#define SETUPXML_FILE_PATH "/tmp/setup.xml"
 
-typedef struct post_field {
-    char *name;
-    int32_t name_len;
-    char *value;
-    int32_t value_len;
-    STAILQ_ENTRY(post_field) next_field;
+typedef struct post_field
+{
+	char *name;
+	int32_t name_len;
+	char *value;
+	int32_t value_len;
+	STAILQ_ENTRY(post_field)
+	next_field;
 } post_field_t;
 
-typedef struct auth_params {
+typedef struct auth_params
+{
 	uint32_t pin;
 	uint8_t cancel;
 	char uname[USERNAME_LEN + 1];
@@ -84,21 +86,21 @@
 	char authmethod[AAA_MED_ID_LEN + 1];
 	char validcode[MAX_VALIDCODE_LEN + 1];
 	char extra_params[AAA_EXT_AUTH_PARAM_MAX_COUNT][AAA_EXT_AUTH_PARAM_MAX_SIZE];
-	char secret[SEC_ENCODED_SECRET_LEN+1];
-	char cus_def_vars[AAA_CUSTOM_VAR_LEN+1];
+	char secret[SEC_ENCODED_SECRET_LEN + 1];
+	char cus_def_vars[AAA_CUSTOM_VAR_LEN + 1];
 } auth_params_t;
 
 extern patricia_tree_t *content_tree;
 
-typedef STAILQ_HEAD( , post_field) post_field_list_t;
+typedef STAILQ_HEAD(, post_field) post_field_list_t;
 static post_field_list_t post_field_list;
 static char escaped_validcode[(MAX_VALIDCODE_LEN * ESCAPE_EXFACTOR) + 1];
 
 void sec_generate_choose_site_redirect(smanager_data_t *sec_data, const sec_vsite_t *vsite);
 static int sec_generate_ai_login_js_response(smanager_data_t *sec_data);
 static int sec_generate_ai_cs_js_response(smanager_data_t *sec_data);
-static int sec_generate_login_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor, 
-						const char *err_message, const char *info_message, uint8_t register_flag, int32_t msg_id);
+static int sec_generate_login_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor,
+										  const char *err_message, const char *info_message, uint8_t register_flag, int32_t msg_id);
 static int sec_generate_cs_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor);
 static int sec_generate_ai_logout_js_response(smanager_data_t *sec_data);
 static int sec_generate_ai_dd_js_response(smanager_data_t *sec_data);
@@ -109,44 +111,44 @@
 static int sec_generate_bookmark_add_response(smanager_data_t *sec_data);
 static int sec_generate_bookmark_edit_response(smanager_data_t *sec_data);
 static int sec_generate_nonhtml_response(smanager_data_t *sec_data);
-static void sec_generate_fshare_auth_response(smanager_data_t *sec_data, uint8_t *req_url, int32_t req_url_len,char *message);
+static void sec_generate_fshare_auth_response(smanager_data_t *sec_data, uint8_t *req_url, int32_t req_url_len, char *message);
 
 static struct frame *create_304_response(BOOL conn_close, char *last_modified);
-static __inline char* http_code_to_str(int32_t code);
+static __inline char *http_code_to_str(int32_t code);
 
 static int32_t sec_process_login_post(smanager_data_t *sec_data, sec_session_t *session,
-    sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-    length_t headers_len);
-static int32_t sec_process_navigate_post(smanager_data_t *sec_data, 
-		sec_vsite_t *site, struct frame *cur_request_p, 
-		length_t content_len, length_t headers_len);
+									  sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+									  length_t headers_len);
+static int32_t sec_process_navigate_post(smanager_data_t *sec_data,
+										 sec_vsite_t *site, struct frame *cur_request_p,
+										 length_t content_len, length_t headers_len);
 static int32_t sec_process_passchange_post(smanager_data_t *sec_data, sec_session_t *session,
-        sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-        length_t headers_len);
+										   sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+										   length_t headers_len);
 static int32_t sec_process_passchange_ldap_post(smanager_data_t *sec_data, sec_session_t *session,
-        sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-        length_t headers_len);
+												sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+												length_t headers_len);
 static int32_t sec_process_fshare_auth_post(smanager_data_t *sec_data, sec_session_t *session,
-		sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-		length_t headers_len);
+											sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+											length_t headers_len);
 
 static int32_t extract_username_password(smanager_data_t *sec_data, sec_vsite_t *vsite, struct frame *frame_p,
-    length_t header_len, length_t content_len, auth_params_t *params);
+										 length_t header_len, length_t content_len, auth_params_t *params);
 static int32_t extract_new_password(sec_vsite_t *vsite, struct frame *frame_p,
-                  length_t header_len, length_t content_len, uint8_t *password,
-                  uint8_t *password2, uint32_t *cancel);
+									length_t header_len, length_t content_len, uint8_t *password,
+									uint8_t *password2, uint32_t *cancel);
 static uint8_t extract_post_fields(struct frame *frame_p, length_t header_len,
-                    length_t content_len, char *content_out);
-static post_field_t *extract_field(uint8_t **data_p, struct frame **frame_p, 
-                      int32_t *remaining_len, uint8_t *last_field);
+								   length_t content_len, char *content_out);
+static post_field_t *extract_field(uint8_t **data_p, struct frame **frame_p,
+								   int32_t *remaining_len, uint8_t *last_field);
 static void post_field_dtor(post_field_t *field);
 static void post_field_list_dtor(void);
 
 static int32_t issue_changepass_request(void *client_conn_p, char *vsite_name, char *username,
-                         char *newpasswd, uint64_t aaa_request_id, char *log_id);
+										char *newpasswd, uint64_t aaa_request_id, char *log_id);
 static int32_t issue_changepass_ldap_request(void *client_conn_p, char *vsite_name, char *username,
-                         char *newpasswd, uint64_t aaa_request_id,
-						 struct sesssion_ldap_pwd_policy_info *ldap_pwd_policy,	char *current_ldap_server, char *log_id);
+											 char *newpasswd, uint64_t aaa_request_id,
+											 struct sesssion_ldap_pwd_policy_info *ldap_pwd_policy, char *current_ldap_server, char *log_id);
 static int32_t url_classify(url_policy_tree_t *tree, char *url, int32_t url_len);
 extern void sec_fproxy_list_init(fproxy_list_t *list);
 extern int no_need_login_page(sec_vsite_t *vsite, struct aaa_method **rt_method, smanager_data_t *sec_data);
@@ -157,30 +159,30 @@
 static void snprint_session_cookie(uint8_t *session_cookie_buffer, smanager_data_t *sec_data, uint32_t buf_size);
 static void sprint_session_cookie_for_quicklink(uint8_t *session_cookie_buffer, smanager_data_t *sec_data);
 static int32_t sec_process_sms_post(smanager_data_t *sec_data, sec_session_t *session,
-        sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-        length_t headers_len);
+									sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+									length_t headers_len);
 static int32_t extract_sms_verification_code(sec_vsite_t *vsite, struct frame *frame_p,
-    length_t header_len, length_t content_len, uint8_t *vcode, int *resend, int *cancel);
-static int32_t issue_sms_resend_request(void *client_conn_p, char *vsite_name, char *username, char *med_id, 
-                         char *phone, char *email);
+											 length_t header_len, length_t content_len, uint8_t *vcode, int *resend, int *cancel);
+static int32_t issue_sms_resend_request(void *client_conn_p, char *vsite_name, char *username, char *med_id,
+										char *phone, char *email);
 
 static int32_t sec_process_smx_post(smanager_data_t *sec_data, sec_session_t *session,
-        sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-        length_t headers_len);
+									sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+									length_t headers_len);
 int sec_get_smx_info_from_url(smanager_data_t *sec_data);
 uint8_t issue_smx_auth_resp(smanager_data_t *sec_data, char *vsite_name, char *username,
-                                  char *passwd, char *passwd1, char *passwd2, uint8_t request_type, unsigned long step);
+							char *passwd, char *passwd1, char *passwd2, uint8_t request_type, unsigned long step);
 
 static uint8_t language_compare(uint8_t *str, int32_t len, sec_vsite_t *site, int32_t msg_id);
 static int32_t sec_redirect_client_security(smanager_data_t *sec_data, uint8_t *cookie_p, length_t cookie_len);
 static void sec_generate_userresourcelinks_response(struct smanager_data *sec_data,
-                                struct frame **out_frame, uint8_t **cursor);
+													struct frame **out_frame, uint8_t **cursor);
 extern int n_unescape(char *in, char *out, int in_len, int out_buff_len, int *out_len);
-extern sec_session_t * get_session_by_id(smanager_data_t *sec_data, uint32_t session_id);
+extern sec_session_t *get_session_by_id(smanager_data_t *sec_data, uint32_t session_id);
 
 static int32_t
 base64_encode(uint8_t *clear_string, int32_t clear_len,
-              uint8_t *base64_output, int32_t max_out_len);
+			  uint8_t *base64_output, int32_t max_out_len);
 static int
 array_des3_encrypt(uint8_t *key, uint32_t key_len, uint8_t *in, uint32_t in_len, uint8_t *out, uint32_t *out_len);
 static int32_t issue_hwid_regist_request(void *client_conn_p, char *vsite_name, char *verify_code);
@@ -193,43 +195,41 @@
 static char domain_buffer[SEC_MAX_URL_LEN];
 static char domain_logout_buffer[SEC_MAX_URL_LEN];
 
-#define USER_PASS_OK                  0
-#define USER_PASS_USER_FAIL           1
-#define USER_PASS_CRED_TOO_LONG       2
-#define USER_PASS_PASSWORD_FAIL       3
-#define USER_PASS_PIN_TOO_LONG        4
-#define USER_PASS_PIN_READ_FAIL       5
-#define USER_PASS_USER_UNESCAPE_FAIL  6
-#define USER_PASS_PASS_UNESCAPE_FAIL  7
-#define USER_PASS_PASSWORD2_FAIL      8
-#define USER_PASS_CID_TOO_LONG        9
-#define USER_PASS_CID_UNESCAPE_FAIL  10
+#define USER_PASS_OK 0
+#define USER_PASS_USER_FAIL 1
+#define USER_PASS_CRED_TOO_LONG 2
+#define USER_PASS_PASSWORD_FAIL 3
+#define USER_PASS_PIN_TOO_LONG 4
+#define USER_PASS_PIN_READ_FAIL 5
+#define USER_PASS_USER_UNESCAPE_FAIL 6
+#define USER_PASS_PASS_UNESCAPE_FAIL 7
+#define USER_PASS_PASSWORD2_FAIL 8
+#define USER_PASS_CID_TOO_LONG 9
+#define USER_PASS_CID_UNESCAPE_FAIL 10
 #define USER_AUTHMEHTOD_UNESCAPE_FAIL 11
-#define USER_AUTHMETHOD_TOO_LONG      12
-#define EXT_PARAM_TOO_LONG            13
-#define EXT_PARAM_UNESCAPE_FAIL       14
-#define USER_PASS_DEVICEID_TOO_LONG         15
-#define USER_PASS_DEVICEID_UNESCAPE_FAIL    16
+#define USER_AUTHMETHOD_TOO_LONG 12
+#define EXT_PARAM_TOO_LONG 13
+#define EXT_PARAM_UNESCAPE_FAIL 14
+#define USER_PASS_DEVICEID_TOO_LONG 15
+#define USER_PASS_DEVICEID_UNESCAPE_FAIL 16
 #define USER_PASS_DEVICE_NAME_UNESCAPE_FAIL 17
 #define USER_PASS_SECRET_LEN_INVALID 18
 #define USER_PASS_SECRET_UNESCAPE_FAIL 19
-#define USER_PASS_CUSTOM_VAR_FAIL     20
+#define USER_PASS_CUSTOM_VAR_FAIL 20
 #define USER_PASS_CUSTOM_VAR_PROF_ERR 21
 #define USER_PASS_CLIENT_HOSTNAME_TOO_LONG 22
 #define USER_PASS_CLIENT_HOSTNAME_UNESCAPE_FAIL 23
 #define USER_PASS_CLIENT_CPUID_TOO_LONG 24
 #define USER_PASS_CLIENT_CPUID_UNESCAPE_FAIL 25
-#define USER_PASS_LOGID_TOO_LONG      26
+#define USER_PASS_LOGID_TOO_LONG 26
 #define USER_PASS_LOGID_UNESCAPE_FAIL 27
 #define USER_PASS_SQL_INJECTION 28
 
+#define CHANGE_PASS_OK 0
+#define CHANGE_PASS_EMPTYPASS 1
+#define CHANGE_PASS_INCONSISTENT 2
 
-#define CHANGE_PASS_OK                0
-#define CHANGE_PASS_EMPTYPASS         1
-#define CHANGE_PASS_INCONSISTENT      2
-
-void
-uproxy_local_log(char *file_path, const char *format, ...)
+void uproxy_local_log(char *file_path, const char *format, ...)
 {
 	char *file_mode = "a";
 	time_t now;
@@ -238,7 +238,8 @@
 	va_list ap;
 
 	stat(file_path, &buf);
-	if( buf.st_size > 100*1024*1024) {
+	if (buf.st_size > 100 * 1024 * 1024)
+	{
 		/*
 		 * If file length is greater than 100M
 		 * truncate it to zero
@@ -250,7 +251,8 @@
 	/* add info handle in case we meet
 	 * with file permission problem
 	 */
-	if (!fp) {
+	if (!fp)
+	{
 		return;
 	}
 
@@ -263,112 +265,118 @@
 	va_end(ap);
 	fputs("\n", fp);
 	fclose(fp);
-	
-	return;
 
+	return;
 }
 #define uproxy_sec_log(format, args...) uproxy_local_log("/var/crash/uproxy_sec.log", format, ##args)
 
-void xor_with_salt(uint8_t *data, const uint8_t *salt, size_t data_length, size_t salt_length) {
+void xor_with_salt(uint8_t *data, const uint8_t *salt, size_t data_length, size_t salt_length)
+{
 	size_t i = 0;
-    for (i = 0; i < data_length; i++) {
-        data[i] ^= salt[i % salt_length];
-    }
+	for (i = 0; i < data_length; i++)
+	{
+		data[i] ^= salt[i % salt_length];
+	}
 }
 
 static int32_t
-portal_message_convert_for_document_write(char * pin, char * pout)
+portal_message_convert_for_document_write(char *pin, char *pout)
 {
-	char * pt = &pout[0];
-		
-	while(*pin != '\0') {
-		switch (*pin) {
-			case '<' :
-				*pt++ = '&';
-				*pt++ = 'l';
-				*pt++ = 't';
-				*pt++ = ';';
+	char *pt = &pout[0];
 
-				break;
-			case '>' :
-				*pt++ = '&';
-				*pt++ = 'g';
-				*pt++ = 't';
-				*pt++ = ';';
-				break;
-			case '\\' :
-				*pt++ = '\\';
-				*pt++ = '\\';
-				break;
-			default:
-				*pt++ = *pin;
+	while (*pin != '\0')
+	{
+		switch (*pin)
+		{
+		case '<':
+			*pt++ = '&';
+			*pt++ = 'l';
+			*pt++ = 't';
+			*pt++ = ';';
+
+			break;
+		case '>':
+			*pt++ = '&';
+			*pt++ = 'g';
+			*pt++ = 't';
+			*pt++ = ';';
+			break;
+		case '\\':
+			*pt++ = '\\';
+			*pt++ = '\\';
+			break;
+		default:
+			*pt++ = *pin;
 		}
-		
+
 		++pin;
 	}
-	
+
 	*pt = '\0';
-	
+
 	return (pt - &pout[0]);
 }
 
 static __inline char *
 http_code_to_str(int32_t code)
 {
-	switch (code) {
-        case OK:
-            return "OK";
-        case BAD_REQUEST:
-            return "Bad Request";
-        case UNAUTHORIZED:
-            return "Access Denied";
-        case FORBIDDEN:
-            return "Access Denied";
-        case SERVICE_UNAVAIL:
-            return "Service Unavailable";
-        case SERVER_ERROR:
-            return "Internal Server Error";
-        case NOT_FOUND:
-            return "Not Found";
-		default:
-			return "OK";
-    }
+	switch (code)
+	{
+	case OK:
+		return "OK";
+	case BAD_REQUEST:
+		return "Bad Request";
+	case UNAUTHORIZED:
+		return "Access Denied";
+	case FORBIDDEN:
+		return "Access Denied";
+	case SERVICE_UNAVAIL:
+		return "Service Unavailable";
+	case SERVER_ERROR:
+		return "Internal Server Error";
+	case NOT_FOUND:
+		return "Not Found";
+	default:
+		return "OK";
+	}
 }
 
-static uint32_t convert_char_for_http_show(char * pin, char * pout)
+static uint32_t convert_char_for_http_show(char *pin, char *pout)
 {
-	char * p = pout;
-
-	if(pin && pout) {
-		while(*pin != '\0') {
-			switch(*pin) {
-				case '\\':
-					*p++ = '\\';
-					*p++ = '\\';
-					break;
-				case '&':
-					*p++ = '&';
-					*p++ = 'a';
-					*p++ = 'm';
-					*p++ = 'p';
-					*p++ = ';';
-					break;
-				case '<':
-					*p++ = '&';
-					*p++ = 'l';
-					*p++ = 't';
-					*p++ = ';';
-					break;
-				case '>':
-					*p++ = '&';
-					*p++ = 'g';
-					*p++ = 't';
-					*p++ = ';';
-					break;
+	char *p = pout;
 
-				default:
-					*p++ = *pin;
+	if (pin && pout)
+	{
+		while (*pin != '\0')
+		{
+			switch (*pin)
+			{
+			case '\\':
+				*p++ = '\\';
+				*p++ = '\\';
+				break;
+			case '&':
+				*p++ = '&';
+				*p++ = 'a';
+				*p++ = 'm';
+				*p++ = 'p';
+				*p++ = ';';
+				break;
+			case '<':
+				*p++ = '&';
+				*p++ = 'l';
+				*p++ = 't';
+				*p++ = ';';
+				break;
+			case '>':
+				*p++ = '&';
+				*p++ = 'g';
+				*p++ = 't';
+				*p++ = ';';
+				break;
 
+			default:
+				*p++ = *pin;
 			}
 			++pin;
 		}
@@ -378,8 +386,7 @@
 	return p - pout;
 }
 
-int
-smanager_data_init(smanager_data_t *sec_data, void *client_conn)
+int smanager_data_init(smanager_data_t *sec_data, void *client_conn)
 {
 	bzero(sec_data, sizeof(struct smanager_data));
 
@@ -392,12 +399,11 @@
 	return 0;
 }
 
-void
-smanager_data_cleanup(smanager_data_t *sec_data)
+void smanager_data_cleanup(smanager_data_t *sec_data)
 {
 	/* For sso post, reset session->sso_post_steps */
-	if (SEC_ISSET(sec_data->flags, SDAT_SSO_POST) && sec_data->session != NULL
-		&& sec_data->session->sso_post_steps != SSO_POST_INVALID_STEP) {
+	if (SEC_ISSET(sec_data->flags, SDAT_SSO_POST) && sec_data->session != NULL && sec_data->session->sso_post_steps != SSO_POST_INVALID_STEP)
+	{
 		sec_data->session->sso_post_steps = SSO_POST_INVALID_STEP;
 		sso_post_sec_session_dtor(sec_data->session);
 	}
@@ -435,28 +441,33 @@
 	sec_data->clientid_len = 0;
 
 	sec_fproxy_list_init(&sec_data->forward_proxies);
-	
-	if (sec_data->save_req_body != NULL) {
+
+	if (sec_data->save_req_body != NULL)
+	{
 		parser_frame_chain_free(sec_data->save_req_body);
 		sec_data->save_req_body = NULL;
 	}
 
-	if (sec_data->response != NULL) {
+	if (sec_data->response != NULL)
+	{
 		parser_frame_chain_free(sec_data->response);
 		sec_data->response = NULL;
 	}
 
-	if (sec_data->tmp_frame_for_split_p != NULL) {
+	if (sec_data->tmp_frame_for_split_p != NULL)
+	{
 		parser_frame_chain_free(sec_data->tmp_frame_for_split_p);
 		sec_data->tmp_frame_for_split_p = NULL;
 	}
 
-	if (sec_data->req_body != NULL) {
+	if (sec_data->req_body != NULL)
+	{
 		parser_frame_chain_free(sec_data->req_body);
 		sec_data->req_body = NULL;
 	}
 
-	if (sec_data->krb5_node != NULL) {
+	if (sec_data->krb5_node != NULL)
+	{
 		release_krb5_node(sec_data->krb5_node);
 		sec_data->krb5_node = NULL;
 	}
@@ -468,46 +479,52 @@
 {
 	size_t len;
 	static sec_language_t *languages_ptr = NULL;
-	
-	if (languages_ptr != NULL) {
+
+	if (languages_ptr != NULL)
+	{
 		return languages_ptr;
 	}
 
 	len = sizeof(languages_ptr);
 
 	if (sysctlbyname("net.inet.clicktcp.languages_ptr",
-					 &languages_ptr, &len, NULL, 0) < 0) {
+					 &languages_ptr, &len, NULL, 0) < 0)
+	{
 		return NULL;
 	}
 	return languages_ptr;
 }
 
-char * 
+char *
 sec_portal_language_id_to_name(int32_t lang_id)
 {
-        sec_language_t * planguages = NULL;
- 	planguages = get_portal_language_table();
-        
-	if(NULL != planguages){
-		if (lang_id < 0 || lang_id > MAX_LANGUAGES - 1) {
-                	return planguages[LANGUAGE_INITIAL].name;
-        	} else {
+	sec_language_t *planguages = NULL;
+	planguages = get_portal_language_table();
+
+	if (NULL != planguages)
+	{
+		if (lang_id < 0 || lang_id > MAX_LANGUAGES - 1)
+		{
+			return planguages[LANGUAGE_INITIAL].name;
+		}
+		else
+		{
 			return planguages[lang_id].name;
 		}
-	} 
+	}
 
-        return "english";
+	return "english";
 }
 
 struct frame *
 create_http_response_with_bookmark(int32_t response_code,
-                                   struct frame *response_content,
-                                   uint32_t flags, uint8_t *session_cookie,
-                                   uint8_t *nav_cookie, uint8_t *content_type,
-                                   char *last_modified,
-                                   smanager_data_t *sec_data,
-                                   uint8_t *bookmark_cookie, uint32_t bookmark_cookie_len,
-                                   uint8_t clean_pcookie)
+								   struct frame *response_content,
+								   uint32_t flags, uint8_t *session_cookie,
+								   uint8_t *nav_cookie, uint8_t *content_type,
+								   char *last_modified,
+								   smanager_data_t *sec_data,
+								   uint8_t *bookmark_cookie, uint32_t bookmark_cookie_len,
+								   uint8_t clean_pcookie)
 {
 	struct frame *header_chain;
 	struct frame *header_frame;
@@ -517,35 +534,37 @@
 	sec_language_t *languages_ptr = NULL;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 
-	char content_security_str[CONT_SEC_MAX_LEN] = {'\0'}; /* Content-Security-Policy header */
-	char x_content_type_options_str[X_CONT_TYPE_OPT_LEN+1] = {'\0'}; /* X-Content-Type-Options header */
-	char x_xss_protection_str[X_XSS_PROT_LEN+1] = {'\0'}; /* X-XSS-Protection header */
-	char x_strict_transport_security_str[X_STRICT_TRANSPORT_SECURITY_LEN+1] = {'\0'}; /* X-Strict-Transport-Security header */
-	char x_content_security_policy_str[X_CONTENT_SECURITY_POLICY_STR_LEN+1] = {'\0'}; /* X-Content-Security-Policy header */
-	char x_webkit_csp_str[X_WEBKIT_CSP_STR_LEN+1] = {'\0'}; /* X-WebKit-CSP header */
-	char referrer_policy_str[REFERRER_POLICY_STR_LEN+1] = {'\0'}; /* Referrer-Policy header */
-	char x_permitted_cross_domain_policies_str[X_PERMITTED_CROSS_DOMAIN_POLICIES_STR_LEN+3] = {'\0'}; /* X-Permitted-Cross-Domain-Policies header with \r\n */
-	char x_download_options_str[X_DOWNLOAD_OPTIONS_STR_LEN+1] = {'\0'}; /* X-Download-Options header */
+	char content_security_str[CONT_SEC_MAX_LEN] = {'\0'};												/* Content-Security-Policy header */
+	char x_content_type_options_str[X_CONT_TYPE_OPT_LEN + 1] = {'\0'};									/* X-Content-Type-Options header */
+	char x_xss_protection_str[X_XSS_PROT_LEN + 1] = {'\0'};												/* X-XSS-Protection header */
+	char x_strict_transport_security_str[X_STRICT_TRANSPORT_SECURITY_LEN + 1] = {'\0'};					/* X-Strict-Transport-Security header */
+	char x_content_security_policy_str[X_CONTENT_SECURITY_POLICY_STR_LEN + 1] = {'\0'};					/* X-Content-Security-Policy header */
+	char x_webkit_csp_str[X_WEBKIT_CSP_STR_LEN + 1] = {'\0'};											/* X-WebKit-CSP header */
+	char referrer_policy_str[REFERRER_POLICY_STR_LEN + 1] = {'\0'};										/* Referrer-Policy header */
+	char x_permitted_cross_domain_policies_str[X_PERMITTED_CROSS_DOMAIN_POLICIES_STR_LEN + 3] = {'\0'}; /* X-Permitted-Cross-Domain-Policies header with \r\n */
+	char x_download_options_str[X_DOWNLOAD_OPTIONS_STR_LEN + 1] = {'\0'};								/* X-Download-Options header */
 
 	snprintf(content_security_str, CONT_SEC_MAX_LEN,
-            "%sframe-ancestors 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'self'", CONT_SEC_PREFIX_STR);
-	snprintf(x_content_type_options_str, X_CONT_TYPE_OPT_LEN+1, X_CONT_TYPE_OPT_STR);
-	snprintf(x_xss_protection_str, X_XSS_PROT_LEN+1, X_XSS_PROT_STR);
-	snprintf(x_strict_transport_security_str, X_STRICT_TRANSPORT_SECURITY_LEN+1, X_STRICT_TRANSPORT_SECURITY_STR);
-	snprintf(x_content_security_policy_str, X_CONTENT_SECURITY_POLICY_STR_LEN+1, X_CONTENT_SECURITY_POLICY_STR);
-	snprintf(x_webkit_csp_str, X_WEBKIT_CSP_STR_LEN+1, X_WEBKIT_CSP_STR);
-	snprintf(referrer_policy_str, REFERRER_POLICY_STR_LEN+1, REFERRER_POLICY_STR);
-	snprintf(x_download_options_str, X_DOWNLOAD_OPTIONS_STR_LEN+1, X_DOWNLOAD_OPTIONS_STR);
-	if (!SEC_ISSET(vsite->common_flags, SEC_PERMIT_CROSSDOMAIN)) {
+			 "%sframe-ancestors 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; object-src 'self'", CONT_SEC_PREFIX_STR);
+	snprintf(x_content_type_options_str, X_CONT_TYPE_OPT_LEN + 1, X_CONT_TYPE_OPT_STR);
+	snprintf(x_xss_protection_str, X_XSS_PROT_LEN + 1, X_XSS_PROT_STR);
+	snprintf(x_strict_transport_security_str, X_STRICT_TRANSPORT_SECURITY_LEN + 1, X_STRICT_TRANSPORT_SECURITY_STR);
+	snprintf(x_content_security_policy_str, X_CONTENT_SECURITY_POLICY_STR_LEN + 1, X_CONTENT_SECURITY_POLICY_STR);
+	snprintf(x_webkit_csp_str, X_WEBKIT_CSP_STR_LEN + 1, X_WEBKIT_CSP_STR);
+	snprintf(referrer_policy_str, REFERRER_POLICY_STR_LEN + 1, REFERRER_POLICY_STR);
+	snprintf(x_download_options_str, X_DOWNLOAD_OPTIONS_STR_LEN + 1, X_DOWNLOAD_OPTIONS_STR);
+	if (!SEC_ISSET(vsite->common_flags, SEC_PERMIT_CROSSDOMAIN))
+	{
 		snprintf(x_permitted_cross_domain_policies_str, sizeof(x_permitted_cross_domain_policies_str), "%s\r\n", X_PERMITTED_CROSS_DOMAIN_POLICIES_STR);
 	}
 
 	/* Create the response headers */
 	header_chain = parser_frame_alloc();
-	if (header_chain == NULL) {
-	    ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-	                    "Failed to allocate a header frame in create_http_response");
-	    return NULL;
+	if (header_chain == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+						"Failed to allocate a header frame in create_http_response");
+		return NULL;
 	}
 
 	header_frame = header_chain;
@@ -553,217 +572,255 @@
 	data_p = header_frame->f_data;
 
 	snprintf(portal_temp_string, MAX_APP_PRINT_SIZE,
-	    "HTTP/1.1 %d %s\r\nX-Frame-Options: SAMEORIGIN\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s%s\r\nContent-Length: %d\r\n", 
-	    response_code, http_code_to_str(response_code), content_security_str,
-	    x_content_type_options_str, x_xss_protection_str, x_strict_transport_security_str,
-	    x_content_security_policy_str, x_webkit_csp_str,
-	    referrer_policy_str, x_permitted_cross_domain_policies_str, x_download_options_str,
-	    parser_frame_chain_length(response_content));
+			 "HTTP/1.1 %d %s\r\nX-Frame-Options: SAMEORIGIN\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s%s\r\nContent-Length: %d\r\n",
+			 response_code, http_code_to_str(response_code), content_security_str,
+			 x_content_type_options_str, x_xss_protection_str, x_strict_transport_security_str,
+			 x_content_security_policy_str, x_webkit_csp_str,
+			 referrer_policy_str, x_permitted_cross_domain_policies_str, x_download_options_str,
+			 parser_frame_chain_length(response_content));
 
 	if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
-	               &header_frame) != HTTP_SUCCESS)
+				   &header_frame) != HTTP_SUCCESS)
 	{
-	    parser_frame_chain_free(header_chain);
-	    return NULL;
+		parser_frame_chain_free(header_chain);
+		return NULL;
 	}
 
-	if (vsite != NULL) {
+	if (vsite != NULL)
+	{
 		languages_ptr = get_portal_language_table();
-		if (languages_ptr != NULL) {
+		if (languages_ptr != NULL)
+		{
 			language = languages_ptr[vsite->language].encoding;
 		}
-		if (language != NULL) {
+		if (language != NULL)
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE,
-	                 "Content-Language: %s\r\n", language);
+					 "Content-Language: %s\r\n", language);
 			if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
-	                       &header_frame) != HTTP_SUCCESS)
+						   &header_frame) != HTTP_SUCCESS)
 			{
 				parser_frame_chain_free(header_chain);
 				return NULL;
 			}
-		} else {
+		}
+		else
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE,
-		 		"Content-Language: utf-8\r\n");
+					 "Content-Language: utf-8\r\n");
 			if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
-			 	  &header_frame) != HTTP_SUCCESS)
+						   &header_frame) != HTTP_SUCCESS)
 			{
 				parser_frame_chain_free(header_chain);
 				return NULL;
 			}
 		}
-	} else {
+	}
+	else
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE,
-	 		"Content-Language: utf-8\r\n");
+				 "Content-Language: utf-8\r\n");
 		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
-		 	  &header_frame) != HTTP_SUCCESS)
+					   &header_frame) != HTTP_SUCCESS)
 		{
 			parser_frame_chain_free(header_chain);
 			return NULL;
 		}
 	}
 
-	if (last_modified != NULL) {
-	    if (write_data(LAST_MODIFIED, &data_p, SLEN(LAST_MODIFIED),
-	                   &header_frame) != HTTP_SUCCESS)
-	    {
-	        parser_frame_chain_free(header_chain);
-	        return NULL;
-	    }
-
-	    if (write_data(last_modified, &data_p, strlen(last_modified),
-	                   &header_frame) != HTTP_SUCCESS)
-	    {
-	        parser_frame_chain_free(header_chain);
-	        return NULL;
-	    }
-
-	    if (write_data("\r\n", &data_p, 2, &header_frame) != HTTP_SUCCESS) {
-	        parser_frame_chain_free(header_chain);
-	        return NULL;
-	    }
+	if (last_modified != NULL)
+	{
+		if (write_data(LAST_MODIFIED, &data_p, SLEN(LAST_MODIFIED),
+					   &header_frame) != HTTP_SUCCESS)
+		{
+			parser_frame_chain_free(header_chain);
+			return NULL;
+		}
+
+		if (write_data(last_modified, &data_p, strlen(last_modified),
+					   &header_frame) != HTTP_SUCCESS)
+		{
+			parser_frame_chain_free(header_chain);
+			return NULL;
+		}
+
+		if (write_data("\r\n", &data_p, 2, &header_frame) != HTTP_SUCCESS)
+		{
+			parser_frame_chain_free(header_chain);
+			return NULL;
+		}
 	}
 
 	/* Bug 28924  enable portal charset */
-	if (content_type != NULL) {
-		if (vsite != NULL && !strncmp(content_type, "text/", SLEN("text/"))) {
+	if (content_type != NULL)
+	{
+		if (vsite != NULL && !strncmp(content_type, "text/", SLEN("text/")))
+		{
 			languages_ptr = get_portal_language_table();
-			if (languages_ptr != NULL) {
+			if (languages_ptr != NULL)
+			{
 				lang_charset = languages_ptr[vsite->language].charset;
-			}			
+			}
 
-			if (vsite->charset != NULL) {
-				snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, 
+			if (vsite->charset != NULL)
+			{
+				snprintf(portal_temp_string, MAX_APP_PRINT_SIZE,
 						 "Content-Type: %s; charset=%s\r\n", content_type,
 						 vsite->charset);
-			} else if (lang_charset != NULL) {
-				snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, 
+			}
+			else if (lang_charset != NULL)
+			{
+				snprintf(portal_temp_string, MAX_APP_PRINT_SIZE,
 						 "Content-Type: %s; charset=%s\r\n", content_type,
 						 lang_charset);
-			} else {
-				snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, 
+			}
+			else
+			{
+				snprintf(portal_temp_string, MAX_APP_PRINT_SIZE,
 						 "Content-Type: %s\r\n", content_type);
 			}
-		} else {
-			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Content-Type: %s\r\n", 
+		}
+		else
+		{
+			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Content-Type: %s\r\n",
 					 content_type);
-		}		
-	} else {
+		}
+	}
+	else
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Content-Type: text/html\r\n");
 	}
-	if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string), 
-					   &header_frame) != HTTP_SUCCESS)
+	if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
+				   &header_frame) != HTTP_SUCCESS)
+	{
+		parser_frame_chain_free(header_chain);
+		return NULL;
+	}
+
+	if ((flags & HTTP_NOCACHE) || (response_code != OK))
+	{
+		if (write_data("Cache-Control: no-cache\r\n", &data_p,
+					   SLEN("Cache-Control: no-cache\r\n"), &header_frame) != HTTP_SUCCESS)
+		{
+			parser_frame_chain_free(header_chain);
+			return NULL;
+		}
+	}
+
+	if (write_data(CONNECTION_KALIVE, &data_p, CONNECTION_KALIVE_LEN,
+				   &header_frame) != HTTP_SUCCESS)
 	{
 		parser_frame_chain_free(header_chain);
 		return NULL;
 	}
-	
-	if ((flags & HTTP_NOCACHE) || (response_code != OK)) {
-	    if (write_data("Cache-Control: no-cache\r\n", &data_p, 
-	                   SLEN("Cache-Control: no-cache\r\n"), &header_frame) != HTTP_SUCCESS)
-	    {
-	        parser_frame_chain_free(header_chain);
-	        return NULL;
-	    }
-	}
-
-	if (write_data(CONNECTION_KALIVE, &data_p, CONNECTION_KALIVE_LEN, 
-	               &header_frame) != HTTP_SUCCESS)
-	{
-	    parser_frame_chain_free(header_chain);
-	    return NULL;
-	}
-
-	if (session_cookie != NULL) {
-            if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-                snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s;HttpOnly\r\n",
-                         session_cookie);
-	    } else {
-	    	snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s\r\n",
-		         session_cookie);
-	   }
-	    if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string), 
-	                   &header_frame) != HTTP_SUCCESS)
-	    {
-	        parser_frame_chain_free(header_chain);
-	        return NULL;
-	    }
-	}
-
-	if (nav_cookie != NULL) {
-            if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-                snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s;HttpOnly\r\n",
-                         nav_cookie);
-            } else {
-		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s\r\n",
-		         nav_cookie);
-	    }
+
+	if (session_cookie != NULL)
+	{
+		if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
+			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s;HttpOnly\r\n",
+					 session_cookie);
+		}
+		else
+		{
+			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s\r\n",
+					 session_cookie);
+		}
+		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
+					   &header_frame) != HTTP_SUCCESS)
+		{
+			parser_frame_chain_free(header_chain);
+			return NULL;
+		}
+	}
+
+	if (nav_cookie != NULL)
+	{
+		if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
+			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s;HttpOnly\r\n",
+					 nav_cookie);
+		}
+		else
+		{
+			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s\r\n",
+					 nav_cookie);
+		}
 		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
-		               &header_frame) != HTTP_SUCCESS)
+					   &header_frame) != HTTP_SUCCESS)
 		{
 			parser_frame_chain_free(header_chain);
 			return NULL;
 		}
 	}
 
-	if (bookmark_cookie != NULL) {
-            if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-                snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s;HttpOnly\r\n",
-                         bookmark_cookie);
-            } else {
-                snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s\r\n",
-                         bookmark_cookie);
-           }
-            if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
-                           &header_frame) != HTTP_SUCCESS)
-            {
+	if (bookmark_cookie != NULL)
+	{
+		if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
+			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s;HttpOnly\r\n",
+					 bookmark_cookie);
+		}
+		else
+		{
+			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "Set-Cookie: %s\r\n",
+					 bookmark_cookie);
+		}
+		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
+					   &header_frame) != HTTP_SUCCESS)
+		{
 			parser_frame_chain_free(header_chain);
 			return NULL;
-	    }
+		}
 	}
 
 	/* check if the persistent cookie used by Sygate OnDemand should be removed */
-	if (clean_pcookie == CLEAN_CLIENTSEC_COOKIE) {
+	if (clean_pcookie == CLEAN_CLIENTSEC_COOKIE)
+	{
 		write_clean_cookie(portal_temp_string, sec_data);
 
-		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string), 			 
-		              &header_frame) != HTTP_SUCCESS)
-		{				  
+		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
+					   &header_frame) != HTTP_SUCCESS)
+		{
 			parser_frame_chain_free(header_chain);
 			return NULL;
 		}
 
 		write_clean_clientsec_java_cookie(portal_temp_string, sec_data);
-		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string), 			 
-		               &header_frame) != HTTP_SUCCESS)
-		{				  
+		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
+					   &header_frame) != HTTP_SUCCESS)
+		{
 			parser_frame_chain_free(header_chain);
 			return NULL;
 		}
-	} else if (sec_data && SEC_ISSET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE)) {
+	}
+	else if (sec_data && SEC_ISSET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE))
+	{
 		write_clientsec_persist_cookie(portal_temp_string, sec_data);
-		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string), 
-		                  &header_frame) != HTTP_SUCCESS)
+		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
+					   &header_frame) != HTTP_SUCCESS)
 		{
 			parser_frame_chain_free(header_chain);
 			return NULL;
 		}
-	
-		/* 
+
+		/*
 		 * we do not need clientsec sec java cookie anymore
 		 * we are passed clientsec check already
 		 */
 		write_clean_clientsec_java_cookie(portal_temp_string, sec_data);
-		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string), 			 
-		              &header_frame) != HTTP_SUCCESS)
-		{				  
+		if (write_data(portal_temp_string, &data_p, strlen(portal_temp_string),
+					   &header_frame) != HTTP_SUCCESS)
+		{
 			parser_frame_chain_free(header_chain);
 			return NULL;
 		}
 	}
 
-	if (write_data("\r\n", &data_p, 2, &header_frame) != HTTP_SUCCESS) {
-	    parser_frame_chain_free(header_chain);
-	    return NULL;
+	if (write_data("\r\n", &data_p, 2, &header_frame) != HTTP_SUCCESS)
+	{
+		parser_frame_chain_free(header_chain);
+		return NULL;
 	}
 
 	/* Link the response headers to the response */
@@ -778,90 +835,100 @@
 create_304_response(BOOL conn_close, char *last_modified)
 {
 #define NOT_MOD_STR "HTTP/1.1 304 Not Modified\r\nLast-Modified: "
-    struct frame *header_chain;
-    struct frame *header_frame;
-    uint8_t *data_p;
-
-    header_chain = parser_frame_alloc();
-    if (header_chain == NULL) {
-        ulog_error_no_conn(AMP_ULOG_SMANAGER, "Failed to allocate a header frame in "
-                 "create_304_response");
-        return NULL;
-    }
-
-    header_frame = header_chain;
-    header_frame->f_datalen = 0;
-    data_p = header_frame->f_data;
-    
-    if (write_data(NOT_MOD_STR, &data_p, SLEN(NOT_MOD_STR),
-                   &header_frame) != HTTP_SUCCESS)
-    {
-        parser_frame_chain_free(header_chain);
-        return NULL;
-    }
-
-    if (write_data(last_modified, &data_p, strlen(last_modified),
-                   &header_frame) != HTTP_SUCCESS)
-    {
-        parser_frame_chain_free(header_chain);
-        return NULL;
-    }
-
-    if (write_data("\r\n", &data_p, 2, &header_frame) != HTTP_SUCCESS) {
-        parser_frame_chain_free(header_chain);
-        return NULL;
-    }
-    
-    if (conn_close) {
-        if (write_data(CONNECTION_CLOSE, &data_p, CONNECTION_CLOSE_LEN,
-                       &header_frame) != HTTP_SUCCESS)
-        {
-            parser_frame_chain_free(header_chain);
-            return NULL;
-        }
-    } else {
-        if (write_data(CONNECTION_KALIVE, &data_p, CONNECTION_KALIVE_LEN,
-                       &header_frame) != HTTP_SUCCESS)
-        {
-            parser_frame_chain_free(header_chain);
-            return NULL;
-        }
-    }
-
-    if (write_data("\r\n", &data_p, 2, &header_frame) != HTTP_SUCCESS) {
-        parser_frame_chain_free(header_chain);
-        return NULL;
-    }
+	struct frame *header_chain;
+	struct frame *header_frame;
+	uint8_t *data_p;
+
+	header_chain = parser_frame_alloc();
+	if (header_chain == NULL)
+	{
+		ulog_error_no_conn(AMP_ULOG_SMANAGER, "Failed to allocate a header frame in "
+											  "create_304_response");
+		return NULL;
+	}
+
+	header_frame = header_chain;
+	header_frame->f_datalen = 0;
+	data_p = header_frame->f_data;
+
+	if (write_data(NOT_MOD_STR, &data_p, SLEN(NOT_MOD_STR),
+				   &header_frame) != HTTP_SUCCESS)
+	{
+		parser_frame_chain_free(header_chain);
+		return NULL;
+	}
+
+	if (write_data(last_modified, &data_p, strlen(last_modified),
+				   &header_frame) != HTTP_SUCCESS)
+	{
+		parser_frame_chain_free(header_chain);
+		return NULL;
+	}
+
+	if (write_data("\r\n", &data_p, 2, &header_frame) != HTTP_SUCCESS)
+	{
+		parser_frame_chain_free(header_chain);
+		return NULL;
+	}
 
-    return header_chain;
+	if (conn_close)
+	{
+		if (write_data(CONNECTION_CLOSE, &data_p, CONNECTION_CLOSE_LEN,
+					   &header_frame) != HTTP_SUCCESS)
+		{
+			parser_frame_chain_free(header_chain);
+			return NULL;
+		}
+	}
+	else
+	{
+		if (write_data(CONNECTION_KALIVE, &data_p, CONNECTION_KALIVE_LEN,
+					   &header_frame) != HTTP_SUCCESS)
+		{
+			parser_frame_chain_free(header_chain);
+			return NULL;
+		}
+	}
+
+	if (write_data("\r\n", &data_p, 2, &header_frame) != HTTP_SUCCESS)
+	{
+		parser_frame_chain_free(header_chain);
+		return NULL;
+	}
+
+	return header_chain;
 }
 
-void
-get_cert_showid(char *showid_str, struct server_cert *cert_server, smanager_data_t *sec_data)
+void get_cert_showid(char *showid_str, struct server_cert *cert_server, smanager_data_t *sec_data)
 {
 	struct cert_rdn_val *cert_val = NULL;
 	char *attr_str = NULL;
 	int curr_len = strlen(showid_str);
-	
+
 	cert_val = (struct cert_rdn_val *)sec_data->auth_cert_val;
-	switch (cert_server->auth_server) {
-		case CERT_LDB:
-			attr_str = cert_server->ldb_auth_attr;
-			break;
-		case CERT_LDAP:
-			attr_str = cert_server->ldap_cert_field;
-			break;
-		default:
-			break;
-	}	
-	
-	while(attr_str && cert_val != NULL) {
+	switch (cert_server->auth_server)
+	{
+	case CERT_LDB:
+		attr_str = cert_server->ldb_auth_attr;
+		break;
+	case CERT_LDAP:
+		attr_str = cert_server->ldap_cert_field;
+		break;
+	default:
+		break;
+	}
+
+	while (attr_str && cert_val != NULL)
+	{
 
-		if (strcasecmp(attr_str, cert_val->name) == 0 && cert_val->val[0] != 0 ) {
-			if ((cert_val->val_len + curr_len + 1) > CLIENTCERT_MAX_LEN - 1) {
+		if (strcasecmp(attr_str, cert_val->name) == 0 && cert_val->val[0] != 0)
+		{
+			if ((cert_val->val_len + curr_len + 1) > CLIENTCERT_MAX_LEN - 1)
+			{
 				break;
 			}
-			if (cert_val->val_len > CLIENTCERT_MAX_FIELDSLEN - 1) {
+			if (cert_val->val_len > CLIENTCERT_MAX_FIELDSLEN - 1)
+			{
 				break;
 			}
 
@@ -875,13 +942,14 @@
 
 	return;
 }
-	
+
 static int
 deviceid_need_bind_username(struct server_index *index)
 {
 	struct server_deviceid *server = NULL;
 
-	if (index->type != TYPE_DEVICEID) {
+	if (index->type != TYPE_DEVICEID)
+	{
 		return 0;
 	}
 
@@ -890,163 +958,200 @@
 	return server->bind_username ? 1 : 0;
 }
 
-enum {
+enum
+{
 	OTP_VERSION = 1,
 };
 
 static int
 oauth_wechat_configured(struct oauth_server_t *config)
 {
-    if (config->oauth_token_url[0] &&
-        config->oauth_register_id[0] &&
-        config->oauth_register_secret[0] &&
-        config->oauth_redirect_url[0] &&
-        config->oauth_authenticator_url[0] &&
-        config->oauth_resource_url[0])
-        return 1;
+	if (config->oauth_token_url[0] &&
+		config->oauth_register_id[0] &&
+		config->oauth_register_secret[0] &&
+		config->oauth_redirect_url[0] &&
+		config->oauth_authenticator_url[0] &&
+		config->oauth_resource_url[0])
+		return 1;
 
-    return 0;
+	return 0;
 }
 
 static int
 oauth_wechat_qy_configured(struct oauth_server_t *config)
 {
-    if (config->oauth_wechat_qy_authenticator_url[0] &&
-        config->oauth_wechat_qy_redirect_url[0] &&
-        config->oauth_wechat_qy_token_url[0] &&
-        config->oauth_wechat_qy_resource_url[0] &&
-        config->oauth_wechat_qy_corpid[0] &&
-        config->oauth_wechat_qy_agentid[0] &&
-        config->oauth_wechat_qy_corpsecret[0])
-        return 1;
+	if (config->oauth_wechat_qy_authenticator_url[0] &&
+		config->oauth_wechat_qy_redirect_url[0] &&
+		config->oauth_wechat_qy_token_url[0] &&
+		config->oauth_wechat_qy_resource_url[0] &&
+		config->oauth_wechat_qy_corpid[0] &&
+		config->oauth_wechat_qy_agentid[0] &&
+		config->oauth_wechat_qy_corpsecret[0])
+		return 1;
 
-    return 0;
+	return 0;
 }
 
 void sec_generate_aaa_conf(sec_vsite_t *vsite, struct frame **out_frame,
-                                                 uint8_t **cursor, smanager_data_t *sec_data, uint8_t register_flag)
+						   uint8_t **cursor, smanager_data_t *sec_data, uint8_t register_flag)
 {
-        struct aaa_conf *aaaconf = vsite->aaa_configure;
+	struct aaa_conf *aaaconf = vsite->aaa_configure;
 	struct aaa_method *method = NULL;
 	struct rank_method *rank = &aaaconf->rankmethod[0];
 	int method_idx = -1, current_rank = -1, counter = 0;
 	int vhostdataLen = 0;
-	struct ssl_vhost_data *vhost = NULL;	
+	struct ssl_vhost_data *vhost = NULL;
 	static char showid_str[CLIENTCERT_MAX_LEN] = {0};
-	struct server_cert * cert_server = NULL;
+	struct server_cert *cert_server = NULL;
 	uint8_t showid_flag = 0;
-	
+
 	char tmp[128] = {'\0'};
 	char *lang_string = NULL;
 	int i = 0, hasdata = 0, k = 0, rankcount = 0;
 	int action;
 	struct server_index *server_index = NULL;
-	struct server_cert *certserver= NULL;
+	struct server_cert *certserver = NULL;
 
 	method = aaaconf->loginmethod;
 
 #define METHOD_MAX 5
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
 
-        // What an ugly recognition! Forgive me ...
-        if (strcmp(vsite->desc, "(motionPro_dedicated)")) {
-                write_data_str("\nvar _AN_oauth_on = ");
-                if (SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED)) {
-                        lang_string = "true";
-                } else {
-                        lang_string = "false";
-                }
-                write_data(lang_string, cursor, strlen(lang_string), out_frame);
-                write_data_str(";\n");
-
-                if (SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED)) {
-                        for (i = 0; i < MAX_OAUTH_SERVER; i++) {
-                                if (!strcmp(aaaconf->oauth_server[i].id, "google")) {
-                                        write_data_str("var _AN_oauth_vendor_google = true;\n");
-                                } else if (!strcmp(aaaconf->oauth_server[i].id, "wechat")) {
-                                        if (oauth_wechat_configured(aaaconf->oauth_server + i)) {
-                                                write_data_str("var _AN_oauth_vendor_wechat = true;\n");
-                                        }
-                                        if (oauth_wechat_qy_configured(aaaconf->oauth_server + i)) {
-                                                write_data_str("var _AN_oauth_vendor_wechat_qy = true;\n");
-                                        }
-                                } else if (!strcmp(aaaconf->oauth_server[i].id, "generic")) {
-                                        write_data_str("var _AN_oauth_vendor_generic = true;\n");
-                                }
-                        }
-		}
-        }
-
-        if (register_flag) {
-                /*
-                 * 1: device ID register.
-                 * 2: OAuth uid bind.
-                 */
-                write_data_str("\nvar _AN_oauth_uid_bind = ");
-                if (register_flag == 2) {
-                        lang_string = "true";
-                } else {
-                        lang_string = "false";
-                }
-                write_data(lang_string, cursor, strlen(lang_string), out_frame);
-                write_data_str(";\n");
-        }
-		
-        /* aaa hardwareid login */
-        write_data_str("\nvar _AN_hardwareid_on = ");
-        if (FLAG_ISSET(aaaconf->hardwareid_flags, AAA_FLAG_HARDWAREID_ON)) {
-                lang_string = "true";
-        } else {
-                lang_string = "false";
-        }
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        write_data_str(";\n");
-		
-        write_data_str("var _AN_hardwareid_java = ");
-        if (FLAG_ISSET(aaaconf->hardwareid_flags, AAA_FLAG_HARDWAREID_INITMODE_JAVA)) {
-                lang_string = "true";
-        } else {
-                lang_string = "false";
-        }
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        write_data_str(";\n");
-
-        write_data_str("var _AN_hardwareid_autoswitch = ");
-        if (FLAG_ISSET(aaaconf->hardwareid_flags, AAA_FLAG_HARDWAREID_INITMODE_AUTOSWITCH)) {
-                lang_string = "true";
-        } else {
-                lang_string = "false";
-        }
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        write_data_str(";\n");
-
-		/* aaa rank */
-        write_data_str("\nvar _AN_aaa_rank_on = ");
-        if (aaaconf->rankon) {
-                lang_string = "true";
-        } else {
-                lang_string = "false";
-        }
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        write_data_str(";\n");
+	// What an ugly recognition! Forgive me ...
+	if (strcmp(vsite->desc, "(motionPro_dedicated)"))
+	{
+		write_data_str("\nvar _AN_oauth_on = ");
+		if (SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED))
+		{
+			lang_string = "true";
+		}
+		else
+		{
+			lang_string = "false";
+		}
+		write_data(lang_string, cursor, strlen(lang_string), out_frame);
+		write_data_str(";\n");
+
+		if (SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED))
+		{
+			for (i = 0; i < MAX_OAUTH_SERVER; i++)
+			{
+				if (!strcmp(aaaconf->oauth_server[i].id, "google"))
+				{
+					write_data_str("var _AN_oauth_vendor_google = true;\n");
+				}
+				else if (!strcmp(aaaconf->oauth_server[i].id, "wechat"))
+				{
+					if (oauth_wechat_configured(aaaconf->oauth_server + i))
+					{
+						write_data_str("var _AN_oauth_vendor_wechat = true;\n");
+					}
+					if (oauth_wechat_qy_configured(aaaconf->oauth_server + i))
+					{
+						write_data_str("var _AN_oauth_vendor_wechat_qy = true;\n");
+					}
+				}
+				else if (!strcmp(aaaconf->oauth_server[i].id, "generic"))
+				{
+					write_data_str("var _AN_oauth_vendor_generic = true;\n");
+				}
+			}
+		}
+	}
+
+	if (register_flag)
+	{
+		/*
+		 * 1: device ID register.
+		 * 2: OAuth uid bind.
+		 */
+		write_data_str("\nvar _AN_oauth_uid_bind = ");
+		if (register_flag == 2)
+		{
+			lang_string = "true";
+		}
+		else
+		{
+			lang_string = "false";
+		}
+		write_data(lang_string, cursor, strlen(lang_string), out_frame);
+		write_data_str(";\n");
+	}
+
+	/* aaa hardwareid login */
+	write_data_str("\nvar _AN_hardwareid_on = ");
+	if (FLAG_ISSET(aaaconf->hardwareid_flags, AAA_FLAG_HARDWAREID_ON))
+	{
+		lang_string = "true";
+	}
+	else
+	{
+		lang_string = "false";
+	}
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	write_data_str(";\n");
+
+	write_data_str("var _AN_hardwareid_java = ");
+	if (FLAG_ISSET(aaaconf->hardwareid_flags, AAA_FLAG_HARDWAREID_INITMODE_JAVA))
+	{
+		lang_string = "true";
+	}
+	else
+	{
+		lang_string = "false";
+	}
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	write_data_str(";\n");
+
+	write_data_str("var _AN_hardwareid_autoswitch = ");
+	if (FLAG_ISSET(aaaconf->hardwareid_flags, AAA_FLAG_HARDWAREID_INITMODE_AUTOSWITCH))
+	{
+		lang_string = "true";
+	}
+	else
+	{
+		lang_string = "false";
+	}
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	write_data_str(";\n");
+
+	/* aaa rank */
+	write_data_str("\nvar _AN_aaa_rank_on = ");
+	if (aaaconf->rankon)
+	{
+		lang_string = "true";
+	}
+	else
+	{
+		lang_string = "false";
+	}
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	write_data_str(";\n");
 
 	counter = 0;
 	/* when rank on, if only one rank is included, we should just show the included method instead */
-	if (aaaconf->rankon) {
-		for (i = 0; i < RANK_MAX; i++) {
-			if (rank[i].method_id[0] != 0) {
+	if (aaaconf->rankon)
+	{
+		for (i = 0; i < RANK_MAX; i++)
+		{
+			if (rank[i].method_id[0] != 0)
+			{
 				current_rank = i;
 				rankcount++;
 			}
 		}
 
-		if (rankcount == 1) {
-			for (i = 0; i < METHOD_MAX; i++) {
-				if (method[i].id[0] != 0 && method[i].authenticateServer.pointer != NULL) {
-					if (strncmp(method[i].id, rank[current_rank].method_id, AAA_MED_ID_LEN) == 0) {
-						/* 
-						 * identify to ai_login.js response, 
-						 * method index only indicates the ones that had binded servers 
+		if (rankcount == 1)
+		{
+			for (i = 0; i < METHOD_MAX; i++)
+			{
+				if (method[i].id[0] != 0 && method[i].authenticateServer.pointer != NULL)
+				{
+					if (strncmp(method[i].id, rank[current_rank].method_id, AAA_MED_ID_LEN) == 0)
+					{
+						/*
+						 * identify to ai_login.js response,
+						 * method index only indicates the ones that had binded servers
 						 */
 						method_idx = counter;
 						break;
@@ -1055,7 +1160,7 @@
 				}
 			}
 		}
-		
+
 		write_data_str("var _AN_aaa_rank_method_idx = ");
 		sprintf(tmp, "%d", method_idx);
 		write_data(tmp, cursor, strlen(tmp), out_frame);
@@ -1064,7 +1169,7 @@
 
 	write_data_str("var _AN_aaa_defmethod_idx = 0;\n");
 
-	lang_string="var _AN_str_aaa_nomethod=\"No aaa method.\";\n";
+	lang_string = "var _AN_str_aaa_nomethod=\"No aaa method.\";\n";
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	write_data_str("var _AN_aaa_otp_version = ");
@@ -1076,37 +1181,43 @@
 
 	method_idx = -1;
 	counter = 0;
-	for (i = 0; i < METHOD_MAX; i++) {
-		if (method[i].id[0] == '\0') {
+	for (i = 0; i < METHOD_MAX; i++)
+	{
+		if (method[i].id[0] == '\0')
+		{
 			continue;
 		}
 
 		if ((method[i].register_method && !register_flag) ||
-			(!method[i].register_method && register_flag)) {
+			(!method[i].register_method && register_flag))
+		{
 			continue;
 		}
 
-		if (!strcmp(method[i].id, OAUTH_METHOD)) {
+		if (!strcmp(method[i].id, OAUTH_METHOD))
+		{
 			/* OAuth method should NOT be displayed in select box. */
 			continue;
 		}
 
-		server_index = (struct server_index *) &method[i].authenticateServer;
-                if (server_index->pointer == NULL) { /* not assign server for the method */
-                        continue;
-                }
-		if (hasdata == 1) { /* not the first item */
-        		write_data_str(",\n");
-                }
+		server_index = (struct server_index *)&method[i].authenticateServer;
+		if (server_index->pointer == NULL)
+		{ /* not assign server for the method */
+			continue;
+		}
+		if (hasdata == 1)
+		{ /* not the first item */
+			write_data_str(",\n");
+		}
 		hasdata = 1;
 
-		/* 
-		 * when rank off, but there's only one method configured, 
-		 * we should also show this configured method only 
+		/*
+		 * when rank off, but there's only one method configured,
+		 * we should also show this configured method only
 		 */
 		method_idx = counter;
 		counter++;
-		
+
 		/* method name */
 		write_data_str("  {\n    \"name\": \"");
 		write_data(method[i].id, cursor, strlen(method[i].id), out_frame);
@@ -1114,10 +1225,10 @@
 
 		/* display name of method */
 		write_data_str("    \"method_disp\": \"");
-                write_data(method[i].disp, cursor, strlen(method[i].disp), out_frame);
-                write_data_str("\",\n");
+		write_data(method[i].disp, cursor, strlen(method[i].disp), out_frame);
+		write_data_str("\",\n");
 		write_data_str("    \"authserver\": \"");
-		lang_string=method[i].authenticateServer.id;
+		lang_string = method[i].authenticateServer.id;
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 		write_data_str("\",\n");
 
@@ -1130,72 +1241,90 @@
 
 		/* display name of server */
 		write_data_str("    \"server_disp\": \"");
-		switch (method[i].authenticateServer.type) {
-			case TYPE_LDAP:
-				lang_string = ((struct server_ldap *)server_index->pointer)->disp;
-				break;
-			case TYPE_LOCALDB:
-				lang_string = ((struct server_ldb *)server_index->pointer)->disp;
-				break;
-			case TYPE_RADIUS:
-				lang_string = ((struct server_radius *)server_index->pointer)->disp;
-				break;
-			case TYPE_CERTIFICATION:
-				cert_server = (struct server_cert *)server_index->pointer;
-				lang_string = cert_server->disp;
-				/* 
-				 * clientauth must be set 1, or after choosable certificate method's renegoation 
-				 * also could get cert field value which is not espected 
-				 */
-				if (cert_server->auth_id == CERT_SHOWID && sec_data->auth_cert_val != NULL) {
-					get_cert_showid(showid_str, cert_server, sec_data);
-					DBG_PRINTF("showid str %s method %s index %d",	showid_str, method[i].id,i);
-					ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-					                  ULOG_NO651, method[i].methodtype, i, 0,0,0,0,0);
-					showid_flag = 1;
-				}
-				break;
-			case TYPE_HTTP:
-				lang_string = ((struct server_http *)server_index->pointer)->disp;
-				break;
-			default:
-				lang_string = method[i].id;
+		switch (method[i].authenticateServer.type)
+		{
+		case TYPE_LDAP:
+			lang_string = ((struct server_ldap *)server_index->pointer)->disp;
+			break;
+		case TYPE_LOCALDB:
+			lang_string = ((struct server_ldb *)server_index->pointer)->disp;
+			break;
+		case TYPE_RADIUS:
+			lang_string = ((struct server_radius *)server_index->pointer)->disp;
+			break;
+		case TYPE_CERTIFICATION:
+			cert_server = (struct server_cert *)server_index->pointer;
+			lang_string = cert_server->disp;
+			/*
+			 * clientauth must be set 1, or after choosable certificate method's renegoation
+			 * also could get cert field value which is not espected
+			 */
+			if (cert_server->auth_id == CERT_SHOWID && sec_data->auth_cert_val != NULL)
+			{
+				get_cert_showid(showid_str, cert_server, sec_data);
+				DBG_PRINTF("showid str %s method %s index %d", showid_str, method[i].id, i);
+				ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
+								  ULOG_NO651, method[i].methodtype, i, 0, 0, 0, 0, 0);
+				showid_flag = 1;
+			}
+			break;
+		case TYPE_HTTP:
+			lang_string = ((struct server_http *)server_index->pointer)->disp;
+			break;
+		default:
+			lang_string = method[i].id;
 		}
-                write_data(lang_string, cursor, strlen(lang_string), out_frame);
-                write_data_str("\",\n");
+		write_data(lang_string, cursor, strlen(lang_string), out_frame);
+		write_data_str("\",\n");
 
 		write_data_str("	\"cert_id_type\": \"");
-		if (method[i].authenticateServer.type == TYPE_CERTIFICATION) {
+		if (method[i].authenticateServer.type == TYPE_CERTIFICATION)
+		{
 			cert_server = (struct server_cert *)server_index->pointer;
-			if (cert_server->auth_id == CERT_SHOWID && sec_data->auth_cert_val != NULL) {
+			if (cert_server->auth_id == CERT_SHOWID && sec_data->auth_cert_val != NULL)
+			{
 				write_data("showid", cursor, 6, out_frame);
-			} else if (cert_server->auth_id == CERT_GETID) {
+			}
+			else if (cert_server->auth_id == CERT_GETID)
+			{
 				write_data("getid", cursor, 5, out_frame);
-			} else {
+			}
+			else
+			{
 				write_data("0", cursor, 1, out_frame);
 			}
-		} else {
+		}
+		else
+		{
 			write_data("0", cursor, 1, out_frame);
 		}
 		write_data_str("\",\n");
 
 		write_data_str("	\"cert_id_value\": \"");
-		if (showid_str[0] != 0) {
+		if (showid_str[0] != 0)
+		{
 			write_data(showid_str, cursor, strlen(showid_str), out_frame);
-		} else {
+		}
+		else
+		{
 			write_data("0", cursor, 1, out_frame);
 		}
 		write_data_str("\",\n");
-		
+
 		/* authenticate action, challenge or anonymous, whether getid(with username) */
 		write_data_str("    \"authaction\": ");
-		if (deviceid_need_bind_username(&method[i].authenticateServer)) {
+		if (deviceid_need_bind_username(&method[i].authenticateServer))
+		{
 			action = 2;
-		} else if (method[i].authenticateServer.action <= CERT_CHALLENGE_LDB_AUTHENTICATE_ONLY ||
-				(method[i].authenticateServer.action <= CERT_CHALLENGE_LDB_AUTHENTICATE_PHONE &&
-				 method[i].authenticateServer.action >= CERT_CHALLENGE_LDAP_AUTHENTICATE_PHONE_AUTHORIZE)) {
+		}
+		else if (method[i].authenticateServer.action <= CERT_CHALLENGE_LDB_AUTHENTICATE_ONLY ||
+				 (method[i].authenticateServer.action <= CERT_CHALLENGE_LDB_AUTHENTICATE_PHONE &&
+				  method[i].authenticateServer.action >= CERT_CHALLENGE_LDAP_AUTHENTICATE_PHONE_AUTHORIZE))
+		{
 			action = 1;
-		} else {
+		}
+		else
+		{
 			action = 0; /* anonymous, no need password */
 		}
 		sprintf(tmp, "%d", action);
@@ -1203,7 +1332,8 @@
 		write_data_str(",\n");
 
 		/* is multistep */
-		if (method[i].multistep_switch == MULTSTEP_ON) {
+		if (method[i].multistep_switch == MULTSTEP_ON)
+		{
 			write_data_str("    \"multiauth\": true,\n");
 			write_data_str("    \"multistep\": ");
 			sprintf(tmp, "%d", method[i].multistep_step);
@@ -1212,9 +1342,12 @@
 
 			/* multi server */
 			write_data_str("    \"multisteps\": [\n");
-			for (k = 0; k < MULTI_NUM; k++) {
-				if (method[i].multistepServer[k].id[0] != 0) {
-					if (k > 0) {
+			for (k = 0; k < MULTI_NUM; k++)
+			{
+				if (method[i].multistepServer[k].id[0] != 0)
+				{
+					if (k > 0)
+					{
 						write_data_str(",\n");
 					}
 					write_data_str("      {\n");
@@ -1229,52 +1362,60 @@
 
 					/* certificate actions: anonymous/challenge */
 					write_data_str("        \"action\": ");
-					if (deviceid_need_bind_username(&method[i].multistepServer[k])) {
+					if (deviceid_need_bind_username(&method[i].multistepServer[k]))
+					{
 						action = 2;
-					} else if (method[i].multistepServer[k].action <= CERT_CHALLENGE_LDB_AUTHENTICATE_ONLY ||
-						(method[i].multistepServer[k].action <= CERT_CHALLENGE_LDB_AUTHENTICATE_PHONE &&
-						 method[i].multistepServer[k].action >= CERT_CHALLENGE_LDAP_AUTHENTICATE_PHONE_AUTHORIZE)) {
+					}
+					else if (method[i].multistepServer[k].action <= CERT_CHALLENGE_LDB_AUTHENTICATE_ONLY ||
+							 (method[i].multistepServer[k].action <= CERT_CHALLENGE_LDB_AUTHENTICATE_PHONE &&
+							  method[i].multistepServer[k].action >= CERT_CHALLENGE_LDAP_AUTHENTICATE_PHONE_AUTHORIZE))
+					{
 						/* certificate challenge */
 						action = 1;
-					} else {
+					}
+					else
+					{
 						/* certificate anonymous */
 						action = 0;
 					}
-					
+
 					sprintf(tmp, "%d", action);
 					write_data(tmp, cursor, strlen(tmp), out_frame);
 					write_data_str(",\n");
-					
+
 					/* display name of server */
 					write_data_str("        \"server_disp\": \"");
-					server_index = (struct server_index *) &method[i].multistepServer[k];
-					switch (method[i].multistepServer[k].type) {
-						case TYPE_LDAP:
-							lang_string = ((struct server_ldap *)server_index->pointer)->disp;
-							break;
-						case TYPE_LOCALDB:
-							lang_string = ((struct server_ldb *)server_index->pointer)->disp;
-							break;
-						case TYPE_RADIUS:
-							lang_string = ((struct server_radius *)server_index->pointer)->disp;
-							break;
-						case TYPE_CERTIFICATION:
-							lang_string = ((struct server_cert *)server_index->pointer)->disp;
-							break;
-						case TYPE_HTTP:
-							lang_string = ((struct server_http *)server_index->pointer)->disp;
-							break;
-						default:
-							lang_string = method[i].id;
+					server_index = (struct server_index *)&method[i].multistepServer[k];
+					switch (method[i].multistepServer[k].type)
+					{
+					case TYPE_LDAP:
+						lang_string = ((struct server_ldap *)server_index->pointer)->disp;
+						break;
+					case TYPE_LOCALDB:
+						lang_string = ((struct server_ldb *)server_index->pointer)->disp;
+						break;
+					case TYPE_RADIUS:
+						lang_string = ((struct server_radius *)server_index->pointer)->disp;
+						break;
+					case TYPE_CERTIFICATION:
+						lang_string = ((struct server_cert *)server_index->pointer)->disp;
+						break;
+					case TYPE_HTTP:
+						lang_string = ((struct server_http *)server_index->pointer)->disp;
+						break;
+					default:
+						lang_string = method[i].id;
 					}
 					write_data(lang_string, cursor, strlen(lang_string), out_frame);
 					write_data_str("\"\n      }");
 				}
 			}
 			write_data_str("\n    ]\n");
-		} else {
+		}
+		else
+		{
 			write_data_str("    \"multiauth\": false\n");
-		}	
+		}
 		write_data_str("  }");
 	}
 	write_data_str("\n];\n");
@@ -1285,79 +1426,88 @@
 	write_data(tmp, cursor, strlen(tmp), out_frame);
 	write_data_str(";\n");
 
-	if (hasdata == 0) { /* no any valid method (no server assigned) */
-	        /*lang_string = sec_language_get_and_unescape_msg(vsite->language, 999, &lang_str_len); */
+	if (hasdata == 0)
+	{ /* no any valid method (no server assigned) */
+		/*lang_string = sec_language_get_and_unescape_msg(vsite->language, 999, &lang_str_len); */
 		lang_string = "No server assigned for methods.";
-	        write_data_str("var _AN_str_method_error = \"");
-	        write_data(lang_string, cursor, strlen(lang_string), out_frame);
-	        /*write_data(lang_string, cursor, lang_str_len, out_frame);*/
-	        write_data_str("\";\n");
-	} else {
-	        write_data_str("var _AN_str_method_error = \"\";\n");
+		write_data_str("var _AN_str_method_error = \"");
+		write_data(lang_string, cursor, strlen(lang_string), out_frame);
+		/*write_data(lang_string, cursor, lang_str_len, out_frame);*/
+		write_data_str("\";\n");
+	}
+	else
+	{
+		write_data_str("var _AN_str_method_error = \"\";\n");
 	}
 
 #undef write_data_str
 }
 
-int sec_generate_ai_login_js_response(smanager_data_t *sec_data) {
-     struct frame *out_frame = NULL, *in_frame;
-     uint8_t *cursor = NULL;
-     int32_t ret = SEC_FAIL;
-
-     in_frame = parser_frame_alloc();
-     if (in_frame == NULL) {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_login_js_response");
-            return SEC_FAIL;
-     }
-     cursor = in_frame->f_data;
-     in_frame->f_datalen = 0;
-     out_frame = in_frame;
-
-     ret = sec_generate_login_js_response(sec_data, &out_frame, &cursor, NULL, NULL, 0, 0);
-
-     sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-                            HTTP_NOCACHE, COOKIE_FOR_PORTAL_ERROR_MESSAGE_STR, COOKIE_FOR_PORTAL_ERROR_MESSAGE,
-                            "text/javascript", NULL, sec_data,
-                            NULL, 0, 0);
-     if (sec_data->response == NULL) {
-           ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create login response to Client failed");
-           parser_frame_chain_free(in_frame);
-           return SEC_FAIL;
-     }
-     return ret;
-}
-
-int sec_generate_ai_cs_js_response(smanager_data_t *sec_data) {
-     struct frame *out_frame = NULL, *in_frame;
-     uint8_t *cursor = NULL;
-     int32_t ret = SEC_FAIL;
-
-     in_frame = parser_frame_alloc();
-     if (in_frame == NULL) {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in sec_generate_ai_cs_js_response");
-            return SEC_FAIL;
-     }
-     cursor = in_frame->f_data;
-     in_frame->f_datalen = 0;
-     out_frame = in_frame;
-
-     ret = sec_generate_cs_js_response(sec_data, &out_frame, &cursor);
-
-     sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-                            HTTP_NOCACHE, COOKIE_FOR_PORTAL_ERROR_MESSAGE_STR, COOKIE_FOR_PORTAL_ERROR_MESSAGE,
-                            "text/javascript", NULL, sec_data,
-                            NULL, 0, 0);
-     if (sec_data->response == NULL) {
-           ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create client security response to Client failed");
-           parser_frame_chain_free(in_frame);
-           return SEC_FAIL;
-     }
-     return ret;
-}
-
-int sec_generate_login_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor, 
-				const char *err_message, const char *info_message, uint8_t register_flag,
-				int32_t msg_id)
+int sec_generate_ai_login_js_response(smanager_data_t *sec_data)
+{
+	struct frame *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
+	int32_t ret = SEC_FAIL;
+
+	in_frame = parser_frame_alloc();
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_login_js_response");
+		return SEC_FAIL;
+	}
+	cursor = in_frame->f_data;
+	in_frame->f_datalen = 0;
+	out_frame = in_frame;
+
+	ret = sec_generate_login_js_response(sec_data, &out_frame, &cursor, NULL, NULL, 0, 0);
+
+	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
+															HTTP_NOCACHE, COOKIE_FOR_PORTAL_ERROR_MESSAGE_STR, COOKIE_FOR_PORTAL_ERROR_MESSAGE,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create login response to Client failed");
+		parser_frame_chain_free(in_frame);
+		return SEC_FAIL;
+	}
+	return ret;
+}
+
+int sec_generate_ai_cs_js_response(smanager_data_t *sec_data)
+{
+	struct frame *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
+	int32_t ret = SEC_FAIL;
+
+	in_frame = parser_frame_alloc();
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in sec_generate_ai_cs_js_response");
+		return SEC_FAIL;
+	}
+	cursor = in_frame->f_data;
+	in_frame->f_datalen = 0;
+	out_frame = in_frame;
+
+	ret = sec_generate_cs_js_response(sec_data, &out_frame, &cursor);
+
+	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
+															HTTP_NOCACHE, COOKIE_FOR_PORTAL_ERROR_MESSAGE_STR, COOKIE_FOR_PORTAL_ERROR_MESSAGE,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create client security response to Client failed");
+		parser_frame_chain_free(in_frame);
+		return SEC_FAIL;
+	}
+	return ret;
+}
+
+int sec_generate_login_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor,
+								   const char *err_message, const char *info_message, uint8_t register_flag,
+								   int32_t msg_id)
 {
 	int32_t lang_str_len;
 	char *lang_string;
@@ -1370,74 +1520,85 @@
 	char msg_id_str[32] = {0};
 	char mp_flag_str[32] = {0};
 	char mp_hardwareid_type_str[32] = {0};
-	
+
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
 
 	/*write_data_str("// " ARRAY_COMPINFO_BRAND " Inc.\n\n");*/
 	write_data_str("\n// array Inc.\n\n");
 
-       /* whether is MotionPro site */
-        write_data_str("var _AN_is_motionPro_site = ");
-	if(strstr(vsite->desc, "motionPro_dedicated")){
+	/* whether is MotionPro site */
+	write_data_str("var _AN_is_motionPro_site = ");
+	if (strstr(vsite->desc, "motionPro_dedicated"))
+	{
 		write_data_str("true");
 		write_data_str(";\n");
 		write_data_str("var _AN_str_motionPro_access_warning = \"");
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 753, &lang_str_len);
 		write_data(lang_string, cursor, lang_str_len, out_frame);
 		write_data_str("\";\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("false");
 		write_data_str(";\n");
 	}
 
 	/* whether is alis site */
 	write_data_str("var _AN_is_alias_site = ");
-	if(vsite->vsite_type == SITE_ALIAS){
+	if (vsite->vsite_type == SITE_ALIAS)
+	{
 		write_data_str("true");
 		write_data_str(";\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("false");
 		write_data_str(";\n");
 	}
 
-       /* Certificate ID field */ 
+	/* Certificate ID field */
 	write_data_str("var _AN_str_certificateID = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 612, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
 
- 	/* Password for server field */ 
+	/* Password for server field */
 	write_data_str("var _AN_str_passwordServer = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 613, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
 
 	/* Page title */
-	if (register_flag == 1) { // DeviceID
+	if (register_flag == 1)
+	{ // DeviceID
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 648, &lang_str_len);
-	} else if (register_flag == 2) { // OAuth
+	}
+	else if (register_flag == 2)
+	{ // OAuth
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 803, &lang_str_len);
-	} else {
+	}
+	else
+	{
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 219, &lang_str_len);
 	}
 	write_data_str("var _AN_str_title_login = \"");
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_h5_vpn_pls = \""); 
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 782, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-        
-        write_data_str("var _AN_str_h5_vpn_install = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 783, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-        
-        write_data_str("var _AN_str_h5_vpn_download = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 784, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("var _AN_str_h5_vpn_pls = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 782, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn_install = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 783, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn_download = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 784, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
 	/* Help link */
 	write_data_str("var _AN_str_help = \"");
@@ -1466,142 +1627,179 @@
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
 
-	/* Autocomplete */    
-	if (SEC_ISSET(vsite->common_flags, SEC_AUTOCOMPLETE)) {    
-		write_data_str("var _AN_autocomplete = true;\n");        
-	} else {    
-		write_data_str("var _AN_autocomplete = false;\n");        
+	/* Autocomplete */
+	if (SEC_ISSET(vsite->common_flags, SEC_AUTOCOMPLETE))
+	{
+		write_data_str("var _AN_autocomplete = true;\n");
+	}
+	else
+	{
+		write_data_str("var _AN_autocomplete = false;\n");
 	}
 
 	/*client security on */
-	if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC)) { 
+	if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC))
+	{
 		write_data_str("var _AN_clientsecurity_on = true;\n");
-	} else { 
+	}
+	else
+	{
 		write_data_str("var _AN_clientsecurity_on = false;\n");
-	}   
+	}
 
 	/* kill session legacy */
-	if (SEC_ISSET(vsite->common_flags, SEC_SESS_KILL_LEGACY)) {
+	if (SEC_ISSET(vsite->common_flags, SEC_SESS_KILL_LEGACY))
+	{
 		write_data_str("var _AN_session_kill_legacy = true;\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("var _AN_session_kill_legacy = false;\n");
 	}
 
 	/* H5theme check Motionpro in longin/welcome page */
-	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_MOTIONPRO_DETECT_PRELOGIN)) {
+	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_MOTIONPRO_DETECT_PRELOGIN))
+	{
 		lang_string = "var _AN_motionpro_detect_prelogin = true;\n";
-		} else {
+	}
+	else
+	{
 		lang_string = "var _AN_motionpro_detect_prelogin = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
-
-	/* Submit button */    
-	write_data_str("var _AN_str_login = \"");    
-	if (register_flag) {
-		lang_string = sec_language_get_and_unescape_msg(vsite->language, 649, &lang_str_len);    
-	} else {
-		lang_string = sec_language_get_and_unescape_msg(vsite->language, 332, &lang_str_len);    
+	/* Submit button */
+	write_data_str("var _AN_str_login = \"");
+	if (register_flag)
+	{
+		lang_string = sec_language_get_and_unescape_msg(vsite->language, 649, &lang_str_len);
+	}
+	else
+	{
+		lang_string = sec_language_get_and_unescape_msg(vsite->language, 332, &lang_str_len);
 	}
-	write_data(lang_string, cursor, lang_str_len, out_frame);    
+	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
 
-	/* ChangePass button */    
-	write_data_str("var _AN_str_changepass = \"");	 
+	/* ChangePass button */
+	write_data_str("var _AN_str_changepass = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 338, &lang_str_len);
-	write_data(lang_string, cursor, lang_str_len, out_frame);	 
+	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	
+
 	cookie_node_t *node_p = NULL;
-	struct cookie_list_head * cookie_list_p = (struct cookie_list_head *)&(sec_data->proxy_p->cookie_list);
-	
-        /* vsite name */
-        write_data_str("var _AN_vsite_name = \"");
-        lang_string = vsite->name;
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        write_data_str("\";\n");
+	struct cookie_list_head *cookie_list_p = (struct cookie_list_head *)&(sec_data->proxy_p->cookie_list);
+
+	/* vsite name */
+	write_data_str("var _AN_vsite_name = \"");
+	lang_string = vsite->name;
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	write_data_str("\";\n");
 
 	/* Error message */
-	if(sec_data->ai_msg_id > -1) { // for portal theme error message
+	if (sec_data->ai_msg_id > -1)
+	{ // for portal theme error message
 		char str[1024] = {'\0'};
-		if (sec_data->ai_msg_id == 560) { //lockout seconds        
+		if (sec_data->ai_msg_id == 560)
+		{ // lockout seconds
 			sprintf(str, sec_language_get_msg_ex(sec_data, sec_data->ai_msg_id), vsite->lock_loginfail_left == 0 ? 99999999 : vsite->lock_loginfail_left);
 			err_message = str;
-		} else {
+		}
+		else
+		{
 			err_message = sec_language_get_msg_ex(sec_data, sec_data->ai_msg_id);
 		}
-		if (vsite->err_authsvr[0] != '\0') {
-			if (err_message != NULL) {
+		if (vsite->err_authsvr[0] != '\0')
+		{
+			if (err_message != NULL)
+			{
 				snprintf(str, sizeof(str), "%s (%s)", err_message, vsite->err_authsvr);
 				err_message = str;
 			}
 			memset(vsite->err_authsvr, 0, sizeof(vsite->err_authsvr));
 		}
-	} else if (sec_data->ai_msg_str[0] != '\0') {
+	}
+	else if (sec_data->ai_msg_str[0] != '\0')
+	{
 		err_message = sec_data->ai_msg_str;
 	}
-	if (err_message == NULL && info_message != NULL) {
+	if (err_message == NULL && info_message != NULL)
+	{
 		err_message = info_message;
 	}
 
-        if (err_message != NULL) {
-                /* Replace \n or \r with space char. */
+	if (err_message != NULL)
+	{
+		/* Replace \n or \r with space char. */
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", err_message);
 		lang_str_len = language_unescape(portal_temp_string);
 		int i = 0;
-		for (i=0; i < lang_str_len; i++) {
-    			if ((portal_temp_string[i] == '\r') || (portal_temp_string[i] == '\n') || (portal_temp_string[i] == '\"')) { 
-        			portal_temp_string[i] = ' '; 
-    			} 
+		for (i = 0; i < lang_str_len; i++)
+		{
+			if ((portal_temp_string[i] == '\r') || (portal_temp_string[i] == '\n') || (portal_temp_string[i] == '\"'))
+			{
+				portal_temp_string[i] = ' ';
+			}
 		}
-                write_data_str("var _AN_str_errormsg_login = \"");
+		write_data_str("var _AN_str_errormsg_login = \"");
 		write_data(portal_temp_string, cursor, lang_str_len, out_frame);
-                write_data_str("\";\n");
-        } else {
-                write_data_str("var _AN_str_errormsg_login = \"\";\n");
-        }
+		write_data_str("\";\n");
+	}
+	else
+	{
+		write_data_str("var _AN_str_errormsg_login = \"\";\n");
+	}
 
 	/* for portal message login */
-	if (!register_flag && vsite->login_message != NULL) {
+	if (!register_flag && vsite->login_message != NULL)
+	{
 		write_data_str("var _AN_str_msg_login = \"");
-		if (vsite->input_enc == HTML2BINARY) {
+		if (vsite->input_enc == HTML2BINARY)
+		{
 			int32_t msg_len;
 			char *msg;
 			msg = strhtml2binary(vsite->login_message, &msg_len);
 			lang_string = msg;
-		} else {
+		}
+		else
+		{
 			lang_string = vsite->login_message;
 		}
-		
+
 		/*char clang[PORTAL_MESSAGE_LEN * 4 + 1] = {0};
 		lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 		write_data(&clang[0], cursor, lang_str_len, out_frame);
 		*/
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
-		write_data_str("\";\n");    
-	} else {
+		write_data_str("\";\n");
+	}
+	else
+	{
 		write_data_str("var _AN_str_msg_login = \"\";\n");
-	}	
+	}
 
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 604, &lang_str_len);
 	write_data_str("var _AN_str_info_login = \"");
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-	write_data_str("\";\n");    
+	write_data_str("\";\n");
 
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 605, &lang_str_len);
 	write_data_str("var _AN_str_info_method = \"");
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-	write_data_str("\";\n");    
+	write_data_str("\";\n");
 
-	write_data_str("var _AN_aaa_nouser = false;\n");        
+	write_data_str("var _AN_aaa_nouser = false;\n");
 
-	/*   LDAP   */    
-	if (SEC_ISSET(vsite->common_flags, SEC_SECURID_LDAP)) {    
-		write_data_str("var _AN_secuid_ldap = true;\n");        
-	} else {    
-		write_data_str("var _AN_secuid_ldap = false;\n");        
-	}    
-	write_data_str("var _AN_cert_field_vars = \"\";\n");    
+	/*   LDAP   */
+	if (SEC_ISSET(vsite->common_flags, SEC_SECURID_LDAP))
+	{
+		write_data_str("var _AN_secuid_ldap = true;\n");
+	}
+	else
+	{
+		write_data_str("var _AN_secuid_ldap = false;\n");
+	}
+	write_data_str("var _AN_cert_field_vars = \"\";\n");
 
 	write_data_str("var _AN_str_localcheck_errmsg = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 609, &lang_str_len);
@@ -1611,12 +1809,12 @@
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 627, &lang_str_len);
 	write_data_str("var _AN_str_launch_CliSec = \"");
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-	write_data_str("\";\n");    
+	write_data_str("\";\n");
 
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 628, &lang_str_len);
 	write_data_str("var _AN_str_start_CliSec_fail = \"");
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-	write_data_str("\";\n");    
+	write_data_str("\";\n");
 
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 629, &lang_str_len);
 	write_data_str("var _AN_str_launch_CliSec_fail = \"");
@@ -1628,9 +1826,12 @@
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	write_data_str("\";\n");
 
-	if (SEC_ISSET(vsite->common_flags, SEC_FAVORITE_ENABLE)) {
+	if (SEC_ISSET(vsite->common_flags, SEC_FAVORITE_ENABLE))
+	{
 		write_data_str("var _AN_favorite_enable = true;\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("var _AN_favorite_enable = false;\n");
 	}
 
@@ -1663,9 +1864,12 @@
 	write_data(mp_hardwareid_type_str, cursor, strlen(mp_hardwareid_type_str), out_frame);
 	write_data_str(";\n");
 
-	if (vsite->mp_client_devid_flag == 1) {
+	if (vsite->mp_client_devid_flag == 1)
+	{
 		write_data_str("var _AN_mp_senddevid = 1;\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("var _AN_mp_senddevid = 0;\n");
 	}
 
@@ -1682,54 +1886,60 @@
 	write_data(mp_flag_str, cursor, strlen(mp_flag_str), out_frame);
 	write_data_str(";\n");
 
-	if (vsite->mp_client_certverify == 1) {
+	if (vsite->mp_client_certverify == 1)
+	{
 		write_data_str("var _AN_mp_client_certverify = 1;\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("var _AN_mp_client_certverify = 0;\n");
 	}
 
-	if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && sec_data->appid == NULL) { /* not standalone request */
-        	/* user resource links */
-        	sec_generate_userresourcelinks_response(sec_data, out_frame, cursor);
+	if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && sec_data->appid == NULL)
+	{ /* not standalone request */
+		/* user resource links */
+		sec_generate_userresourcelinks_response(sec_data, out_frame, cursor);
 	}
 
 #undef write_data_str
-	
+
 	return SEC_SUCCESS;
 }
 
-int 
-sec_generate_ai_logout_js_response(smanager_data_t *sec_data)
+int sec_generate_ai_logout_js_response(smanager_data_t *sec_data)
 {
-    struct frame *out_frame = NULL, *in_frame;                                 
-    uint8_t *cursor = NULL;
+	struct frame *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
+
+	in_frame = parser_frame_alloc();
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create logout js failed, alloc failed");
+		return 0;
+	}
+
+	cursor = in_frame->f_data;
+	in_frame->f_datalen = 0;
+	out_frame = in_frame;
+
+	sec_generate_logout_js_response(sec_data, &out_frame, &cursor);
 
-    in_frame = parser_frame_alloc();
-    if (in_frame == NULL) {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create logout js failed, alloc failed");
-            return 0;
-    }
-
-    cursor = in_frame->f_data;
-    in_frame->f_datalen = 0;
-    out_frame = in_frame;
-
-    sec_generate_logout_js_response(sec_data, &out_frame, &cursor);
-
-    sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-                 HTTP_NOCACHE, NULL, NULL,
-                 "text/javascript", NULL, sec_data,
-                  NULL, 0, 0);
-    if (sec_data->response == NULL) {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create logout response to Client failed");
-            parser_frame_chain_free(in_frame);
-            return SEC_FAIL;
-    }
+	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
+															HTTP_NOCACHE, NULL, NULL,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create logout response to Client failed");
+		parser_frame_chain_free(in_frame);
+		return SEC_FAIL;
+	}
 
-    return SEC_SUCCESS;
+	return SEC_SUCCESS;
 }
 
-int sec_generate_cs_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor) {
+int sec_generate_cs_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor)
+{
 	int32_t lang_str_len;
 	char *lang_string, *modified_str = DEFAULT_LAST_MODIFIED;
 	sec_vsite_t *vsite = sec_data->vsite_p;
@@ -1740,16 +1950,19 @@
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
 	write_data_str("var _AN_cs_location = \"");
 	/* original client security host check page url */
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "/prx/000/http/localh/%s/%s/",
-			TWINGO_PATH, vsite->name);
-	} else {
+				 TWINGO_PATH, vsite->name);
+	}
+	else
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s/%s/",
-			SEC_REWRITTEN_PREFIX, TWINGO_PATH, vsite->name);
+				 SEC_REWRITTEN_PREFIX, TWINGO_PATH, vsite->name);
 	}
 	write_data(portal_temp_string, cursor, strlen(portal_temp_string), out_frame);
 	write_data_str("\";\n");
-	
+
 	write_data_str("var _AN_cs_errmsg = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 630, &lang_str_len);
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
@@ -1758,37 +1971,44 @@
 	/* write the current time in hex */
 	write_data_str("var _AN_cs_timestamp = \"");
 	tv = get_curtime();
-	hours = tv /3600; /*convert from seconds to hours */
+	hours = tv / 3600; /*convert from seconds to hours */
 	/* throw away microseconds - we don't need that granularity */
 	snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%0x", (int)hours);
 	write_data(portal_temp_string, cursor, strlen(portal_temp_string), out_frame);
 	write_data_str("\";\n");
-	
+
 	write_data_str("var _AN_cs_expiry = \"");
 	snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%0x",
-			vsite->client_sec_sd_timeout);
+			 vsite->client_sec_sd_timeout);
 	write_data(portal_temp_string, cursor, strlen(portal_temp_string), out_frame);
 	write_data_str("\";\n");
 #undef write_data_str
 
-    return SEC_SUCCESS;
+	return SEC_SUCCESS;
 }
 
-int sec_generate_logout_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor) {
+int sec_generate_logout_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor)
+{
 	int32_t lang_str_len;
 	char *lang_string, *modified_str = DEFAULT_LAST_MODIFIED;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *session = sec_data->session;
 
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
-	if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC)) {
+	if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC))
+	{
 		write_data_str("var _AN_client_sec = true;\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("var _AN_client_sec = false;\n");
 	}
-	if (SEC_ISSET(vsite->common_flags, SESS_CACHE_CLEANED)){
+	if (SEC_ISSET(vsite->common_flags, SESS_CACHE_CLEANED))
+	{
 		write_data_str("var _AN_cache_cleaned = true;\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("var _AN_cache_cleaned = false;\n");
 	}
 
@@ -1797,13 +2017,16 @@
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	write_data_str("\";\n");
 
-//NEW_AI_IMP: here, session is invalid, the reserved code is kept for future modify.
+	// NEW_AI_IMP: here, session is invalid, the reserved code is kept for future modify.
 	write_data_str("var _AN_str_title_cacheclean = \"");
 #ifdef NEW_AI_IMP
 	if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC) &&
-	    !SEC_ISSET(sec_data->session->flags, SESS_CACHE_CLEANED)) {
-	    write_data_str(CACHE_CLEAN_TITLE);
-	} else {
+		!SEC_ISSET(sec_data->session->flags, SESS_CACHE_CLEANED))
+	{
+		write_data_str(CACHE_CLEAN_TITLE);
+	}
+	else
+	{
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	}
 #else
@@ -1842,11 +2065,11 @@
 
 #undef write_data_str
 
-    return SEC_SUCCESS;
+	return SEC_SUCCESS;
 }
 
 /*
- * Function is used to generate login page response. 
+ * Function is used to generate login page response.
  * If the response page was local, generate the page, save it in the sec_data->response
  * The response will send out to client by the client state machine.
  *
@@ -1857,11 +2080,10 @@
  *                           when set this message, need to set msg_id to -1
  * Return:
  *     SEC_SUCCESS - generate page success.
- *     SEC_FAIL - generate page failed. Log and statistics was handled inside 
+ *     SEC_FAIL - generate page failed. Log and statistics was handled inside
  */
-int 
-sec_generate_login_response(smanager_data_t *sec_data, 
-                  const char *info_message,int32_t type_code, int32_t msg_id)
+int sec_generate_login_response(smanager_data_t *sec_data,
+								const char *info_message, int32_t type_code, int32_t msg_id)
 {
 	struct frame *final_page, *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
@@ -1871,65 +2093,82 @@
 	struct ai_page *login_page;
 	char msgID[SESSION_COOKIE_SIZE] = {0};
 
-	if(msg_id > -1) {
-		if (msg_id == 639 && info_message!=NULL) {
-                        strcpy(msgID, info_message);
-                } else {
-                        snprintf(msgID, SESSION_COOKIE_SIZE, "_AN_msgID=%d;path=/prx/000/http/;secure;samesite=None;", msg_id);
-                }
-	} else if (info_message != NULL){
+	if (msg_id > -1)
+	{
+		if (msg_id == 639 && info_message != NULL)
+		{
+			strcpy(msgID, info_message);
+		}
+		else
+		{
+			snprintf(msgID, SESSION_COOKIE_SIZE, "_AN_msgID=%d;path=/prx/000/http/;secure;samesite=None;", msg_id);
+		}
+	}
+	else if (info_message != NULL)
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", info_message);
 		int i = 0;
-		for (i=0; i < strlen(info_message); i++) {
-			if ((portal_temp_string[i] == '\r') || (portal_temp_string[i] == '\n')) {
+		for (i = 0; i < strlen(info_message); i++)
+		{
+			if ((portal_temp_string[i] == '\r') || (portal_temp_string[i] == '\n'))
+			{
 				portal_temp_string[i] = ' ';
 			}
-                        if (portal_temp_string[i] == ';') {
-                               portal_temp_string[i] = ',';
-                        }
+			if (portal_temp_string[i] == ';')
+			{
+				portal_temp_string[i] = ',';
+			}
 		}
 		snprintf(msgID, SESSION_COOKIE_SIZE, "_AN_msgStr=\"%s\";path=/prx/000/http/;secure;samesite=None;", portal_temp_string);
 	}
 
 	if (type_code < SEC_PORTAL_ERROR_URLS &&
-			redirect_customized_error_page(vsite, sec_data, type_code)) {
+		redirect_customized_error_page(vsite, sec_data, type_code))
+	{
 		/* redirect to error pages */
 		sec_generate_rewrite_redirect(sec_data, sec_data->redirect_url, strlen(sec_data->redirect_url));
 		return SEC_SUCCESS;
-    }
+	}
 
-    if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ)) { /* not standalone request */
-	if(vsite->cus_contents[SEC_CUSTOM_PAGE_LOGIN] != NULL) {
-		char *cus_url = vsite->cus_contents[SEC_CUSTOM_PAGE_LOGIN]->content_url;
-		sec_generate_rewrite_redirect_with_bookmark(sec_data, cus_url, strlen(cus_url), msgID, strlen(msgID));
-		return SEC_SUCCESS;
-	} else if(vsite->ai_active_theme != NULL &&
-	    (login_page = vsite->ai_active_theme->ai_page_index[AI_PAGE_LOGIN]) != NULL )
-	{
-		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
-				HTTPS_SCHEME, sec_data->req_domain, "/prx/000/http/localh", 
-				login_page->id, login_page->ai_url + login_page->path_pos +
-				(login_page->ai_url[login_page->path_pos] == '/' ? 1 : 0));
-		} else {
-			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
-				HTTPS_SCHEME, sec_data->req_domain, SEC_REWRITTEN_PREFIX, 
-				login_page->id, login_page->ai_url + login_page->path_pos +
-				(login_page->ai_url[login_page->path_pos] == '/' ? 1 : 0));
+	if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ))
+	{ /* not standalone request */
+		if (vsite->cus_contents[SEC_CUSTOM_PAGE_LOGIN] != NULL)
+		{
+			char *cus_url = vsite->cus_contents[SEC_CUSTOM_PAGE_LOGIN]->content_url;
+			sec_generate_rewrite_redirect_with_bookmark(sec_data, cus_url, strlen(cus_url), msgID, strlen(msgID));
+			return SEC_SUCCESS;
 		}
-		sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-		                  portal_temp_string, strlen(portal_temp_string),
-		                  NULL, 0, NULL, 0, msgID, strlen(msgID),
-		                  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
-		return SEC_SUCCESS;
+		else if (vsite->ai_active_theme != NULL &&
+				 (login_page = vsite->ai_active_theme->ai_page_index[AI_PAGE_LOGIN]) != NULL)
+		{
+			if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+			{
+				snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
+						 HTTPS_SCHEME, sec_data->req_domain, "/prx/000/http/localh",
+						 login_page->id, login_page->ai_url + login_page->path_pos + (login_page->ai_url[login_page->path_pos] == '/' ? 1 : 0));
+			}
+			else
+			{
+				snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
+						 HTTPS_SCHEME, sec_data->req_domain, SEC_REWRITTEN_PREFIX,
+						 login_page->id, login_page->ai_url + login_page->path_pos + (login_page->ai_url[login_page->path_pos] == '/' ? 1 : 0));
+			}
+			sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
+								  portal_temp_string, strlen(portal_temp_string),
+								  NULL, 0, NULL, 0, msgID, strlen(msgID),
+								  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+			return SEC_SUCCESS;
+		}
+	}
+	else
+	{
+		ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
+						  ULOG_NO671, 0, 0, 0, 0, 0, 0, 0);
 	}
-    } else {
-        ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-		                  ULOG_NO671, 0,0,0,0,0,0,0);
-    }
 
 	in_frame = id_to_frame_chain(LOGIN_ID, vsite->default_theme);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "The content of login node is empty.");
 		/* customized error page url */
 		redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
@@ -1937,36 +2176,43 @@
 	}
 
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
-	const char * err_message = NULL;
-	if(msg_id > -1) {
+	const char *err_message = NULL;
+	if (msg_id > -1)
+	{
 		err_message = sec_language_get_msg_ex(sec_data, msg_id);
 	}
 
-	if (msg_id == 560) {
+	if (msg_id == 560)
+	{
 		snprintf(msgID, sizeof(msgID), err_message, vsite->lock_loginfail_left == 0 ? 99999999 : vsite->lock_loginfail_left);
 		err_message = msgID;
 	}
 
-	if (vsite->err_authsvr[0] != '\0') {
-		if (err_message != NULL) {
+	if (vsite->err_authsvr[0] != '\0')
+	{
+		if (err_message != NULL)
+		{
 			snprintf(msgID, sizeof(msgID), "%s (%s)", err_message, vsite->err_authsvr);
 			err_message = msgID;
 		}
 		memset(vsite->err_authsvr, 0, sizeof(vsite->err_authsvr));
 	}
 
-	if (msg_id == 639) {
-                err_message = info_message;
-        }
+	if (msg_id == 639)
+	{
+		err_message = info_message;
+	}
 
 	sec_generate_login_js_response(sec_data, &out_frame, &cursor, err_message, info_message, 0, msg_id);
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
-	if (final_page != NULL) {
+	if (final_page != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page,
-		                          0, NULL, NULL,
-		                          "text/html", NULL, sec_data,
-                                  NULL, 0, 0);
-		if (sec_data->response == NULL) {
+																0, NULL, NULL,
+																"text/html", NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create response to Client failed");
 			parser_frame_chain_free(final_page);
 			/* customized error page url */
@@ -1979,22 +2225,22 @@
 
 int *aa_clustered = NULL;
 
-/* 
+/*
  * this string can be used to expire cookie;
  * this is the longest string that could be added to the cookie name value,
  * so its length can be used to calc the longest posible cookie length
- * 2 is added to account for =, a quote in front of the cookie value 
+ * 2 is added to account for =, a quote in front of the cookie value
  * /0 is not taken into account
  * we include url components (scheme, site name, prefix) because the same
  * cookie value will be used as url in the redirect request, so we want to make
- * sure that it fits in the buffer that used to generate redirect url   
+ * sure that it fits in the buffer that used to generate redirect url
  */
-#define SEC_BOOKMARK_URL_COMPONENTS_LEN (SLEN(HTTPS_SCHEME) + SLB_NAME_MAX_LEN  + SEC_MAX_PORT_NCHAR + SLEN(SEC_PREFIX_DEFAULT))
+#define SEC_BOOKMARK_URL_COMPONENTS_LEN (SLEN(HTTPS_SCHEME) + SLB_NAME_MAX_LEN + SEC_MAX_PORT_NCHAR + SLEN(SEC_PREFIX_DEFAULT))
 /* for sending output through app_printf */
 
 uint8_t bookmark_cookie_buffer[MAX_APP_PRINT_SIZE + SEC_BOOKMARK_URL_COMPONENTS_LEN];
 static char session_cookie_buffer[SESSION_COOKIE_SIZE];
-static char nav_cookie_buffer[SESSION_COOKIE_SIZE*2];/* we need more room for 2 cookies in dual sp logout resp*/
+static char nav_cookie_buffer[SESSION_COOKIE_SIZE * 2]; /* we need more room for 2 cookies in dual sp logout resp*/
 static char session_error_buffer[256];
 uint32_t rr_refresh = 2;
 
@@ -2004,13 +2250,14 @@
 
 static uint8_t *
 sprint_bookmark_cookie(struct smanager_data *sec_data, sec_vsite_t *site,
-		       url_host_t *url_host_p, http_redirect_app_rule_t *redirect_app_rule,
-		       uint32_t *bookmark_cookie_len)
+					   url_host_t *url_host_p, http_redirect_app_rule_t *redirect_app_rule,
+					   uint32_t *bookmark_cookie_len)
 {
 	int buf_len = url_host_p->host_len + url_host_p->url_len + 1;
 
-	if (bookmark_cookie_buffer[0] != '\0') {
-		/* 
+	if (bookmark_cookie_buffer[0] != '\0')
+	{
+		/*
 		 * in case of fileshare operation like upload, move etc..
 		 * the bookmark cookie will be created by the referrer parser,
 		 * so by the time we get here it will in the buffer if we need
@@ -2020,21 +2267,23 @@
 		return bookmark_cookie_buffer;
 	}
 
-	if (buf_len < MAX_APP_PRINT_SIZE) {
+	if (buf_len < MAX_APP_PRINT_SIZE)
+	{
 		/*
 		 * Make sure that url will fit into the buffer when later we use it to
 		 * generate redirect response.
 		 * Note: url and host are in continues buffers but they are not null terminated;
 		 * url also can contain multibyte chars, so we must use bcopy
 		 * in both cases wrm on and off we print the cookie in the same format
- 		 */
-		*bookmark_cookie_len = sprintf(bookmark_cookie_buffer, "%s=\"%s/", 
-                                           SEC_AN_BOOKMARK_COOKIE_NAME, 
-                                           scheme_to_string(sec_data->scheme_type));
+		 */
+		*bookmark_cookie_len = sprintf(bookmark_cookie_buffer, "%s=\"%s/",
+									   SEC_AN_BOOKMARK_COOKIE_NAME,
+									   scheme_to_string(sec_data->scheme_type));
 		bcopy(url_host_p->host_p, bookmark_cookie_buffer + *bookmark_cookie_len, url_host_p->host_len);
 		*bookmark_cookie_len += url_host_p->host_len;
 
-		if (redirect_app_rule != NULL) {
+		if (redirect_app_rule != NULL)
+		{
 			/*
 			 * redirect_app_rule was found and app_id was removed from the url, put it in the bookmark url
 			 * so we can identify there app_server when requiest gets back to us
@@ -2044,33 +2293,32 @@
 
 		bcopy(url_host_p->url_p, bookmark_cookie_buffer + *bookmark_cookie_len, url_host_p->url_len);
 		*bookmark_cookie_len += url_host_p->url_len;
-		
+
 		bcopy(SEC_AN_COOKIE_PATH, bookmark_cookie_buffer + *bookmark_cookie_len, SLEN(SEC_AN_COOKIE_PATH));
 		*bookmark_cookie_len += SLEN(SEC_AN_COOKIE_PATH);
 		bcopy(SEC_AN_COOKIE_SECURE, bookmark_cookie_buffer + *bookmark_cookie_len, SLEN(SEC_AN_COOKIE_SECURE));
 		*bookmark_cookie_len += SLEN(SEC_AN_COOKIE_SECURE);
 		bookmark_cookie_buffer[*bookmark_cookie_len] = '\0';
-		    
-		DBG_PRINTF("bookmark cookie: %s cookie_len: %d", 
-			  bookmark_cookie_buffer, *bookmark_cookie_len);
+
+		DBG_PRINTF("bookmark cookie: %s cookie_len: %d",
+				   bookmark_cookie_buffer, *bookmark_cookie_len);
 		ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-		                  ULOG_NO652, *bookmark_cookie_len, 0,0,0,0,0,0);
+						  ULOG_NO652, *bookmark_cookie_len, 0, 0, 0, 0, 0, 0);
 
 		return bookmark_cookie_buffer;
-
-	} else {
+	}
+	else
+	{
 
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-		                "bookmark cookie url is too long(url: %d bytes, limit %d bytes)", 
-		                buf_len, MAX_APP_PRINT_SIZE);
+						"bookmark cookie url is too long(url: %d bytes, limit %d bytes)",
+						buf_len, MAX_APP_PRINT_SIZE);
 		*bookmark_cookie_len = 0;
 		return NULL;
 	}
-	
 }
 
-void
-sec_redirect_saml_request(struct smanager_data *sec_data, url_host_t *url_host_p)
+void sec_redirect_saml_request(struct smanager_data *sec_data, url_host_t *url_host_p)
 {
 	char relay_url[SEC_MAX_COMMON_URL_LEN] = {0};
 	int relay_url_len = 0;
@@ -2078,47 +2326,53 @@
 	int encoded_relay_len = 0;
 	char redirect_url[SEC_MAX_COMMON_URL_LEN] = {0};
 
-	if (url_host_p == NULL) {
-		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-			relay_url_len = snprintf(relay_url, SEC_MAX_COMMON_URL_LEN, 
-			    "https://%s%s/http/localh/welcome", sec_data->req_domain,
-			    SEC_PREFIX_DEFAULT);
-		} else {
-			relay_url_len = snprintf(relay_url, SEC_MAX_COMMON_URL_LEN, 
-			    "https://%s%s/http/localhost/welcome", sec_data->req_domain,
-			    SEC_PREFIX_DEFAULT);
+	if (url_host_p == NULL)
+	{
+		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
+			relay_url_len = snprintf(relay_url, SEC_MAX_COMMON_URL_LEN,
+									 "https://%s%s/http/localh/welcome", sec_data->req_domain,
+									 SEC_PREFIX_DEFAULT);
 		}
-	} else {
-		relay_url_len = snprintf(relay_url, SEC_MAX_COMMON_URL_LEN, 
-		    "https://%s%s/%s/", sec_data->req_domain,
-		    SEC_PREFIX_DEFAULT, scheme_to_string(sec_data->scheme_type));
-		bcopy(url_host_p->host_p, relay_url+relay_url_len, url_host_p->host_len);
+		else
+		{
+			relay_url_len = snprintf(relay_url, SEC_MAX_COMMON_URL_LEN,
+									 "https://%s%s/http/localhost/welcome", sec_data->req_domain,
+									 SEC_PREFIX_DEFAULT);
+		}
+	}
+	else
+	{
+		relay_url_len = snprintf(relay_url, SEC_MAX_COMMON_URL_LEN,
+								 "https://%s%s/%s/", sec_data->req_domain,
+								 SEC_PREFIX_DEFAULT, scheme_to_string(sec_data->scheme_type));
+		bcopy(url_host_p->host_p, relay_url + relay_url_len, url_host_p->host_len);
 		relay_url_len += url_host_p->host_len;
-		bcopy(url_host_p->url_p, relay_url+relay_url_len, url_host_p->url_len);
+		bcopy(url_host_p->url_p, relay_url + relay_url_len, url_host_p->url_len);
 		relay_url_len += url_host_p->url_len;
 		relay_url[relay_url_len] = '\0';
 	}
 	if (!n_escape(relay_url, encoded_relay_url, relay_url_len,
-						SEC_MAX_COMMON_URL_LEN - 1, &encoded_relay_len)) {
+				  SEC_MAX_COMMON_URL_LEN - 1, &encoded_relay_len))
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-		          "encode request url failed, redirect to cookie_redirect_url\n");
+						"encode request url failed, redirect to cookie_redirect_url\n");
 		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
 		return;
 	}
 
-	snprintf(redirect_url, SEC_MAX_COMMON_URL_LEN, 
-	    "https://%s%s/http/%s%s/%s%s?as=%s&RelayState=%s",
-	    sec_data->req_domain, SEC_PREFIX_DEFAULT, SAML_SERVER_NAME, AAA_SAML_PATH,
-	    sec_data->vsite_p->name, SAML_SERVER_AUTH_PATH, sec_data->vsite_p->name,
-	    encoded_relay_url);
+	snprintf(redirect_url, SEC_MAX_COMMON_URL_LEN,
+			 "https://%s%s/http/%s%s/%s%s?as=%s&RelayState=%s",
+			 sec_data->req_domain, SEC_PREFIX_DEFAULT, SAML_SERVER_NAME, AAA_SAML_PATH,
+			 sec_data->vsite_p->name, SAML_SERVER_AUTH_PATH, sec_data->vsite_p->name,
+			 encoded_relay_url);
 
 	ulog_error_no_conn(AMP_ULOG_SMANAGER, "saml redirect: %s\n", redirect_url);
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-							  redirect_url, strlen(redirect_url),
-							  NULL, 0,
-							  NULL, 0, NULL, 0, 
-							  0, 0);
-
+						  redirect_url, strlen(redirect_url),
+						  NULL, 0,
+						  NULL, 0, NULL, 0,
+						  0, 0);
 }
 
 static int
@@ -2130,20 +2384,24 @@
 	int index = 0;
 	struct oauth_server_t *server = NULL;
 
-	for ( ; index < MAX_OAUTH_SERVER; index++) {
-		if (!strcmp(vsite->aaa_configure->oauth_server[index].id, "google")) {
+	for (; index < MAX_OAUTH_SERVER; index++)
+	{
+		if (!strcmp(vsite->aaa_configure->oauth_server[index].id, "google"))
+		{
 			server = vsite->aaa_configure->oauth_server + index;
 			break;
 		}
 	}
 
-	if (!server) {
+	if (!server)
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "No Google OAuth configured.\n");
 		return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
 	}
 	if (!server->oauth_authenticator_url[0] ||
 		!server->oauth_redirect_url[0] ||
-		!server->oauth_register_id[0]) {
+		!server->oauth_register_id[0])
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "No OAuth item configured.\n");
 		return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, 809);
 	}
@@ -2151,23 +2409,22 @@
 	escape_string(server->oauth_redirect_url, encoded_register_redirect_url, sizeof(encoded_register_redirect_url));
 
 	snprintf(redirect_url, sizeof(redirect_url),
-		"%s?response_type=code&scope=openid%%20email&client_id=%s&redirect_uri=%s",
-		server->oauth_authenticator_url, server->oauth_register_id, encoded_register_redirect_url);
+			 "%s?response_type=code&scope=openid%%20email&client_id=%s&redirect_uri=%s",
+			 server->oauth_authenticator_url, server->oauth_register_id, encoded_register_redirect_url);
 
 	ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth url: %s\n", server->oauth_authenticator_url);
 	ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth id: %s\n", server->oauth_register_id);
 	ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth redirect: %s\n", redirect_url);
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-							  redirect_url,
-							  strlen(redirect_url),
-							  NULL, 0,
-							  NULL, 0, NULL, 0, 
-							  0, 0);
+						  redirect_url,
+						  strlen(redirect_url),
+						  NULL, 0,
+						  NULL, 0, NULL, 0,
+						  0, 0);
 	return SEC_SUCCESS;
 }
 
-int
-from_wechat_inner_browser(const struct proxy_type *proxy_p)
+int from_wechat_inner_browser(const struct proxy_type *proxy_p)
 {
 	char *user_agent = NULL;
 	const char *browser_in_wechat_str = " NetType/";
@@ -2176,9 +2433,10 @@
 	user_agent = calloc(proxy_p->user_agent_info.len + 1, sizeof(char));
 
 	parser_frame_chain_to_string(user_agent, proxy_p->user_agent_info.str,
-		proxy_p->user_agent_info.len, proxy_p->user_agent_info.frame_p);
+								 proxy_p->user_agent_info.len, proxy_p->user_agent_info.frame_p);
 
-	if (strstr(user_agent, browser_in_wechat_str)) {
+	if (strstr(user_agent, browser_in_wechat_str))
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "request from browser in wechat.\n");
 		ret = 1;
 	}
@@ -2196,29 +2454,37 @@
 	int index = 0;
 	struct oauth_server_t *server = NULL;
 
-	for ( ; index < MAX_OAUTH_SERVER; index++) {
-		if (!strcmp(vsite->aaa_configure->oauth_server[index].id, "wechat")) {
+	for (; index < MAX_OAUTH_SERVER; index++)
+	{
+		if (!strcmp(vsite->aaa_configure->oauth_server[index].id, "wechat"))
+		{
 			server = vsite->aaa_configure->oauth_server + index;
 			break;
 		}
 	}
 
-	if (!server) {
+	if (!server)
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "No Wechat OAuth configured.\n");
 		return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
 	}
 
-	if (from_wechat_inner_browser(sec_data->proxy_p)) {
+	if (from_wechat_inner_browser(sec_data->proxy_p))
+	{
 		if (!server->oauth_wechat_service_authenticator_url[0] ||
 			!server->oauth_redirect_url[0] ||
-			!server->oauth_wechat_service_register_id[0]) {
+			!server->oauth_wechat_service_register_id[0])
+		{
 			ulog_error_no_conn(AMP_ULOG_SMANAGER, "No OAuth item configured.\n");
 			return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, 809);
 		}
-	} else {
+	}
+	else
+	{
 		if (!server->oauth_authenticator_url[0] ||
 			!server->oauth_redirect_url[0] ||
-			!server->oauth_register_id[0]) {
+			!server->oauth_register_id[0])
+		{
 			ulog_error_no_conn(AMP_ULOG_SMANAGER, "No OAuth item configured.\n");
 			return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, 809);
 		}
@@ -2226,57 +2492,63 @@
 
 	escape_string(server->oauth_redirect_url, encoded_register_redirect_url, sizeof(encoded_register_redirect_url));
 
-	if (from_wechat_inner_browser(sec_data->proxy_p)) {
+	if (from_wechat_inner_browser(sec_data->proxy_p))
+	{
 		snprintf(redirect_url, sizeof(redirect_url),
-			"%s?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_userinfo#wechat_redirect",
-			server->oauth_wechat_service_authenticator_url,
-			server->oauth_wechat_service_register_id, encoded_register_redirect_url);
+				 "%s?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_userinfo#wechat_redirect",
+				 server->oauth_wechat_service_authenticator_url,
+				 server->oauth_wechat_service_register_id, encoded_register_redirect_url);
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth url: %s\n",
-			server->oauth_wechat_service_authenticator_url);
+						   server->oauth_wechat_service_authenticator_url);
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth wechat appid: %s\n",
-			server->oauth_wechat_service_register_id);
-	} else {
+						   server->oauth_wechat_service_register_id);
+	}
+	else
+	{
 		snprintf(redirect_url, sizeof(redirect_url),
-			"%s?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_login#wechat_redirect",
-			server->oauth_authenticator_url, server->oauth_register_id,
-			encoded_register_redirect_url);
+				 "%s?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_login#wechat_redirect",
+				 server->oauth_authenticator_url, server->oauth_register_id,
+				 encoded_register_redirect_url);
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth url: %s\n",
-			server->oauth_authenticator_url);
+						   server->oauth_authenticator_url);
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth wechat appid: %s\n",
-			server->oauth_register_id);
+						   server->oauth_register_id);
 	}
 
 	ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth redirect: %s\n", redirect_url);
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-							  redirect_url,
-							  strlen(redirect_url),
-							  NULL, 0,
-							  NULL, 0, NULL, 0, 
-							  0, 0);
+						  redirect_url,
+						  strlen(redirect_url),
+						  NULL, 0,
+						  NULL, 0, NULL, 0,
+						  0, 0);
 	return SEC_SUCCESS;
 }
 
-int
-sec_oauth_auto_redirect(struct smanager_data *sec_data, sec_vsite_t *vsite)
+int sec_oauth_auto_redirect(struct smanager_data *sec_data, sec_vsite_t *vsite)
 {
 	char redirect_url[SEC_MAX_COMMON_URL_LEN] = {0};
 	char encoded_register_redirect_url[SEC_MAX_COMMON_URL_LEN] = {0};
 	int index = 0;
 	struct oauth_server_t *server = NULL;
 
-	for ( ; index < MAX_OAUTH_SERVER; index++) {
-		if (!strcmp(vsite->aaa_configure->oauth_server[index].id, "wechat")) {
+	for (; index < MAX_OAUTH_SERVER; index++)
+	{
+		if (!strcmp(vsite->aaa_configure->oauth_server[index].id, "wechat"))
+		{
 			server = vsite->aaa_configure->oauth_server + index;
 			break;
 		}
 	}
 
-	if (!server) {
+	if (!server)
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "No Wechat OAuth configured.\n");
 		return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
 	}
 
-	if (!server->oauth_wechat_qy_app_authenticator_url[0] || !server->oauth_wechat_qy_app_redirect_url[0] || !server->oauth_wechat_qy_corpid[0]) {
+	if (!server->oauth_wechat_qy_app_authenticator_url[0] || !server->oauth_wechat_qy_app_redirect_url[0] || !server->oauth_wechat_qy_corpid[0])
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "No OAuth item configured.\n");
 		return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, 809);
 	}
@@ -2284,12 +2556,12 @@
 	escape_string(server->oauth_wechat_qy_app_redirect_url, encoded_register_redirect_url, sizeof(encoded_register_redirect_url));
 
 	snprintf(redirect_url, sizeof(redirect_url),
-		"%s?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_base#wechat_redirect",
-		server->oauth_wechat_qy_app_authenticator_url, server->oauth_wechat_qy_corpid, encoded_register_redirect_url);
+			 "%s?appid=%s&redirect_uri=%s&response_type=code&scope=snsapi_base#wechat_redirect",
+			 server->oauth_wechat_qy_app_authenticator_url, server->oauth_wechat_qy_corpid, encoded_register_redirect_url);
 	ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth redirect: %s\n", redirect_url);
 
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"), redirect_url, strlen(redirect_url),
-		NULL, 0, NULL, 0, NULL, 0, 0, 0);
+						  NULL, 0, NULL, 0, NULL, 0, 0, 0);
 
 	return SEC_SUCCESS;
 }
@@ -2302,22 +2574,26 @@
 	int index = 0;
 	struct oauth_server_t *server = NULL;
 
-	for ( ; index < MAX_OAUTH_SERVER; index++) {
-		if (!strcmp(vsite->aaa_configure->oauth_server[index].id, "wechat")) {
+	for (; index < MAX_OAUTH_SERVER; index++)
+	{
+		if (!strcmp(vsite->aaa_configure->oauth_server[index].id, "wechat"))
+		{
 			server = vsite->aaa_configure->oauth_server + index;
 			break;
 		}
 	}
 
-	if (!server) {
+	if (!server)
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "No Wechat OAuth configured.\n");
 		return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
 	}
 
 	if (!server->oauth_wechat_qy_authenticator_url[0] ||
-			!server->oauth_wechat_qy_redirect_url[0] ||
-			!server->oauth_wechat_qy_corpid[0] ||
-			!server->oauth_wechat_qy_agentid[0]) {
+		!server->oauth_wechat_qy_redirect_url[0] ||
+		!server->oauth_wechat_qy_corpid[0] ||
+		!server->oauth_wechat_qy_agentid[0])
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "No OAuth enterprise item configured.\n");
 		return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, 810);
 	}
@@ -2325,14 +2601,14 @@
 	escape_string(server->oauth_wechat_qy_redirect_url, encoded_register_redirect_url, sizeof(encoded_register_redirect_url));
 
 	snprintf(redirect_url, sizeof(redirect_url), "%s?appid=%s&agentid=%s&redirect_uri=%s",
-			server->oauth_wechat_qy_authenticator_url,
-			server->oauth_wechat_qy_corpid,
-			server->oauth_wechat_qy_agentid,
-			encoded_register_redirect_url);
+			 server->oauth_wechat_qy_authenticator_url,
+			 server->oauth_wechat_qy_corpid,
+			 server->oauth_wechat_qy_agentid,
+			 encoded_register_redirect_url);
 	ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth redirect: %s\n", redirect_url);
 
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"), redirect_url, strlen(redirect_url),
-			NULL, 0, NULL, 0, NULL, 0, 0, 0);
+						  NULL, 0, NULL, 0, NULL, 0, 0, 0);
 
 	return SEC_SUCCESS;
 }
@@ -2346,19 +2622,23 @@
 	struct oauth_server_t *server = NULL;
 	static int state = 100000;
 
-	for ( ; index < MAX_OAUTH_SERVER; index++) {
-		if (!strcmp(vsite->aaa_configure->oauth_server[index].id, "generic")) {
+	for (; index < MAX_OAUTH_SERVER; index++)
+	{
+		if (!strcmp(vsite->aaa_configure->oauth_server[index].id, "generic"))
+		{
 			server = vsite->aaa_configure->oauth_server + index;
 			break;
 		}
 	}
 
-	if (!server) {
+	if (!server)
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "No generic OAuth configured.\n");
 		return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
 	}
 
-	if (!server->oauth_authenticator_url[0]) {
+	if (!server->oauth_authenticator_url[0])
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "No generic OAuth item configured.\n");
 		return sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, 810);
 	}
@@ -2367,158 +2647,172 @@
 	ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth redirect: %s\n", redirect_url);
 
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"), redirect_url, strlen(redirect_url),
-			NULL, 0, NULL, 0, NULL, 0, 0, 0);
+						  NULL, 0, NULL, 0, NULL, 0, 0, 0);
 
 	return SEC_SUCCESS;
 }
 
-int
-sec_redirect_oauth_logout(struct smanager_data *sec_data, int msg_id)
+int sec_redirect_oauth_logout(struct smanager_data *sec_data, int msg_id)
 {
 	char redirect_url[SEC_MAX_COMMON_URL_LEN] = {0};
 	char msgID[SESSION_COOKIE_SIZE] = {0};
 
-	if (msg_id > -1) {
+	if (msg_id > -1)
+	{
 		snprintf(msgID, SESSION_COOKIE_SIZE, "_AN_msgID=%d;path=/prx/000/http/;secure;samesite=None;", msg_id);
 	}
 
 	snprintf(redirect_url, sizeof(redirect_url),
-		"https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=https://%s",
-		sec_data->req_domain);
+			 "https://www.google.com/accounts/Logout?continue=https://appengine.google.com/_ah/logout?continue=https://%s",
+			 sec_data->req_domain);
 
 	ulog_error_no_conn(AMP_ULOG_SMANAGER, "OAuth redirect: %s\n", redirect_url);
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-							  redirect_url,
-							  strlen(redirect_url),
-							  NULL, 0,
-							  NULL, 0, msgID, strlen(msgID),
-							  0, 0);
+						  redirect_url,
+						  strlen(redirect_url),
+						  NULL, 0,
+						  NULL, 0, msgID, strlen(msgID),
+						  0, 0);
 	return SEC_SUCCESS;
 }
 
-void
-sec_generate_cookietest_redirect(struct smanager_data *sec_data, sec_vsite_t *vsite,
-				 url_host_t *url_host_p, http_redirect_app_rule_t *redirect_app_rule)
-{
-    uint32_t bookmark_cookie_len = 0;
-    uint8_t *bookmark_cookie = NULL;
-
-    if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-        snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "/prx/000/http/localh%s",
-                 COOKIETEST_PATH);
-    } else {
-        snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s", SEC_REWRITTEN_PREFIX,
-                 COOKIETEST_PATH);
-    }
-    if (*aa_clustered == 0) {
-        snprintf(session_cookie_buffer, SESSION_COOKIE_SIZE, 
-                 "%s=%s; path=/%s; secure; samesite=None", sec_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data));
-    } else {
-        snprintf(session_cookie_buffer, SESSION_COOKIE_SIZE, 
-                 "%s=%s; path=/%s; secure; samesite=None", ha_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data));
-    }
-
-    /* if we have a url to bookmark, set a bookmark cookie */
-    if (url_host_p && strncasecmp(url_host_p->url_p, FAVICON_STR, FAVICON_STR_LEN) != 0) {
-	    /* init bookmark buffer so sprint_bookmark_cookie creates a new cookie */
-	    bookmark_cookie_buffer[0] = '\0';
-	    bookmark_cookie = sprint_bookmark_cookie(sec_data, vsite, url_host_p, redirect_app_rule, &bookmark_cookie_len);
-    } else {
-	    bookmark_cookie_len = 0;
-	    bookmark_cookie = NULL;
-    }
-
-    sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-                          portal_temp_string, strlen(portal_temp_string),
-                          session_cookie_buffer, strlen(session_cookie_buffer),
-                          NULL, 0, bookmark_cookie, bookmark_cookie_len, 
-                          0, 0);
+void sec_generate_cookietest_redirect(struct smanager_data *sec_data, sec_vsite_t *vsite,
+									  url_host_t *url_host_p, http_redirect_app_rule_t *redirect_app_rule)
+{
+	uint32_t bookmark_cookie_len = 0;
+	uint8_t *bookmark_cookie = NULL;
+
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
+		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "/prx/000/http/localh%s",
+				 COOKIETEST_PATH);
+	}
+	else
+	{
+		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s", SEC_REWRITTEN_PREFIX,
+				 COOKIETEST_PATH);
+	}
+	if (*aa_clustered == 0)
+	{
+		snprintf(session_cookie_buffer, SESSION_COOKIE_SIZE,
+				 "%s=%s; path=/%s; secure; samesite=None", sec_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data));
+	}
+	else
+	{
+		snprintf(session_cookie_buffer, SESSION_COOKIE_SIZE,
+				 "%s=%s; path=/%s; secure; samesite=None", ha_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data));
+	}
+
+	/* if we have a url to bookmark, set a bookmark cookie */
+	if (url_host_p && strncasecmp(url_host_p->url_p, FAVICON_STR, FAVICON_STR_LEN) != 0)
+	{
+		/* init bookmark buffer so sprint_bookmark_cookie creates a new cookie */
+		bookmark_cookie_buffer[0] = '\0';
+		bookmark_cookie = sprint_bookmark_cookie(sec_data, vsite, url_host_p, redirect_app_rule, &bookmark_cookie_len);
+	}
+	else
+	{
+		bookmark_cookie_len = 0;
+		bookmark_cookie = NULL;
+	}
+
+	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
+						  portal_temp_string, strlen(portal_temp_string),
+						  session_cookie_buffer, strlen(session_cookie_buffer),
+						  NULL, 0, bookmark_cookie, bookmark_cookie_len,
+						  0, 0);
 }
 
 /* used when vsite flag SEC_COOKIE_REDIRECT is set */
 static void
 sec_generate_nocookie_redirect(struct smanager_data *sec_data, sec_vsite_t *vsite, url_host_t *url_host_p)
 {
-    if (vsite->login_return_url_field == NULL || vsite->login_return_url_field[0] == '\0' ||
-        url_host_p == NULL || url_host_p->host_p == NULL || url_host_p->host_len <= 0 ||
-        url_host_p->url_p == NULL || url_host_p->url_len <= 0) {
-        DBG_PRINTF("http redirect nocookie is set, redirect to url: %s\n",
-                   vsite->cookie_redirect_url);
-        sec_generate_redirect(sec_data, "301 Moved Permanently",
-                              SLEN("301 Moved Permanently"),
-                              vsite->cookie_redirect_url,
-                              strlen(vsite->cookie_redirect_url),
-                              NULL, 0, NULL, 0, NULL, 0, IGNORE_CLIENTSEC_COOKIE, 
-                              SEC_GENERATE_REDIR_NOFLAGS);
-    } else {
-        char req_url[SEC_MAX_COMMON_URL_LEN];
-        int req_url_len = 0;
-
-        switch (sec_data->scheme_type) {
-            case SM_SCHEME_HTTP:
-                req_url_len += snprintf(req_url, SEC_MAX_COMMON_URL_LEN, "%s", "http://");
-                break;
-            case SM_SCHEME_HTTPS:
-                req_url_len += snprintf(req_url, SEC_MAX_COMMON_URL_LEN, "%s", "https://");
-                break;
-            case SM_SCHEME_FTP:
-                req_url_len += snprintf(req_url, SEC_MAX_COMMON_URL_LEN, "%s", "ftp://");
-                break;
-            case SM_SCHEME_UNKNOWN:
-            default:
-                DBG_PRINTF("scheme type is unknown, redirect without login_return_url\n");
-                sec_generate_nocookie_redirect(sec_data, vsite, NULL);
-                return;
-        }
-
-        if (req_url_len + url_host_p->host_len + url_host_p->url_len >= SEC_MAX_COMMON_URL_LEN) {
-            DBG_PRINTF("request url is too long, redirect to cookie_redirect_url\n");
-            sec_generate_nocookie_redirect(sec_data, vsite, NULL);
-            return;
-        }
-
-        bcopy(url_host_p->host_p, &req_url[req_url_len], url_host_p->host_len);
-        req_url_len += url_host_p->host_len;
-        bcopy(url_host_p->url_p, &req_url[req_url_len], url_host_p->url_len);
-        req_url_len += url_host_p->url_len;
-        req_url[req_url_len] = '\0';
-        
-        char encode_req_url[SEC_MAX_COMMON_URL_LEN];
-        int encode_req_url_len;
-        char redirect_url[SEC_MAX_COMMON_URL_LEN];
-    
-        if (!n_escape(req_url, encode_req_url, req_url_len,
-                    SEC_MAX_COMMON_URL_LEN - 1, &encode_req_url_len)) {
-            DBG_PRINTF("encode request url failed, redirect to cookie_redirect_url\n");
-            sec_generate_nocookie_redirect(sec_data, vsite, NULL);
-            return;
-        }
-        encode_req_url[encode_req_url_len] = '\0';
-
-        if (snprintf(redirect_url, SEC_MAX_COMMON_URL_LEN, "%s?%s=%s", vsite->cookie_redirect_url,
-                     vsite->login_return_url_field, encode_req_url) >= SEC_MAX_COMMON_URL_LEN) {
-            DBG_PRINTF("redirect url with login_return_url is too long, redirect to cookie_redirect_url\n");
-            sec_generate_nocookie_redirect(sec_data, vsite, NULL);
-            return;
-        }
-        DBG_PRINTF("http redirect nocookie is set, redirect to url: %s\n", redirect_url);
-        sec_generate_redirect(sec_data, "301 Moved Permanently",
-                              SLEN("301 Moved Permanently"),
-                              redirect_url,
-                              strlen(redirect_url),
-                              NULL, 0, NULL, 0, NULL, 0, IGNORE_CLIENTSEC_COOKIE, 
-                              SEC_GENERATE_REDIR_NOFLAGS);
-    }
-}
-
-void
-sec_generate_login_redirect_with_bookmark(struct smanager_data *sec_data, sec_vsite_t *vsite,
-					  url_host_t *url_host_p, http_redirect_app_rule_t *redirect_app_rule)
-{
-    uint32_t privileges;
-    uint32_t bookmark_cookie_len;
-    uint8_t *bookmark_cookie;
-    uint8_t *data_p = NULL;
+	if (vsite->login_return_url_field == NULL || vsite->login_return_url_field[0] == '\0' ||
+		url_host_p == NULL || url_host_p->host_p == NULL || url_host_p->host_len <= 0 ||
+		url_host_p->url_p == NULL || url_host_p->url_len <= 0)
+	{
+		DBG_PRINTF("http redirect nocookie is set, redirect to url: %s\n",
+				   vsite->cookie_redirect_url);
+		sec_generate_redirect(sec_data, "301 Moved Permanently",
+							  SLEN("301 Moved Permanently"),
+							  vsite->cookie_redirect_url,
+							  strlen(vsite->cookie_redirect_url),
+							  NULL, 0, NULL, 0, NULL, 0, IGNORE_CLIENTSEC_COOKIE,
+							  SEC_GENERATE_REDIR_NOFLAGS);
+	}
+	else
+	{
+		char req_url[SEC_MAX_COMMON_URL_LEN];
+		int req_url_len = 0;
+
+		switch (sec_data->scheme_type)
+		{
+		case SM_SCHEME_HTTP:
+			req_url_len += snprintf(req_url, SEC_MAX_COMMON_URL_LEN, "%s", "http://");
+			break;
+		case SM_SCHEME_HTTPS:
+			req_url_len += snprintf(req_url, SEC_MAX_COMMON_URL_LEN, "%s", "https://");
+			break;
+		case SM_SCHEME_FTP:
+			req_url_len += snprintf(req_url, SEC_MAX_COMMON_URL_LEN, "%s", "ftp://");
+			break;
+		case SM_SCHEME_UNKNOWN:
+		default:
+			DBG_PRINTF("scheme type is unknown, redirect without login_return_url\n");
+			sec_generate_nocookie_redirect(sec_data, vsite, NULL);
+			return;
+		}
+
+		if (req_url_len + url_host_p->host_len + url_host_p->url_len >= SEC_MAX_COMMON_URL_LEN)
+		{
+			DBG_PRINTF("request url is too long, redirect to cookie_redirect_url\n");
+			sec_generate_nocookie_redirect(sec_data, vsite, NULL);
+			return;
+		}
+
+		bcopy(url_host_p->host_p, &req_url[req_url_len], url_host_p->host_len);
+		req_url_len += url_host_p->host_len;
+		bcopy(url_host_p->url_p, &req_url[req_url_len], url_host_p->url_len);
+		req_url_len += url_host_p->url_len;
+		req_url[req_url_len] = '\0';
+
+		char encode_req_url[SEC_MAX_COMMON_URL_LEN];
+		int encode_req_url_len;
+		char redirect_url[SEC_MAX_COMMON_URL_LEN];
+
+		if (!n_escape(req_url, encode_req_url, req_url_len,
+					  SEC_MAX_COMMON_URL_LEN - 1, &encode_req_url_len))
+		{
+			DBG_PRINTF("encode request url failed, redirect to cookie_redirect_url\n");
+			sec_generate_nocookie_redirect(sec_data, vsite, NULL);
+			return;
+		}
+		encode_req_url[encode_req_url_len] = '\0';
+
+		if (snprintf(redirect_url, SEC_MAX_COMMON_URL_LEN, "%s?%s=%s", vsite->cookie_redirect_url,
+					 vsite->login_return_url_field, encode_req_url) >= SEC_MAX_COMMON_URL_LEN)
+		{
+			DBG_PRINTF("redirect url with login_return_url is too long, redirect to cookie_redirect_url\n");
+			sec_generate_nocookie_redirect(sec_data, vsite, NULL);
+			return;
+		}
+		DBG_PRINTF("http redirect nocookie is set, redirect to url: %s\n", redirect_url);
+		sec_generate_redirect(sec_data, "301 Moved Permanently",
+							  SLEN("301 Moved Permanently"),
+							  redirect_url,
+							  strlen(redirect_url),
+							  NULL, 0, NULL, 0, NULL, 0, IGNORE_CLIENTSEC_COOKIE,
+							  SEC_GENERATE_REDIR_NOFLAGS);
+	}
+}
+
+void sec_generate_login_redirect_with_bookmark(struct smanager_data *sec_data, sec_vsite_t *vsite,
+											   url_host_t *url_host_p, http_redirect_app_rule_t *redirect_app_rule)
+{
+	uint32_t privileges;
+	uint32_t bookmark_cookie_len;
+	uint8_t *bookmark_cookie;
+	uint8_t *data_p = NULL;
 
 	/* By default, SPX will respond to any request that
 	 * does not have a valid session cookie with a redirect
@@ -2526,135 +2820,168 @@
 	 * is set, redirect to the specific URL.
 	 */
 	if (SEC_ISSET(vsite->common_flags, SEC_COOKIE_REDIRECT) &&
-		vsite->cookie_redirect_url != NULL) {
+		vsite->cookie_redirect_url != NULL)
+	{
 		ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-		                  ULOG_NO653, 0,0,0,0,0,0,0);
+						  ULOG_NO653, 0, 0, 0, 0, 0, 0, 0);
 		sec_generate_nocookie_redirect(sec_data, vsite, url_host_p);
 		return;
 	}
 
-    if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC) &&
-	    !SEC_ISSET(sec_data->flags, SDAT_REQ_CLIENTSEC_COOKIE)) {
+	if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC) &&
+		!SEC_ISSET(sec_data->flags, SDAT_REQ_CLIENTSEC_COOKIE))
+	{
 		/*
-		  * clientsec will not happen in case of bookmark redirect
-	 	 * because client sec should be running on the client machine
-	 	 * if failover happens or session expires 
-	 	 */
-		if (!SEC_ISSET(sec_data->flags, SDAT_PREINSTALL_DONE) && 
-		    SEC_ISSET(vsite->common_flags, SEC_ATP_ENABLE) &&
-		    SEC_ISSET(vsite->common_flags, SEC_VPN_PREINSTALL_ON)) 
+		 * clientsec will not happen in case of bookmark redirect
+		 * because client sec should be running on the client machine
+		 * if failover happens or session expires
+		 */
+		if (!SEC_ISSET(sec_data->flags, SDAT_PREINSTALL_DONE) &&
+			SEC_ISSET(vsite->common_flags, SEC_ATP_ENABLE) &&
+			SEC_ISSET(vsite->common_flags, SEC_VPN_PREINSTALL_ON))
 		{
 #ifdef SM_ISREADY
 			sec_generate_atp_install_redirect(conn, site);
 #endif
-		} else {
+		}
+		else
+		{
 			sec_generate_clientsec_redirect(sec_data);
 		}
 		return;
 	}
 
-	if (!sec_get_client_privileges(sec_data, &privileges)) {
+	if (!sec_get_client_privileges(sec_data, &privileges))
+	{
 		/* TODO: Here need to integrate the implement of sec_generate_redirect */
 		return;
-	} 
+	}
 
 	/* SAML enabled, so auth with saml idp, redirect to the saml sp url */
-	if (SEC_ISSET(vsite->common_flags, SEC_AAA_SAML_ENABLED)) {
+	if (SEC_ISSET(vsite->common_flags, SEC_AAA_SAML_ENABLED))
+	{
 		sec_redirect_saml_request(sec_data, url_host_p);
 		return;
 	}
 
-    /* if we have a url to bookmark, set a bookmark cookie */
-	if (url_host_p && strncasecmp(url_host_p->url_p, FAVICON_STR, FAVICON_STR_LEN) != 0) {
+	/* if we have a url to bookmark, set a bookmark cookie */
+	if (url_host_p && strncasecmp(url_host_p->url_p, FAVICON_STR, FAVICON_STR_LEN) != 0)
+	{
 		bookmark_cookie_buffer[0] = '\0';
 		bookmark_cookie = sprint_bookmark_cookie(sec_data, vsite, url_host_p, redirect_app_rule, &bookmark_cookie_len);
-	} else {
+	}
+	else
+	{
 		bookmark_cookie_len = 0;
 		bookmark_cookie = NULL;
 	}
 
 	DBG_PRINTF("url_host's host_p is %s", sec_data->req_domain);
-	if(sec_data->quicklink_conn && sec_data->sp_host && sec_data->sp_host[0]) {
-		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+	if (sec_data->quicklink_conn && sec_data->sp_host && sec_data->sp_host[0])
+	{
+		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
-				 HTTPS_SCHEME, sec_data->sp_host, "/prx/000/http/localh", 
-				 LOGIN_PATH);
-		} else {
+					 HTTPS_SCHEME, sec_data->sp_host, "/prx/000/http/localh",
+					 LOGIN_PATH);
+		}
+		else
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
-				 HTTPS_SCHEME, sec_data->sp_host, SEC_REWRITTEN_PREFIX, 
-				 LOGIN_PATH);
+					 HTTPS_SCHEME, sec_data->sp_host, SEC_REWRITTEN_PREFIX,
+					 LOGIN_PATH);
 		}
-	} else {
-		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+	}
+	else
+	{
+		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
-				 HTTPS_SCHEME, sec_data->req_domain, "/prx/000/http/localh", 
-				 LOGIN_PATH);
-		} else {
+					 HTTPS_SCHEME, sec_data->req_domain, "/prx/000/http/localh",
+					 LOGIN_PATH);
+		}
+		else
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
-				 HTTPS_SCHEME, sec_data->req_domain, SEC_REWRITTEN_PREFIX, 
-				 LOGIN_PATH);
+					 HTTPS_SCHEME, sec_data->req_domain, SEC_REWRITTEN_PREFIX,
+					 LOGIN_PATH);
 		}
 	}
 
 	data_p = session_cookie_buffer;
 
-	if (vsite->vsite_type == SITE_EXCLUSIVE) {
-		if (*aa_clustered == 0) {
+	if (vsite->vsite_type == SITE_EXCLUSIVE)
+	{
+		if (*aa_clustered == 0)
+		{
 			data_p += sprintf(data_p, "%s=%s; path=/%s;expires=Thu, 01-Jan-1970 00:00:01 GMT;secure; samesite=None", sec_cookie_session_name,
-			                  vsite->name, sec_get_domain_for_sp_cookie(sec_data));
-		} else  {
+							  vsite->name, sec_get_domain_for_sp_cookie(sec_data));
+		}
+		else
+		{
 			data_p += sprintf(data_p, "%s=%s; path=/%s;expires=Thu, 01-Jan-1970 00:00:01 GMT;secure; samesite=None", ha_cookie_session_name,
-		                      vsite->name, sec_get_domain_for_sp_cookie(sec_data));
+							  vsite->name, sec_get_domain_for_sp_cookie(sec_data));
 		}
-	} else { // SITE_ALIAS need this cookie to identify which alias-site customer has chosen
-		if (*aa_clustered == 0) {
+	}
+	else
+	{ // SITE_ALIAS need this cookie to identify which alias-site customer has chosen
+		if (*aa_clustered == 0)
+		{
 			data_p += sprintf(data_p, "%s=%s; path=/%s; secure; samesite=None", sec_cookie_session_name,
-			                  vsite->name, sec_get_domain_for_sp_cookie(sec_data));
-		} else {
+							  vsite->name, sec_get_domain_for_sp_cookie(sec_data));
+		}
+		else
+		{
 			data_p += sprintf(data_p, "%s=%s; path=/%s; secure; samesite=None", ha_cookie_session_name,
-			                  vsite->name, sec_get_domain_for_sp_cookie(sec_data));
+							  vsite->name, sec_get_domain_for_sp_cookie(sec_data));
 		}
 	}
 
-	if (sec_data->req_domain && vsite->vsite_type == SITE_EXCLUSIVE) {
+	if (sec_data->req_domain && vsite->vsite_type == SITE_EXCLUSIVE)
+	{
 		static char domain[SEC_MAX_URL_LEN] = {0};
 		char *p = NULL;
 
 		snprintf(domain, SEC_MAX_URL_LEN, "%s", sec_data->req_domain);
 		p = strchr(domain, ':');
-		if (p) {
+		if (p)
+		{
 			*p = 0;
 		}
 
-		if (!strchr(domain, '[') && !is_ip_address(domain, strlen(domain))) {
+		if (!strchr(domain, '[') && !is_ip_address(domain, strlen(domain)))
+		{
 			data_p += sprintf(data_p, "\r\nSet-Cookie: ");
-			if (*aa_clustered == 0) {
+			if (*aa_clustered == 0)
+			{
 				data_p += sprintf(data_p, "%s=%s;", sec_cookie_session_name,
-					vsite->name);
-			} else {
+								  vsite->name);
+			}
+			else
+			{
 				data_p += sprintf(data_p, "%s=%s;", ha_cookie_session_name,
-					vsite->name);
+								  vsite->name);
 			}
 			/*if (SEC_ISSET(vsite->common_flags, SEC_COOKIE_EXPIRE)) {
 				data_p += sprintf(data_p, "expires=%s;", get_GMT_time(vsite->idle_timeout));
 			}*/
-			data_p += sprintf(data_p, "path=/;domain=%s;expires=Thu, 01-Jan-1971 00:00:01 GMT",strstr(domain,".")== NULL?domain: strstr(domain,".") );
+			data_p += sprintf(data_p, "path=/;domain=%s;expires=Thu, 01-Jan-1971 00:00:01 GMT", strstr(domain, ".") == NULL ? domain : strstr(domain, "."));
 
-			if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY)) {      
+			if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY))
+			{
 				data_p += sprintf(data_p, ";HttpOnly");
 			}
 		}
 	}
 
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-	                      portal_temp_string, strlen(portal_temp_string),
-	                      session_cookie_buffer, strlen(session_cookie_buffer),
-	                      NULL, 0,  bookmark_cookie, bookmark_cookie_len,
-	                      0, SEC_GENERATE_REDIR_NOFLAGS);
+						  portal_temp_string, strlen(portal_temp_string),
+						  session_cookie_buffer, strlen(session_cookie_buffer),
+						  NULL, 0, bookmark_cookie, bookmark_cookie_len,
+						  0, SEC_GENERATE_REDIR_NOFLAGS);
 }
 
-void
-sec_generate_login_redirect(struct smanager_data *sec_data, sec_vsite_t *site)
+void sec_generate_login_redirect(struct smanager_data *sec_data, sec_vsite_t *site)
 {
 	return (sec_generate_login_redirect_with_bookmark(sec_data, site, NULL, NULL));
 }
@@ -2662,22 +2989,22 @@
 /*
  *    Function is used to generate help page response. Send different help page according to
  *    portal language setting.
- *    
+ *
  *    Input:
  *           sec_data: The smanager data hold the current request information.
  *    Return:
  *           SEC_SUCCESS - generate page success.
  *           SEC_FAIL - generate page failed. Log and statistics was handled inside
  */
-int
-sec_generate_help_response(smanager_data_t *sec_data)
+int sec_generate_help_response(smanager_data_t *sec_data)
 {
 	struct frame *final_page, *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
-	uint8_t itype = sec_data->vsite_p->language; 
-	in_frame = id_to_frame_chain(HELP_ID, itype); 
+	uint8_t itype = sec_data->vsite_p->language;
+	in_frame = id_to_frame_chain(HELP_ID, itype);
 	/* Note that if the order in sp_lang_filenames.txt is changed, the order in sec_shared.c must be changed too! */
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "The content of login node is empty.");
 		/* customized error page url */
 		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
@@ -2685,12 +3012,14 @@
 	}
 
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
-	if (final_page != NULL) {
+	if (final_page != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page,
-				0, NULL, NULL,
-				"text/html", NULL, sec_data,
-				NULL, 0, 0);
-		if (sec_data->response == NULL) {
+																0, NULL, NULL,
+																"text/html", NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create response to Client failed");
 			parser_frame_chain_free(final_page);
 			/* customized error page url */
@@ -2701,13 +3030,13 @@
 	return SEC_SUCCESS;
 }
 
-int
-sec_generate_dd_portal_response(smanager_data_t *sec_data)
+int sec_generate_dd_portal_response(smanager_data_t *sec_data)
 {
 	struct frame *final_page, *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
-	in_frame = id_to_frame_chain(DD_PORTAL_ID, 0); 
-	if (in_frame == NULL) {
+	in_frame = id_to_frame_chain(DD_PORTAL_ID, 0);
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "The content of login node is empty.");
 		/* customized error page url */
 		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
@@ -2715,12 +3044,14 @@
 	}
 
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
-	if (final_page != NULL) {
+	if (final_page != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page,
-				0, NULL, NULL,
-				"text/html", NULL, sec_data,
-				NULL, 0, 0);
-		if (sec_data->response == NULL) {
+																0, NULL, NULL,
+																"text/html", NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create response to Client failed");
 			parser_frame_chain_free(final_page);
 			/* customized error page url */
@@ -2731,66 +3062,70 @@
 	return SEC_SUCCESS;
 }
 
-int
-sec_generate_bookmark_add_response(smanager_data_t *sec_data)
+int sec_generate_bookmark_add_response(smanager_data_t *sec_data)
 {
-        struct frame *final_page, *out_frame = NULL, *in_frame;
-        uint8_t *cursor = NULL;
-        in_frame = id_to_frame_chain(BOOKMARK_ADD_ID, 0);
-        if (in_frame == NULL) {
-                ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "The content of login node is empty.");
-                /* customized error page url */
-                redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
-                return SEC_FAIL;
-        }
-                      
-        final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
-        if (final_page != NULL) {
-                sec_data->response = create_http_response_with_bookmark(OK, final_page,
-                                0, NULL, NULL,
-                                "text/html", NULL, sec_data,   
-                                NULL, 0, 0);
-                if (sec_data->response == NULL) {
-                        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create response to Client failed");
-                        parser_frame_chain_free(final_page);
-                        /* customized error page url */
-                        redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
-                        return SEC_FAIL;
-                }
-        }
-        return SEC_SUCCESS;
-}
-int
-sec_generate_bookmark_edit_response(smanager_data_t *sec_data)
-{
-        struct frame *final_page, *out_frame = NULL, *in_frame;
-        uint8_t *cursor = NULL;
-        in_frame = id_to_frame_chain(BOOKMARK_EDIT_ID, 0);
-        if (in_frame == NULL) {
-                ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "The content of login node is empty.");
-                /* customized error page url */
-                redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
-                return SEC_FAIL;
-        }
-                      
-        final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
-        if (final_page != NULL) {
-                sec_data->response = create_http_response_with_bookmark(OK, final_page,
-                                0, NULL, NULL,
-                                "text/html", NULL, sec_data,   
-                                NULL, 0, 0);
-                if (sec_data->response == NULL) {
-                        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create response to Client failed");
-                        parser_frame_chain_free(final_page);
-                        /* customized error page url */
-                        redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
-                        return SEC_FAIL;
-                }
-        }
-        return SEC_SUCCESS;
+	struct frame *final_page, *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
+	in_frame = id_to_frame_chain(BOOKMARK_ADD_ID, 0);
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "The content of login node is empty.");
+		/* customized error page url */
+		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
+		return SEC_FAIL;
+	}
+
+	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
+	if (final_page != NULL)
+	{
+		sec_data->response = create_http_response_with_bookmark(OK, final_page,
+																0, NULL, NULL,
+																"text/html", NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create response to Client failed");
+			parser_frame_chain_free(final_page);
+			/* customized error page url */
+			redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
+			return SEC_FAIL;
+		}
+	}
+	return SEC_SUCCESS;
+}
+int sec_generate_bookmark_edit_response(smanager_data_t *sec_data)
+{
+	struct frame *final_page, *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
+	in_frame = id_to_frame_chain(BOOKMARK_EDIT_ID, 0);
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "The content of login node is empty.");
+		/* customized error page url */
+		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
+		return SEC_FAIL;
+	}
+
+	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
+	if (final_page != NULL)
+	{
+		sec_data->response = create_http_response_with_bookmark(OK, final_page,
+																0, NULL, NULL,
+																"text/html", NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create response to Client failed");
+			parser_frame_chain_free(final_page);
+			/* customized error page url */
+			redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
+			return SEC_FAIL;
+		}
+	}
+	return SEC_SUCCESS;
 }
 /* sec_generate_nonhtml_response()
- * Generate a nonhtml response page and save it in the smanager_data->response, 
+ * Generate a nonhtml response page and save it in the smanager_data->response,
  * waiting client proxy state to send it out to Client.
  * If the requested resource is not changed since last access, return 304 not modify,
  * or return the content from local.
@@ -2800,11 +3135,10 @@
  *    SEC_SUCCESS: Got the requested resource and hold it in sec_data->response
  *    SEC_FAIL: Something wrong when get the resource, and the response will set to NULL
  */
-int
-sec_generate_nonhtml_response(smanager_data_t *sec_data)
+int sec_generate_nonhtml_response(smanager_data_t *sec_data)
 {
-    struct frame *curr_frame = NULL, *new_chain;
-    uint8_t *cursor = NULL;
+	struct frame *curr_frame = NULL, *new_chain;
+	uint8_t *cursor = NULL;
 	content_node_t *content = sec_data->content;
 	struct frame *content_chain = id_to_frame_chain(content->id, 0);
 	time_t modif_date = id_to_last_modified(content->id);
@@ -2812,27 +3146,31 @@
 	char *modified_str = id_to_modified_str(content->id);
 	char *content_type = id_to_content_type(content->id);
 
-    if (if_modif_date != -1 && if_modif_date == modif_date &&
-        modified_str != NULL) 
-    {
-	ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-	                  ULOG_NO654, 0,0,0,0,0,0,0);
-        sec_data->response = create_304_response(
-                               FALSE,
-                               modified_str);
-	} else {
-	    new_chain = write_frame_chunk(&curr_frame, &cursor, &content_chain);
-	    if (new_chain == NULL) {
-	        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "get contain failed, id %d", content->id);
-	        return SEC_FAIL;
-	    }
-
-	    sec_data->response = create_http_response_with_bookmark(OK, new_chain,
-	                0, NULL, NULL,
-	                content_type, modified_str, sec_data, NULL, 0, 0);
+	if (if_modif_date != -1 && if_modif_date == modif_date &&
+		modified_str != NULL)
+	{
+		ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
+						  ULOG_NO654, 0, 0, 0, 0, 0, 0, 0);
+		sec_data->response = create_304_response(
+			FALSE,
+			modified_str);
 	}
+	else
+	{
+		new_chain = write_frame_chunk(&curr_frame, &cursor, &content_chain);
+		if (new_chain == NULL)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "get contain failed, id %d", content->id);
+			return SEC_FAIL;
+		}
 
-	if (sec_data->response == NULL) {
+		sec_data->response = create_http_response_with_bookmark(OK, new_chain,
+																0, NULL, NULL,
+																content_type, modified_str, sec_data, NULL, 0, 0);
+	}
+
+	if (sec_data->response == NULL)
+	{
 		parser_frame_chain_free(new_chain);
 		/* customized error page url */
 		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
@@ -2842,57 +3180,67 @@
 	return SEC_SUCCESS;
 }
 
-int
-sec_generate_quicklink_get_response(smanager_data_t *sec_data)
+int sec_generate_quicklink_get_response(smanager_data_t *sec_data)
 {
 	int32_t len, url_len, sess_len, sphost_len, ret;
-	static char base64_buffer[SESSION_COOKIE_SIZE*2];
+	static char base64_buffer[SESSION_COOKIE_SIZE * 2];
 	static char sphost_buffer[SESSION_COOKIE_SIZE];
-	uint8_t *url_p = NULL, *sphost_p=NULL, *session_p = NULL, *end;
+	uint8_t *url_p = NULL, *sphost_p = NULL, *session_p = NULL, *end;
 
 #define QUICKLINK_GET_STR "/quicklink_get?"
 #define QUICKLINK_GET_LEN strlen(QUICKLINK_GET_STR)
 
-	if(sec_data->req_parser_info.url_host.url_len > QUICKLINK_GET_LEN
-			&& strncmp(QUICKLINK_GET_STR, sec_data->req_parser_info.url_host.url_p, QUICKLINK_GET_LEN)==0) {
+	if (sec_data->req_parser_info.url_host.url_len > QUICKLINK_GET_LEN && strncmp(QUICKLINK_GET_STR, sec_data->req_parser_info.url_host.url_p, QUICKLINK_GET_LEN) == 0)
+	{
 		/* see if the module id matches a configured module name */
-		if((url_p = strstr(sec_data->req_parser_info.url_host.url_p, "url=")) == NULL ||
+		if ((url_p = strstr(sec_data->req_parser_info.url_host.url_p, "url=")) == NULL ||
 			strstr(sec_data->req_parser_info.url_host.url_p, "%0a") != NULL ||
-			strstr(sec_data->req_parser_info.url_host.url_p, "%0A") != NULL) {
+			strstr(sec_data->req_parser_info.url_host.url_p, "%0A") != NULL)
+		{
 			return SEC_FAIL;
 		}
 		url_p += 4;
 		/*must contain &AN_sphost*/
-		if(end=strstr(url_p, SEC_AN_SPHOST_NAME)) {
-			url_len = end - url_p -1;
-		} else {
+		if (end = strstr(url_p, SEC_AN_SPHOST_NAME))
+		{
+			url_len = end - url_p - 1;
+		}
+		else
+		{
 			return SEC_FAIL;
 		}
 		DBG_PRINTF("get url(%d)(%s)\n", url_len, url_p);
 
-		if((sphost_p = strstr(end, SEC_AN_SPHOST_NAME)) == NULL) {
+		if ((sphost_p = strstr(end, SEC_AN_SPHOST_NAME)) == NULL)
+		{
 			return SEC_FAIL;
 		}
 		sphost_p += SEC_AN_SPHOST_NAME_LEN + 1;
-		if(end=strchr(sphost_p, '&')) {
+		if (end = strchr(sphost_p, '&'))
+		{
 			sphost_len = end - sphost_p;
-		} else {
+		}
+		else
+		{
 			return SEC_FAIL;
 		}
-		if(sphost_len<=0) {
+		if (sphost_len <= 0)
+		{
 			return SEC_FAIL;
 		}
 		bcopy(sphost_p, portal_temp_string, sphost_len);
 		portal_temp_string[sphost_len] = '\0';
 		sprintf(sphost_buffer, "%s=%s;path=/;secure; samesite=None", SEC_AN_SPHOST_NAME, portal_temp_string);
 
-		if((session_p = strstr(end, "session=")) == NULL) {
+		if ((session_p = strstr(end, "session=")) == NULL)
+		{
 			return SEC_FAIL;
 		}
 		session_p += 8;
 		sess_len = (sec_data->req_parser_info.url_host.url_p +
-			sec_data->req_parser_info.url_host.url_len - session_p);
-		if (' ' == session_p[sess_len-1]) {
+					sec_data->req_parser_info.url_host.url_len - session_p);
+		if (' ' == session_p[sess_len - 1])
+		{
 			/* the url is ended with a blank space, strip it */
 			sess_len--;
 		}
@@ -2900,14 +3248,14 @@
 		bzero(portal_temp_string, MAX_APP_PRINT_SIZE);
 		unescape_string(url_p, url_len, portal_temp_string, &len, SEC_MAX_URL_LEN);
 		bcopy(session_p, base64_buffer, sess_len);
-		session_p=base64_buffer;
+		session_p = base64_buffer;
 		sprintf(session_p + sess_len, "%s;secure", sec_get_domain_for_sp_cookie(sec_data));
 		DBG_PRINTF("quicklink_get session(%s)\n", base64_buffer);
 		sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-		                      portal_temp_string, strlen(portal_temp_string),
-		                      base64_buffer, strlen(base64_buffer),
-		                      sphost_buffer, strlen(sphost_buffer), NULL, 0, 
-		                      IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+							  portal_temp_string, strlen(portal_temp_string),
+							  base64_buffer, strlen(base64_buffer),
+							  sphost_buffer, strlen(sphost_buffer), NULL, 0,
+							  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
 		return SEC_SUCCESS;
 	}
 }
@@ -2922,137 +3270,165 @@
 	char *colon_pos = NULL;
 	char url_prefix[SEC_MAX_URL_LEN] = {0};
 
-    if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-        strncpy(url_prefix, "/prx/000/http/localh", SEC_MAX_URL_LEN-1);
-    } else {
-        strncpy(url_prefix, SEC_REWRITTEN_PREFIX, SEC_MAX_URL_LEN-1);
-    }
-    if ((sec_data->scheme_type == SEC_SCHEME_HTTP && 
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
+		strncpy(url_prefix, "/prx/000/http/localh", SEC_MAX_URL_LEN - 1);
+	}
+	else
+	{
+		strncpy(url_prefix, SEC_REWRITTEN_PREFIX, SEC_MAX_URL_LEN - 1);
+	}
+	if ((sec_data->scheme_type == SEC_SCHEME_HTTP &&
 		 sec_data->port != SEC_DEFAULT_HTTP_PORT) ||
 		(sec_data->scheme_type == SEC_SCHEME_HTTPS &&
-		 sec_data->port != SEC_DEFAULT_HTTPS_PORT))	{
-        snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s:%d", 
-			sec_data->servername, sec_data->port);
-    } else {
-	 snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", sec_data->servername);
-    }
-    DBG_PRINTF("enter backend:(%s)", portal_temp_string);
-    if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_QUICKLINK_ENABLED) && 
-        SEC_ISSET(sec_data->flags, SDAT_REQ_WITH_PRX)) 
-    {
-        TAILQ_FOREACH(quicklink_detail, &sec_data->vsite_p->quicklink_detail_list, next_info) {
-            if (strlen(portal_temp_string) == quicklink_detail->host_with_port_len && 
-                strncasecmp(quicklink_detail->hostname,
-                portal_temp_string, quicklink_detail->host_with_port_len) == 0) 
-            {
-                break;
-            }
-        }
-    }
-    if (quicklink_detail) {
-        DBG_PRINTF("enter quicklink_detail (%d).", quicklink_detail->quicklink_id);
-        snprintf(sec_data->session->sp_host, VSITE_DOMAIN_LEN, sec_data->req_domain);
-        quicklink_info = quicklink_detail->quicklink_id;
-        portal_temp_string[0] = 0;
+		 sec_data->port != SEC_DEFAULT_HTTPS_PORT))
+	{
+		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s:%d",
+				 sec_data->servername, sec_data->port);
+	}
+	else
+	{
+		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", sec_data->servername);
+	}
+	DBG_PRINTF("enter backend:(%s)", portal_temp_string);
+	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_QUICKLINK_ENABLED) &&
+		SEC_ISSET(sec_data->flags, SDAT_REQ_WITH_PRX))
+	{
+		TAILQ_FOREACH(quicklink_detail, &sec_data->vsite_p->quicklink_detail_list, next_info)
+		{
+			if (strlen(portal_temp_string) == quicklink_detail->host_with_port_len &&
+				strncasecmp(quicklink_detail->hostname,
+							portal_temp_string, quicklink_detail->host_with_port_len) == 0)
+			{
+				break;
+			}
+		}
+	}
+	if (quicklink_detail)
+	{
+		DBG_PRINTF("enter quicklink_detail (%d).", quicklink_detail->quicklink_id);
+		snprintf(sec_data->session->sp_host, VSITE_DOMAIN_LEN, sec_data->req_domain);
+		quicklink_info = quicklink_detail->quicklink_id;
+		portal_temp_string[0] = 0;
 		snprintf(req_domain, SEC_MAX_URL_LEN, "%s", sec_data->req_domain);
-		if (DOMAIN_IS_IPV6_ADDRESS(req_domain)) {
+		if (DOMAIN_IS_IPV6_ADDRESS(req_domain))
+		{
 			colon_pos = strchr(req_domain, ']');
-			if (colon_pos) {
+			if (colon_pos)
+			{
 				colon_pos = strchr(colon_pos, ':');
 			}
-		} else {
+		}
+		else
+		{
 			colon_pos = strchr(req_domain, ':');
 		}
-		if (colon_pos != NULL) {
+		if (colon_pos != NULL)
+		{
 			*colon_pos = '\0';
 		}
 
-	 if (' ' == sec_data->req_parser_info.url_host.url_p[sec_data->req_parser_info.url_host.url_len-1]) {
-		/* the url is ended with a blank space, strip it */
-		sec_data->req_parser_info.url_host.url_len--;
-	}
-	 escape_multibyte(sec_data->req_parser_info.url_host.url_p, sec_data->req_parser_info.url_host.url_len, quicklink_url_buffer, SEC_MAX_URL_LEN);
-        sprint_session_cookie_for_quicklink(session_cookie_buffer, sec_data);
-        if (quicklink_info->port) {
-            
-            sprintf(portal_temp_string, "%s://%s:%d%s%s?url=%s&%s=%s&session=%s",
-                    "https", req_domain, quicklink_info->port, url_prefix,
-                    AN_QUICKLINK_GET_PATH, 
-                    quicklink_url_buffer,
-                    SEC_AN_SPHOST_NAME, sec_data->req_domain, 
-                    session_cookie_buffer);
-	} else if (quicklink_info->hostname[0]){
-            if(!sec_data->req_port){
-                sprintf(portal_temp_string, "%s://%s%s%s?url=%s&%s=%s&session=%s",
-                    "https", quicklink_info->hostname, url_prefix, 
-                    AN_QUICKLINK_GET_PATH, 
-                    quicklink_url_buffer,
-                    SEC_AN_SPHOST_NAME, sec_data->req_domain,
-                    session_cookie_buffer);
-            } else {
-                sprintf(portal_temp_string, "%s://%s:%d%s%s?url=%s&%s=%s&session=%s",
-                    "https", quicklink_info->hostname, sec_data->req_port, url_prefix,
-                    AN_QUICKLINK_GET_PATH, 
-                    quicklink_url_buffer,
-                    SEC_AN_SPHOST_NAME, sec_data->req_domain,
-                    session_cookie_buffer);
-            }
-	} else if (quicklink_info->pathname[0]) {
+		if (' ' == sec_data->req_parser_info.url_host.url_p[sec_data->req_parser_info.url_host.url_len - 1])
+		{
+			/* the url is ended with a blank space, strip it */
+			sec_data->req_parser_info.url_host.url_len--;
+		}
+		escape_multibyte(sec_data->req_parser_info.url_host.url_p, sec_data->req_parser_info.url_host.url_len, quicklink_url_buffer, SEC_MAX_URL_LEN);
+		sprint_session_cookie_for_quicklink(session_cookie_buffer, sec_data);
+		if (quicklink_info->port)
+		{
+
+			sprintf(portal_temp_string, "%s://%s:%d%s%s?url=%s&%s=%s&session=%s",
+					"https", req_domain, quicklink_info->port, url_prefix,
+					AN_QUICKLINK_GET_PATH,
+					quicklink_url_buffer,
+					SEC_AN_SPHOST_NAME, sec_data->req_domain,
+					session_cookie_buffer);
+		}
+		else if (quicklink_info->hostname[0])
+		{
+			if (!sec_data->req_port)
+			{
+				sprintf(portal_temp_string, "%s://%s%s%s?url=%s&%s=%s&session=%s",
+						"https", quicklink_info->hostname, url_prefix,
+						AN_QUICKLINK_GET_PATH,
+						quicklink_url_buffer,
+						SEC_AN_SPHOST_NAME, sec_data->req_domain,
+						session_cookie_buffer);
+			}
+			else
+			{
+				sprintf(portal_temp_string, "%s://%s:%d%s%s?url=%s&%s=%s&session=%s",
+						"https", quicklink_info->hostname, sec_data->req_port, url_prefix,
+						AN_QUICKLINK_GET_PATH,
+						quicklink_url_buffer,
+						SEC_AN_SPHOST_NAME, sec_data->req_domain,
+						session_cookie_buffer);
+			}
+		}
+		else if (quicklink_info->pathname[0])
+		{
 			sprintf(portal_temp_string, "%s://%s/%s%s",
-				"https", sec_data->req_domain, quicklink_info->pathname,
-				quicklink_url_buffer);
+					"https", sec_data->req_domain, quicklink_info->pathname,
+					quicklink_url_buffer);
+		}
+		DBG_PRINTF("redirect to (%s)\n", portal_temp_string);
+		sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
+							  portal_temp_string, strlen(portal_temp_string),
+							  NULL, 0,
+							  NULL, 0, NULL, 0,
+							  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+
+		return SEC_REQ_QUICKLINK_REDIRECT;
+	}
+	return SEC_REQ_PROXY;
+}
+
+int sec_generate_empty_response(smanager_data_t *sec_data)
+{
+	struct frame *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
+
+	in_frame = parser_frame_alloc();
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_login_js_response");
+		return SEC_FAIL;
 	}
-       DBG_PRINTF("redirect to (%s)\n",portal_temp_string);
-       sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-                              portal_temp_string, strlen(portal_temp_string),
-                              NULL, 0,
-                              NULL, 0, NULL, 0, 
-                              IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
-
-        return SEC_REQ_QUICKLINK_REDIRECT;
-    }
-    return SEC_REQ_PROXY;
-}
-
-int sec_generate_empty_response(smanager_data_t *sec_data) {
-     struct frame *out_frame = NULL, *in_frame;
-     uint8_t *cursor = NULL;
-
-     in_frame = parser_frame_alloc();
-     if (in_frame == NULL) {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_login_js_response");
-            return SEC_FAIL;
-     }
-     cursor = in_frame->f_data;
-     in_frame->f_datalen = 0;
-     out_frame = in_frame;
-
-     write_data("<html></html>", &cursor, sizeof("<html></html>") - 1, &out_frame);
-
-     sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-                            HTTP_NOCACHE, NULL, NULL,
-                            "text/html", NULL, sec_data,
-                            NULL, 0, 0);
-     if (sec_data->response == NULL) {
-           ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create empty response failed");
-           parser_frame_chain_free(in_frame);
-		   /* customized error page url */
-		   redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
-           return SEC_FAIL;
-     }
-     return SEC_SUCCESS;
+	cursor = in_frame->f_data;
+	in_frame->f_datalen = 0;
+	out_frame = in_frame;
+
+	write_data("<html></html>", &cursor, sizeof("<html></html>") - 1, &out_frame);
+
+	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
+															HTTP_NOCACHE, NULL, NULL,
+															"text/html", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create empty response failed");
+		parser_frame_chain_free(in_frame);
+		/* customized error page url */
+		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
+		return SEC_FAIL;
+	}
+	return SEC_SUCCESS;
 }
 
-int sec_generate_given_response(smanager_data_t *sec_data, char *input, int len) {
+int sec_generate_given_response(smanager_data_t *sec_data, char *input, int len)
+{
 	struct frame *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
 
-	if (input == NULL || len <= 0) {
+	if (input == NULL || len <= 0)
+	{
 		return sec_generate_empty_response(sec_data);
 	}
 
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame for given response");
 		return SEC_FAIL;
 	}
@@ -3063,10 +3439,11 @@
 	write_data(input, &cursor, len, &out_frame);
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-	            HTTP_NOCACHE, NULL, NULL,
-	            "text/html", NULL, sec_data,
-	            NULL, 0, 0);
-	if (sec_data->response == NULL) {
+															HTTP_NOCACHE, NULL, NULL,
+															"text/html", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create given response failed");
 		parser_frame_chain_free(in_frame);
 		/* customized error page url */
@@ -3084,7 +3461,8 @@
 	char buffer[128] = {0};
 
 	in_frame = parser_frame_alloc();
-	if (!in_frame) {
+	if (!in_frame)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "frame allocation failed.");
 		return SEC_FAIL;
 	}
@@ -3097,7 +3475,8 @@
 	write_data(buffer, &cursor, strlen(buffer), &out_frame);
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame, HTTP_NOCACHE, NULL, NULL, "text/html", NULL, sec_data, NULL, 0, 0);
-	if (!sec_data->response) {
+	if (!sec_data->response)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "create HTTP response failed.");
 		parser_frame_chain_free(in_frame);
 		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
@@ -3110,17 +3489,18 @@
 static int
 sec_generate_nonhtml_response_winadmin(smanager_data_t *sec_data, int win64)
 {
-    struct frame *curr_frame = NULL, *new_chain;
-    uint8_t *cursor = NULL;
+	struct frame *curr_frame = NULL, *new_chain;
+	uint8_t *cursor = NULL;
 	content_node_t *content = sec_data->content;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	struct frame *content_chain = NULL;
 	char *content_type = "application/zip";
-	char np_name[VPN_NAME_MAX_LEN + 1] ={0};
+	char np_name[VPN_NAME_MAX_LEN + 1] = {0};
 	char zip_path[MAX_FILE_PATH_LEN] = {0};
 	void *temp_chain = NULL;
-	
-	if (vpn_netpool_winadmin_available(sec_data->vsite_p, sec_data->session->vpn_netpools) != 0) {
+
+	if (vpn_netpool_winadmin_available(sec_data->vsite_p, sec_data->session->vpn_netpools) != 0)
+	{
 		sec_data->response == NULL;
 		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
 		return SEC_FAIL;
@@ -3128,28 +3508,33 @@
 
 	vpn_get_netpool_name(sec_data->vsite_p, sec_data->session->vpn_netpools, np_name);
 
-	if (win64 == 1) {
+	if (win64 == 1)
+	{
 		snprintf(zip_path, MAX_FILE_PATH_LEN,
-			"/ca/fileshare/htdocs/client_sec/l3vpn/%s_%s_WinadminSetup_win64.zip",
-			vsite->name, np_name);
-	} else {
+				 "/ca/fileshare/htdocs/client_sec/l3vpn/%s_%s_WinadminSetup_win64.zip",
+				 vsite->name, np_name);
+	}
+	else
+	{
 		snprintf(zip_path, MAX_FILE_PATH_LEN,
-			"/ca/fileshare/htdocs/client_sec/l3vpn/%s_%s_WinadminSetup_win32.zip",
-			vsite->name, np_name);
+				 "/ca/fileshare/htdocs/client_sec/l3vpn/%s_%s_WinadminSetup_win32.zip",
+				 vsite->name, np_name);
 	}
 
 	content_chain = sec_load_dynamic_content(zip_path);
 	new_chain = write_frame_chunk(&curr_frame, &cursor, &content_chain);
-	if (new_chain == NULL) {
-	     	ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "get contain failed, id %d", content->id);
-	      	return SEC_FAIL;
+	if (new_chain == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "get contain failed, id %d", content->id);
+		return SEC_FAIL;
 	}
 
 	sec_data->response = create_http_response_with_bookmark(OK, new_chain,
-	                0, NULL, NULL,
-	                content_type, NULL, sec_data, NULL, 0, 0);
+															0, NULL, NULL,
+															content_type, NULL, sec_data, NULL, 0, 0);
 
-	if (sec_data->response == NULL) {
+	if (sec_data->response == NULL)
+	{
 		parser_frame_chain_free(new_chain);
 		/* customized error page url */
 		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
@@ -3162,8 +3547,8 @@
 static int
 sec_generate_nonhtml_response_logo(smanager_data_t *sec_data)
 {
-    struct frame *curr_frame = NULL, *new_chain;
-    uint8_t *cursor = NULL;
+	struct frame *curr_frame = NULL, *new_chain;
+	uint8_t *cursor = NULL;
 	content_node_t *content = sec_data->content;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	struct frame *content_chain = id_to_frame_chain(content->id, 0);
@@ -3171,34 +3556,39 @@
 	time_t if_modif_date = sec_data->req_parser_info.if_modif_date;
 	char *modified_str = id_to_modified_str(content->id);
 	char *content_type = id_to_content_type(content->id);
-	if (vsite != NULL && vsite->logo != NULL) {
+	if (vsite != NULL && vsite->logo != NULL)
+	{
 		content_chain = vsite->logo;
 		content_type = "image/gif";
 		modif_date = vsite->logo_last_modified;
 		modified_str = vsite->logo_modified_str;
 	}
 
-    if (if_modif_date != -1 && if_modif_date == modif_date &&
-        modified_str != NULL) 
-    {
-	ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-	                  ULOG_NO655, 0,0,0,0,0,0,0);
-        sec_data->response = create_304_response(
-                               FALSE,
-                               modified_str);
-	} else {
-	    new_chain = write_frame_chunk(&curr_frame, &cursor, &content_chain);
-	    if (new_chain == NULL) {
-	        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "get contain failed, id %d", content->id);
-	        return SEC_FAIL;
-	    }
-
-	    sec_data->response = create_http_response_with_bookmark(OK, new_chain,
-	                0, NULL, NULL,
-	                content_type, modified_str, sec_data, NULL, 0, 0);
+	if (if_modif_date != -1 && if_modif_date == modif_date &&
+		modified_str != NULL)
+	{
+		ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
+						  ULOG_NO655, 0, 0, 0, 0, 0, 0, 0);
+		sec_data->response = create_304_response(
+			FALSE,
+			modified_str);
+	}
+	else
+	{
+		new_chain = write_frame_chunk(&curr_frame, &cursor, &content_chain);
+		if (new_chain == NULL)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "get contain failed, id %d", content->id);
+			return SEC_FAIL;
+		}
+
+		sec_data->response = create_http_response_with_bookmark(OK, new_chain,
+																0, NULL, NULL,
+																content_type, modified_str, sec_data, NULL, 0, 0);
 	}
 
-	if (sec_data->response == NULL) {
+	if (sec_data->response == NULL)
+	{
 		parser_frame_chain_free(new_chain);
 		/* customized error page url */
 		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
@@ -3216,24 +3606,25 @@
 	char *p;
 
 	domain_buffer[0] = '\0';
-	if(!sec_data->req_domain)
+	if (!sec_data->req_domain)
 		return domain_buffer;
 
 	snprintf(domain, SEC_MAX_URL_LEN, "%s", sec_data->req_domain);
 	p = strchr(domain, ':');
-	if(p) {
+	if (p)
+	{
 		*p = '\0';
 	}
 
 	if ((SEC_ISSET(vsite->common_flags, SEC_QUICKLINK_ENABLED) ||
 		 !SEC_ISSET(vsite->common_flags, SEC_WRM)) &&
-		 INADDR_NONE == inet_addr(domain)) {
+		INADDR_NONE == inet_addr(domain))
+	{
 		p = strchr(domain, '.');
-		if(p)
+		if (p)
 			snprintf(domain_buffer, SEC_MAX_URL_LEN, ";domain=%s", p);
-	} 
+	}
 	return domain_buffer;
-
 }
 
 char *
@@ -3244,45 +3635,55 @@
 	char *p;
 
 	domain_logout_buffer[0] = '\0';
-	if(!sec_data->req_domain)
+	if (!sec_data->req_domain)
 		return domain_logout_buffer;
 
 	snprintf(domain, SEC_MAX_URL_LEN, "%s", sec_data->req_domain);
 	p = strchr(domain, ':');
-	if(p) {
+	if (p)
+	{
 		*p = '\0';
 	}
 
 	if ((SEC_ISSET(vsite->common_flags, SEC_QUICKLINK_ENABLED) ||
 		 !SEC_ISSET(vsite->common_flags, SEC_WRM)) &&
-		 INADDR_NONE == inet_addr(domain)) {
+		INADDR_NONE == inet_addr(domain))
+	{
 		snprintf(domain_logout_buffer, SEC_MAX_URL_LEN, ";domain=.%s", domain);
-	} 
+	}
 	return domain_logout_buffer;
 }
 
-void
-sec_clear_cookie_for_logout_response(smanager_data_t *sec_data, sec_vsite_t *vsite)
+void sec_clear_cookie_for_logout_response(smanager_data_t *sec_data, sec_vsite_t *vsite)
 {
-	if (*aa_clustered == 0) {
-		if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-			snprintf(session_cookie_buffer, SLEN(session_cookie_buffer), "%s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s;HttpOnly;secure\r\nSet-Cookie: %s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s", 
-				sec_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data),
-				sec_cookie_session_name, vsite->name, sec_get_current_domain_for_logout_cookie(sec_data));
-		} else {
-			snprintf(session_cookie_buffer, SLEN(session_cookie_buffer), "%s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s;secure\r\nSet-Cookie: %s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s", 
-				sec_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data),
-				sec_cookie_session_name, vsite->name, sec_get_current_domain_for_logout_cookie(sec_data));
+	if (*aa_clustered == 0)
+	{
+		if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
+			snprintf(session_cookie_buffer, SLEN(session_cookie_buffer), "%s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s;HttpOnly;secure\r\nSet-Cookie: %s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s",
+					 sec_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data),
+					 sec_cookie_session_name, vsite->name, sec_get_current_domain_for_logout_cookie(sec_data));
 		}
-	} else {
-		if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-			snprintf(session_cookie_buffer, SLEN(session_cookie_buffer), "%s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s;HttpOnly;secure\r\nSet-Cookie: %s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s", 
-				ha_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data),
-					ha_cookie_session_name, vsite->name, sec_get_current_domain_for_logout_cookie(sec_data));
-		} else {
-			snprintf(session_cookie_buffer, SLEN(session_cookie_buffer), "%s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s;secure\r\nSet-Cookie: %s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s", 
-				ha_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data),
-				ha_cookie_session_name, vsite->name, sec_get_current_domain_for_logout_cookie(sec_data));
+		else
+		{
+			snprintf(session_cookie_buffer, SLEN(session_cookie_buffer), "%s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s;secure\r\nSet-Cookie: %s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s",
+					 sec_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data),
+					 sec_cookie_session_name, vsite->name, sec_get_current_domain_for_logout_cookie(sec_data));
+		}
+	}
+	else
+	{
+		if (SEC_ISSET(vsite->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
+			snprintf(session_cookie_buffer, SLEN(session_cookie_buffer), "%s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s;HttpOnly;secure\r\nSet-Cookie: %s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s",
+					 ha_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data),
+					 ha_cookie_session_name, vsite->name, sec_get_current_domain_for_logout_cookie(sec_data));
+		}
+		else
+		{
+			snprintf(session_cookie_buffer, SLEN(session_cookie_buffer), "%s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s;secure\r\nSet-Cookie: %s=%s; path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT%s",
+					 ha_cookie_session_name, vsite->name, sec_get_domain_for_sp_cookie(sec_data),
+					 ha_cookie_session_name, vsite->name, sec_get_current_domain_for_logout_cookie(sec_data));
 		}
 	}
 }
@@ -3293,121 +3694,137 @@
 	int url_len = sec_data->req_parser_info.url_host.url_len;
 	char *url_p = malloc(url_len + 1);
 
-	if (url_p == NULL) {
+	if (url_p == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "allocate memory for external url failed");
 		return -1;
 	}
 	bzero(url_p, url_len + 1);
 	strncpy(url_p, sec_data->req_parser_info.url_host.url_p, url_len);
 
-    if (sec_data->port != SEC_DEFAULT_HTTP_PORT) {
-        snprintf(portal_temp_string, SLEN(portal_temp_string), "%s://%s:%d%s",
-                 scheme_to_string(sec_data->scheme_type),
-                 sec_data->servername, sec_data->port, url_p);
-    } else {
-        snprintf(portal_temp_string, SLEN(portal_temp_string), "%s://%s%s",
-                 scheme_to_string(sec_data->scheme_type),
-                 sec_data->servername, url_p);
-    }
-
-    sec_generate_redirect(sec_data, "301 Moved Permanently",
-                          SLEN("301 Moved Permanently"), portal_temp_string,
-                          strlen(portal_temp_string), NULL, 0, NULL, 0,
-                          NULL, 0, IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+	if (sec_data->port != SEC_DEFAULT_HTTP_PORT)
+	{
+		snprintf(portal_temp_string, SLEN(portal_temp_string), "%s://%s:%d%s",
+				 scheme_to_string(sec_data->scheme_type),
+				 sec_data->servername, sec_data->port, url_p);
+	}
+	else
+	{
+		snprintf(portal_temp_string, SLEN(portal_temp_string), "%s://%s%s",
+				 scheme_to_string(sec_data->scheme_type),
+				 sec_data->servername, url_p);
+	}
+
+	sec_generate_redirect(sec_data, "301 Moved Permanently",
+						  SLEN("301 Moved Permanently"), portal_temp_string,
+						  strlen(portal_temp_string), NULL, 0, NULL, 0,
+						  NULL, 0, IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
 	free(url_p);
 }
 
-#define CLISEC_PREFIX_SIZE  64
+#define CLISEC_PREFIX_SIZE 64
 /* function to erase a persistent cookie used for Sygate On Demand */
-int 
-write_clean_cookie(char *out_buf, smanager_data_t *sec_data)
+int write_clean_cookie(char *out_buf, smanager_data_t *sec_data)
 {
 	char cookie_string[CLISEC_PREFIX_SIZE] = {0};
 	char cookie_escape[CLISEC_PREFIX_SIZE] = {0};
 
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
 		snprintf(cookie_string, CLISEC_PREFIX_SIZE, "NSCOOKIE;localh;/;%s;secure;samesite=None",
-		     CLIENTSEC_COOKIE);
-	} else {
+				 CLIENTSEC_COOKIE);
+	}
+	else
+	{
 		snprintf(cookie_string, CLISEC_PREFIX_SIZE, "NSCOOKIE;localhost;/;%s;secure;samesite=None",
-		     CLIENTSEC_COOKIE);
+				 CLIENTSEC_COOKIE);
 	}
 	escape_string(cookie_string, cookie_escape, CLISEC_PREFIX_SIZE);
 
-	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-	    snprintf(out_buf, MAX_SET_COOKIE_SIZE,
-	         "Set-Cookie: %s=erase;expires=%s; path=/%s;secure;HttpOnly;samesite=None\r\n", cookie_escape,
-	         EXPIRE_CLIENTSEC_COOKIE, sec_get_domain_for_sp_cookie(sec_data));
-	} else {
-            snprintf(out_buf, MAX_SET_COOKIE_SIZE,
-                 "Set-Cookie: %s=erase;expires=%s; path=/%s;secure;samesite=None\r\n", cookie_escape,
-                 EXPIRE_CLIENTSEC_COOKIE, sec_get_domain_for_sp_cookie(sec_data));
+	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+	{
+		snprintf(out_buf, MAX_SET_COOKIE_SIZE,
+				 "Set-Cookie: %s=erase;expires=%s; path=/%s;secure;HttpOnly;samesite=None\r\n", cookie_escape,
+				 EXPIRE_CLIENTSEC_COOKIE, sec_get_domain_for_sp_cookie(sec_data));
 	}
-   
-	return TRUE;   
+	else
+	{
+		snprintf(out_buf, MAX_SET_COOKIE_SIZE,
+				 "Set-Cookie: %s=erase;expires=%s; path=/%s;secure;samesite=None\r\n", cookie_escape,
+				 EXPIRE_CLIENTSEC_COOKIE, sec_get_domain_for_sp_cookie(sec_data));
+	}
+
+	return TRUE;
 }
 
-/* 
- * function to erase a clientsec cookie that indicates type of java 
- * configured on the browser  
+/*
+ * function to erase a clientsec cookie that indicates type of java
+ * configured on the browser
  */
-int 
-write_clean_clientsec_java_cookie(char *out_buf, smanager_data_t *sec_data)
+int write_clean_clientsec_java_cookie(char *out_buf, smanager_data_t *sec_data)
 {
 	char cookie_string[CLISEC_PREFIX_SIZE] = {0};
 	char cookie_escape[CLISEC_PREFIX_SIZE] = {0};
 	int len;
 
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-		snprintf(cookie_string, CLISEC_PREFIX_SIZE, "NSCOOKIE;localh;/;%s;secure;samesite=None", 
-			 CLIENTSEC_JAVA_COOKIE);
-	} else {
-		snprintf(cookie_string, CLISEC_PREFIX_SIZE, "NSCOOKIE;localhost;/;%s;secure;samesite=None", 
-			 CLIENTSEC_JAVA_COOKIE);
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
+		snprintf(cookie_string, CLISEC_PREFIX_SIZE, "NSCOOKIE;localh;/;%s;secure;samesite=None",
+				 CLIENTSEC_JAVA_COOKIE);
+	}
+	else
+	{
+		snprintf(cookie_string, CLISEC_PREFIX_SIZE, "NSCOOKIE;localhost;/;%s;secure;samesite=None",
+				 CLIENTSEC_JAVA_COOKIE);
 	}
 	escape_string(cookie_string, cookie_escape, CLISEC_PREFIX_SIZE);
 
-	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) {   
-	    snprintf(out_buf, MAX_SET_COOKIE_SIZE,
-		 "Set-Cookie: %s=erase;expires=%s; path=/%s;secure;HttpOnly;samesite=None\r\n", cookie_escape, 
-		 EXPIRE_CLIENTSEC_COOKIE, sec_get_domain_for_sp_cookie(sec_data));
-	} else {
-	    snprintf(out_buf, MAX_SET_COOKIE_SIZE,
-                 "Set-Cookie: %s=erase;expires=%s; path=/%s;secure;samesite=None\r\n", cookie_escape,
-                 EXPIRE_CLIENTSEC_COOKIE, sec_get_domain_for_sp_cookie(sec_data));
+	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+	{
+		snprintf(out_buf, MAX_SET_COOKIE_SIZE,
+				 "Set-Cookie: %s=erase;expires=%s; path=/%s;secure;HttpOnly;samesite=None\r\n", cookie_escape,
+				 EXPIRE_CLIENTSEC_COOKIE, sec_get_domain_for_sp_cookie(sec_data));
+	}
+	else
+	{
+		snprintf(out_buf, MAX_SET_COOKIE_SIZE,
+				 "Set-Cookie: %s=erase;expires=%s; path=/%s;secure;samesite=None\r\n", cookie_escape,
+				 EXPIRE_CLIENTSEC_COOKIE, sec_get_domain_for_sp_cookie(sec_data));
 	}
-	return TRUE;   
+	return TRUE;
 }
 
-/* 
- * function to insert a 2stage cookie, which indicates that 
+/*
+ * function to insert a 2stage cookie, which indicates that
  * stage 2 of the clientsec has been envoked
  */
-static int 
+static int
 write_clientsec_stage2_cookie(char *out_buf, smanager_data_t *sec_data)
 {
-	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) { 
+	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+	{
 		snprintf(out_buf, MAX_SET_COOKIE_SIZE,
-                 "Set-Cookie: %s=2; path=/%s;secure;HttpOnly;samesite=None\r\n",
-                 SEC_AN_CLIENTSEC_STAGE_COOKIE_NAME, sec_get_domain_for_sp_cookie(sec_data));
-	} else {
-	    snprintf(out_buf, MAX_SET_COOKIE_SIZE,
-		 "Set-Cookie: %s=2; path=/%s;secure;samesite=None\r\n",
-		 SEC_AN_CLIENTSEC_STAGE_COOKIE_NAME, sec_get_domain_for_sp_cookie(sec_data));
+				 "Set-Cookie: %s=2; path=/%s;secure;HttpOnly;samesite=None\r\n",
+				 SEC_AN_CLIENTSEC_STAGE_COOKIE_NAME, sec_get_domain_for_sp_cookie(sec_data));
+	}
+	else
+	{
+		snprintf(out_buf, MAX_SET_COOKIE_SIZE,
+				 "Set-Cookie: %s=2; path=/%s;secure;samesite=None\r\n",
+				 SEC_AN_CLIENTSEC_STAGE_COOKIE_NAME, sec_get_domain_for_sp_cookie(sec_data));
 	}
-	   
-	return TRUE;   
+
+	return TRUE;
 }
 
-int 
-write_clientsec_persist_cookie(char *out_buf, smanager_data_t *sec_data)
+int write_clientsec_persist_cookie(char *out_buf, smanager_data_t *sec_data)
 {
-    char *value = sec_data->client_sec_info;
-    snprintf(out_buf, MAX_SET_COOKIE_SIZE*2,
-	     "%s%s; path=/%s; secure;samesite=None\r\n", CLIENTSEC_SETCOOKIE_PREFIX,
-	     value, sec_get_domain_for_sp_cookie(sec_data));
+	char *value = sec_data->client_sec_info;
+	snprintf(out_buf, MAX_SET_COOKIE_SIZE * 2,
+			 "%s%s; path=/%s; secure;samesite=None\r\n", CLIENTSEC_SETCOOKIE_PREFIX,
+			 value, sec_get_domain_for_sp_cookie(sec_data));
 
-    return TRUE;
+	return TRUE;
 }
 
 static int32_t
@@ -3415,9 +3832,12 @@
 {
 	int32_t i;
 
-	for (i = 0; i < url_len; i++) {
-		if (url[i] == ':' && i + 2 < url_len) {
-			if (url[i+1] == '/' && url[i+2] == '/') {
+	for (i = 0; i < url_len; i++)
+	{
+		if (url[i] == ':' && i + 2 < url_len)
+		{
+			if (url[i + 1] == '/' && url[i + 2] == '/')
+			{
 				break;
 			}
 		}
@@ -3426,10 +3846,9 @@
 	return i;
 }
 
-void
-sec_generate_rewrite_redirect_with_bookmark(struct smanager_data *sec_data, 
-					    uint8_t *url_p, length_t url_len,
-					    uint8_t *bookmark_cookie, length_t bookmark_cookie_len)
+void sec_generate_rewrite_redirect_with_bookmark(struct smanager_data *sec_data,
+												 uint8_t *url_p, length_t url_len,
+												 uint8_t *bookmark_cookie, length_t bookmark_cookie_len)
 {
 	int32_t host_offset, result_len = 0;
 	uint8_t *cur_pos, non_local = TRUE;
@@ -3438,16 +3857,17 @@
 	sec_flags_t rewrite_flags;
 	SEC_FLAGS_INIT(rewrite_flags);
 
-	if (site != NULL) {
+	if (site != NULL)
+	{
 		SEC_FLAGS_COPY(site->common_flags, rewrite_flags);
 	}
 
-	if (SEC_GET_PREFIX_LEN(rewrite_flags) + GET_MASKED_SIZE(url_len) >= 
-			MAX_PORTAL_STRING_SIZE) 
+	if (SEC_GET_PREFIX_LEN(rewrite_flags) + GET_MASKED_SIZE(url_len) >=
+		MAX_PORTAL_STRING_SIZE)
 	{
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-		    SEC_CUSTOM_ERR_INTERNAL,
-		    sec_language_get_msg_ex(sec_data, 224));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 224));
 		return;
 	}
 
@@ -3456,107 +3876,123 @@
 	host_offset = sec_get_host_offset(url_p, url_len);
 
 	bcopy(SEC_GET_PREFIX(rewrite_flags), cur_pos,
-			SEC_GET_PREFIX_LEN(rewrite_flags));
+		  SEC_GET_PREFIX_LEN(rewrite_flags));
 	cur_pos += SEC_GET_PREFIX_LEN(rewrite_flags);
 	result_len = SEC_GET_PREFIX_LEN(rewrite_flags);
 
-	if (url_len - host_offset > 0) {
+	if (url_len - host_offset > 0)
+	{
 		/* We found '://', copy in everything except for the ':/' */
 		bcopy(url_p, cur_pos, host_offset);
 		bcopy(url_p + host_offset + 2, cur_pos + host_offset,
-				url_len - (host_offset + 2));
+			  url_len - (host_offset + 2));
 		url_len = (host_offset + (url_len - (host_offset + 2)));
 		result_len += url_len;
-		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-			if( strncasecmp(url_p + host_offset + 3, "localh/",
-						strlen("localh/")) == 0 ) {
+		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
+			if (strncasecmp(url_p + host_offset + 3, "localh/",
+							strlen("localh/")) == 0)
+			{
 				non_local = FALSE;
 			}
-		} else {
-			if( strncasecmp(url_p + host_offset + 3, DNS_LOCAL_HOST"/",
-						strlen(DNS_LOCAL_HOST"/")) == 0 ) {
+		}
+		else
+		{
+			if (strncasecmp(url_p + host_offset + 3, DNS_LOCAL_HOST "/",
+							strlen(DNS_LOCAL_HOST "/")) == 0)
+			{
 				non_local = FALSE;
 			}
 		}
-	} else {
+	}
+	else
+	{
 		/* We didn't find '://', so hope for the best. the AI case will */
 		/* enter here so add http/ which is a pretty good guess anyway. */
 		/* We also enter here from req_decode when the request URL does */
 		/* not have a path, i.e. 'http://www.google.com'. In this case, */
 		/* URL will be 'http/www.google.com/' so don't prepend 'http/'. */
-		if (url_len > 5 && strncmp(url_p, "http", 4) != 0) {
+		if (url_len > 5 && strncmp(url_p, "http", 4) != 0)
+		{
 			bcopy("http/", cur_pos, 5);
-			bcopy(url_p, cur_pos+5, url_len);
+			bcopy(url_p, cur_pos + 5, url_len);
 			url_len += 5;
 			result_len += url_len;
-		}else{
+		}
+		else
+		{
 			bcopy(url_p, cur_pos, url_len);
 			result_len += url_len;
 		}
 	}
 
-	if (non_local && SEC_ISSET(rewrite_flags, SEC_MASK_URLS)) {
+	if (non_local && SEC_ISSET(rewrite_flags, SEC_MASK_URLS))
+	{
 		uint8_t *masked_url;
 		int32_t masked_url_len = 0;
 		uint32_t session_id = INVALID_SESSION_ID;
 
-		if(sec_data->session) {
+		if (sec_data->session)
+		{
 			session_id = sec_data->session->session_id;
-		}else{
+		}
+		else
+		{
 			session_id = sec_data->session_id_in_url;
-		}	
+		}
 
 		masked_url = malloc(GET_MASKED_SIZE(url_len));
-		if (masked_url != NULL) {
+		if (masked_url != NULL)
+		{
 			masked_url_len = rewrite_api_get_url_encoding(cur_pos, url_len,
-					masked_url, GET_MASKED_SIZE(url_len), rewrite_flags, session_id);
-			if (masked_url_len > 0) {
+														  masked_url, GET_MASKED_SIZE(url_len), rewrite_flags, session_id);
+			if (masked_url_len > 0)
+			{
 				bcopy(masked_url, cur_pos, masked_url_len);
 				result_len = SEC_GET_PREFIX_LEN(rewrite_flags) + masked_url_len;
 			}
 			free(masked_url);
 		}
-	} 
+	}
 
 	sec_generate_redirect(sec_data, "301 Moved Permanently",
-			SLEN("301 Moved Permanently"), portal_url_string,
-			result_len, NULL, 0, NULL, 0,
-			bookmark_cookie, bookmark_cookie_len,
-			IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+						  SLEN("301 Moved Permanently"), portal_url_string,
+						  result_len, NULL, 0, NULL, 0,
+						  bookmark_cookie, bookmark_cookie_len,
+						  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
 }
 
-void
-sec_generate_rewrite_redirect(struct smanager_data *sec_data,
-		uint8_t *url_p, length_t url_len)
+void sec_generate_rewrite_redirect(struct smanager_data *sec_data,
+								   uint8_t *url_p, length_t url_len)
 {
-	return (sec_generate_rewrite_redirect_with_bookmark(sec_data, url_p, url_len, NULL, 0)); 
+	return (sec_generate_rewrite_redirect_with_bookmark(sec_data, url_p, url_len, NULL, 0));
 }
 
-/* 
+/*
  * get the current time in GMT format
- * 
+ *
  * e.g., "Fri, 20-Sep-2002 14:14:00 GMT"
  */
 char *
 get_GMT_time(long offset)
 {
-    static char time_str[30];
-    time_t cur_time;
-    struct tm *tmp;
-    /* long timezone_offset; */
-    static char *dow[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
-    static char *month[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
-                            "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
-
-    cur_time = get_curtime();
-    cur_time += offset;
-    tmp = gmtime(&cur_time); /* get the time in GMT */
-
-    snprintf(time_str, 30, "%s, %02d-%s-%04d %02d:%02d:%02d GMT",
-             dow[tmp->tm_wday], tmp->tm_mday, month[tmp->tm_mon],
-             tmp->tm_year + 1900, tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
+	static char time_str[30];
+	time_t cur_time;
+	struct tm *tmp;
+	/* long timezone_offset; */
+	static char *dow[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
+	static char *month[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
+							"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
+
+	cur_time = get_curtime();
+	cur_time += offset;
+	tmp = gmtime(&cur_time); /* get the time in GMT */
+
+	snprintf(time_str, 30, "%s, %02d-%s-%04d %02d:%02d:%02d GMT",
+			 dow[tmp->tm_wday], tmp->tm_mday, month[tmp->tm_mon],
+			 tmp->tm_year + 1900, tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
 
-    return time_str;
+	return time_str;
 }
 
 static void
@@ -3566,66 +4002,71 @@
 	sec_session_t *sec_session = sec_data->session;
 	sec_vsite_t *site = sec_data->vsite_p;
 	data_p = session_cookie_buffer;
-	if (*aa_clustered == 0) {
+	if (*aa_clustered == 0)
+	{
 		data_p += sprintf(data_p, "%s=%s+%08x_%s;", sec_cookie_session_name,
-			site->name, sec_session->session_id, sec_session->signature);
-	} else {
+						  site->name, sec_session->session_id, sec_session->signature);
+	}
+	else
+	{
 		data_p += sprintf(data_p, "%s=%s+%08x_%s;", ha_cookie_session_name,
-			site->name, sec_session->session_id, sec_session->signature);
+						  site->name, sec_session->session_id, sec_session->signature);
 	}
 
-	if (SEC_ISSET(site->common_flags, SEC_COOKIE_EXPIRE)) {
+	if (SEC_ISSET(site->common_flags, SEC_COOKIE_EXPIRE))
+	{
 		data_p += sprintf(data_p, "expires=%s;", get_GMT_time(site->idle_timeout));
 	}
 	data_p += sprintf(data_p, "path=/;secure;samesite=None");
-	if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-                data_p += sprintf(data_p, ";HttpOnly");
-        }
+	if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY))
+	{
+		data_p += sprintf(data_p, ";HttpOnly");
+	}
 
 	return;
 }
 
-char* genRandomString(int length)  
-{  
-        int flag, i;  
-        char* string;  
-        srand((unsigned) time(NULL ));  
-        if ((string = (char*) malloc(length + 1)) == NULL )  
-        {  
-            ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "%s: failed to malloc\n", __func__);
-            return NULL ;  
-        }  
-      
-        for (i = 0; i < length; i++)  
-        {  
-            flag = rand() % 3;  
-            switch (flag)  
-            {  
-                case 0:  
-                    string[i] = 'A' + rand() % 26;  
-                    break;  
-                case 1:  
-                    string[i] = 'a' + rand() % 26;  
-                    break;  
-                case 2:  
-                    string[i] = '0' + rand() % 10;  
-                    break;  
-                default:  
-                    string[i] = 'x';  
-                    break;  
-            }  
-        }
-        if (length > 45) {/* for hardware_id string */
-                string[32] = '|';
-                string[45] = ';';
-        }
-        string[length] = '\0';  
-        return string;  
-}  
-
-void
-snprint_session_cookie(uint8_t *session_cookie_buffer, smanager_data_t *sec_data, uint32_t buf_size)
-{	
+char *genRandomString(int length)
+{
+	int flag, i;
+	char *string;
+	srand((unsigned)time(NULL));
+	if ((string = (char *)malloc(length + 1)) == NULL)
+	{
+		ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "%s: failed to malloc\n", __func__);
+		return NULL;
+	}
+
+	for (i = 0; i < length; i++)
+	{
+		flag = rand() % 3;
+		switch (flag)
+		{
+		case 0:
+			string[i] = 'A' + rand() % 26;
+			break;
+		case 1:
+			string[i] = 'a' + rand() % 26;
+			break;
+		case 2:
+			string[i] = '0' + rand() % 10;
+			break;
+		default:
+			string[i] = 'x';
+			break;
+		}
+	}
+	if (length > 45)
+	{ /* for hardware_id string */
+		string[32] = '|';
+		string[45] = ';';
+	}
+	string[length] = '\0';
+	return string;
+}
+
+void snprint_session_cookie(uint8_t *session_cookie_buffer, smanager_data_t *sec_data, uint32_t buf_size)
+{
 	uint8_t *data_p;
 	sec_session_t *sec_session = sec_data->session;
 	sec_vsite_t *site = sec_data->vsite_p;
@@ -3634,92 +4075,124 @@
 	uint32_t len = 0;
 
 	data_p = session_cookie_buffer;
-	if (*aa_clustered == 0) {
-	    len += snprintf(data_p, buf_size, "%s=%s+%08x_%s;", sec_cookie_session_name,
-			      site->name, sec_session->session_id, sec_session->signature);
-	} else {
-	    len += snprintf(data_p, buf_size, "%s=%s+%08x_%s;", ha_cookie_session_name,
-			      site->name, sec_session->session_id, sec_session->signature);
+	if (*aa_clustered == 0)
+	{
+		len += snprintf(data_p, buf_size, "%s=%s+%08x_%s;", sec_cookie_session_name,
+						site->name, sec_session->session_id, sec_session->signature);
 	}
-	if (len >= buf_size) return;
+	else
+	{
+		len += snprintf(data_p, buf_size, "%s=%s+%08x_%s;", ha_cookie_session_name,
+						site->name, sec_session->session_id, sec_session->signature);
+	}
+	if (len >= buf_size)
+		return;
 
-	if (SEC_ISSET(site->common_flags, SEC_COOKIE_EXPIRE)) {
-		len += snprintf(data_p+len, buf_size-len, "expires=%s;", get_GMT_time(site->idle_timeout));
-		if (len >= buf_size) return;
+	if (SEC_ISSET(site->common_flags, SEC_COOKIE_EXPIRE))
+	{
+		len += snprintf(data_p + len, buf_size - len, "expires=%s;", get_GMT_time(site->idle_timeout));
+		if (len >= buf_size)
+			return;
 	}
 
-	len += snprintf(data_p+len, buf_size-len, "path=/%s; secure; samesite=None", sec_get_domain_for_sp_cookie(sec_data));
-	if (len >= buf_size) return;
+	len += snprintf(data_p + len, buf_size - len, "path=/%s; secure; samesite=None", sec_get_domain_for_sp_cookie(sec_data));
+	if (len >= buf_size)
+		return;
 
-	if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-		len += snprintf(data_p+len, buf_size-len, ";HttpOnly");
-		if (len >= buf_size) return;
+	if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY))
+	{
+		len += snprintf(data_p + len, buf_size - len, ";HttpOnly");
+		if (len >= buf_size)
+			return;
 	}
 
-	if (sec_data->req_domain != NULL) {
+	if (sec_data->req_domain != NULL)
+	{
 		snprintf(domain, SEC_MAX_URL_LEN, "%s", sec_data->req_domain);
 		p = strchr(domain, ':');
-		if(p) {
+		if (p)
+		{
 			*p = '\0';
 		}
 		/* domain is not IPv6 or IPv4 */
-		if (strchr(domain, '[') == NULL && !is_ip_address(domain, strlen(domain))) {
-			len += snprintf(data_p+len, buf_size-len, "\r\nSet-Cookie: ");
-			if (len >= buf_size) return;
+		if (strchr(domain, '[') == NULL && !is_ip_address(domain, strlen(domain)))
+		{
+			len += snprintf(data_p + len, buf_size - len, "\r\nSet-Cookie: ");
+			if (len >= buf_size)
+				return;
 
-			if (*aa_clustered == 0) {
-				len += snprintf(data_p+len, buf_size-len, "%s=%s+%08x_%s;", sec_cookie_session_name,
-					site->name, sec_session->session_id, sec_session->signature);
-			} else {
-				len += snprintf(data_p+len, buf_size-len, "%s=%s+%08x_%s;", ha_cookie_session_name,
-					site->name, sec_session->session_id, sec_session->signature);
+			if (*aa_clustered == 0)
+			{
+				len += snprintf(data_p + len, buf_size - len, "%s=%s+%08x_%s;", sec_cookie_session_name,
+								site->name, sec_session->session_id, sec_session->signature);
 			}
-			if (len >= buf_size) return;
+			else
+			{
+				len += snprintf(data_p + len, buf_size - len, "%s=%s+%08x_%s;", ha_cookie_session_name,
+								site->name, sec_session->session_id, sec_session->signature);
+			}
+			if (len >= buf_size)
+				return;
 
-			if (SEC_ISSET(site->common_flags, SEC_COOKIE_EXPIRE)) {
-				len += snprintf(data_p+len, buf_size-len, "expires=%s;", get_GMT_time(site->idle_timeout));
-				if (len >= buf_size) return;
+			if (SEC_ISSET(site->common_flags, SEC_COOKIE_EXPIRE))
+			{
+				len += snprintf(data_p + len, buf_size - len, "expires=%s;", get_GMT_time(site->idle_timeout));
+				if (len >= buf_size)
+					return;
 			}
 
-			len += snprintf(data_p+len, buf_size-len, "path=/;domain=.%s;secure;samesite=None", domain);
-			if (len >= buf_size) return;
+			len += snprintf(data_p + len, buf_size - len, "path=/;domain=.%s;secure;samesite=None", domain);
+			if (len >= buf_size)
+				return;
 
-			if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY)) {      
-				len += snprintf(data_p+len, buf_size-len, ";HttpOnly");
-				if (len >= buf_size) return;
+			if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY))
+			{
+				len += snprintf(data_p + len, buf_size - len, ";HttpOnly");
+				if (len >= buf_size)
+					return;
 			}
 		}
 	}
 
-	if (sec_session->username[0]) {
-		len += snprintf(data_p+len, buf_size-len, 
-		         "\r\nSet-Cookie: username=%s;path=/;secure;samesite=None", sec_session->username);
-		if (len >= buf_size) return;
+	if (sec_session->username[0])
+	{
+		len += snprintf(data_p + len, buf_size - len,
+						"\r\nSet-Cookie: username=%s;path=/;secure;samesite=None", sec_session->username);
+		if (len >= buf_size)
+			return;
 
-		if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY)) {        
-			len += snprintf(data_p+len, buf_size-len, ";HttpOnly");
-			if (len >= buf_size) return;
+		if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
+			len += snprintf(data_p + len, buf_size - len, ";HttpOnly");
+			if (len >= buf_size)
+				return;
 		}
 	}
 
 	/*for bug 73932*/
 	ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "prt_sess_cookie: pwdinsess: %s\n", sec_session->password);
-	if (sec_session->password[0]) {
-		char masked_pwd[GET_MASKED_SIZE(SESSMGR_PWORD_BUF_SIZE + 1)] ;
+	if (sec_session->password[0])
+	{
+		char masked_pwd[GET_MASKED_SIZE(SESSMGR_PWORD_BUF_SIZE + 1)];
 		int32_t mask_len = GET_MASKED_SIZE(SESSMGR_PWORD_BUF_SIZE + 1), masked_len;
 		sec_flags_t common_flags;
 		char escaped_hw_id[SEC_HARDWAREID_LEN * 3 + 1] = {'\0'};
 
-		if (sec_session->hardware_id[0]) {
-			char* hostname = strstr(sec_session->hardware_id, "hostname=");
-			if (hostname != NULL && hostname != &sec_session->hardware_id[0]) {
+		if (sec_session->hardware_id[0])
+		{
+			char *hostname = strstr(sec_session->hardware_id, "hostname=");
+			if (hostname != NULL && hostname != &sec_session->hardware_id[0])
+			{
 				*(hostname - 1) = '\0';
-			} 
-			escape_string(sec_session->hardware_id, escaped_hw_id, sizeof(escaped_hw_id)-1);
-		} else { /* aaa hardwareid off */
-			char *tmp =genRandomString(46);
-			if (NULL != tmp) {
-				escape_string(tmp, escaped_hw_id, sizeof(escaped_hw_id)-1);
+			}
+			escape_string(sec_session->hardware_id, escaped_hw_id, sizeof(escaped_hw_id) - 1);
+		}
+		else
+		{ /* aaa hardwareid off */
+			char *tmp = genRandomString(46);
+			if (NULL != tmp)
+			{
+				escape_string(tmp, escaped_hw_id, sizeof(escaped_hw_id) - 1);
 				free(tmp);
 			}
 		}
@@ -3729,40 +4202,49 @@
 		SEC_SET(common_flags, SEC_MASK_DYNAMIC);
 		SEC_SET(common_flags, SEC_MASK_FILENAME);
 		masked_len = rewrite_api_get_url_encoding(sec_session->password, strlen(sec_session->password),
-							      (uint8_t *)masked_pwd, mask_len, common_flags,
-							       sec_session->session_id);
+												  (uint8_t *)masked_pwd, mask_len, common_flags,
+												  sec_session->session_id);
 		ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "prt_sess_cookie: masklen: %d, %s\n", masked_len, escaped_hw_id);
 		if ((masked_len > 0) && (escaped_hw_id[0]))
 		{
-			len += snprintf(data_p+len, buf_size-len,
-			          "\r\nSet-Cookie: role_xid=%s_%s;path=/;secure;samesite=None;",escaped_hw_id, masked_pwd+8);
-			if (len >= buf_size) return;
-			if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-                                len += snprintf(data_p+len, buf_size-len, ";HttpOnly");
-                                if (len >= buf_size) return;
-                        } 
-		} 
-	} 
-
-	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_APP_SSO_DESKTOPDIRECT)
-	    && sec_session->app_sso_info.sso_account[0])
-	{
-		len += snprintf(data_p+len, buf_size-len, "\r\nSet-Cookie: sso_uname=%s;path=/;secure;samesite=None",
-		           sec_session->app_sso_info.sso_account);
-		if (len >= buf_size) return;
-
-		if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-		    len += snprintf(data_p+len, buf_size-len, ";HttpOnly");
-			if (len >= buf_size) return;
+			len += snprintf(data_p + len, buf_size - len,
+							"\r\nSet-Cookie: role_xid=%s_%s;path=/;secure;samesite=None;", escaped_hw_id, masked_pwd + 8);
+			if (len >= buf_size)
+				return;
+			if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY))
+			{
+				len += snprintf(data_p + len, buf_size - len, ";HttpOnly");
+				if (len >= buf_size)
+					return;
+			}
+		}
+	}
+
+	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_APP_SSO_DESKTOPDIRECT) && sec_session->app_sso_info.sso_account[0])
+	{
+		len += snprintf(data_p + len, buf_size - len, "\r\nSet-Cookie: sso_uname=%s;path=/;secure;samesite=None",
+						sec_session->app_sso_info.sso_account);
+		if (len >= buf_size)
+			return;
+
+		if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
+			len += snprintf(data_p + len, buf_size - len, ";HttpOnly");
+			if (len >= buf_size)
+				return;
 		}
 	}
 
-	if (sec_data->role_names[0]) {
-		len += snprintf(data_p+len, buf_size-len, "\r\nSet-Cookie: role_names=%s;path=/;secure;samesite=None", sec_data->role_names);
-		if (len >= buf_size) return;
-		if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY)) {						
-			len += snprintf(data_p+len, buf_size-len, ";HttpOnly");
-			if (len >= buf_size) return;
+	if (sec_data->role_names[0])
+	{
+		len += snprintf(data_p + len, buf_size - len, "\r\nSet-Cookie: role_names=%s;path=/;secure;samesite=None", sec_data->role_names);
+		if (len >= buf_size)
+			return;
+		if (SEC_ISSET(site->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
+			len += snprintf(data_p + len, buf_size - len, ";HttpOnly");
+			if (len >= buf_size)
+				return;
 		}
 	}
 
@@ -3774,89 +4256,98 @@
 static int8_t
 get_sessid_bounds(uint8_t *cookie, uint8_t **sessid_start, uint8_t **right_side)
 {
-    int16_t cookie_len;
+	int16_t cookie_len;
+
+	cookie_len = strlen(cookie);
+	*sessid_start = strstr(cookie, AN_NAV_SESSID_CODE);
+
+	if (NULL == *sessid_start)
+	{
+		*sessid_start = strstr(cookie, AN_NAV_SESSID_CODE_UPPER);
+	}
 
-    cookie_len = strlen(cookie);
-    *sessid_start = strstr(cookie, AN_NAV_SESSID_CODE);
+	if (*sessid_start)
+	{
+		*right_side = *sessid_start + (sizeof(AN_NAV_SESSID_CODE) - 1) +
+					  AN_NAV_SESSID_LEN;
 
-    if (NULL == *sessid_start) {
-        *sessid_start = strstr(cookie, AN_NAV_SESSID_CODE_UPPER);
-    }
-
-    if (*sessid_start) {
-        *right_side = *sessid_start + (sizeof(AN_NAV_SESSID_CODE)-1) +
-                      AN_NAV_SESSID_LEN;
-
-        if (*right_side  > (cookie + cookie_len)) {
-            /* client must have given us a bum cookie */
-            *right_side = NULL;
-            *sessid_start = NULL;
-            return 1;
-        }
-    }
+		if (*right_side > (cookie + cookie_len))
+		{
+			/* client must have given us a bum cookie */
+			*right_side = NULL;
+			*sessid_start = NULL;
+			return 1;
+		}
+	}
 
-    return 0;
+	return 0;
 }
 
 static void
 sprint_nav_cookie(char *buffer, smanager_data_t *sec_data)
-{   
-    struct proxy_conn_data *conn_data = sec_data->client_conn;
-    sec_vsite_t *site = sec_data->vsite_p;
+{
+	struct proxy_conn_data *conn_data = sec_data->client_conn;
+	sec_vsite_t *site = sec_data->vsite_p;
 	uint32_t session_id = sec_data->session_id;
-    char *nav_cookie_name;
+	char *nav_cookie_name;
 
-    uint8_t *buffer_p, *session_id_start, *rightside_start;
-    int16_t nav_conf_len;
-    int8_t rc;
-	
-    session_id_start = NULL;
-
-    if (sec_data->nav_cookie) {
-        /* Client already has AN_NAV cookie; look for a session id parameter */
-        rc = get_sessid_bounds(sec_data->nav_cookie, &session_id_start,
-                               &rightside_start);
-        if (!rc && NULL == session_id_start) {
-            /*
-             * the cookie looks valid but doesn't have a session ID; set the
-             * start and end pointers to the end-of-cookie marker
-             */
-            session_id_start = strstr(sec_data->nav_cookie, AN_NAV_COOKIE_END);
-            rightside_start = session_id_start;
-            /*
-             * if strstr() returns NULL, the client sent a corrupt nav
-             * cookie, so we'll just set the default one
-             */
-        }
-    }
+	uint8_t *buffer_p, *session_id_start, *rightside_start;
+	int16_t nav_conf_len;
+	int8_t rc;
+
+	session_id_start = NULL;
+
+	if (sec_data->nav_cookie)
+	{
+		/* Client already has AN_NAV cookie; look for a session id parameter */
+		rc = get_sessid_bounds(sec_data->nav_cookie, &session_id_start,
+							   &rightside_start);
+		if (!rc && NULL == session_id_start)
+		{
+			/*
+			 * the cookie looks valid but doesn't have a session ID; set the
+			 * start and end pointers to the end-of-cookie marker
+			 */
+			session_id_start = strstr(sec_data->nav_cookie, AN_NAV_COOKIE_END);
+			rightside_start = session_id_start;
+			/*
+			 * if strstr() returns NULL, the client sent a corrupt nav
+			 * cookie, so we'll just set the default one
+			 */
+		}
+	}
 
 	nav_cookie_name = AN_NAV_COOKIE;
 
-    buffer_p = buffer;
+	buffer_p = buffer;
+
+	if (session_id_start)
+	{
+		/* copy the client's navtool configuration parameters */
+		nav_conf_len = session_id_start - sec_data->nav_cookie;
 
-    if (session_id_start) {
-        /* copy the client's navtool configuration parameters */
-        nav_conf_len = session_id_start - sec_data->nav_cookie;
-
-        buffer_p += sprintf(buffer_p, "%s=", nav_cookie_name);
-
-        bcopy(sec_data->nav_cookie, buffer_p, nav_conf_len);
-        buffer_p += nav_conf_len;
-
-        buffer_p += sprintf(buffer_p, "%s%08x%s", AN_NAV_SESSID_CODE,
-                            session_id, rightside_start);
-    } else {
-        /* set default navtool cookie */
-        buffer_p += sprintf(buffer_p, "%s=%s%s%08x%s", nav_cookie_name,
-			    AN_NAV_COOKIE_DEFAULT, AN_NAV_SESSID_CODE,
-			    session_id, AN_NAV_COOKIE_END);
-    }
-
-    buffer_p += sprintf(buffer_p, ";expires=%s;path=/; secure;samesite=None",
-                        get_GMT_time(31536000));
-    if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-	buffer_p += sprintf(buffer_p, ";HttpOnly");
-    }
+		buffer_p += sprintf(buffer_p, "%s=", nav_cookie_name);
+
+		bcopy(sec_data->nav_cookie, buffer_p, nav_conf_len);
+		buffer_p += nav_conf_len;
+
+		buffer_p += sprintf(buffer_p, "%s%08x%s", AN_NAV_SESSID_CODE,
+							session_id, rightside_start);
+	}
+	else
+	{
+		/* set default navtool cookie */
+		buffer_p += sprintf(buffer_p, "%s=%s%s%08x%s", nav_cookie_name,
+							AN_NAV_COOKIE_DEFAULT, AN_NAV_SESSID_CODE,
+							session_id, AN_NAV_COOKIE_END);
+	}
+
+	buffer_p += sprintf(buffer_p, ";expires=%s;path=/; secure;samesite=None",
+						get_GMT_time(31536000));
+	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+	{
+		buffer_p += sprintf(buffer_p, ";HttpOnly");
+	}
 	DBG_PRINTF("nav cookie: %s", buffer);
 }
 
@@ -3865,17 +4356,20 @@
 {
 	uint8_t *session_id_start, *rightside_start;
 	uint32_t session_id = INVALID_SESSION_ID;
-	static uint8_t session_id_string[AN_NAV_SESSID_LEN+1];
+	static uint8_t session_id_string[AN_NAV_SESSID_LEN + 1];
 	int8_t rc;
 
 	session_id_start = NULL;
 
-	if (sec_data && sec_data->nav_cookie) {
+	if (sec_data && sec_data->nav_cookie)
+	{
 		rc = get_sessid_bounds(sec_data->nav_cookie, &session_id_start,
-		              &rightside_start);
-		if (!rc && session_id_start) {
-			session_id_start += (sizeof(AN_NAV_SESSID_CODE)-1);
-			if ((rightside_start - session_id_start) == AN_NAV_SESSID_LEN) {
+							   &rightside_start);
+		if (!rc && session_id_start)
+		{
+			session_id_start += (sizeof(AN_NAV_SESSID_CODE) - 1);
+			if ((rightside_start - session_id_start) == AN_NAV_SESSID_LEN)
+			{
 				bcopy(session_id_start, session_id_string, AN_NAV_SESSID_LEN);
 				session_id_string[AN_NAV_SESSID_LEN] = '\0';
 
@@ -3889,206 +4383,244 @@
 
 static void
 sec_generate_portal_theme_redirect(smanager_data_t *sec_data,
-		sec_vsite_t *vsite, ai_page_t *page)
+								   sec_vsite_t *vsite, ai_page_t *page)
 {
 	uint32_t bookmark_cookie_len = 0;
-    uint8_t *bookmark_cookie = NULL;
+	uint8_t *bookmark_cookie = NULL;
 
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
-			HTTPS_SCHEME, sec_data->req_domain, "/prx/000/http/localh", 
-			page->id, page->ai_url + page->path_pos +
-			(page->ai_url[page->path_pos] == '/' ? 1 : 0));
-	} else {
+				 HTTPS_SCHEME, sec_data->req_domain, "/prx/000/http/localh",
+				 page->id, page->ai_url + page->path_pos + (page->ai_url[page->path_pos] == '/' ? 1 : 0));
+	}
+	else
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
-			HTTPS_SCHEME, sec_data->req_domain, SEC_REWRITTEN_PREFIX, 
-			page->id, page->ai_url + page->path_pos +
-			(page->ai_url[page->path_pos] == '/' ? 1 : 0));
+				 HTTPS_SCHEME, sec_data->req_domain, SEC_REWRITTEN_PREFIX,
+				 page->id, page->ai_url + page->path_pos + (page->ai_url[page->path_pos] == '/' ? 1 : 0));
 	}
 	snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
-    sprint_nav_cookie(nav_cookie_buffer, sec_data);	
-	if (sec_data->bookmark_cookie) {
-        bookmark_cookie = SEC_AN_BOOKMARK_COOKIE_EXPIRES;
-        bookmark_cookie_len = SLEN(SEC_AN_BOOKMARK_COOKIE_EXPIRES);
-    } else {
-        bookmark_cookie = NULL;
-        bookmark_cookie_len = 0;
-    }
-	
+	sprint_nav_cookie(nav_cookie_buffer, sec_data);
+	if (sec_data->bookmark_cookie)
+	{
+		bookmark_cookie = SEC_AN_BOOKMARK_COOKIE_EXPIRES;
+		bookmark_cookie_len = SLEN(SEC_AN_BOOKMARK_COOKIE_EXPIRES);
+	}
+	else
+	{
+		bookmark_cookie = NULL;
+		bookmark_cookie_len = 0;
+	}
+
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-			portal_temp_string, strlen(portal_temp_string),
-			session_cookie_buffer, strlen(session_cookie_buffer),
-			nav_cookie_buffer, strlen(nav_cookie_buffer),
-			bookmark_cookie, bookmark_cookie_len,
-			IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+						  portal_temp_string, strlen(portal_temp_string),
+						  session_cookie_buffer, strlen(session_cookie_buffer),
+						  nav_cookie_buffer, strlen(nav_cookie_buffer),
+						  bookmark_cookie, bookmark_cookie_len,
+						  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
 }
 
 static void
 sec_generate_portal_theme_logout_redirect(smanager_data_t *sec_data,
-			sec_vsite_t *vsite, ai_page_t *page, sec_session_t *session)
+										  sec_vsite_t *vsite, ai_page_t *page, sec_session_t *session)
 {
 	uint32_t bookmark_cookie_len = 0;
 	uint8_t *bookmark_cookie = NULL;
 
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
-			HTTPS_SCHEME, sec_data->req_domain, "/prx/000/http/localh",
-			page->id, page->ai_url + page->path_pos +
-			(page->ai_url[page->path_pos] == '/' ? 1 : 0));
-	} else {
+				 HTTPS_SCHEME, sec_data->req_domain, "/prx/000/http/localh",
+				 page->id, page->ai_url + page->path_pos + (page->ai_url[page->path_pos] == '/' ? 1 : 0));
+	}
+	else
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
-			HTTPS_SCHEME, sec_data->req_domain, SEC_REWRITTEN_PREFIX,
-			page->id, page->ai_url + page->path_pos +
-			(page->ai_url[page->path_pos] == '/' ? 1 : 0));
+				 HTTPS_SCHEME, sec_data->req_domain, SEC_REWRITTEN_PREFIX,
+				 page->id, page->ai_url + page->path_pos + (page->ai_url[page->path_pos] == '/' ? 1 : 0));
 	}
 
 	sec_clear_cookie_for_logout_response(sec_data, vsite);
 	sprint_nav_cookie(nav_cookie_buffer, sec_data);
-	if (sec_data->bookmark_cookie) {
+	if (sec_data->bookmark_cookie)
+	{
 		bookmark_cookie = SEC_AN_BOOKMARK_COOKIE_EXPIRES;
 		bookmark_cookie_len = SLEN(SEC_AN_BOOKMARK_COOKIE_EXPIRES);
-	} else {
+	}
+	else
+	{
 		bookmark_cookie = NULL;
 		bookmark_cookie_len = 0;
 	}
 
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-				portal_temp_string, strlen(portal_temp_string),
-				session_cookie_buffer, strlen(session_cookie_buffer),
-				nav_cookie_buffer, strlen(nav_cookie_buffer),
-				bookmark_cookie, bookmark_cookie_len,
-				IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+						  portal_temp_string, strlen(portal_temp_string),
+						  session_cookie_buffer, strlen(session_cookie_buffer),
+						  nav_cookie_buffer, strlen(nav_cookie_buffer),
+						  bookmark_cookie, bookmark_cookie_len,
+						  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
 }
 
 static void
-sec_generate_logout_response(struct smanager_data *sec_data, 
-             sec_session_t *session, sec_vsite_t *site, uint8_t clean_pcookie)
+sec_generate_logout_response(struct smanager_data *sec_data,
+							 sec_session_t *session, sec_vsite_t *site, uint8_t clean_pcookie)
 {
-    struct frame *final_page, *out_frame = NULL, *in_frame;
-    uint8_t *cursor = NULL;
-    uint8_t version = 0;
-    char *lang_string;
-    int32_t lang_str_len;
-    uint8_t *nav_cookie_p = NULL;
-
-    version = site->default_theme;
-    in_frame = id_to_frame_chain(LOGOUT_ID, version);
-    if (in_frame == NULL) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-	                "Static logout content is not available");
-	                sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-		            SEC_CUSTOM_ERR_INTERNAL,
-		            sec_language_get_msg_ex(sec_data, 234));
-        return;
-    }
-
-    final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
-    sec_generate_logout_js_response(sec_data, &out_frame, &cursor);
-
-    if (sec_data && sec_data->nav_cookie) {
-        sprint_nav_cookie(nav_cookie_buffer, sec_data);
-        /*
-         * set a value for nav_cookie_p; if the request had not included a
-         * cookie, nav_cookie_p would remain NULL
-         */
-        nav_cookie_p = nav_cookie_buffer;
-    }
+	struct frame *final_page, *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
+	uint8_t version = 0;
+	char *lang_string;
+	int32_t lang_str_len;
+	uint8_t *nav_cookie_p = NULL;
+
+	version = site->default_theme;
+	in_frame = id_to_frame_chain(LOGOUT_ID, version);
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+						"Static logout content is not available");
+		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 234));
+		return;
+	}
+
+	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_logout_js_response(sec_data, &out_frame, &cursor);
+
+	if (sec_data && sec_data->nav_cookie)
+	{
+		sprint_nav_cookie(nav_cookie_buffer, sec_data);
+		/*
+		 * set a value for nav_cookie_p; if the request had not included a
+		 * cookie, nav_cookie_p would remain NULL
+		 */
+		nav_cookie_p = nav_cookie_buffer;
+	}
 
 	sec_clear_cookie_for_logout_response(sec_data, site);
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-	if (final_page != NULL) {
+	if (final_page != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page,
-							 HTTP_NOCACHE, session_cookie_buffer, nav_cookie_p,
-							 "text/html", NULL, sec_data,
-							 NULL, 0,
-							 clean_pcookie);
-		if (sec_data->response != NULL) {
+																HTTP_NOCACHE, session_cookie_buffer, nav_cookie_p,
+																"text/html", NULL, sec_data,
+																NULL, 0,
+																clean_pcookie);
+		if (sec_data->response != NULL)
+		{
 			HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 			return;
-		} else {
+		}
+		else
+		{
 			parser_frame_chain_free(final_page);
 		}
 	}
 	sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-	        SEC_CUSTOM_ERR_INTERNAL,
-	        sec_language_get_msg_ex(sec_data, 234));
+								SEC_CUSTOM_ERR_INTERNAL,
+								sec_language_get_msg_ex(sec_data, 234));
 
 	return;
 }
 
 static void
 sec_generate_filelinks_response(struct smanager_data *sec_data,
-		                struct frame **out_frame, uint8_t **cursor)
+								struct frame **out_frame, uint8_t **cursor)
 {
 	role_resource_display_head_t *resource_list = NULL;
 	role_resource_display_item_t *tmp_item;
 	sec_session_t *session = sec_data->session;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 
-	char* url = NULL;
+	char *url = NULL;
 	int32_t url_len = 0;
 	int link_count = 0;
 	int32_t counter = 0;
 
-#define write_data_str_p(str) write_data(str, cursor, sizeof(str)-1, out_frame)
+#define write_data_str_p(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
 	write_data_str_p("var _AN_filelinks_list = [\n");
-	
+
 	link_count = sec_get_available_resource(session, &resource_list, ROLE_RES_CIFS);
-	if (link_count > 0 ){
-		SLIST_FOREACH(tmp_item, resource_list, next) {
-			if (counter > 0) {
+	if (link_count > 0)
+	{
+		SLIST_FOREACH(tmp_item, resource_list, next)
+		{
+			if (counter > 0)
+			{
 				write_data_str_p(",\n");
 			}
-			
+
 			/* Prefix, backend scheme, hostname, and path (perhaps masked) */
 			url = tmp_item->role_resource->resource;
 			write_data_str_p("    {  \"href\" : \"");
 			uint32_t i = 2;
 			uint32_t url_len = strlen(url);
-			while (i < url_len && url[i] != '/') {
+			while (i < url_len && url[i] != '/')
+			{
 				i++;
 			}
 			i++;
-			while (i < url_len && url[i] != '/') {
+			while (i < url_len && url[i] != '/')
+			{
 				i++;
 			}
-			if(i != url_len) {
-			    if(strcmp(url+i, "/username") == 0){
-				if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-					write_data_str_p("/prx/000/http/localh/cifs?path=/");
-				} else {
-					write_data_str_p("/prx/000/http/localhost/cifs?path=/");
+			if (i != url_len)
+			{
+				if (strcmp(url + i, "/username") == 0)
+				{
+					if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+					{
+						write_data_str_p("/prx/000/http/localh/cifs?path=/");
+					}
+					else
+					{
+						write_data_str_p("/prx/000/http/localhost/cifs?path=/");
+					}
+					if (SEC_ISSET(vsite->common_flags, SEC_APP_SSO_FILESHARE) && session->app_sso_info.sso_account[0])
+					{
+						url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", session->app_sso_info.sso_account);
+					}
+					else
+					{
+						url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", session->username);
+					}
+					write_data(portal_temp_string, cursor, url_len, out_frame);
+					write_data_str_p("/&service=");
+					write_data(url, cursor, strlen(url) - strlen("/username"), out_frame);
 				}
-				if (SEC_ISSET(vsite->common_flags, SEC_APP_SSO_FILESHARE) && session->app_sso_info.sso_account[0]) {
-					url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", session->app_sso_info.sso_account);
-				} else {
-					url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", session->username);
+				else
+				{
+					if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+					{
+						write_data_str_p("/prx/000/http/localh/cifs?path=");
+					}
+					else
+					{
+						write_data_str_p("/prx/000/http/localhost/cifs?path=");
+					}
+					url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", url + i);
+					write_data(portal_temp_string, cursor, url_len, out_frame);
+					write_data_str_p("/&service=");
+					write_data(url, cursor, i, out_frame);
 				}
-				write_data(portal_temp_string, cursor, url_len, out_frame);
-				write_data_str_p("/&service=");
-				write_data(url, cursor, strlen(url)-strlen("/username"), out_frame);
-			     } else {
-			    if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-					write_data_str_p("/prx/000/http/localh/cifs?path=");
-			    } else {
-			    	write_data_str_p("/prx/000/http/localhost/cifs?path=");
-			    }
-				url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", url + i);
-				write_data(portal_temp_string, cursor, url_len, out_frame);
-				write_data_str_p("/&service=");
-				write_data(url, cursor, i, out_frame);
-			     }	
-			} else {
-				if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+			}
+			else
+			{
+				if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+				{
 					write_data_str_p("/prx/000/http/localh/cifs?path=/&service=");
-				} else {
+				}
+				else
+				{
 					write_data_str_p("/prx/000/http/localhost/cifs?path=/&service=");
 				}
 				write_data(url, cursor, strlen(url), out_frame);
 			}
 			write_data_str_p("&workgroup=");
-			if (vsite->default_smb_workgroup != NULL) {
+			if (vsite->default_smb_workgroup != NULL)
+			{
 				write_data(vsite->default_smb_workgroup, cursor, strlen(vsite->default_smb_workgroup), out_frame);
 			}
 			write_data_str_p("\",\n");
@@ -4098,10 +4630,10 @@
 			/* Link type*/
 			write_data_str_p("\",\n");
 			write_data_str_p("       \"type\" : \"");
-			write_data("cifs_link", cursor, sizeof("cifs_link") -1, out_frame);
+			write_data("cifs_link", cursor, sizeof("cifs_link") - 1, out_frame);
 			write_data_str_p("\"\n");
 			write_data_str_p("    }");
-			counter ++;
+			counter++;
 		}
 	}
 	sec_free_resourcelist(&resource_list);
@@ -4111,79 +4643,88 @@
 
 static void
 sec_generate_userresourcelinks_response(struct smanager_data *sec_data,
-                                struct frame **out_frame, uint8_t **cursor)
+										struct frame **out_frame, uint8_t **cursor)
 {
-        sec_vsite_t *vsite = sec_data->vsite_p;
+	sec_vsite_t *vsite = sec_data->vsite_p;
 
-#define write_data_str_p(str) write_data(str, cursor, sizeof(str)-1, out_frame)
+#define write_data_str_p(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
 	/* read desc file */
 	FILE *fp = NULL;
 	char buf[256] = {0};
-	char descfile[MAXPATHLEN+1] = {0};
-	char *str, *token;                   
-        char *saveptr;            
-        int32_t j;
+	char descfile[MAXPATHLEN + 1] = {0};
+	char *str, *token;
+	char *saveptr;
+	int32_t j;
 	int32_t counter = 0;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing user resource links, vsite is null");
-		return ;
+		return;
 	}
-	
+
 	snprintf(descfile, MAXPATHLEN, "/ca/fileshare/htdocs/client_sec/userresource/%s/list.desc", vsite->name);
 	fp = fopen(descfile, "r");
-	if (!fp) {
+	if (!fp)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing user resource links, list.desc doesn't exist");
 		return;
 	}
 
 	write_data_str_p("var _AN_userresourcelinks_list = [\n");
 
-	while (fgets(buf, 256, fp) != NULL) {
-		if (counter > 0) {
+	while (fgets(buf, 256, fp) != NULL)
+	{
+		if (counter > 0)
+		{
 			write_data_str_p(",\n");
 		}
-		for (j = 1, str = buf;;j++, str = NULL) {
+		for (j = 1, str = buf;; j++, str = NULL)
+		{
 			token = strtok_r(str, "|", &saveptr);
 			if (token == NULL)
 				break;
-			if (j == 1) {
+			if (j == 1)
+			{
 				write_data_str_p("    {  \"href\" : \"");
-				if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+				if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+				{
 					write_data_str_p("/prx/000/http/localh/client_sec/userresource/");
-				} else {
+				}
+				else
+				{
 					write_data_str_p("/prx/000/http/localhost/client_sec/userresource/");
 				}
 				write_data(vsite->name, cursor, strlen(vsite->name), out_frame);
 				write_data_str_p("/");
-				write_data(token, cursor, strlen(token), out_frame);  
+				write_data(token, cursor, strlen(token), out_frame);
 				write_data_str_p("\",\n");
 			}
-			if (j == 2) {
+			if (j == 2)
+			{
 				write_data_str_p("       \"description\" : \"");
 				write_data(token, cursor, strlen(token), out_frame);
 				write_data_str_p("\"\n");
 				write_data_str_p("    }");
 			}
 		}
-		counter ++;
+		counter++;
 	}
 	write_data_str_p("\n    ];\n");
 #undef write_data_str_p
 	fclose(fp);
 }
 
-
 static void
 sec_generate_weblinks_response(struct smanager_data *sec_data,
-		                struct frame **out_frame, uint8_t **cursor)
+							   struct frame **out_frame, uint8_t **cursor)
 {
 	role_resource_display_head_t *resource_list = NULL;
 	role_resource_display_item_t *tmp_item;
 	sec_session_t *session = sec_data->session;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 
-	char* url = NULL;
+	char *url = NULL;
 	int url_len;
 	char escaped_url[SEC_MAX_URL_LEN * 3] = {0};
 	/*sec_frontlink_t *frontlink;
@@ -4192,170 +4733,215 @@
 	int32_t counter = 0;
 	/*char quick_link_url[SEC_MAX_URL_LEN];*/
 	char sso_url_prefix[SEC_MAX_URL_LEN] = {0};
-	
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-		strncpy(sso_url_prefix, "/prx/000/http/localh/sso.html?ssourl=", SEC_MAX_URL_LEN-1);
-	} else {
-		strncpy(sso_url_prefix, "/prx/000/http/localhost/sso.html?ssourl=", SEC_MAX_URL_LEN-1);
+
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
+		strncpy(sso_url_prefix, "/prx/000/http/localh/sso.html?ssourl=", SEC_MAX_URL_LEN - 1);
+	}
+	else
+	{
+		strncpy(sso_url_prefix, "/prx/000/http/localhost/sso.html?ssourl=", SEC_MAX_URL_LEN - 1);
 	}
 
-#define write_data_str_p(str) write_data(str, cursor, sizeof(str)-1, out_frame)
+#define write_data_str_p(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
 	write_data_str_p("var _AN_weblinks_list = [\n");
 
 	/*link_count = sec_generate_homepage_links_list(vsite, sec_session);*/
 	link_count = sec_get_available_resource(session, &resource_list, ROLE_RES_WEB);
-	if (link_count > 0 ){
-	SLIST_FOREACH(tmp_item, resource_list, next) {
-		role_resource_web_t* tmp_resource = (role_resource_web_t*)tmp_item->role_resource;
-		if (counter > 0) {
-			write_data_str_p(",\n");
-		}		
+	if (link_count > 0)
+	{
+		SLIST_FOREACH(tmp_item, resource_list, next)
+		{
+			role_resource_web_t *tmp_resource = (role_resource_web_t *)tmp_item->role_resource;
+			if (counter > 0)
+			{
+				write_data_str_p(",\n");
+			}
 
-		/* Prefix, backend scheme, hostname, and path (perhaps masked) */
-		url = tmp_item->role_resource->resource;
-		escape_string(url, escaped_url, SEC_MAX_URL_LEN * 3);  
-		write_data_str_p("    {  \"href\" : \"");
-
-		if (SEC_ISSET(vsite->common_flags, SEC_WRM)) {
-			char* encoded_url = NULL;
-			int  encoded_url_len = 0;
-			
-			/* check if it is L3 direct link */
-			
-			if (tmp_resource->is_l3_link == 1) {
-				/* check front-end sso flag */
-				if (tmp_resource->is_front_end_sso == 1) {
-					if (tmp_resource->dev_str[0] == '\0') {
-						url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s",
-							sso_url_prefix, escaped_url, "&format=innerlink");
-					} else {
-						url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
-							sso_url_prefix, escaped_url, "&format=innerlink&hwid_str=", tmp_resource->dev_str);
-					}
-					write_data(portal_temp_string, cursor, url_len, out_frame);
-				} else {
-					write_data(url, cursor, strlen(url), out_frame);
-				}
-			} else {
-				encoded_url_len = encode_url(url,  strlen(url), vsite->common_flags, &encoded_url, session->session_id);
-				if (encoded_url_len) {
-					if (tmp_resource->is_front_end_sso == 1) {
-						char escaped_wrm_url[SEC_MAX_URL_LEN * 3] = {0};
-						if(strncasecmp("https", url, strlen("https")) == 0 ) {
-							url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "/prx/000/%s%s",
-								"https", url + strlen("https:/"));
-						} else {
-							url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "/prx/000/%s%s",
-								"http", url + strlen("http:/"));
-						}
-						portal_temp_string[url_len] = '\0';
-						escape_string(portal_temp_string, escaped_wrm_url, SEC_MAX_URL_LEN * 3); 
-						if (tmp_resource->dev_str[0] == '\0') {
+			/* Prefix, backend scheme, hostname, and path (perhaps masked) */
+			url = tmp_item->role_resource->resource;
+			escape_string(url, escaped_url, SEC_MAX_URL_LEN * 3);
+			write_data_str_p("    {  \"href\" : \"");
+
+			if (SEC_ISSET(vsite->common_flags, SEC_WRM))
+			{
+				char *encoded_url = NULL;
+				int encoded_url_len = 0;
+
+				/* check if it is L3 direct link */
+
+				if (tmp_resource->is_l3_link == 1)
+				{
+					/* check front-end sso flag */
+					if (tmp_resource->is_front_end_sso == 1)
+					{
+						if (tmp_resource->dev_str[0] == '\0')
+						{
 							url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s",
-								sso_url_prefix, escaped_wrm_url, "&format=web");
-						} else {
+											   sso_url_prefix, escaped_url, "&format=innerlink");
+						}
+						else
+						{
 							url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
-								sso_url_prefix, escaped_wrm_url, "&format=web&hwid_str=", tmp_resource->dev_str);
+											   sso_url_prefix, escaped_url, "&format=innerlink&hwid_str=", tmp_resource->dev_str);
 						}
 						write_data(portal_temp_string, cursor, url_len, out_frame);
-					} else {
-						write_data(encoded_url, cursor, encoded_url_len, out_frame);
 					}
-					
-					free(encoded_url);
+					else
+					{
+						write_data(url, cursor, strlen(url), out_frame);
+					}
 				}
-				else {
-					if (tmp_resource->is_front_end_sso == 1) {
-						if (tmp_resource->dev_str[0] == '\0') {
-							url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s",
-								sso_url_prefix, escaped_url, "&format=web");
-						} else {
-							url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
-								sso_url_prefix, escaped_url, "&format=web&hwid_str=", tmp_resource->dev_str);
+				else
+				{
+					encoded_url_len = encode_url(url, strlen(url), vsite->common_flags, &encoded_url, session->session_id);
+					if (encoded_url_len)
+					{
+						if (tmp_resource->is_front_end_sso == 1)
+						{
+							char escaped_wrm_url[SEC_MAX_URL_LEN * 3] = {0};
+							if (strncasecmp("https", url, strlen("https")) == 0)
+							{
+								url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "/prx/000/%s%s",
+												   "https", url + strlen("https:/"));
+							}
+							else
+							{
+								url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "/prx/000/%s%s",
+												   "http", url + strlen("http:/"));
+							}
+							portal_temp_string[url_len] = '\0';
+							escape_string(portal_temp_string, escaped_wrm_url, SEC_MAX_URL_LEN * 3);
+							if (tmp_resource->dev_str[0] == '\0')
+							{
+								url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s",
+												   sso_url_prefix, escaped_wrm_url, "&format=web");
+							}
+							else
+							{
+								url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
+												   sso_url_prefix, escaped_wrm_url, "&format=web&hwid_str=", tmp_resource->dev_str);
+							}
+							write_data(portal_temp_string, cursor, url_len, out_frame);
+						}
+						else
+						{
+							write_data(encoded_url, cursor, encoded_url_len, out_frame);
+						}
+
+						free(encoded_url);
+					}
+					else
+					{
+						if (tmp_resource->is_front_end_sso == 1)
+						{
+							if (tmp_resource->dev_str[0] == '\0')
+							{
+								url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s",
+												   sso_url_prefix, escaped_url, "&format=web");
+							}
+							else
+							{
+								url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
+												   sso_url_prefix, escaped_url, "&format=web&hwid_str=", tmp_resource->dev_str);
+							}
+							write_data(portal_temp_string, cursor, url_len, out_frame);
+						}
+						else
+						{
+							write_data(url, cursor, strlen(url), out_frame);
 						}
-						write_data(portal_temp_string, cursor, url_len, out_frame);
-					} else {
-						write_data(url, cursor, strlen(url), out_frame);
 					}
 				}
 			}
-		} else {
-			/* check front-end sso flag */
-			if (tmp_resource->is_front_end_sso == 1) {
-				if (tmp_resource->dev_str[0] == '\0') {
-					url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s",
-						sso_url_prefix, escaped_url, "&format=innerlink");
-				} else {
-					url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
-						sso_url_prefix, escaped_url, "&format=innerlink&hwid_str=", tmp_resource->dev_str);
+			else
+			{
+				/* check front-end sso flag */
+				if (tmp_resource->is_front_end_sso == 1)
+				{
+					if (tmp_resource->dev_str[0] == '\0')
+					{
+						url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s",
+										   sso_url_prefix, escaped_url, "&format=innerlink");
+					}
+					else
+					{
+						url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
+										   sso_url_prefix, escaped_url, "&format=innerlink&hwid_str=", tmp_resource->dev_str);
+					}
+					write_data(portal_temp_string, cursor, url_len, out_frame);
+				}
+				else
+				{
+					write_data(url, cursor, strlen(url), out_frame);
 				}
-				write_data(portal_temp_string, cursor, url_len, out_frame);
-			} else {
-				write_data(url, cursor, strlen(url), out_frame);
 			}
-		}
-		write_data_str_p("\",\n");
-		write_data_str_p("       \"description\" : \"");
+			write_data_str_p("\",\n");
+			write_data_str_p("       \"description\" : \"");
 
-		/* Link description */
-		/*if (vsite->input_enc == HTML2BINARY) {
-		  	int32_t desc_len;
-		  	char *new_desc = strhtml2binary(frontlink->desc, &desc_len);
-		  	write_data(new_desc, cursor, desc_len, out_frame);
-		  } else {
-		  	if(portal_link_buffer[counter].type == WEB_QUICKLINK_TYPE){
-		  		write_data(quicklink->text, cursor, strlen(quicklink->text), out_frame);
-		  	} else {
-		  		write_data(frontlink->desc, cursor, strlen(frontlink->desc), out_frame);
-		  	}
-		}*/
-		url = tmp_item->role_resource->name;
-		write_data(url, cursor, strlen(url), out_frame);
+			/* Link description */
+			/*if (vsite->input_enc == HTML2BINARY) {
+				int32_t desc_len;
+				char *new_desc = strhtml2binary(frontlink->desc, &desc_len);
+				write_data(new_desc, cursor, desc_len, out_frame);
+			  } else {
+				if(portal_link_buffer[counter].type == WEB_QUICKLINK_TYPE){
+					write_data(quicklink->text, cursor, strlen(quicklink->text), out_frame);
+				} else {
+					write_data(frontlink->desc, cursor, strlen(frontlink->desc), out_frame);
+				}
+			}*/
+			url = tmp_item->role_resource->name;
+			write_data(url, cursor, strlen(url), out_frame);
 
-		/* Link type*/
-		write_data_str_p("\",\n");
-		write_data_str_p("       \"type\" : \"");
-		/*switch(portal_link_buffer[counter].type){
-		  case WEB_LINK_TYPE:
-		  	write_data("portal_link", cursor, sizeof("portal_link") -1, out_frame);
-		  	break;
-		  case WEB_LINKDIRECT_TYPE:
-		  	write_data("linkdirect_link", cursor, sizeof("linkdirect_link") -1, out_frame);
-		 	 break;
-		  case WEB_QUICKLINK_TYPE:
-		  	write_data("quick_link", cursor, sizeof("quick_link") -1, out_frame);
-		  	break;
-		  default:
-		  	break;
-		}*/
-		write_data("portal_link", cursor, sizeof("portal_link") -1, out_frame);
+			/* Link type*/
+			write_data_str_p("\",\n");
+			write_data_str_p("       \"type\" : \"");
+			/*switch(portal_link_buffer[counter].type){
+			  case WEB_LINK_TYPE:
+				write_data("portal_link", cursor, sizeof("portal_link") -1, out_frame);
+				break;
+			  case WEB_LINKDIRECT_TYPE:
+				write_data("linkdirect_link", cursor, sizeof("linkdirect_link") -1, out_frame);
+				 break;
+			  case WEB_QUICKLINK_TYPE:
+				write_data("quick_link", cursor, sizeof("quick_link") -1, out_frame);
+				break;
+			  default:
+				break;
+			}*/
+			write_data("portal_link", cursor, sizeof("portal_link") - 1, out_frame);
 
-		write_data_str_p("\",\n");
+			write_data_str_p("\",\n");
 
-		write_data_str_p("       \"position\" : ");
-		url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%d", tmp_resource->position);
-		write_data(portal_temp_string, cursor, url_len, out_frame);
-		write_data_str_p("\n");
-		
-		write_data_str_p("    }");
-		counter ++;
-	}
+			write_data_str_p("       \"position\" : ");
+			url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%d", tmp_resource->position);
+			write_data(portal_temp_string, cursor, url_len, out_frame);
+			write_data_str_p("\n");
+
+			write_data_str_p("    }");
+			counter++;
+		}
 	}
 	sec_free_resourcelist(&resource_list);
 
 	/* Deal with ROLE_RES_APROXY resource */
 	link_count = sec_get_available_resource(session, &resource_list, ROLE_RES_APROXY);
-	if (link_count > 0) {
-		SLIST_FOREACH(tmp_item, resource_list, next) {
+	if (link_count > 0)
+	{
+		SLIST_FOREACH(tmp_item, resource_list, next)
+		{
 			int cur = 0;
 			role_resource_aproxy_t *tmp_resource = (role_resource_aproxy_t *)tmp_item->role_resource;
-			if (counter > 0) {
+			if (counter > 0)
+			{
 				write_data_str_p(",\n");
 			}
 
 			/* construct url according to scheme, hostname and path */
 			url = (char *)malloc(strlen("http://") + tmp_resource->hostname_len + tmp_resource->path_len + 1);
-			if (url == NULL) {
+			if (url == NULL)
+			{
 				ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "%s: failed to malloc\n", __func__);
 				return;
 			}
@@ -4366,21 +4952,27 @@
 			cur += tmp_resource->hostname_len;
 			snprintf(url + cur, tmp_resource->path_len + 1, "%s", tmp_resource->path);
 
-			escape_string(url, escaped_url, SEC_MAX_URL_LEN * 3);  
+			escape_string(url, escaped_url, SEC_MAX_URL_LEN * 3);
 			write_data_str_p("    {  \"href\" : \"");
 
-			if (SEC_ISSET(vsite->common_flags, SEC_WRM)) {
-				char* encoded_url = NULL;
-				int  encoded_url_len = 0;
-				
-				encoded_url_len = encode_url(url,  strlen(url), vsite->common_flags, &encoded_url, session->session_id);
-				if (encoded_url_len) {
+			if (SEC_ISSET(vsite->common_flags, SEC_WRM))
+			{
+				char *encoded_url = NULL;
+				int encoded_url_len = 0;
+
+				encoded_url_len = encode_url(url, strlen(url), vsite->common_flags, &encoded_url, session->session_id);
+				if (encoded_url_len)
+				{
 					write_data(encoded_url, cursor, encoded_url_len, out_frame);
 					free(encoded_url);
-				} else {
+				}
+				else
+				{
 					write_data(url, cursor, strlen(url), out_frame);
 				}
-			} else {
+			}
+			else
+			{
 				write_data(url, cursor, strlen(url), out_frame);
 			}
 			write_data_str_p("\",\n");
@@ -4393,92 +4985,106 @@
 			/* Link type*/
 			write_data_str_p("\",\n");
 			write_data_str_p("       \"type\" : \"");
-			write_data("proxy_link", cursor, sizeof("aproxy_link") -1, out_frame);
+			write_data("proxy_link", cursor, sizeof("aproxy_link") - 1, out_frame);
 
 			write_data_str_p("\",\n");
 
 			write_data_str_p("       \"position\" : ");
 			url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%d", tmp_resource->position);
 			write_data(portal_temp_string, cursor, url_len, out_frame);
-			write_data_str_p("\n"); 
+			write_data_str_p("\n");
 			write_data_str_p("    }");
-			counter ++;
+			counter++;
 		}
 	}
 	sec_free_resourcelist(&resource_list);
 
 	/* Deal with ROLE_RES_QUICKLINK resource */
 	link_count = sec_get_available_resource(session, &resource_list, ROLE_RES_QUICKLINK);
-	if (link_count > 0 ){
-	SLIST_FOREACH(tmp_item, resource_list, next) {
-		role_resource_quicklink_t* tmp_resource = (role_resource_quicklink_t*)tmp_item->role_resource;
-		if (counter > 0) {
-			write_data_str_p(",\n");
-		}		
+	if (link_count > 0)
+	{
+		SLIST_FOREACH(tmp_item, resource_list, next)
+		{
+			role_resource_quicklink_t *tmp_resource = (role_resource_quicklink_t *)tmp_item->role_resource;
+			if (counter > 0)
+			{
+				write_data_str_p(",\n");
+			}
 
-		/* Prefix, backend scheme, hostname, and path (perhaps masked) */
-		url = tmp_item->role_resource->resource;
-		write_data_str_p("    {  \"href\" : \"");
-
-		/* check front-end sso flag */
-		if (tmp_resource->is_front_end_sso == 1) {
-			char quicklink_url[SEC_MAX_URL_LEN] = {0};
-			char escaped_quicklink_url[SEC_MAX_URL_LEN * 3] = {0};
-
-			if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-				snprintf(quicklink_url, SEC_MAX_URL_LEN, "%s%s%s%s%s",
-							"/prx/000/http/localh", QUICKLINK_STR, url, 
-							QUICKLINK_STR2, ((role_resource_quicklink_t *)(tmp_item->role_resource))->path);
-			} else {
-				snprintf(quicklink_url, SEC_MAX_URL_LEN, "%s%s%s%s%s",
-							"/prx/000/http/localhost", QUICKLINK_STR, url, 
-							QUICKLINK_STR2, ((role_resource_quicklink_t *)(tmp_item->role_resource))->path);
-			}
-			escape_string(quicklink_url, escaped_quicklink_url, SEC_MAX_URL_LEN * 3); 
-			if (tmp_resource->dev_str[0] == '\0') {
-				url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s",
-							sso_url_prefix, escaped_quicklink_url, "&format=quicklink");
-			} else {
-				url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
-							sso_url_prefix, escaped_quicklink_url, "&format=quicklink&hwid_str=", 
-							tmp_resource->dev_str);
+			/* Prefix, backend scheme, hostname, and path (perhaps masked) */
+			url = tmp_item->role_resource->resource;
+			write_data_str_p("    {  \"href\" : \"");
+
+			/* check front-end sso flag */
+			if (tmp_resource->is_front_end_sso == 1)
+			{
+				char quicklink_url[SEC_MAX_URL_LEN] = {0};
+				char escaped_quicklink_url[SEC_MAX_URL_LEN * 3] = {0};
+
+				if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+				{
+					snprintf(quicklink_url, SEC_MAX_URL_LEN, "%s%s%s%s%s",
+							 "/prx/000/http/localh", QUICKLINK_STR, url,
+							 QUICKLINK_STR2, ((role_resource_quicklink_t *)(tmp_item->role_resource))->path);
+				}
+				else
+				{
+					snprintf(quicklink_url, SEC_MAX_URL_LEN, "%s%s%s%s%s",
+							 "/prx/000/http/localhost", QUICKLINK_STR, url,
+							 QUICKLINK_STR2, ((role_resource_quicklink_t *)(tmp_item->role_resource))->path);
+				}
+				escape_string(quicklink_url, escaped_quicklink_url, SEC_MAX_URL_LEN * 3);
+				if (tmp_resource->dev_str[0] == '\0')
+				{
+					url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s",
+									   sso_url_prefix, escaped_quicklink_url, "&format=quicklink");
+				}
+				else
+				{
+					url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s",
+									   sso_url_prefix, escaped_quicklink_url, "&format=quicklink&hwid_str=",
+									   tmp_resource->dev_str);
+				}
+				write_data(portal_temp_string, cursor, url_len, out_frame);
 			}
-			write_data(portal_temp_string, cursor, url_len, out_frame);
+			else
+			{
+				if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+				{
+					write_data_str_p("/prx/000/http/localh");
+				}
+				else
+				{
+					write_data_str_p("/prx/000/http/localhost");
+				}
+				write_data_str_p(QUICKLINK_STR);
+				write_data(url, cursor, strlen(url), out_frame);
 
-		} else {
-			if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-				write_data_str_p("/prx/000/http/localh");
-			} else {
-				write_data_str_p("/prx/000/http/localhost");
+				url = ((role_resource_quicklink_t *)(tmp_item->role_resource))->path;
+				write_data_str_p(QUICKLINK_STR2);
+				write_data(url, cursor, strlen(url), out_frame);
 			}
-			write_data_str_p(QUICKLINK_STR);
-			write_data(url, cursor, strlen(url), out_frame);
+			write_data_str_p("\",\n");
+			write_data_str_p("       \"description\" : \"");
 
-			url = ((role_resource_quicklink_t *)(tmp_item->role_resource))->path;
-			write_data_str_p(QUICKLINK_STR2);
+			url = tmp_item->role_resource->name;
 			write_data(url, cursor, strlen(url), out_frame);
-		}
-		write_data_str_p("\",\n");
-		write_data_str_p("       \"description\" : \"");
 
-		url = tmp_item->role_resource->name;
-		write_data(url, cursor, strlen(url), out_frame);
+			/* Link type*/
+			write_data_str_p("\",\n");
+			write_data_str_p("       \"type\" : \"");
+
+			write_data("quick_link", cursor, sizeof("quick_link") - 1, out_frame);
 
-		/* Link type*/
-		write_data_str_p("\",\n");
-		write_data_str_p("       \"type\" : \"");
-
-		write_data("quick_link", cursor, sizeof("quick_link") -1, out_frame);
-
-		write_data_str_p("\",\n");
-
-		write_data_str_p("       \"position\" : ");
-		url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%d", tmp_resource->position);
- 		write_data(portal_temp_string, cursor, url_len, out_frame);
-		write_data_str_p("\n"); 
-		write_data_str_p("    }");
-		counter ++;
-	}
+			write_data_str_p("\",\n");
+
+			write_data_str_p("       \"position\" : ");
+			url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%d", tmp_resource->position);
+			write_data(portal_temp_string, cursor, url_len, out_frame);
+			write_data_str_p("\n");
+			write_data_str_p("    }");
+			counter++;
+		}
 	}
 	sec_free_resourcelist(&resource_list);
 
@@ -4488,13 +5094,13 @@
 
 static void
 sec_generate_networkresource_response(struct smanager_data *sec_data,
-		struct frame **out_frame, uint8_t **cursor)
+									  struct frame **out_frame, uint8_t **cursor)
 {
 	role_resource_display_head_t *resource_list = NULL;
 	role_resource_display_item_t *tmp_item;
 	sec_session_t *session = sec_data->session;
 
-	char* url = NULL;
+	char *url = NULL;
 	int url_len;
 	int link_count = 0;
 	int32_t counter = 0;
@@ -4502,10 +5108,13 @@
 	write_data_str_p("var _AN_networkresource_list = [\n");
 
 	link_count = sec_get_available_resource(session, &resource_list, ROLE_RES_NETWORK);
-	if (link_count > 0 ){
-		SLIST_FOREACH(tmp_item, resource_list, next) {
+	if (link_count > 0)
+	{
+		SLIST_FOREACH(tmp_item, resource_list, next)
+		{
 
-			if (counter > 0) {
+			if (counter > 0)
+			{
 				write_data_str_p(",\n");
 			}
 			write_data_str_p("    {  \"href\" : \"");
@@ -4547,11 +5156,11 @@
 			 * default:
 			 * break;
 			 * }*/
-			write_data("network_resource", cursor, sizeof("network_resource") -1, out_frame);
+			write_data("network_resource", cursor, sizeof("network_resource") - 1, out_frame);
 
 			write_data_str_p("\"\n");
 			write_data_str_p("    }");
-			counter ++;
+			counter++;
 		}
 	}
 
@@ -4572,44 +5181,49 @@
 static int
 need_logout_link(sec_session_t *sec_session, sec_vsite_t *vsite)
 {
-	if (sec_session == NULL || SEC_ISSET(sec_session->flags, SESS_ANONYMOUS)) {
+	if (sec_session == NULL || SEC_ISSET(sec_session->flags, SESS_ANONYMOUS))
+	{
 		return FALSE;
 	}
-	
+
 	return TRUE;
 }
 
 static int
 sec_generate_mobile_username_response(struct smanager_data *sec_data,
-                     struct frame **out_frame, uint8_t **cursor)
+									  struct frame **out_frame, uint8_t **cursor)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *sec_session = sec_data->session;
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing mobile username,vsite is null");
 	}
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
 	write_data(sec_session->username, cursor, strlen(sec_session->username), out_frame);
 #undef write_data_str
-	return 1;	
+	return 1;
 }
 static int
 sec_generate_mobile_hostname_response(struct smanager_data *sec_data,
-                     struct frame **out_frame, uint8_t **cursor)
+									  struct frame **out_frame, uint8_t **cursor)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *sec_session = sec_data->session;
 	char *port = NULL;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing mobile hostname,vsite is null");
 	}
 	port = strchr(sec_data->req_domain, ':');
-	if (port) {
+	if (port)
+	{
 		*port = '\0';
 	}
 	write_data(sec_data->req_domain, cursor, strlen(sec_data->req_domain), out_frame);
-	if (port) {
+	if (port)
+	{
 		*port = ':';
 	}
 	return 1;
@@ -4617,11 +5231,12 @@
 
 static int
 sec_generate_mobile_device_response(struct smanager_data *sec_data,
-                     struct frame **out_frame, uint8_t **cursor)
+									struct frame **out_frame, uint8_t **cursor)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing vod device id, vsite is null");
 	}
 	write_data(sec_data->device_id, cursor, strlen(sec_data->device_id), out_frame);
@@ -4630,191 +5245,221 @@
 
 static int
 sec_generate_mobile_password_response(struct smanager_data *sec_data,
-                     struct frame **out_frame, uint8_t **cursor)
+									  struct frame **out_frame, uint8_t **cursor)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	char *default_passwd = "XXXXXX";
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing vod password,vsite is null");
 	}
 	write_data(default_passwd, cursor, strlen(default_passwd), out_frame);
 	return 1;
 }
 
-#define IPSEC_PROFILENAME_DEFAULT ARRAY_COMPINFO_BRAND" VPN"
+#define IPSEC_PROFILENAME_DEFAULT ARRAY_COMPINFO_BRAND " VPN"
 static int
 sec_generate_mobile_profilename_response(struct smanager_data *sec_data,
-                     struct frame **out_frame, uint8_t **cursor)
+										 struct frame **out_frame, uint8_t **cursor)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *sec_session = sec_data->session;
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing mobile profilename,vsite is null");
 	}
-	if (*(vsite->ipsec_config.profile_name) == '\0') {
+	if (*(vsite->ipsec_config.profile_name) == '\0')
+	{
 		write_data(IPSEC_PROFILENAME_DEFAULT, cursor, strlen(IPSEC_PROFILENAME_DEFAULT), out_frame);
-	} else {
+	}
+	else
+	{
 		write_data(vsite->ipsec_config.profile_name, cursor, strlen(vsite->ipsec_config.profile_name), out_frame);
 	}
 
 	return 1;
 }
 
-static uint8_t map[] = 
+static uint8_t map[] =
 	"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 
 static int32_t
 base64_encode(uint8_t *clear_string, int32_t clear_len,
-              uint8_t *base64_output, int32_t max_out_len)
+			  uint8_t *base64_output, int32_t max_out_len)
 {
-    int32_t grp, out_idx = 0;
+	int32_t grp, out_idx = 0;
+
+	for (grp = 0; grp < clear_len; grp += 3)
+	{
+		uint8_t c1, c2, c3;
+
+		if (out_idx + 3 >= max_out_len)
+		{
+			return 0;
+		}
 
-    for (grp = 0; grp < clear_len; grp += 3) {
-        uint8_t c1, c2, c3;
+		c1 = clear_string[grp];
 
-        if (out_idx + 3 >= max_out_len) {
-            return 0;
-        }
-
-        c1 = clear_string[grp];
-
-        if (grp + 3 > clear_len) {
-            c3 = 0; /* We are short at least one byte */
-            if (grp + 2 > clear_len) {
-                c2 = 0; /* We are short two bytes */
-            } else {
-                c2 = clear_string[grp+1];
-            }
-        } else {
-            c2 = clear_string[grp+1];
-            c3 = clear_string[grp+2];
-        }
-
-        /* The high 6 bits of the first byte */
-        base64_output[out_idx++] = map[c1 >> 2];
-
-        /*
-         * The low 2 bits of the first byte plus the high 4 bits of the
-         * second byte.
-         */
-        base64_output[out_idx++] = map[(c1 & 0x3) << 4 | (c2 >> 4)];
-
-        /*
-         * The low 4 bits of the second byte plus the high 2 bits of the
-         * third byte.
-         */
-        if (grp + 2 > clear_len) {
-            base64_output[out_idx++] = '=';
-        } else {
-            base64_output[out_idx++] = map[(c2 & 0xf) << 2 | (c3 >> 6)];
-        }
-
-        /* The low 6 bits of the third byte */
-        if (grp + 3 > clear_len) {
-            base64_output[out_idx++] = '=';
-        } else {
-            base64_output[out_idx++] = map[(c3 & 0x3f)];
-        }
-    }
+		if (grp + 3 > clear_len)
+		{
+			c3 = 0; /* We are short at least one byte */
+			if (grp + 2 > clear_len)
+			{
+				c2 = 0; /* We are short two bytes */
+			}
+			else
+			{
+				c2 = clear_string[grp + 1];
+			}
+		}
+		else
+		{
+			c2 = clear_string[grp + 1];
+			c3 = clear_string[grp + 2];
+		}
 
-    base64_output[out_idx] = 0;
+		/* The high 6 bits of the first byte */
+		base64_output[out_idx++] = map[c1 >> 2];
 
-    return out_idx;
+		/*
+		 * The low 2 bits of the first byte plus the high 4 bits of the
+		 * second byte.
+		 */
+		base64_output[out_idx++] = map[(c1 & 0x3) << 4 | (c2 >> 4)];
+
+		/*
+		 * The low 4 bits of the second byte plus the high 2 bits of the
+		 * third byte.
+		 */
+		if (grp + 2 > clear_len)
+		{
+			base64_output[out_idx++] = '=';
+		}
+		else
+		{
+			base64_output[out_idx++] = map[(c2 & 0xf) << 2 | (c3 >> 6)];
+		}
+
+		/* The low 6 bits of the third byte */
+		if (grp + 3 > clear_len)
+		{
+			base64_output[out_idx++] = '=';
+		}
+		else
+		{
+			base64_output[out_idx++] = map[(c3 & 0x3f)];
+		}
+	}
+
+	base64_output[out_idx] = 0;
+
+	return out_idx;
 }
 
 static int32_t base64_encode_char(char *clear_string, int32_t clear_len,
-		   char *base64_output, int32_t max_out_len)
+								  char *base64_output, int32_t max_out_len)
 {
 	return base64_encode((uint8_t *)clear_string, clear_len,
-			 (uint8_t *)base64_output, max_out_len);
+						 (uint8_t *)base64_output, max_out_len);
 }
 
-
 /*
  * Decode a base64-formatted buffer
  */
 static const int base64_dec_map[128] =
-{
-    127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
-    127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
-    127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
-    127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
-    127, 127, 127,  62, 127, 127, 127,  63,  52,  53,
-     54,  55,  56,  57,  58,  59,  60,  61, 127, 127,
-    127,  64, 127, 127, 127,   0,   1,   2,   3,   4,
-      5,   6,   7,   8,   9,  10,  11,  12,  13,  14,
-     15,  16,  17,  18,  19,  20,  21,  22,  23,  24,
-     25, 127, 127, 127, 127, 127, 127,  26,  27,  28,
-     29,  30,  31,  32,  33,  34,  35,  36,  37,  38,
-     39,  40,  41,  42,  43,  44,  45,  46,  47,  48,
-     49,  50,  51, 127, 127, 127, 127, 127
-};
+	{
+		127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+		127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+		127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+		127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
+		127, 127, 127, 62, 127, 127, 127, 63, 52, 53,
+		54, 55, 56, 57, 58, 59, 60, 61, 127, 127,
+		127, 64, 127, 127, 127, 0, 1, 2, 3, 4,
+		5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+		15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+		25, 127, 127, 127, 127, 127, 127, 26, 27, 28,
+		29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
+		39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+		49, 50, 51, 127, 127, 127, 127, 127};
 int base64_decode(unsigned char *dst, int *dlen,
-                  unsigned char *src, int  slen)
+				  unsigned char *src, int slen)
 {
-    int i, j, n;
-    unsigned long x;
-    unsigned char *p;
-    
-    for (i = j = n = 0; i < slen; i++) {
-        if ((slen - i ) >= 2 &&
-            src[i] == '\r' && src[i + 1] == '\n') {
-            continue;
-        }
-        
-        if (src[i] == '\n') {
-            continue;
-        }
-        
-        if (src[i] == '=' && ++j > 2) {
-            return 0;
-        }
-        
-        if (src[i] > 127 || base64_dec_map[src[i]] == 127) {
-            return 0;
-        }
-        
-        if (base64_dec_map[src[i]] < 64 && j != 0) {
-            return 0;
-        }
-        n++;
-    }
-    
-    if (n == 0) {
-        return 0;
-    }
-    
-    n = ((n * 6) + 7) >> 3;
-    
-    if (*dlen < n) {
-        *dlen = n;
-        return 0;
-    }
-
-    for (j = 3, n = x = 0, p = dst; i > 0; i--, src++) {
-        if (*src == '\r' || *src == '\n') {
-            continue;
-        }
-    
-        j -= (base64_dec_map[*src] == 64);
-        x  = (x << 6) | (base64_dec_map[*src] & 0x3F);
-    
-        if (++n == 4) {
-            n = 0;
-            *p++ = (unsigned char)(x >> 16);
-            if (j > 1) {
-                *p++ = (unsigned char)(x >> 8);
-            }
-    
-            if (j > 2) {
-                *p++ = (unsigned char)x;
-            }
-        }
-    }
-    *dlen = p - dst;
+	int i, j, n;
+	unsigned long x;
+	unsigned char *p;
+
+	for (i = j = n = 0; i < slen; i++)
+	{
+		if ((slen - i) >= 2 &&
+			src[i] == '\r' && src[i + 1] == '\n')
+		{
+			continue;
+		}
+
+		if (src[i] == '\n')
+		{
+			continue;
+		}
+
+		if (src[i] == '=' && ++j > 2)
+		{
+			return 0;
+		}
+
+		if (src[i] > 127 || base64_dec_map[src[i]] == 127)
+		{
+			return 0;
+		}
+
+		if (base64_dec_map[src[i]] < 64 && j != 0)
+		{
+			return 0;
+		}
+		n++;
+	}
+
+	if (n == 0)
+	{
+		return 0;
+	}
+
+	n = ((n * 6) + 7) >> 3;
+
+	if (*dlen < n)
+	{
+		*dlen = n;
+		return 0;
+	}
+
+	for (j = 3, n = x = 0, p = dst; i > 0; i--, src++)
+	{
+		if (*src == '\r' || *src == '\n')
+		{
+			continue;
+		}
+
+		j -= (base64_dec_map[*src] == 64);
+		x = (x << 6) | (base64_dec_map[*src] & 0x3F);
+
+		if (++n == 4)
+		{
+			n = 0;
+			*p++ = (unsigned char)(x >> 16);
+			if (j > 1)
+			{
+				*p++ = (unsigned char)(x >> 8);
+			}
 
-    return 0;
+			if (j > 2)
+			{
+				*p++ = (unsigned char)x;
+			}
+		}
+	}
+	*dlen = p - dst;
+
+	return 0;
 }
 /*
  * Encrypt plaintext with des3 Algorithm with DES3_EDC mode.
@@ -4837,26 +5482,34 @@
 	DES_key_schedule ks[3];
 	int count = 0, i;
 
-	if (key == NULL || in == NULL || in_len == 0 || out_len == NULL) {
+	if (key == NULL || in == NULL || in_len == 0 || out_len == NULL)
+	{
 		return -1;
 	}
 
 	memset(ke, 0, sizeof(ke));
 	memset(ks, 0, sizeof(ks));
 
-	if (key_len >= 24) {
+	if (key_len >= 24)
+	{
 		memcpy(ke[0], key, 8);
-		memcpy(ke[1], key+8, 8);
-		memcpy(ke[2], key+16, 8);
-	} else if (key_len > 16) {
+		memcpy(ke[1], key + 8, 8);
+		memcpy(ke[2], key + 16, 8);
+	}
+	else if (key_len > 16)
+	{
 		memcpy(ke[0], key, 8);
-		memcpy(ke[1], key+8, 8);
-		memcpy(ke[2], key+16, key_len-16);
-	} else if (key_len > 8) {
+		memcpy(ke[1], key + 8, 8);
+		memcpy(ke[2], key + 16, key_len - 16);
+	}
+	else if (key_len > 8)
+	{
 		memcpy(ke[0], key, 8);
-		memcpy(ke[1], key+8, key_len-8);
+		memcpy(ke[1], key + 8, key_len - 8);
 		memcpy(ke[2], key, 8);
-	} else {
+	}
+	else
+	{
 		memcpy(ke[0], key, key_len);
 		memcpy(ke[1], key, key_len);
 		memcpy(ke[2], key, key_len);
@@ -4864,27 +5517,33 @@
 
 	/* Padding plaintext */
 	data_rest = in_len % 8;
-	if (data_rest > 0) {
+	if (data_rest > 0)
+	{
 		len = in_len + (8 - data_rest);
 		ch = 8 - data_rest;
-	} else {
+	}
+	else
+	{
 		len = in_len;
 	}
 
-	if (*out_len < len || out == NULL) {
+	if (*out_len < len || out == NULL)
+	{
 		*out_len = len;
 		return -2;
 	}
 	*out_len = len;
 
 	src = (unsigned char *)malloc(len);
-	if (src == NULL) {
+	if (src == NULL)
+	{
 		return -1;
 	}
 
 	memcpy(src, in, in_len);
-	if (ch != '\0') {
-		memset(src+in_len, ch, (8-data_rest));
+	if (ch != '\0')
+	{
+		memset(src + in_len, ch, (8 - data_rest));
 	}
 
 	/* Set cipher */
@@ -4895,7 +5554,7 @@
 	count = len / 8;
 	for (i = 0; i < count; i++)
 	{
-		DES_ecb3_encrypt((const_DES_cblock*)(src+i*8), (DES_cblock*)(out+i*8), &ks[0], &ks[1], &ks[2], DES_ENCRYPT);
+		DES_ecb3_encrypt((const_DES_cblock *)(src + i * 8), (DES_cblock *)(out + i * 8), &ks[0], &ks[1], &ks[2], DES_ENCRYPT);
 	}
 
 	free(src);
@@ -4905,78 +5564,84 @@
 
 static int
 sec_generate_mobile_psk_response(struct smanager_data *sec_data,
-                                 struct frame **out_frame, uint8_t **cursor)
+								 struct frame **out_frame, uint8_t **cursor)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *sec_session = sec_data->session;
-	char buf[IPSEC_PSK_LEN+1] = {0};
-	char encrypted[IPSEC_PSK_LEN+1] = {0};
+	char buf[IPSEC_PSK_LEN + 1] = {0};
+	char encrypted[IPSEC_PSK_LEN + 1] = {0};
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing mobile psk,vsite is null");
 		return -1;
 	}
 
 	strncpy(buf, vsite->ipsec_config.psk, IPSEC_PSK_LEN);
-	base64_encode_char(buf, strlen(buf), encrypted, IPSEC_PSK_LEN); 
-	
+	base64_encode_char(buf, strlen(buf), encrypted, IPSEC_PSK_LEN);
+
 	write_data(encrypted, cursor, strlen(encrypted), out_frame);
-	return 1;	
+	return 1;
 }
 
 /* Use vsite name and vsite ip to generate a string.
  * This string will be used as the "PayloadUUID" in IOS profile.
  */
-static int 
+static int
 get_vsite_uuid(struct smanager_data *sec_data, char *buf, int size)
 {
 	char tmp[VSITE_NAME_LEN + 9] = {0};
 	sec_vsite_t *vsite = sec_data->vsite_p;
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		return -1;
 	}
-	
+
 	memset(buf, 0, size);
 	snprintf(tmp, sizeof(tmp), "%s%x", vsite->name, sec_data->serverip);
-	base64_encode_char(tmp, strlen(tmp), buf, size); 
-	return 1;	
+	base64_encode_char(tmp, strlen(tmp), buf, size);
+	return 1;
 }
 
 static int
 sec_generate_mobile_uuid_response(struct smanager_data *sec_data, char *uuid,
-                                 struct frame **out_frame, uint8_t **cursor)
+								  struct frame **out_frame, uint8_t **cursor)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing mobile UUID,vsite is null");
 		return -1;
 	}
 
 	write_data(uuid, cursor, strlen(uuid), out_frame);
-	return 1;	
+	return 1;
 }
 
 static int
 sec_generate_vod_ca_response(struct smanager_data *sec_data,
-		struct frame **out_frame, uint8_t **cursor)
+							 struct frame **out_frame, uint8_t **cursor)
 {
 	sec_vsite_t *vs = sec_data->vsite_p;
 	FILE *fp = NULL;
 	char buf[256] = {0};
-	char cafile[MAXPATHLEN+1] = {0};
+	char cafile[MAXPATHLEN + 1] = {0};
 
-	if (vs == NULL) {
+	if (vs == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing vod ca, vsite is null");
 		return -1;
 	}
 
 	snprintf(cafile, MAXPATHLEN, IPSEC_CLIENT_CA_FILE, vs->name);
 	fp = fopen(cafile, "r");
-	if (!fp) {
+	if (!fp)
+	{
 		return -1;
 	}
 
-	while (fgets(buf, 256, fp) != NULL) {
+	while (fgets(buf, 256, fp) != NULL)
+	{
 		write_data(buf, cursor, strlen(buf), out_frame);
 	}
 	fclose(fp);
@@ -4985,19 +5650,22 @@
 
 static int
 sec_generate_vod_domains_response(struct smanager_data *sec_data,
-		struct frame **out_frame, uint8_t **cursor, int type)
+								  struct frame **out_frame, uint8_t **cursor, int type)
 {
 	sec_vsite_t *vs = sec_data->vsite_p;
 	ipsec_vod_domain_t *tmp_domain;
-	char entry[COMMON_DOMAIN_LEN+20] = {0}; /* <string>www.always.com</string> */
+	char entry[COMMON_DOMAIN_LEN + 20] = {0}; /* <string>www.always.com</string> */
 
-	if (vs == NULL) {
+	if (vs == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing vod domains always, vsite is null");
 		return -1;
 	}
 
-    TAILQ_FOREACH(tmp_domain, &(vs->ipsec_config.vod_domain_q), next) {
-		if (tmp_domain->type == type) {
+	TAILQ_FOREACH(tmp_domain, &(vs->ipsec_config.vod_domain_q), next)
+	{
+		if (tmp_domain->type == type)
+		{
 			snprintf(entry, sizeof(entry), "<string>%s</string>", tmp_domain->domain_name);
 			write_data(entry, cursor, strlen(entry), out_frame);
 			memset(entry, 0, sizeof(entry));
@@ -5009,21 +5677,21 @@
 
 static int
 sec_generate_vod_domains_always_response(struct smanager_data *sec_data,
-		struct frame **out_frame, uint8_t **cursor)
+										 struct frame **out_frame, uint8_t **cursor)
 {
 	return sec_generate_vod_domains_response(sec_data, out_frame, cursor, IPSEC_VOD_ALWAYS);
 }
 
 static int
 sec_generate_vod_domains_never_response(struct smanager_data *sec_data,
-		struct frame **out_frame, uint8_t **cursor)
+										struct frame **out_frame, uint8_t **cursor)
 {
-	return sec_generate_vod_domains_response(sec_data, out_frame, cursor, IPSEC_VOD_NEVER);	
+	return sec_generate_vod_domains_response(sec_data, out_frame, cursor, IPSEC_VOD_NEVER);
 }
 
 static int
 sec_generate_vod_domains_onretry_response(struct smanager_data *sec_data,
-		struct frame **out_frame, uint8_t **cursor)
+										  struct frame **out_frame, uint8_t **cursor)
 {
 	return sec_generate_vod_domains_response(sec_data, out_frame, cursor, IPSEC_VOD_ONRETRY);
 }
@@ -5032,7 +5700,7 @@
 
 static int
 sec_generate_welcome_js_response(struct smanager_data *sec_data,
-                     struct frame **out_frame, uint8_t **cursor)
+								 struct frame **out_frame, uint8_t **cursor)
 {
 	int32_t lang_str_len;
 	char *lang_string;
@@ -5054,167 +5722,214 @@
 	char clang[PORTAL_MESSAGE_LEN * 4 + 1] = {0};
 	sec_role_t *role_p = NULL;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing welcome js,vsite is null");
 	}
 
 	role_p = sec_session->role_list[0];
-	if (role_p == NULL) {
-                ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to get role in session");
-                return SEC_FAIL;
-        }
+	if (role_p == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to get role in session");
+		return SEC_FAIL;
+	}
 
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
-	if (sec_session->pic_url[0]) {
+	if (sec_session->pic_url[0])
+	{
 		write_data_str("var _AN_pic_url = \"");
 		lang_str_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", sec_session->pic_url);
 		write_data(portal_temp_string, cursor, lang_str_len, out_frame);
 		write_data_str("\";\n");
 	}
 
-	if (need_logout_link(sec_session, vsite)) {
+	if (need_logout_link(sec_session, vsite))
+	{
 		lang_string = "var _AN_needlogoutlink = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_needlogoutlink = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	/* nav bar */
 	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_ADD_NAVBAR) &&
-	    HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_HTTP_BROWSE)) {
+		HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_HTTP_BROWSE))
+	{
 		lang_string = "var _AN_neednavbar = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_neednavbar = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
-	
+
 	/* netpool winadmin */
-	if (vpn_netpool_winadmin_available(sec_data->vsite_p, sec_data->session->vpn_netpools) == 0) {
+	if (vpn_netpool_winadmin_available(sec_data->vsite_p, sec_data->session->vpn_netpools) == 0)
+	{
 		lang_string = "var _AN_netpool_winadmin_available = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_netpool_winadmin_available = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
-
 	/* session management */
-	if ((role_p->session_lifecycle_policy_p == NULL && SEC_ISSET(vsite->common_flags, SEC_SESS_EXT_ENABLED)) || 
-		(role_p->session_lifecycle_policy_p != NULL && role_p->session_lifecycle_policy_p->session_ext == 1)) { 
+	if ((role_p->session_lifecycle_policy_p == NULL && SEC_ISSET(vsite->common_flags, SEC_SESS_EXT_ENABLED)) ||
+		(role_p->session_lifecycle_policy_p != NULL && role_p->session_lifecycle_policy_p->session_ext == 1))
+	{
 		lang_string = "var _AN_enable_sess_mng = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_enable_sess_mng = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	/* bookmark show */
-	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_SHOW_BOOKMARK)) {
+	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_SHOW_BOOKMARK))
+	{
 		lang_string = "var _AN_show_bookmark = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_show_bookmark = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	/* client security postlogin*/
-	if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC) && vsite->client_sec_postlogin == 1) {
+	if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC) && vsite->client_sec_postlogin == 1)
+	{
 		lang_string = "var _AN_clientsecurity_postlogin_enable = true;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 		lang_str_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "var _AN_clientsecurity_postlogin_interval = %d;\n", vsite->client_sec_postlogin_interval);
 		write_data(portal_temp_string, cursor, lang_str_len, out_frame);
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_clientsecurity_postlogin_enable = false;\nvar _AN_clientsecurity_postlogin_interval = 300;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	}
 
-
 	/* desktop show */
 	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_SHOW_DESKTOP) &&
-	    HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS)) {
+		HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS))
+	{
 		lang_string = "var _AN_show_desktop = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_show_desktop = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_SHOW_DESKTOP_REG) &&
-		HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS)) {
+		HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS))
+	{
 		lang_string = "var _AN_show_desktop_reg = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_show_desktop_reg = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
-        if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_MOTIONPRO_DETECT_PRELOGIN) &&
-                HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS)) {
-                lang_string = "var _AN_motionpro_detect_prelogin = true;\n";
-        } else {
-                lang_string = "var _AN_motionpro_detect_prelogin = false;\n";
-        }
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_MOTIONPRO_DETECT_PRELOGIN) &&
+		HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS))
+	{
+		lang_string = "var _AN_motionpro_detect_prelogin = true;\n";
+	}
+	else
+	{
+		lang_string = "var _AN_motionpro_detect_prelogin = false;\n";
+	}
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	/* desktop new window */
 	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_DESKTOP_NEWWINDOW) &&
-	    HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS)) {
+		HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS))
+	{
 		lang_string = "var _AN_desktop_newwindow = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_desktop_newwindow = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
-	
+
 	/* desktop java client */
 	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_DESKTOP_JAVA) &&
-	    HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS)) {
+		HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS))
+	{
 		lang_string = "var _AN_desktop_java_client = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_desktop_java_client = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	/* desktop auto switch activex/java client */
 	if (SEC_ISSET(vsite->common_flags, (uint64_t)SEC_DESKTOP_AUTOSWITCH) &&
-	    HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS)) {
+		HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_TCS))
+	{
 		lang_string = "var _AN_desktop_autoswitch = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_desktop_autoswitch = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	/* portal new windows */
-	if (SEC_ISSET(vsite->common_flags, SEC_NEWWINDOWS)) {
+	if (SEC_ISSET(vsite->common_flags, SEC_NEWWINDOWS))
+	{
 		lang_string = "var _AN_newwindows = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_newwindows = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	/* guacamole RDP URL */
-	if (vsite->externalapp_rdp_guacamole_url[0] != 0) {
+	if (vsite->externalapp_rdp_guacamole_url[0] != 0)
+	{
 		write_data_str("var _AN_guacamole_url = \"");
 		lang_str_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", vsite->externalapp_rdp_guacamole_url);
 		write_data(portal_temp_string, cursor, lang_str_len, out_frame);
 		write_data_str("\";\n");
-	} else {
+	}
+	else
+	{
 
 		lang_string = "var _AN_guacamole_url = \"\";\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	}
 	/* file server URL */
-        if (vsite->externalapp_rdp_file_url[0] != 0) {
-                write_data_str("var _AN_file_server_url = \"");
-                lang_str_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", vsite->externalapp_rdp_file_url);
-                write_data(portal_temp_string, cursor, lang_str_len, out_frame);
-                write_data_str("\";\n");
-        } else {
-
-                lang_string = "var _AN_file_server_url = \"\";\n";
-                write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        }
+	if (vsite->externalapp_rdp_file_url[0] != 0)
+	{
+		write_data_str("var _AN_file_server_url = \"");
+		lang_str_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", vsite->externalapp_rdp_file_url);
+		write_data(portal_temp_string, cursor, lang_str_len, out_frame);
+		write_data_str("\";\n");
+	}
+	else
+	{
 
+		lang_string = "var _AN_file_server_url = \"\";\n";
+		write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	}
 
-		/* portal new windows */
-	if (SEC_ISSET(vsite->common_flags, SEC_AAA_SAMLIDP_ENABLED)) {
+	/* portal new windows */
+	if (SEC_ISSET(vsite->common_flags, SEC_AAA_SAMLIDP_ENABLED))
+	{
 		snprintf(str, 1024, "var _AN_logout_url = \"/prx/000/http/localhost/samlidp/%s/saml2/idp/SingleLogoutService.php?ReturnTo=/prx/000/http/localhost/logout\";\n", vsite->name);
-		
-	} else {
+	}
+	else
+	{
 		snprintf(str, 1024, "var _AN_logout_url = \"/prx/000/http/localhost/logout\";\n");
 	}
 	write_data(str, cursor, strlen(str), out_frame);
@@ -5223,10 +5938,12 @@
 	const char *aaa_filepath = "/var/crash/invalid_res.log";
 	FILE *file = fopen(aaa_filepath, "r");
 
-	if (file == NULL) {
+	if (file == NULL)
+	{
 		snprintf(str, 1024, "var _AN_login_res_check = \"\";\n");
 	}
-	else {
+	else
+	{
 		char buffer[1024];
 		size_t bytesRead = fread(buffer, 1, sizeof(buffer) - 1, file);
 		buffer[bytesRead] = '\0';
@@ -5237,7 +5954,8 @@
 	write_data(str, cursor, strlen(str), out_frame);
 
 	/* change password */
-	if( vsite->aaa_configure == NULL || vsite->aaa_configure->aaa_on == AAA_IS_OFF || sec_session->method_id[0] == '\0' ) {
+	if (vsite->aaa_configure == NULL || vsite->aaa_configure->aaa_on == AAA_IS_OFF || sec_session->method_id[0] == '\0')
+	{
 		lang_string = "";
 		write_data_str("var _AN_changepassurl1 = \"\";\n");
 		write_data_str("var _AN_enable_changepass1 = false;\n");
@@ -5263,25 +5981,32 @@
 		write_data_str("var _AN_str_msg_ldap_pwd_expiring_hour3 = \"\";\n");
 		write_data_str("var _AN_str_msg_ldap_pwd_expiring_minute3 = \"\";\n");
 		write_data_str("var _AN_str_msg_ldap_pwd_expiring_second3 = \"\";\n");
-	} else {
+	}
+	else
+	{
 		/* get the aaa method */
-		for( aaa_index = 0; aaa_index < METHOD_MAX; aaa_index++ ) {
-			if( strcasecmp(vsite->aaa_configure->loginmethod[aaa_index].id,
-						sec_session->method_id) == 0 ) {
+		for (aaa_index = 0; aaa_index < METHOD_MAX; aaa_index++)
+		{
+			if (strcasecmp(vsite->aaa_configure->loginmethod[aaa_index].id,
+						   sec_session->method_id) == 0)
+			{
 				element = vsite->aaa_configure->loginmethod + aaa_index;
 				break;
 			}
 		}
-		
-		if (element != NULL) {
+
+		if (element != NULL)
+		{
 			passwd_change_page_t *pass_page = NULL;
-			TAILQ_FOREACH(pass_page, &vsite->passwd_change_page_list, next_page) {
-				if( strcasecmp(sec_session->method_id, pass_page->auth_method) == 0 )
+			TAILQ_FOREACH(pass_page, &vsite->passwd_change_page_list, next_page)
+			{
+				if (strcasecmp(sec_session->method_id, pass_page->auth_method) == 0)
 					break;
 			}
 
 			/* "portal custom changepassword" is set, we will only display this link and hide other links */
-			if( pass_page != NULL ) {
+			if (pass_page != NULL)
+			{
 				sprintf(str, "var _AN_enable_changepass1 = true;\n");
 				write_data(str, cursor, strlen(str), out_frame);
 				sprintf(str, "var _AN_str_changepass1 = \"%s\";\n", sec_language_get_and_unescape_msg(vsite->language, 338, &lang_str_len));
@@ -5289,18 +6014,24 @@
 				sprintf(str, "var _AN_changepassurl1 = \"");
 				write_data(str, cursor, strlen(str), out_frame);
 				/* check WRW and rewrite urlmask */
-				if (SEC_ISSET(vsite->common_flags, SEC_WRM)) {
+				if (SEC_ISSET(vsite->common_flags, SEC_WRM))
+				{
 					char *encoded_url = NULL;
 					int encoded_url_len = 0;
 					encoded_url_len = encode_url(pass_page->page_url, strlen(pass_page->page_url),
-							vsite->common_flags, &encoded_url, sec_session->session_id);
-					if (encoded_url_len) {
+												 vsite->common_flags, &encoded_url, sec_session->session_id);
+					if (encoded_url_len)
+					{
 						write_data(encoded_url, cursor, encoded_url_len, out_frame);
 						free(encoded_url);
-					} else {
+					}
+					else
+					{
 						write_data(pass_page->page_url, cursor, strlen(pass_page->page_url), out_frame);
 					}
-				} else {
+				}
+				else
+				{
 					write_data(pass_page->page_url, cursor, strlen(pass_page->page_url), out_frame);
 				}
 				write_data_str("\";\n");
@@ -5326,294 +6057,341 @@
 				write_data_str("var _AN_str_msg_ldap_pwd_expiring_hour3 = \"\";\n");
 				write_data_str("var _AN_str_msg_ldap_pwd_expiring_minute3 = \"\";\n");
 				write_data_str("var _AN_str_msg_ldap_pwd_expiring_second3 = \"\";\n");
-			} else {
-				if (element->multistep_switch == MULTSTEP_ON) {
-					int i =0;
-					for (i = 0; i < STEP_MAX; i++) {
-						if (element->multistepServer[i].id[0] == '\0') {
-							sprintf(str, "var _AN_enable_changepass%d = false;\n", i+1);
+			}
+			else
+			{
+				if (element->multistep_switch == MULTSTEP_ON)
+				{
+					int i = 0;
+					for (i = 0; i < STEP_MAX; i++)
+					{
+						if (element->multistepServer[i].id[0] == '\0')
+						{
+							sprintf(str, "var _AN_enable_changepass%d = false;\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_changepass%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_changepass%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_changepassurl%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_changepassurl%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
 							continue;
 						}
 						/* case localdb changepassword*/
-						if (element->multistepServer[i].type == TYPE_LOCALDB 
-							&& SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS)) {
-							sprintf(str, "var _AN_enable_changepass%d = true;\n", i+1);
+						if (element->multistepServer[i].type == TYPE_LOCALDB && SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS))
+						{
+							sprintf(str, "var _AN_enable_changepass%d = true;\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_changepass%d = \"%s(%s)\";\n", i+1, sec_language_get_and_unescape_msg(vsite->language, 338, &lang_str_len), ((struct server_ldb *)element->multistepServer[i].pointer)->disp);
+							sprintf(str, "var _AN_str_changepass%d = \"%s(%s)\";\n", i + 1, sec_language_get_and_unescape_msg(vsite->language, 338, &lang_str_len), ((struct server_ldb *)element->multistepServer[i].pointer)->disp);
 							write_data(str, cursor, strlen(str), out_frame);
-							
+
 							/* localdb default page */
-							if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-								sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localh/passchange\";\n", i+1);
-							} else {
-								sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localhost/passchange\";\n", i+1);
+							if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+							{
+								sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localh/passchange\";\n", i + 1);
+							}
+							else
+							{
+								sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localhost/passchange\";\n", i + 1);
 							}
 							write_data(str, cursor, strlen(str), out_frame);
-								
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i+1);
+
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-						} else if (element->multistepServer[i].type == TYPE_SMX) {
+						}
+						else if (element->multistepServer[i].type == TYPE_SMX)
+						{
 							/* case smx changepassword */
-							sprintf(str, "var _AN_enable_changepass%d = true;\n", i+1);
+							sprintf(str, "var _AN_enable_changepass%d = true;\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_changepass%d = \"%s(%s)\";\n", i+1, sec_language_get_and_unescape_msg(vsite->language, 338, &lang_str_len), ((struct server_smx *)element->multistepServer[i].pointer)->disp);
+							sprintf(str, "var _AN_str_changepass%d = \"%s(%s)\";\n", i + 1, sec_language_get_and_unescape_msg(vsite->language, 338, &lang_str_len), ((struct server_smx *)element->multistepServer[i].pointer)->disp);
 							write_data(str, cursor, strlen(str), out_frame);
-							if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-								sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localh/smx?server=%s\";\n", i+1, element->multistepServer[i].id);
-							} else {
-								sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localhost/smx?server=%s\";\n", i+1, element->multistepServer[i].id);
+							if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+							{
+								sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localh/smx?server=%s\";\n", i + 1, element->multistepServer[i].id);
+							}
+							else
+							{
+								sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localhost/smx?server=%s\";\n", i + 1, element->multistepServer[i].id);
 							}
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-						} else if (element->multistepServer[i].type == TYPE_LDAP) {
+						}
+						else if (element->multistepServer[i].type == TYPE_LDAP)
+						{
 							/* case ldap changepassword */
-							for (ldap_index = 0; ldap_index < SESSION_MAX_LDAP_HOST; ldap_index++) {
-								if (sec_session->ldap_pwd_policy[ldap_index].server_id[0] != 0 && 
-									strcasecmp(sec_session->ldap_pwd_policy[ldap_index].server_id, element->multistepServer[i].id) == 0) {
+							for (ldap_index = 0; ldap_index < SESSION_MAX_LDAP_HOST; ldap_index++)
+							{
+								if (sec_session->ldap_pwd_policy[ldap_index].server_id[0] != 0 &&
+									strcasecmp(sec_session->ldap_pwd_policy[ldap_index].server_id, element->multistepServer[i].id) == 0)
+								{
 									break;
 								}
 							}
-							if (ldap_index < SESSION_MAX_LDAP_HOST) {
-								time_to_expire_seconds_in_total = sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day * 86400
-																	+ sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour * 3600
-																	+ sec_session->ldap_pwd_policy[ldap_index].time_to_expire_minute * 60
-																	+ sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second;
-								if (time_to_expire_seconds_in_total > 0 && time_to_expire_seconds_in_total <= sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_time) {
+							if (ldap_index < SESSION_MAX_LDAP_HOST)
+							{
+								time_to_expire_seconds_in_total = sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day * 86400 + sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour * 3600 + sec_session->ldap_pwd_policy[ldap_index].time_to_expire_minute * 60 + sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second;
+								if (time_to_expire_seconds_in_total > 0 && time_to_expire_seconds_in_total <= sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_time)
+								{
 									sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_flag = 1;
 								}
-								if ((SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS_LDAP_WARNING) && sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_flag == 1)
-									|| SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS_LDAP)) {
-									sprintf(str, "var _AN_enable_changepass%d = true;\n", i+1);
+								if ((SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS_LDAP_WARNING) && sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_flag == 1) || SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS_LDAP))
+								{
+									sprintf(str, "var _AN_enable_changepass%d = true;\n", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
-									if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-										sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localh/ldappasschange?server=%s\";\n", i+1, element->multistepServer[i].id);
-									} else {
-										sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localhost/ldappasschange?server=%s\";\n", i+1, element->multistepServer[i].id);
+									if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+									{
+										sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localh/ldappasschange?server=%s\";\n", i + 1, element->multistepServer[i].id);
+									}
+									else
+									{
+										sprintf(str, "var _AN_changepassurl%d = \"/prx/000/http/localhost/ldappasschange?server=%s\";\n", i + 1, element->multistepServer[i].id);
 									}
 									write_data(str, cursor, strlen(str), out_frame);
-									sprintf(str, "var _AN_str_changepass%d = \"", i+1);
+									sprintf(str, "var _AN_str_changepass%d = \"", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
 									lang_string = sec_language_get_msg(vsite->language, 657);
 									language_unescape(lang_string);
 									/* display server descritpion */
 									lang_string = strreplace(lang_string, SERVER_ID, sec_session->ldap_pwd_policy[ldap_index].server_description, NULL, 0);
-									
-									if (vsite->input_enc == HTML2BINARY) {
+
+									if (vsite->input_enc == HTML2BINARY)
+									{
 										lang_string = strhtml2binary(lang_string, &lang_str_len);
 									}
 									memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 									lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 									write_data(&clang[0], cursor, lang_str_len, out_frame);
 									write_data_str("\";\n");
-								} else {
-									sprintf(str, "var _AN_enable_changepass%d = false;\n", i+1);
+								}
+								else
+								{
+									sprintf(str, "var _AN_enable_changepass%d = false;\n", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
-									sprintf(str, "var _AN_str_changepass%d = \"\";\n", i+1);
+									sprintf(str, "var _AN_str_changepass%d = \"\";\n", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
-									sprintf(str, "var _AN_changepassurl%d = \"\";\n", i+1);
+									sprintf(str, "var _AN_changepassurl%d = \"\";\n", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
 								}
 
-								if (time_to_expire_seconds_in_total > 0 && time_to_expire_seconds_in_total <= sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_time) {
-							
+								if (time_to_expire_seconds_in_total > 0 && time_to_expire_seconds_in_total <= sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_time)
+								{
+
 									/* "Your password for () will expire in" */
-									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"", i+1);
+									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
 									lang_string = sec_language_get_msg(vsite->language, 659);
 									language_unescape(lang_string);
 
 									/* display server descritpion */
 									lang_string = strreplace(lang_string, SERVER_ID, sec_session->ldap_pwd_policy[ldap_index].server_description, NULL, 0);
-									if (vsite->input_enc == HTML2BINARY) {
+									if (vsite->input_enc == HTML2BINARY)
+									{
 										lang_string = strhtml2binary(lang_string, &lang_str_len);
 									}
 									memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 									lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 									write_data(&clang[0], cursor, lang_str_len, out_frame);
 									write_data_str("\";\n");
-									
+
 									/* day */
-									if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day > 0) {
-										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"", i+1);
+									if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day > 0)
+									{
+										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"", i + 1);
 										write_data(str, cursor, strlen(str), out_frame);
 										/*if (vsite->message != NULL) {
 											lang_string = vsite->message;
 										} else {*/
-											lang_string = sec_language_get_msg(vsite->language, 660);
-											language_unescape(lang_string);
+										lang_string = sec_language_get_msg(vsite->language, 660);
+										language_unescape(lang_string);
 										//}
 										snprintf(time_to_expire_day, sizeof(time_to_expire_day), "%d", sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day);
 										lang_string = strreplace(lang_string, LDAP_PWD_EXPIRING_DAY_TAG, time_to_expire_day, NULL, 0);
-										if (vsite->input_enc == HTML2BINARY) {
+										if (vsite->input_enc == HTML2BINARY)
+										{
 											lang_string = strhtml2binary(lang_string, &lang_str_len);
 										}
 										memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 										lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 										write_data(&clang[0], cursor, lang_str_len, out_frame);
 										write_data_str("\";\n");
-									} else {
-										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i+1);
+									}
+									else
+									{
+										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i + 1);
 										write_data(str, cursor, strlen(str), out_frame);
 									}
 									/* hour */
-									if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour > 0 || sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day > 0) {
-										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"", i+1);
+									if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour > 0 || sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day > 0)
+									{
+										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"", i + 1);
 										write_data(str, cursor, strlen(str), out_frame);
 										/*if (vsite->message != NULL) {
 											lang_string = vsite->message;
 										} else {*/
-											lang_string = sec_language_get_msg(vsite->language, 661);
-											language_unescape(lang_string);
+										lang_string = sec_language_get_msg(vsite->language, 661);
+										language_unescape(lang_string);
 										//}
 										snprintf(time_to_expire_hour, sizeof(time_to_expire_hour), "%d", sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour);
 										lang_string = strreplace(lang_string, LDAP_PWD_EXPIRING_HOUR_TAG, time_to_expire_hour, NULL, 0);
-										if (vsite->input_enc == HTML2BINARY) {
+										if (vsite->input_enc == HTML2BINARY)
+										{
 											lang_string = strhtml2binary(lang_string, &lang_str_len);
 										}
 										memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 										lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 										write_data(&clang[0], cursor, lang_str_len, out_frame);
 										write_data_str("\";\n");
-									} else {
-										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i+1);
+									}
+									else
+									{
+										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i + 1);
 										write_data(str, cursor, strlen(str), out_frame);
 									}
 									/* minute */
 									if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_minute > 0 || sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day > 0 ||
-										sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour > 0) {
-										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"", i+1);
+										sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour > 0)
+									{
+										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"", i + 1);
 										write_data(str, cursor, strlen(str), out_frame);
 										/*if (vsite->message != NULL) {
 											lang_string = vsite->message;
 										} else {*/
-											lang_string = sec_language_get_msg(vsite->language, 662);
-											language_unescape(lang_string);
+										lang_string = sec_language_get_msg(vsite->language, 662);
+										language_unescape(lang_string);
 										//}
 										snprintf(time_to_expire_minute, sizeof(time_to_expire_minute), "%d", sec_session->ldap_pwd_policy[ldap_index].time_to_expire_minute);
 										lang_string = strreplace(lang_string, LDAP_PWD_EXPIRING_MINUTE_TAG, time_to_expire_minute, NULL, 0);
-										if (vsite->input_enc == HTML2BINARY) {
+										if (vsite->input_enc == HTML2BINARY)
+										{
 											lang_string = strhtml2binary(lang_string, &lang_str_len);
 										}
 										memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 										lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 										write_data(&clang[0], cursor, lang_str_len, out_frame);
 										write_data_str("\";\n");
-									} else {
-										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i+1);
+									}
+									else
+									{
+										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i + 1);
 										write_data(str, cursor, strlen(str), out_frame);
 									}
 
 									/* second */
-									if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second > 0) {
-										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"", i+1);
+									if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second > 0)
+									{
+										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"", i + 1);
 										write_data(str, cursor, strlen(str), out_frame);
 										/*if (vsite->message != NULL) {
 											lang_string = vsite->message;
 										} else {*/
-											lang_string = sec_language_get_msg(vsite->language, 663);
-											language_unescape(lang_string);
+										lang_string = sec_language_get_msg(vsite->language, 663);
+										language_unescape(lang_string);
 										//}
 										snprintf(time_to_expire_second, sizeof(time_to_expire_second), "%d", sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second);
 										lang_string = strreplace(lang_string, LDAP_PWD_EXPIRING_SECOND_TAG, time_to_expire_second, NULL, 0);
-										if (vsite->input_enc == HTML2BINARY) {
+										if (vsite->input_enc == HTML2BINARY)
+										{
 											lang_string = strhtml2binary(lang_string, &lang_str_len);
 										}
 										memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 										lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 										write_data(&clang[0], cursor, lang_str_len, out_frame);
 										write_data_str("\";\n");
-									} else {
-										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i+1);
+									}
+									else
+									{
+										sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i + 1);
 										write_data(str, cursor, strlen(str), out_frame);
 									}
-									
-								} else {
-									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i+1);
+								}
+								else
+								{
+									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
-									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i+1);
+									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
-									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i+1);
+									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
-									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i+1);
+									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
-									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i+1);
+									sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i + 1);
 									write_data(str, cursor, strlen(str), out_frame);
 								}
 								sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day = 0;
 								sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour = 0;
 								sec_session->ldap_pwd_policy[ldap_index].time_to_expire_minute = 0;
 								sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second = 0;
-							} else {
-								sprintf(str, "var _AN_enable_changepass%d = false;\n", i+1);
+							}
+							else
+							{
+								sprintf(str, "var _AN_enable_changepass%d = false;\n", i + 1);
 								write_data(str, cursor, strlen(str), out_frame);
-								sprintf(str, "var _AN_str_changepass%d = \"\";\n", i+1);
+								sprintf(str, "var _AN_str_changepass%d = \"\";\n", i + 1);
 								write_data(str, cursor, strlen(str), out_frame);
-								sprintf(str, "var _AN_changepassurl%d = \"\";\n", i+1);
+								sprintf(str, "var _AN_changepassurl%d = \"\";\n", i + 1);
 								write_data(str, cursor, strlen(str), out_frame);
-								sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i+1);
+								sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i + 1);
 								write_data(str, cursor, strlen(str), out_frame);
-								sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i+1);
+								sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i + 1);
 								write_data(str, cursor, strlen(str), out_frame);
-								sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i+1);
+								sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i + 1);
 								write_data(str, cursor, strlen(str), out_frame);
-								sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i+1);
+								sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i + 1);
 								write_data(str, cursor, strlen(str), out_frame);
-								sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i+1);
+								sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i + 1);
 								write_data(str, cursor, strlen(str), out_frame);
 							}
-						} else {
+						}
+						else
+						{
 							/* other case, no need to change password*/
-							sprintf(str, "var _AN_enable_changepass%d = false;\n", i+1);
+							sprintf(str, "var _AN_enable_changepass%d = false;\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_changepass%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_changepass%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_changepassurl%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_changepassurl%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_title%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_day%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_hour%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_minute%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
-							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i+1);
+							sprintf(str, "var _AN_str_msg_ldap_pwd_expiring_second%d = \"\";\n", i + 1);
 							write_data(str, cursor, strlen(str), out_frame);
 						}
 					}
-				} else {
+				}
+				else
+				{
 					/* multi step off */
 					write_data_str("var _AN_changepassurl2 = \"\";\n");
 					write_data_str("var _AN_enable_changepass2 = false;\n");
@@ -5632,32 +6410,40 @@
 					write_data_str("var _AN_str_msg_ldap_pwd_expiring_minute3 = \"\";\n");
 					write_data_str("var _AN_str_msg_ldap_pwd_expiring_second3 = \"\";\n");
 					/* case localdb changepassword*/
-					if (element->authenticateServer.type == TYPE_LOCALDB 
-						&& SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS)) {
+					if (element->authenticateServer.type == TYPE_LOCALDB && SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS))
+					{
 						write_data_str("var _AN_enable_changepass1 = true;\n");
 						sprintf(str, "var _AN_str_changepass1 = \"%s\";\n", sec_language_get_and_unescape_msg(vsite->language, 338, &lang_str_len));
 						write_data(str, cursor, strlen(str), out_frame);
 						/* localdb default page */
-						if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+						if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+						{
 							sprintf(str, "var _AN_changepassurl1 = \"/prx/000/http/localh/passchange\";\n");
-						} else {
+						}
+						else
+						{
 							sprintf(str, "var _AN_changepassurl1 = \"/prx/000/http/localhost/passchange\";\n");
 						}
 						write_data(str, cursor, strlen(str), out_frame);
-							
+
 						write_data_str("var _AN_str_msg_ldap_pwd_expiring_title1 = \"\";\n");
 						write_data_str("var _AN_str_msg_ldap_pwd_expiring_day1 = \"\";\n");
 						write_data_str("var _AN_str_msg_ldap_pwd_expiring_hour1 = \"\";\n");
 						write_data_str("var _AN_str_msg_ldap_pwd_expiring_minute1 = \"\";\n");
 						write_data_str("var _AN_str_msg_ldap_pwd_expiring_second1 = \"\";\n");
-					} else if (element->authenticateServer.type == TYPE_SMX) {
+					}
+					else if (element->authenticateServer.type == TYPE_SMX)
+					{
 						/* case smx changepassword */
 						write_data_str("var _AN_enable_changepass1 = true;\n");
 						sprintf(str, "var _AN_str_changepass1 = \"%s\";\n", sec_language_get_and_unescape_msg(vsite->language, 338, &lang_str_len));
 						write_data(str, cursor, strlen(str), out_frame);
-						if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+						if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+						{
 							sprintf(str, "var _AN_changepassurl1 = \"/prx/000/http/localh/smx?server=%s\";\n", element->authenticateServer.id);
-						} else {
+						}
+						else
+						{
 							sprintf(str, "var _AN_changepassurl1 = \"/prx/000/http/localhost/smx?server=%s\";\n", element->authenticateServer.id);
 						}
 						write_data(str, cursor, strlen(str), out_frame);
@@ -5666,145 +6452,173 @@
 						write_data_str("var _AN_str_msg_ldap_pwd_expiring_hour1 = \"\";\n");
 						write_data_str("var _AN_str_msg_ldap_pwd_expiring_minute1 = \"\";\n");
 						write_data_str("var _AN_str_msg_ldap_pwd_expiring_second1 = \"\";\n");
-					} else if (element->authenticateServer.type == TYPE_LDAP) {
+					}
+					else if (element->authenticateServer.type == TYPE_LDAP)
+					{
 						/* case ldap changepassword */
-						for (ldap_index = 0; ldap_index < SESSION_MAX_LDAP_HOST; ldap_index++) {
-							if (sec_session->ldap_pwd_policy[ldap_index].server_id[0] != 0 && 
-								strcasecmp(sec_session->ldap_pwd_policy[ldap_index].server_id, element->authenticateServer.id) == 0) {
+						for (ldap_index = 0; ldap_index < SESSION_MAX_LDAP_HOST; ldap_index++)
+						{
+							if (sec_session->ldap_pwd_policy[ldap_index].server_id[0] != 0 &&
+								strcasecmp(sec_session->ldap_pwd_policy[ldap_index].server_id, element->authenticateServer.id) == 0)
+							{
 								break;
 							}
 						}
-						if (ldap_index < SESSION_MAX_LDAP_HOST) {
-							time_to_expire_seconds_in_total = sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day * 86400
-																+ sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour * 3600
-																+ sec_session->ldap_pwd_policy[ldap_index].time_to_expire_minute * 60
-																+ sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second;
-							if (time_to_expire_seconds_in_total > 0 && time_to_expire_seconds_in_total <= sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_time) {
+						if (ldap_index < SESSION_MAX_LDAP_HOST)
+						{
+							time_to_expire_seconds_in_total = sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day * 86400 + sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour * 3600 + sec_session->ldap_pwd_policy[ldap_index].time_to_expire_minute * 60 + sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second;
+							if (time_to_expire_seconds_in_total > 0 && time_to_expire_seconds_in_total <= sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_time)
+							{
 								sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_flag = 1;
 							}
-							if ((SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS_LDAP_WARNING) && sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_flag == 1)
-								|| SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS_LDAP)) {
+							if ((SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS_LDAP_WARNING) && sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_flag == 1) || SEC_ISSET(vsite->common_flags, (uint64_t)SEC_CHANGE_PASS_LDAP))
+							{
 								write_data_str("var _AN_enable_changepass1 = true;\n");
-								if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+								if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+								{
 									sprintf(str, "var _AN_changepassurl1 = \"/prx/000/http/localh/ldappasschange?server=%s\";\n", element->authenticateServer.id);
-								} else {
+								}
+								else
+								{
 									sprintf(str, "var _AN_changepassurl1 = \"/prx/000/http/localhost/ldappasschange?server=%s\";\n", element->authenticateServer.id);
 								}
 								write_data(str, cursor, strlen(str), out_frame);
 								sprintf(str, "var _AN_str_changepass1 = \"%s\";\n", sec_language_get_and_unescape_msg(vsite->language, 338, &lang_str_len));
 								write_data(str, cursor, strlen(str), out_frame);
-							}  else {
+							}
+							else
+							{
 								write_data_str("var _AN_changepassurl1 = \"\";\n");
 								write_data_str("var _AN_enable_changepass1 = false;\n");
 								write_data_str("var _AN_str_changepass1 = \"\";\n");
 							}
-							if (time_to_expire_seconds_in_total > 0 && time_to_expire_seconds_in_total <= sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_time) {
+							if (time_to_expire_seconds_in_total > 0 && time_to_expire_seconds_in_total <= sec_session->ldap_pwd_policy[ldap_index].pwd_expire_warning_time)
+							{
 								/* "Your password will expire in" */
 								write_data_str("var _AN_str_msg_ldap_pwd_expiring_title1 = \"");
 								lang_string = sec_language_get_and_unescape_msg(vsite->language, 658, &lang_str_len);
 								write_data(lang_string, cursor, lang_str_len, out_frame);
 								write_data_str("\";\n");
 								/* day */
-								if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day > 0) {
+								if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day > 0)
+								{
 									write_data_str("var _AN_str_msg_ldap_pwd_expiring_day1 = \"");
 									/*if (vsite->message != NULL) {
 										lang_string = vsite->message;
 									} else {*/
-										lang_string = sec_language_get_msg(vsite->language, 660);
-										language_unescape(lang_string);
+									lang_string = sec_language_get_msg(vsite->language, 660);
+									language_unescape(lang_string);
 									//}
 									snprintf(time_to_expire_day, sizeof(time_to_expire_day), "%d", sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day);
 									lang_string = strreplace(lang_string, LDAP_PWD_EXPIRING_DAY_TAG, time_to_expire_day, NULL, 0);
-									if (vsite->input_enc == HTML2BINARY) {
+									if (vsite->input_enc == HTML2BINARY)
+									{
 										lang_string = strhtml2binary(lang_string, &lang_str_len);
 									}
 									memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 									lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 									write_data(&clang[0], cursor, lang_str_len, out_frame);
 									write_data_str("\";\n");
-								} else {
+								}
+								else
+								{
 									write_data_str("var _AN_str_msg_ldap_pwd_expiring_day1 = \"\";\n");
 								}
 								/* hour */
-								if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour > 0 || sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day > 0) {
+								if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour > 0 || sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day > 0)
+								{
 									write_data_str("var _AN_str_msg_ldap_pwd_expiring_hour1 = \"");
 									/*if (vsite->message != NULL) {
 										lang_string = vsite->message;
 									} else {*/
-										lang_string = sec_language_get_msg(vsite->language, 661);
-										language_unescape(lang_string);
+									lang_string = sec_language_get_msg(vsite->language, 661);
+									language_unescape(lang_string);
 									//}
 									snprintf(time_to_expire_hour, sizeof(time_to_expire_hour), "%d", sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour);
 									lang_string = strreplace(lang_string, LDAP_PWD_EXPIRING_HOUR_TAG, time_to_expire_hour, NULL, 0);
-									if (vsite->input_enc == HTML2BINARY) {
+									if (vsite->input_enc == HTML2BINARY)
+									{
 										lang_string = strhtml2binary(lang_string, &lang_str_len);
 									}
 									memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 									lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 									write_data(&clang[0], cursor, lang_str_len, out_frame);
 									write_data_str("\";\n");
-								} else {
+								}
+								else
+								{
 									write_data_str("var _AN_str_msg_ldap_pwd_expiring_hour1 = \"\";\n");
 								}
 								/* minute */
 								if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_minute > 0 || sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day > 0 ||
-									sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour > 0) {
+									sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour > 0)
+								{
 									write_data_str("var _AN_str_msg_ldap_pwd_expiring_minute1 = \"");
 									/*if (vsite->message != NULL) {
 										lang_string = vsite->message;
 									} else {*/
-										lang_string = sec_language_get_msg(vsite->language, 662);
-										language_unescape(lang_string);
+									lang_string = sec_language_get_msg(vsite->language, 662);
+									language_unescape(lang_string);
 									//}
 									snprintf(time_to_expire_minute, sizeof(time_to_expire_minute), "%d", sec_session->ldap_pwd_policy[ldap_index].time_to_expire_minute);
 									lang_string = strreplace(lang_string, LDAP_PWD_EXPIRING_MINUTE_TAG, time_to_expire_minute, NULL, 0);
-									if (vsite->input_enc == HTML2BINARY) {
+									if (vsite->input_enc == HTML2BINARY)
+									{
 										lang_string = strhtml2binary(lang_string, &lang_str_len);
 									}
 									memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 									lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 									write_data(&clang[0], cursor, lang_str_len, out_frame);
 									write_data_str("\";\n");
-								} else {
+								}
+								else
+								{
 									write_data_str("var _AN_str_msg_ldap_pwd_expiring_minute1 = \"\";\n");
 								}
 
 								/* second */
-								if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second > 0) {
+								if (sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second > 0)
+								{
 									write_data_str("var _AN_str_msg_ldap_pwd_expiring_second1 = \"");
 									/*if (vsite->message != NULL) {
 										lang_string = vsite->message;
 									} else {*/
-										lang_string = sec_language_get_msg(vsite->language, 663);
-										language_unescape(lang_string);
+									lang_string = sec_language_get_msg(vsite->language, 663);
+									language_unescape(lang_string);
 									//}
 									snprintf(time_to_expire_second, sizeof(time_to_expire_second), "%d", sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second);
 									lang_string = strreplace(lang_string, LDAP_PWD_EXPIRING_SECOND_TAG, time_to_expire_second, NULL, 0);
-									if (vsite->input_enc == HTML2BINARY) {
+									if (vsite->input_enc == HTML2BINARY)
+									{
 										lang_string = strhtml2binary(lang_string, &lang_str_len);
 									}
 									memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 									lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 									write_data(&clang[0], cursor, lang_str_len, out_frame);
 									write_data_str("\";\n");
-								} else {
+								}
+								else
+								{
 									write_data_str("var _AN_str_msg_ldap_pwd_expiring_second1 = \"\";\n");
 								}
-							} else {
+							}
+							else
+							{
 								write_data_str("var _AN_str_msg_ldap_pwd_expiring_title1 = \"\";\n");
 								write_data_str("var _AN_str_msg_ldap_pwd_expiring_day1 = \"\";\n");
 								write_data_str("var _AN_str_msg_ldap_pwd_expiring_hour1 = \"\";\n");
 								write_data_str("var _AN_str_msg_ldap_pwd_expiring_minute1 = \"\";\n");
 								write_data_str("var _AN_str_msg_ldap_pwd_expiring_second1 = \"\";\n");
 							}
-								
+
 							sec_session->ldap_pwd_policy[ldap_index].time_to_expire_day = 0;
 							sec_session->ldap_pwd_policy[ldap_index].time_to_expire_hour = 0;
 							sec_session->ldap_pwd_policy[ldap_index].time_to_expire_minute = 0;
 							sec_session->ldap_pwd_policy[ldap_index].time_to_expire_second = 0;
 						}
-						
-					} else {
+					}
+					else
+					{
 						write_data_str("var _AN_changepassurl1 = \"\";\n");
 						write_data_str("var _AN_enable_changepass1 = false;\n");
 						write_data_str("var _AN_str_changepass1 = \"\";\n");
@@ -5816,7 +6630,9 @@
 					}
 				}
 			}
-		} else {
+		}
+		else
+		{
 			write_data_str("var _AN_changepassurl1 = \"\";\n");
 			write_data_str("var _AN_enable_changepass1 = false;\n");
 			write_data_str("var _AN_str_changepass1 = \"\";\n");
@@ -5841,29 +6657,36 @@
 			write_data_str("var _AN_str_msg_ldap_pwd_expiring_hour3 = \"\";\n");
 			write_data_str("var _AN_str_msg_ldap_pwd_expiring_minute3 = \"\";\n");
 			write_data_str("var _AN_str_msg_ldap_pwd_expiring_second3 = \"\";\n");
-		}		
+		}
 	}
 
-	if (SEC_ISSET(vsite->common_flags, SEC_FILESHARE_CIFS)) {
+	if (SEC_ISSET(vsite->common_flags, SEC_FILESHARE_CIFS))
+	{
 		lang_string = "var _AN_enable_fileshare = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_enable_fileshare = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
-        if (SEC_ISSET(vsite->common_flags, SEC_WRM)) {
-                lang_string = "var _AN_enable_rewrite = true;\n";
-        } else {
-                lang_string = "var _AN_enable_rewrite = false;\n";
-        }
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	if (SEC_ISSET(vsite->common_flags, SEC_WRM))
+	{
+		lang_string = "var _AN_enable_rewrite = true;\n";
+	}
+	else
+	{
+		lang_string = "var _AN_enable_rewrite = false;\n";
+	}
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	write_data_str("var _AN_enable_vpn = ");
 	lang_string = "false";
-	if( vsite->vvs != NULL && vsite->vvs->vv_state == 1 &&
-			/* CLI 'vpn on', then check the vpn netpool according to the role */
-			vpn_get_netpool(vsite, sec_session->vpn_netpools) != NULL && 
-			HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_VPN) ) {
+	if (vsite->vvs != NULL && vsite->vvs->vv_state == 1 &&
+		/* CLI 'vpn on', then check the vpn netpool according to the role */
+		vpn_get_netpool(vsite, sec_session->vpn_netpools) != NULL &&
+		HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_VPN))
+	{
 		lang_string = "true";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
@@ -5871,45 +6694,47 @@
 
 	write_data_str("var _AN_enable_l2tp = ");
 	lang_string = "false";
-	if(SEC_ISSET(vsite->common_flags, SEC_IPSEC_ENABLE)) {
+	if (SEC_ISSET(vsite->common_flags, SEC_IPSEC_ENABLE))
+	{
 		lang_string = "true";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	write_data_str(";\n");
-	
+
 	write_data_str("var _AN_user = \"");
-	char * uname = malloc(strlen(sec_session->username) * 5 + 1);
- 	if(uname != NULL) {
- 		convert_char_for_http_show(sec_session->username, uname);
+	char *uname = malloc(strlen(sec_session->username) * 5 + 1);
+	if (uname != NULL)
+	{
+		convert_char_for_http_show(sec_session->username, uname);
 	}
 	lang_string = uname ? uname : sec_session->username;
-	if(lang_string)
+	if (lang_string)
 		lang_str_len = strlen(lang_string);
 	else
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-     				"user name lang_string is NULL");
+						"user name lang_string is NULL");
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	if(uname != NULL) {
+	if (uname != NULL)
+	{
 		free(uname);
 		uname = NULL;
 	}
 
-
 	write_data_str("var _AN_str_logout = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 330, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_bookmark_links = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 761, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_add_bookmark = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 762, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 330, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_bookmark_links = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 761, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_add_bookmark = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 762, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_dd = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 745, &lang_str_len);
@@ -5921,146 +6746,149 @@
 	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_help = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 329, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_add = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 775, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_edit = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 776, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_delete = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 777, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_del_bookmark = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 778, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_edit_bookmark = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 779, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_delete_bookmark = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 780, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn_disconn = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 781, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn_pls = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 782, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn_install = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 783, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn_download = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 784, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn_reload = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 785, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn_detecting = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 786, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn_disconnect = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 787, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn1 = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 788, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn2 = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 789, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn3 = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 790, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn4 = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 791, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn5 = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 792, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn6 = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 793, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn7 = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 794, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_vpn_if = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 795, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_dd_vdi = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 796, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_dd_uname = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 797, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_dd_pwd = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 798, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_dd_ca = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 799, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_dd_powerup = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 800, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 329, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_add = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 775, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_edit = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 776, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_delete = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 777, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_del_bookmark = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 778, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_edit_bookmark = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 779, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_delete_bookmark = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 780, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn_disconn = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 781, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn_pls = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 782, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn_install = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 783, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn_download = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 784, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn_reload = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 785, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn_detecting = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 786, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn_disconnect = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 787, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn1 = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 788, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn2 = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 789, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn3 = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 790, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn4 = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 791, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn5 = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 792, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn6 = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 793, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn7 = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 794, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_vpn_if = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 795, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_dd_vdi = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 796, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_dd_uname = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 797, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_dd_pwd = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 798, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_dd_ca = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 799, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_dd_powerup = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 800, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
 	/* title in page */
 	write_data_str("var _AN_str_pagetitle = \"");
-	if (vsite->title != NULL) {
+	if (vsite->title != NULL)
+	{
 		lang_string = vsite->title;
-	} else {
-        	lang_string = sec_language_get_and_unescape_msg(vsite->language, 333, &lang_str_len);
+	}
+	else
+	{
+		lang_string = sec_language_get_and_unescape_msg(vsite->language, 333, &lang_str_len);
 	}
 	memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
 	lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
@@ -6069,20 +6897,25 @@
 
 	/* for portal message welcome */
 	write_data_str("var _AN_str_msg_welcome = \"");
-	if (vsite->message != NULL) {
+	if (vsite->message != NULL)
+	{
 		lang_string = vsite->message;
-	} else {
-        	lang_string = sec_language_get_msg(vsite->language, 343);
+	}
+	else
+	{
+		lang_string = sec_language_get_msg(vsite->language, 343);
 		language_unescape(lang_string);
 	}
 
 	uname = malloc(strlen(sec_session->username) * 5 + 1);
-	if(uname != NULL) {
+	if (uname != NULL)
+	{
 		convert_char_for_http_show(sec_session->username, uname);
 	}
 	lang_string = strreplace(lang_string, USER_TAG, uname ? uname : sec_session->username, tmp_replace_buffer, 4096);
 	lang_string = strreplace(lang_string, PRODUCT_TAG, ARRAY_PRODINFO_NAME, NULL, 0);
-	if (vsite->input_enc == HTML2BINARY) {
+	if (vsite->input_enc == HTML2BINARY)
+	{
 		lang_string = strhtml2binary(lang_string, &lang_str_len);
 	}
 	/*
@@ -6092,105 +6925,118 @@
 	*/
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	write_data_str("\";\n");
-	if(uname != NULL) {
+	if (uname != NULL)
+	{
 		free(uname);
 		uname = NULL;
 	}
 
 	write_data_str("var _AN_str_title_welcome = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 333, &lang_str_len);
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 333, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_weblinks = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 334, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("var _AN_str_weblinks = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 334, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_userresourcelinks = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 760, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 760, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_networkresource = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 337, &lang_str_len);
+	write_data_str("var _AN_str_networkresource = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 337, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("\";\n");
 	write_data_str("var _AN_str_startvpn = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 371, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_filelinks = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 335, &lang_str_len);
+	write_data_str("var _AN_str_filelinks = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 335, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_browse = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 345, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_go = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 121, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_browse = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 345, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_go = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 121, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_noweblinks = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 347, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("var _AN_str_noweblinks = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 347, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_nofilelinks = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 132, &lang_str_len);
+	write_data_str("var _AN_str_nofilelinks = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 132, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("\";\n");
 	lang_string = "var _AN_str_nonetworkresource = \"No network resources\";\n";
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	/* user resource links */
 	sec_generate_userresourcelinks_response(sec_data, out_frame, cursor);
 	/* web links */
-	if (HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_HTTP)) {
+	if (HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_HTTP))
+	{
 		sec_generate_weblinks_response(sec_data, out_frame, cursor);
 	}
 	/* fileshare links */
-	if (HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_FILE) && 
-			SEC_ISSET(vsite->common_flags, SEC_FILESHARE_CIFS)) {
+	if (HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_FILE) &&
+		SEC_ISSET(vsite->common_flags, SEC_FILESHARE_CIFS))
+	{
 		sec_generate_filelinks_response(sec_data, out_frame, cursor);
 	}
 	/* network resource list */
-	if (HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_VPN)) {
+	if (HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_VPN))
+	{
 		sec_generate_networkresource_response(sec_data, out_frame, cursor);
 	}
 
 	netpool_flags = vpn_get_netpool_flags(vsite, sec_session->vpn_netpools);
-	if ((netpool_flags & VPN_NETPOOL_JAVA) != 0) {
+	if ((netpool_flags & VPN_NETPOOL_JAVA) != 0)
+	{
 		lang_string = "var _AN_activex_client = 0;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 		lang_string = "var _AN_java_client = 1;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_activex_client = 1;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 		lang_string = "var _AN_java_client = 0;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	}
 
-	if ((netpool_flags & VPN_NETPOOL_AUTOSWITH) != 0) {
+	if ((netpool_flags & VPN_NETPOOL_AUTOSWITH) != 0)
+	{
 		lang_string = "var _AN_autoswitch = 1;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_autoswitch = 0;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	}
-	
-        lang_string = "var _AN_auto = 0;\n";
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
-        if ((netpool_flags & VPN_NETPOOL_AUTOLAUNCH) != 0) {
+	lang_string = "var _AN_auto = 0;\n";
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
+
+	if ((netpool_flags & VPN_NETPOOL_AUTOLAUNCH) != 0)
+	{
 		lang_string = "var _AN_autolaunch_enable = 1;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_autolaunch_enable = 0;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	}
@@ -6206,8 +7052,8 @@
 	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_portallanguage = \"");
- 	lang_string = sec_portal_language_id_to_name(vsite->language);
- 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	lang_string = sec_portal_language_id_to_name(vsite->language);
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_localcheck_errmsg = \"");
@@ -6215,31 +7061,31 @@
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
 
-	//Your computer does not appear to have a Java Virtual Machine installed
+	// Your computer does not appear to have a Java Virtual Machine installed
 	write_data_str("var _AN_str_fail_needJVM = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 615, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	     
-	//Failed to installJava component
+
+	// Failed to installJava component
 	write_data_str("var _AN_str_fail_insJAVA = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 616, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	     
-	//ActiveX is enabled for VPN initiation and the adminstrator does not allow to switch to Java component
+
+	// ActiveX is enabled for VPN initiation and the adminstrator does not allow to switch to Java component
 	write_data_str("var _AN_str_fail_enActiveX = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 617, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	     
-	//Failed to initiate VPN Java component
+
+	// Failed to initiate VPN Java component
 	write_data_str("var _AN_str_fail_initJAVA = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 618, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	     
-	//Thisfeature is not supported with Windows 98 or Windows Me
+
+	// Thisfeature is not supported with Windows 98 or Windows Me
 	write_data_str("var _AN_str_fail_Win98me = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 619, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
@@ -6255,7 +7101,7 @@
 
 	/*
 	lang_string = "var _AN_file_list = [ ];\n";
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
+		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	*/
 #undef write_data_str
 	return 1;
@@ -6268,9 +7114,10 @@
 	uint8_t *cursor = NULL;
 
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
-	        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_login_js_response");
-	        return SEC_FAIL;
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_login_js_response");
+		return SEC_FAIL;
 	}
 	cursor = in_frame->f_data;
 	in_frame->f_datalen = 0;
@@ -6279,14 +7126,17 @@
 	sec_generate_welcome_js_response(sec_data, &out_frame, &cursor);
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-	                0, NULL, NULL,
-	                "text/javascript", NULL, sec_data,
-	                NULL, 0, 0);
-	if (sec_data->response == NULL) {
+															0, NULL, NULL,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing ai welcome js response fail");
 		parser_frame_chain_free(in_frame);
 		return SEC_FAIL;
-	} else {
+	}
+	else
+	{
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 	}
 
@@ -6306,70 +7156,80 @@
 	char unescape_sso_url[SEC_MAX_URL_LEN + 1] = {0};
 	int32_t url_len = 0;
 	char tmp_post_url[HOST_MAX_LENGTH + SEC_MAX_URL_LEN + 16]; /* http(s)://host:port/url */
-    char * tmp_url_p;
-	char *url_type;/* web, quicklink or innerlink */
+	char *tmp_url_p;
+	char *url_type; /* web, quicklink or innerlink */
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *sec_session = sec_data->session;
 
-	struct sso_post_list *sso_queue_p  = &vsite->sso_post_rules.queue;
-	patricia_tree_t *sso_tree_p = &vsite->sso_post_rules.tree;;
-    patricia_node_t *patr_node_p;
-    sso_post_rule_t *cur_rule_p;
-	char sso_post_key[HOST_MAX_LENGTH + SEC_MAX_URL_LEN + 2];/* the max length = hostname + '/' + url */
+	struct sso_post_list *sso_queue_p = &vsite->sso_post_rules.queue;
+	patricia_tree_t *sso_tree_p = &vsite->sso_post_rules.tree;
+	;
+	patricia_node_t *patr_node_p;
+	sso_post_rule_t *cur_rule_p;
+	char sso_post_key[HOST_MAX_LENGTH + SEC_MAX_URL_LEN + 2]; /* the max length = hostname + '/' + url */
 
 #define HTTP "http"
 #define HTTPS "https"
 
-
-
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
-	        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in sec_generate_sso_response");
-	        return SEC_FAIL;
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in sec_generate_sso_response");
+		return SEC_FAIL;
 	}
 	cursor = in_frame->f_data;
 	in_frame->f_datalen = 0;
 	out_frame = in_frame;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing sso.html,vsite is null");
 		return SEC_FAIL;
 	}
 
 	/* validate & parse query string */
-	if (sec_data->req_parser_info.url_host.url_len > SEC_MAX_URL_LEN) {
+	if (sec_data->req_parser_info.url_host.url_len > SEC_MAX_URL_LEN)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "url is too long.");
 		return SEC_FAIL;
 	}
 
-
-	/* check whether should send HardwareID when doing sso post */	
-	if (strstr(sec_data->req_parser_info.url_host.url_p, "&hwid_str=") != 0) {
+	/* check whether should send HardwareID when doing sso post */
+	if (strstr(sec_data->req_parser_info.url_host.url_p, "&hwid_str=") != 0)
+	{
 		sendHWID = 1;
-	} else {
+	}
+	else
+	{
 		sendHWID = 0;
 	}
 
 	if (strstr(sec_data->req_parser_info.url_host.url_p, "?ssourl=") != NULL &&
-		strstr(sec_data->req_parser_info.url_host.url_p, "&format=") != NULL) {
+		strstr(sec_data->req_parser_info.url_host.url_p, "&format=") != NULL)
+	{
 		char *str1, *str2, *token, *subtoken;
 		char *saveptr1, *saveptr2;
-		int32_t j,k;
+		int32_t j, k;
 
-		for (j = 1, str1 = sec_data->req_parser_info.url_host.url_p; ; j++, str1 = NULL) {
+		for (j = 1, str1 = sec_data->req_parser_info.url_host.url_p;; j++, str1 = NULL)
+		{
 			token = strtok_r(str1, "?& ", &saveptr1);
 			if (token == NULL)
 				break;
 
-			for (k=1, str2 = token; ; k++, str2 = NULL) {
+			for (k = 1, str2 = token;; k++, str2 = NULL)
+			{
 				subtoken = strtok_r(str2, "=", &saveptr2);
 				if (subtoken == NULL)
 					break;
-				if(j == 2 && k ==2)sso_url = subtoken;
-				if(j == 3 && k ==2){
+				if (j == 2 && k == 2)
+					sso_url = subtoken;
+				if (j == 3 && k == 2)
+				{
 					url_type = subtoken;
 				}
-				if(j == 4 && k ==2){
+				if (j == 4 && k == 2)
+				{
 					hwid_str = subtoken;
 					break;
 				}
@@ -6378,61 +7238,79 @@
 		unescape_string(sso_url, strlen(sso_url), unescape_sso_url, &url_len, SEC_MAX_URL_LEN);
 
 		/* check sso config */
-		if(vsite->sso_post_rules.num_rules > 0) {
-			if(strncasecmp("web", url_type, strlen("web")) == 0) {//WRM
+		if (vsite->sso_post_rules.num_rules > 0)
+		{
+			if (strncasecmp("web", url_type, strlen("web")) == 0)
+			{ // WRM
 				char *scheme = NULL;
-				if(strncasecmp(HTTPS, unescape_sso_url + strlen("/prx/000/"), strlen(HTTPS)) == 0) {
-						scheme = HTTPS;
-				} else {
-						scheme = HTTP;
+				if (strncasecmp(HTTPS, unescape_sso_url + strlen("/prx/000/"), strlen(HTTPS)) == 0)
+				{
+					scheme = HTTPS;
+				}
+				else
+				{
+					scheme = HTTP;
 				}
 				bcopy(strstr(unescape_sso_url, scheme) + strlen(scheme) + 1, sso_post_key, url_len);
-				if (sso_post_key[url_len - 1] == ' ') {
+				if (sso_post_key[url_len - 1] == ' ')
+				{
 					sso_post_key[url_len - 1] = '\0';
-				} else {
+				}
+				else
+				{
 					sso_post_key[url_len] = '\0';
 				}
 				patr_node_p = patricia_insearch(sso_tree_p, sso_post_key,
-							strlen(sso_post_key), PATRICIA_MATCH_EXACT);
-				if (patr_node_p != NULL) {/* hit sso config */
-					int  encoded_url_len = 0;
-					char* encoded_url = NULL;
+												strlen(sso_post_key), PATRICIA_MATCH_EXACT);
+				if (patr_node_p != NULL)
+				{ /* hit sso config */
+					int encoded_url_len = 0;
+					char *encoded_url = NULL;
 					hitSSO = 1;
-					
+
 					/* found the URL in the vsite SSO post configuration */
 					cur_rule_p = (sso_post_rule_t *)patr_node_p->data;
-					if (strlen(cur_rule_p->post_url) != 0) {
-									
+					if (strlen(cur_rule_p->post_url) != 0)
+					{
+
 						tmp_url_p = cur_rule_p->post_url;
-					} else {
+					}
+					else
+					{
 						tmp_url_p = cur_rule_p->login_url;
 					}
-					if (tmp_url_p[0] == '/') {
+					if (tmp_url_p[0] == '/')
+					{
 						tmp_url_p++;
 					}
-					if (strlen(cur_rule_p->post_host) != 0) {
+					if (strlen(cur_rule_p->post_host) != 0)
+					{
 						url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s://%s/%s", scheme, cur_rule_p->post_host, tmp_url_p);
-					} else {
+					}
+					else
+					{
 						url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s://%s/%s", scheme, cur_rule_p->hostname, tmp_url_p);
-						
 					}
 					portal_temp_string[url_len] = '\0';
-					encoded_url_len = encode_url(portal_temp_string,  url_len, vsite->common_flags, &encoded_url, sec_session->session_id);
-					if (encoded_url_len) {
+					encoded_url_len = encode_url(portal_temp_string, url_len, vsite->common_flags, &encoded_url, sec_session->session_id);
+					if (encoded_url_len)
+					{
 						encoded_url[encoded_url_len] = '\0';
 						url_len = snprintf(tmp_post_url, HOST_MAX_LENGTH + SEC_MAX_URL_LEN + 16, "%s", encoded_url);
-						
-					} else {
+					}
+					else
+					{
 						url_len = snprintf(tmp_post_url, HOST_MAX_LENGTH + SEC_MAX_URL_LEN + 16, "%s", portal_temp_string);
 					}
 					tmp_post_url[url_len] = '\0';
 				}
-
-			} else if(strncasecmp("quicklink", url_type, strlen("quicklink")) == 0) {//Quicklink
+			}
+			else if (strncasecmp("quicklink", url_type, strlen("quicklink")) == 0)
+			{ // Quicklink
 				/* parse quicklink orignal URL */
 				char *str1, *str2, *token, *subtoken;
 				char *saveptr1, *saveptr2;
-				int32_t j,k;
+				int32_t j, k;
 				char *resource_id = NULL;
 				char *url = NULL;
 				sec_quicklink_info_t *quicklink_info = NULL;
@@ -6440,156 +7318,207 @@
 
 				/* parse Quicklink resource_id & url */
 				if (strstr(unescape_sso_url, "?resource_id=") == NULL ||
-					strstr(unescape_sso_url, "&url=") == NULL) {
+					strstr(unescape_sso_url, "&url=") == NULL)
+				{
 					ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "fail to parse ssourl for quicklink.");
 					return SEC_FAIL;
 				}
 				url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", unescape_sso_url);
 				portal_temp_string[url_len] = '\0';
-				for (j = 1, str1 = portal_temp_string; ; j++, str1 = NULL) {
+				for (j = 1, str1 = portal_temp_string;; j++, str1 = NULL)
+				{
 					token = strtok_r(str1, "?&", &saveptr1);
 					if (token == NULL)
 						break;
 
-					for (k=1, str2 = token; ; k++, str2 = NULL) {
+					for (k = 1, str2 = token;; k++, str2 = NULL)
+					{
 						subtoken = strtok_r(str2, "=", &saveptr2);
 						if (subtoken == NULL)
 							break;
-						if(j == 2 && k ==2)resource_id = subtoken;
-						if(j == 3 && k ==2){
+						if (j == 2 && k == 2)
+							resource_id = subtoken;
+						if (j == 3 && k == 2)
+						{
 							url = subtoken;
 							break;
 						}
 					}
 				}
-				if(resource_id == NULL || url == NULL){
+				if (resource_id == NULL || url == NULL)
+				{
 					ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "fail to parse ssourl for quicklink.");
 					return SEC_FAIL;
 				}
-				TAILQ_FOREACH(quicklink_detail, &vsite->quicklink_detail_list, next_info) {
-					if(strlen(resource_id) == strlen(quicklink_detail->quicklink_id->resource_id)
-						&& strncmp(quicklink_detail->quicklink_id->resource_id, resource_id, strlen(resource_id)) == 0
-						&& quicklink_detail->is_link) {
+				TAILQ_FOREACH(quicklink_detail, &vsite->quicklink_detail_list, next_info)
+				{
+					if (strlen(resource_id) == strlen(quicklink_detail->quicklink_id->resource_id) && strncmp(quicklink_detail->quicklink_id->resource_id, resource_id, strlen(resource_id)) == 0 && quicklink_detail->is_link)
+					{
 						quicklink_info = quicklink_detail->quicklink_id;
 						bcopy(quicklink_detail->backend_url + quicklink_detail->scheme_len + 3, sso_post_key,
-							strlen(quicklink_detail->backend_url + quicklink_detail->scheme_len + 3));
+							  strlen(quicklink_detail->backend_url + quicklink_detail->scheme_len + 3));
 						bcopy(url, sso_post_key + (strlen(quicklink_detail->backend_url + quicklink_detail->scheme_len + 3) - 1),
-							strlen(url));
+							  strlen(url));
 						sso_post_key[strlen(url) + strlen(quicklink_detail->backend_url + quicklink_detail->scheme_len + 3) - 1] = '\0';
 						patr_node_p = patricia_insearch(sso_tree_p, sso_post_key,
-					  					strlen(sso_post_key), PATRICIA_MATCH_EXACT);
-						if (patr_node_p != NULL) {/* hit SSO config */
+														strlen(sso_post_key), PATRICIA_MATCH_EXACT);
+						if (patr_node_p != NULL)
+						{ /* hit SSO config */
 							char *scheme = NULL;
-							int  encoded_url_len = 0;
-							char* encoded_url = NULL;
+							int encoded_url_len = 0;
+							char *encoded_url = NULL;
 							hitSSO = 1;
-							if(strncasecmp(HTTPS, quicklink_detail->backend_url, strlen(HTTPS)) == 0) {
+							if (strncasecmp(HTTPS, quicklink_detail->backend_url, strlen(HTTPS)) == 0)
+							{
 								scheme = HTTPS;
-							} else {
+							}
+							else
+							{
 								scheme = HTTP;
 							}
 							hitSSO = 1;
 							/* found the URL in the vsite SSO post configuration */
 							cur_rule_p = (sso_post_rule_t *)patr_node_p->data;
-							if (strlen(cur_rule_p->post_url) != 0) {
+							if (strlen(cur_rule_p->post_url) != 0)
+							{
 								tmp_url_p = cur_rule_p->post_url;
-							} else {
+							}
+							else
+							{
 								tmp_url_p = cur_rule_p->login_url;
 							}
-							if (tmp_url_p[0] == '/') {
+							if (tmp_url_p[0] == '/')
+							{
 								tmp_url_p++;
 							}
 							if (strlen(cur_rule_p->post_host) == 0 ||
-								(strlen(cur_rule_p->post_host) == strlen(cur_rule_p->hostname) && 
-									  strncasecmp(cur_rule_p->hostname, cur_rule_p->post_host, strlen(cur_rule_p->post_host)) == 0)) {
+								(strlen(cur_rule_p->post_host) == strlen(cur_rule_p->hostname) &&
+								 strncasecmp(cur_rule_p->hostname, cur_rule_p->post_host, strlen(cur_rule_p->post_host)) == 0))
+							{
 								char req_domain[SEC_MAX_URL_LEN];
 								char *colon_pos = NULL;
 								snprintf(req_domain, SEC_MAX_URL_LEN, "%s", sec_data->req_domain);
-								if (DOMAIN_IS_IPV6_ADDRESS(req_domain)) {
+								if (DOMAIN_IS_IPV6_ADDRESS(req_domain))
+								{
 									colon_pos = strchr(req_domain, ']');
-									if (colon_pos) {
+									if (colon_pos)
+									{
 										colon_pos = strchr(colon_pos, ':');
 									}
-								} else {
+								}
+								else
+								{
 									colon_pos = strchr(req_domain, ':');
 								}
-								if (colon_pos != NULL) {
+								if (colon_pos != NULL)
+								{
 									*colon_pos = '\0';
 								}
 								/* sso login host equals post host */
-								if (quicklink_info->port) {/*Quicklink Port mode */
+								if (quicklink_info->port)
+								{ /*Quicklink Port mode */
 									sprintf(tmp_post_url, "https://%s:%d/%s", req_domain, quicklink_info->port, tmp_url_p);
-								} else if (quicklink_info->hostname[0]) {/*Quicklink Hostname mode */
-									if(!sec_data->req_port){
+								}
+								else if (quicklink_info->hostname[0])
+								{ /*Quicklink Hostname mode */
+									if (!sec_data->req_port)
+									{
 										sprintf(tmp_post_url, "https://%s/%s", quicklink_info->hostname, tmp_url_p);
-									} else {
+									}
+									else
+									{
 										sprintf(tmp_post_url, "https://%s:%d/%s", quicklink_info->hostname, sec_data->req_port, tmp_url_p);
 									}
-								} else if (quicklink_info->pathname[0]) {/*Quicklink Path mode */
+								}
+								else if (quicklink_info->pathname[0])
+								{ /*Quicklink Path mode */
 									sprintf(tmp_post_url, "https://%s/%s%s", sec_data->req_domain, quicklink_info->pathname, tmp_url_p);
-								} else {
+								}
+								else
+								{
 									ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "fail to parse quicklink info.");
 									return SEC_FAIL;
 								}
-							} else {/* sso login host is defferent from sso post host */
+							}
+							else
+							{ /* sso login host is defferent from sso post host */
 								url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s://%s/%s", scheme, cur_rule_p->post_host, tmp_url_p);
 								portal_temp_string[url_len] = '\0';
-								encoded_url_len = encode_url(portal_temp_string,  url_len, vsite->common_flags, &encoded_url, sec_session->session_id);
-								if (encoded_url_len) {
+								encoded_url_len = encode_url(portal_temp_string, url_len, vsite->common_flags, &encoded_url, sec_session->session_id);
+								if (encoded_url_len)
+								{
 									encoded_url[encoded_url_len] = '\0';
 									url_len = snprintf(tmp_post_url, HOST_MAX_LENGTH + SEC_MAX_URL_LEN + 16, "%s", encoded_url);
 									tmp_post_url[url_len] = '\0';
-								} else {
+								}
+								else
+								{
 									ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "fail to encode wrm url.");
 									return SEC_FAIL;
 								}
-								
 							}
-							
 						}
 					}
 				}
-
-			} else if(strncasecmp("innerlink", url_type, strlen("innerlink")) == 0) {//Direct Link
-				bcopy(strstr(unescape_sso_url,"://")+3, sso_post_key, url_len);
-				if (sso_post_key[url_len - 1] == ' ') {
+			}
+			else if (strncasecmp("innerlink", url_type, strlen("innerlink")) == 0)
+			{ // Direct Link
+				bcopy(strstr(unescape_sso_url, "://") + 3, sso_post_key, url_len);
+				if (sso_post_key[url_len - 1] == ' ')
+				{
 					sso_post_key[url_len - 1] = '\0';
-				} else {
+				}
+				else
+				{
 					sso_post_key[url_len] = '\0';
 				}
 				patr_node_p = patricia_insearch(sso_tree_p, sso_post_key,
-					  					strlen(sso_post_key), PATRICIA_MATCH_EXACT);
-				if (patr_node_p != NULL) {/* hit sso config */
+												strlen(sso_post_key), PATRICIA_MATCH_EXACT);
+				if (patr_node_p != NULL)
+				{ /* hit sso config */
 					char *scheme = NULL;
 					hitSSO = 1;
-					if(strncasecmp(HTTPS, unescape_sso_url, strlen(HTTPS)) == 0) {
+					if (strncasecmp(HTTPS, unescape_sso_url, strlen(HTTPS)) == 0)
+					{
 						scheme = HTTPS;
-					} else {
+					}
+					else
+					{
 						scheme = HTTP;
 					}
 					/* found the URL in the vsite SSO post configuration */
 					cur_rule_p = (sso_post_rule_t *)patr_node_p->data;
-					if (strlen(cur_rule_p->post_url) != 0) {
+					if (strlen(cur_rule_p->post_url) != 0)
+					{
 						tmp_url_p = cur_rule_p->post_url;
-					} else {
+					}
+					else
+					{
 						tmp_url_p = cur_rule_p->login_url;
 					}
-					if (tmp_url_p[0] == '/') {
+					if (tmp_url_p[0] == '/')
+					{
 						tmp_url_p++;
 					}
-					if (strlen(cur_rule_p->post_host) != 0) {
+					if (strlen(cur_rule_p->post_host) != 0)
+					{
 						sprintf(tmp_post_url, "%s://%s/%s", scheme, cur_rule_p->post_host, tmp_url_p);
-					} else {
+					}
+					else
+					{
 						sprintf(tmp_post_url, "%s://%s/%s", scheme, cur_rule_p->hostname, tmp_url_p);
 					}
 				}
-			
-			} else {
+			}
+			else
+			{
 				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "fail to parse querystring: format for sso.");
 				return SEC_FAIL;
 			}
 		}
-	} else {
+	}
+	else
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "fail to parse url of sso.html.");
 		return SEC_FAIL;
 	}
@@ -6601,11 +7530,14 @@
 	write_data_str("<title>SSO</title>\n");
 	write_data_str("<script language=Javascript>\n");
 	/* check sso configuration */
-	if(hitSSO == 1) {
+	if (hitSSO == 1)
+	{
 		write_data_str("function fn_sso(){\n");
 		write_data_str("\tdocument.all.login_form.submit();\n");
 		write_data_str("}\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("window.location=\"");
 		url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", unescape_sso_url);
 		write_data(portal_temp_string, &cursor, url_len, &out_frame);
@@ -6614,25 +7546,32 @@
 	write_data_str("</script>\n");
 	write_data_str("</head>\n");
 
-	if (hitSSO ==1) {
+	if (hitSSO == 1)
+	{
 		int ret = 0;
 		char prefix[SEC_UNAME_LEN + 1] = {'\0'};
 		char postfix[SEC_UNAME_LEN + 1] = {'\0'};
 		char namefield[SEC_UNAME_LEN + 1] = {'\0'};
 		BOOL extra = FALSE;
 		char *ptmp = NULL;
- 
+
 		/* extract prefix/postfix and real uname field */
-		ret = sscanf(cur_rule_p->uname_id, "%[^<]<%[^>]>%s", prefix, namefield, postfix);    
-		if (ret == 1) { //not found <>, no prefix or postfix
-			//not handle it
-		} else if (ret == 0) {// only postfix, like <uname>@aaabb
-			ret =  sscanf(cur_rule_p->uname_id, "<%[^>]>%s", namefield, postfix);
+		ret = sscanf(cur_rule_p->uname_id, "%[^<]<%[^>]>%s", prefix, namefield, postfix);
+		if (ret == 1)
+		{ // not found <>, no prefix or postfix
+		  // not handle it
+		}
+		else if (ret == 0)
+		{ // only postfix, like <uname>@aaabb
+			ret = sscanf(cur_rule_p->uname_id, "<%[^>]>%s", namefield, postfix);
 			extra = TRUE;
-		} else {
+		}
+		else
+		{
 			extra = TRUE;
 		}
-		if (strlen(namefield) == 0) { //should not reach here
+		if (strlen(namefield) == 0)
+		{ // should not reach here
 			extra = FALSE;
 		}
 		/* finish extract */
@@ -6642,23 +7581,32 @@
 		write_data_str("<form method=\"post\" action=\"");
 		url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", tmp_post_url);
 		write_data(portal_temp_string, &cursor, url_len, &out_frame);
-				
+
 		write_data_str("\" name=\"login_form\">\n");
 		write_data_str("<input type=\"hidden\" name=\"");
 		url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", extra ? namefield : cur_rule_p->uname_id);
 		write_data(portal_temp_string, &cursor, url_len, &out_frame);
 		write_data_str("\" value=\"");
 
-		if (SEC_ISSET(vsite->common_flags, SEC_APP_SSO_WEB) && sec_session->app_sso_info.sso_account[0]) {
-			if (extra) {
-				url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s", prefix, sec_session->app_sso_info.sso_account,postfix);
-			} else {
+		if (SEC_ISSET(vsite->common_flags, SEC_APP_SSO_WEB) && sec_session->app_sso_info.sso_account[0])
+		{
+			if (extra)
+			{
+				url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s", prefix, sec_session->app_sso_info.sso_account, postfix);
+			}
+			else
+			{
 				url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", sec_session->app_sso_info.sso_account);
 			}
-		} else {
-			if (extra) {
+		}
+		else
+		{
+			if (extra)
+			{
 				url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s", prefix, sec_session->username, postfix);
-			} else {
+			}
+			else
+			{
 				url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", sec_session->username);
 			}
 		}
@@ -6666,20 +7614,24 @@
 		write_data_str("\">\n");
 		write_data_str("<input type=\"hidden\" name=\"");
 		url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", cur_rule_p->pswd_id);
-		write_data(portal_temp_string, &cursor, url_len, &out_frame);	
+		write_data(portal_temp_string, &cursor, url_len, &out_frame);
 		write_data_str("\" value=\"");
-			
-		if (SEC_ISSET(vsite->common_flags, SEC_APP_SSO_WEB) && sec_session->app_sso_info.sso_account[0]) {
+
+		if (SEC_ISSET(vsite->common_flags, SEC_APP_SSO_WEB) && sec_session->app_sso_info.sso_account[0])
+		{
 			url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", sec_session->app_sso_info.sso_passwd);
-		} else {
+		}
+		else
+		{
 			url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", sec_session->password);
 		}
-		write_data(portal_temp_string, &cursor, url_len, &out_frame);	
+		write_data(portal_temp_string, &cursor, url_len, &out_frame);
 		write_data_str("\">\n");
 
-		/*  change " to \" and assign the value in javascript code, otherwise the post value will be truncated  */ 
+		/*  change " to \" and assign the value in javascript code, otherwise the post value will be truncated  */
 		ptmp = strreplace(portal_temp_string, "\"", "\\\"", NULL, 0);
-		if (NULL != ptmp) {
+		if (NULL != ptmp)
+		{
 			write_data_str("<script>document.forms[0].");
 			url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", cur_rule_p->pswd_id);
 			write_data(portal_temp_string, &cursor, url_len, &out_frame);
@@ -6690,26 +7642,29 @@
 		}
 
 		/* hwid */
-		if ((sendHWID == 1) && (hwid_str != NULL)) {
-			char* hostname = strstr(sec_session->hardware_id, "hostname=");
-			if (hostname != NULL && hostname != &sec_session->hardware_id[0]) {
+		if ((sendHWID == 1) && (hwid_str != NULL))
+		{
+			char *hostname = strstr(sec_session->hardware_id, "hostname=");
+			if (hostname != NULL && hostname != &sec_session->hardware_id[0])
+			{
 				*(hostname - 1) = '\0';
 			}
 			write_data_str("<input type=\"hidden\" name=\"");
 			url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", hwid_str);
-			write_data(portal_temp_string, &cursor, url_len, &out_frame);	
+			write_data(portal_temp_string, &cursor, url_len, &out_frame);
 			write_data_str("\" value=\"");
 			url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", sec_session->hardware_id);
-			write_data(portal_temp_string, &cursor, url_len, &out_frame);	
+			write_data(portal_temp_string, &cursor, url_len, &out_frame);
 			write_data_str("\">\n");
 		}
 		/* end hwid */
 
-		if (strlen(cur_rule_p->optional_para) != 0) {
+		if (strlen(cur_rule_p->optional_para) != 0)
+		{
 #define MAX_MAC_STR_LEN 18
 			char *str1, *str2, *token, *subtoken;
 			char *saveptr1, *saveptr2;
-			int32_t j,k;
+			int32_t j, k;
 			char sso_ip_uint[INET_ADDRSTRLEN];
 			char sso_ip_dotdec[INET_ADDRSTRLEN];
 			char sso_mac_nosep[MAX_MAC_STR_LEN];
@@ -6722,26 +7677,26 @@
 			inet_ntop(AF_INET, &client_ip.s_addr, sso_ip_dotdec, INET_ADDRSTRLEN);
 
 			snprintf(sso_mac_nosep, MAX_MAC_STR_LEN, "%02X%02X%02X%02X%02X%02X",
-				sec_session->client_mac[0],
-				sec_session->client_mac[1],
-				sec_session->client_mac[2],
-				sec_session->client_mac[3],
-				sec_session->client_mac[4],
-				sec_session->client_mac[5]);
+					 sec_session->client_mac[0],
+					 sec_session->client_mac[1],
+					 sec_session->client_mac[2],
+					 sec_session->client_mac[3],
+					 sec_session->client_mac[4],
+					 sec_session->client_mac[5]);
 			snprintf(sso_mac_dash, MAX_MAC_STR_LEN, "%02X-%02X-%02X-%02X-%02X-%02X",
-				sec_session->client_mac[0],
-				sec_session->client_mac[1],
-				sec_session->client_mac[2],
-				sec_session->client_mac[3],
-				sec_session->client_mac[4],
-				sec_session->client_mac[5]);
+					 sec_session->client_mac[0],
+					 sec_session->client_mac[1],
+					 sec_session->client_mac[2],
+					 sec_session->client_mac[3],
+					 sec_session->client_mac[4],
+					 sec_session->client_mac[5]);
 			snprintf(sso_mac_colon, MAX_MAC_STR_LEN, "%02X:%02X:%02X:%02X:%02X:%02X",
-				sec_session->client_mac[0],
-				sec_session->client_mac[1],
-				sec_session->client_mac[2],
-				sec_session->client_mac[3],
-				sec_session->client_mac[4],
-				sec_session->client_mac[5]);
+					 sec_session->client_mac[0],
+					 sec_session->client_mac[1],
+					 sec_session->client_mac[2],
+					 sec_session->client_mac[3],
+					 sec_session->client_mac[4],
+					 sec_session->client_mac[5]);
 
 			char *rep_opt_para_array[] = {
 				sso_ip_uint,
@@ -6749,41 +7704,51 @@
 				sso_mac_nosep,
 				sso_mac_dash,
 				sso_mac_colon,
-				NULL
-			};
+				NULL};
 
 			char *rep_opt_para = sso_replace_opt_para(cur_rule_p->optional_para,
-                                                  rep_optional_para,
-                                                  sizeof(rep_optional_para),
-                                                  rep_opt_para_array);
+													  rep_optional_para,
+													  sizeof(rep_optional_para),
+													  rep_opt_para_array);
 
 			url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", rep_opt_para);
-			for (j = 1, str1 = portal_temp_string; ; j++, str1 = NULL) {
+			for (j = 1, str1 = portal_temp_string;; j++, str1 = NULL)
+			{
 				token = strtok_r(str1, "&", &saveptr1);
 				if (token == NULL)
 					break;
-				for (k=1, str2 = token; ; k++, str2 = NULL) {
+				for (k = 1, str2 = token;; k++, str2 = NULL)
+				{
 					subtoken = strtok_r(str2, "=", &saveptr2);
-					if (subtoken == NULL) {
-						if (k == 2) {
+					if (subtoken == NULL)
+					{
+						if (k == 2)
+						{
 							write_data_str("\">\n");
 							break;
-						} else {
+						}
+						else
+						{
 							break;
 						}
 					}
-					if(k == 1) {
+					if (k == 1)
+					{
 						write_data_str("<input type=\"hidden\" name=\"");
 						url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", subtoken);
 						write_data(portal_temp_string, &cursor, url_len, &out_frame);
-					} else if (k == 2) {
+					}
+					else if (k == 2)
+					{
 						char unescape_sso_post[SSO_POST_FIELDS_MAX_LENGTH + 1] = {0};
 						write_data_str("\" value=\"");
 						unescape_string(subtoken, strlen(subtoken), unescape_sso_post, &url_len, SSO_POST_FIELDS_MAX_LENGTH);
 
 						write_data(unescape_sso_post, &cursor, url_len, &out_frame);
 						write_data_str("\">\n");
-					} else {
+					}
+					else
+					{
 						break;
 					}
 				}
@@ -6796,24 +7761,26 @@
 #undef write_data_str
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-					0, NULL, NULL,
-					"text/html", NULL, sec_data,
-					NULL, 0, 0);
-	if (sec_data->response == NULL) {
+															0, NULL, NULL,
+															"text/html", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing sso.html response fail");
 		parser_frame_chain_free(in_frame);
 		return SEC_FAIL;
-	} else {
+	}
+	else
+	{
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 	}
 
 	return SEC_SUCCESS;
 }
 
-
 static int
 sec_generate_passchange_js_response(struct smanager_data *sec_data,
-                               struct frame **out_frame, uint8_t **cursor)
+									struct frame **out_frame, uint8_t **cursor)
 {
 	int32_t lang_str_len;
 	char *lang_string;
@@ -6825,33 +7792,39 @@
 	struct aaa_method *element = NULL;
 	char clang[PORTAL_MESSAGE_LEN * 4 + 1] = {0};
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing passchange js, vsite is null");
 	}
 
 	content_node_t *content = sec_data->content;
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
 
-	for( aaa_index = 0; aaa_index < METHOD_MAX; aaa_index++ ) {
-			if( strcasecmp(vsite->aaa_configure->loginmethod[aaa_index].id, sec_session->method_id) == 0 ) {
-				element = vsite->aaa_configure->loginmethod + aaa_index;
-				break;
-			}
+	for (aaa_index = 0; aaa_index < METHOD_MAX; aaa_index++)
+	{
+		if (strcasecmp(vsite->aaa_configure->loginmethod[aaa_index].id, sec_session->method_id) == 0)
+		{
+			element = vsite->aaa_configure->loginmethod + aaa_index;
+			break;
 		}
+	}
 
-	if (element != NULL && element->multistep_switch == MULTSTEP_OFF) {
+	if (element != NULL && element->multistep_switch == MULTSTEP_OFF)
+	{
 		write_data_str("var _AN_str_title_passchange = \"");
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 656, &lang_str_len);
 		write_data(lang_string, cursor, lang_str_len, out_frame);
 		write_data_str("\";\n");
 	}
-	if (element != NULL && element->multistep_switch == MULTSTEP_ON) {
+	if (element != NULL && element->multistep_switch == MULTSTEP_ON)
+	{
 		write_data_str("var _AN_str_title_passchange = \"");
 		lang_string = sec_language_get_msg(vsite->language, 657);
 		language_unescape(lang_string);
 
 		lang_string = strreplace(lang_string, SERVER_ID, vsite->name, NULL, 0);
-		if (vsite->input_enc == HTML2BINARY) {
+		if (vsite->input_enc == HTML2BINARY)
+		{
 			lang_string = strhtml2binary(lang_string, &lang_str_len);
 		}
 		memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
@@ -6868,47 +7841,47 @@
 	write_data_str("var _AN_str_errmsg_passchange = \"");
 	lang_string = "";
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        write_data_str("\";\n");
+	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_info_passchange = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 390, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_newpass = \"");
+	write_data_str("var _AN_str_newpass = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 327, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_confirm = \"");
+	write_data_str("var _AN_str_confirm = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 328, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_cancel = \"");
+	write_data_str("var _AN_str_cancel = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 331, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_error_pass = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 606, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_error_confirm_pass = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 754, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_h5_chg_pwd = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 801, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_error_pass = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 606, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_error_confirm_pass = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 754, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_chg_pwd = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 801, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_h5_change = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 802, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("var _AN_str_h5_change = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 802, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
 #undef write_data_str
 	return 1;
@@ -6916,7 +7889,7 @@
 
 static int
 sec_generate_passchange_ldap_js_response(struct smanager_data *sec_data,
-                               struct frame **out_frame, uint8_t **cursor)
+										 struct frame **out_frame, uint8_t **cursor)
 {
 	int32_t lang_str_len;
 	char *lang_string;
@@ -6927,15 +7900,18 @@
 	struct aaa_method *element = NULL;
 	char clang[PORTAL_MESSAGE_LEN * 4 + 1] = {0};
 	int i = 0;
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing passchange ldap js, vsite is null");
 	}
 
 	content_node_t *content = sec_data->content;
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
 
-	for( aaa_index = 0; aaa_index < METHOD_MAX; aaa_index++ ) {
-		if( strcasecmp(vsite->aaa_configure->loginmethod[aaa_index].id,	sec_session->method_id) == 0 ) {
+	for (aaa_index = 0; aaa_index < METHOD_MAX; aaa_index++)
+	{
+		if (strcasecmp(vsite->aaa_configure->loginmethod[aaa_index].id, sec_session->method_id) == 0)
+		{
 			element = vsite->aaa_configure->loginmethod + aaa_index;
 			break;
 		}
@@ -6946,26 +7922,31 @@
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
 
-	if (element != NULL && element->multistep_switch == MULTSTEP_OFF) {
+	if (element != NULL && element->multistep_switch == MULTSTEP_OFF)
+	{
 		write_data_str("var _AN_str_title_passchange = \"");
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 656, &lang_str_len);
 		write_data(lang_string, cursor, lang_str_len, out_frame);
 		write_data_str("\";\n");
 	}
-	if (element != NULL && element->multistep_switch == MULTSTEP_ON) {
+	if (element != NULL && element->multistep_switch == MULTSTEP_ON)
+	{
 		write_data_str("var _AN_str_title_passchange = \"");
 		lang_string = sec_language_get_msg(vsite->language, 657);
 		language_unescape(lang_string);
 
 		/* display server descritpion */
-		for (i = 0; i < SESSION_MAX_LDAP_HOST; i++) {
-			if (sec_session->ldap_pwd_policy[i].server_id[0] != 0 && 
-				strcasecmp(sec_session->ldap_pwd_policy[i].server_id, sec_session->current_ldap_server) == 0) {
+		for (i = 0; i < SESSION_MAX_LDAP_HOST; i++)
+		{
+			if (sec_session->ldap_pwd_policy[i].server_id[0] != 0 &&
+				strcasecmp(sec_session->ldap_pwd_policy[i].server_id, sec_session->current_ldap_server) == 0)
+			{
 				lang_string = strreplace(lang_string, SERVER_ID, sec_session->ldap_pwd_policy[i].server_description, NULL, 0);
 				break;
 			}
 		}
-		if (vsite->input_enc == HTML2BINARY) {
+		if (vsite->input_enc == HTML2BINARY)
+		{
 			lang_string = strhtml2binary(lang_string, &lang_str_len);
 		}
 		memset(clang, 0, PORTAL_MESSAGE_LEN * 4);
@@ -6974,41 +7955,40 @@
 		write_data_str("\";\n");
 	}
 
-
 	write_data_str("var _AN_str_help = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 329, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_errmsg_passchange = \"");
-	 lang_string = "";
+	lang_string = "";
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        write_data_str("\";\n");
+	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_info_passchange = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 390, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_newpass = \"");
+	write_data_str("var _AN_str_newpass = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 327, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_confirm = \"");
+	write_data_str("var _AN_str_confirm = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 328, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_cancel = \"");
+	write_data_str("var _AN_str_cancel = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 331, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_error_pass = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 606, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data_str("var _AN_str_error_pass = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 606, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
 #undef write_data_str
 	return 1;
@@ -7020,7 +8000,8 @@
 	struct frame *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing passchange js, alloc fail");
 		return 0;
 	}
@@ -7031,14 +8012,17 @@
 	sec_generate_passchange_js_response(sec_data, &out_frame, &cursor);
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-	                0, NULL, NULL,
-	                "text/javascript", NULL, sec_data,
-	                NULL, 0, 0);
-	if (sec_data->response == NULL){
+															0, NULL, NULL,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing welcome js response fail");
 		parser_frame_chain_free(in_frame);
 		return SEC_FAIL;
-	} else {
+	}
+	else
+	{
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 	}
 
@@ -7051,7 +8035,8 @@
 	struct frame *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing passchange ldap js, alloc fail");
 		return 0;
 	}
@@ -7062,14 +8047,17 @@
 	sec_generate_passchange_ldap_js_response(sec_data, &out_frame, &cursor);
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-	                0, NULL, NULL,
-	                "text/javascript", NULL, sec_data,
-	                NULL, 0, 0);
-	if (sec_data->response == NULL){
+															0, NULL, NULL,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing welcome js response fail");
 		parser_frame_chain_free(in_frame);
 		return SEC_FAIL;
-	} else {
+	}
+	else
+	{
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 	}
 
@@ -7080,7 +8068,7 @@
 
 static int
 sec_generate_sms_auth_js_response(struct smanager_data *sec_data,
-                               struct frame **out_frame, uint8_t **cursor)
+								  struct frame **out_frame, uint8_t **cursor)
 {
 	int32_t lang_str_len;
 	char *lang_string;
@@ -7091,7 +8079,8 @@
 	int phone_len = 0;
 	int i;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing passchange js, vsite is null");
 	}
 
@@ -7099,10 +8088,13 @@
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
 
 	write_data_str("var _AN_str_title_otp = \"");
-	if (vsite->otp_title != NULL) {
+	if (vsite->otp_title != NULL)
+	{
 		lang_string = vsite->otp_title;
 		lang_str_len = strlen(vsite->otp_title);
-	} else {
+	}
+	else
+	{
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 636, &lang_str_len);
 	}
 	write_data(lang_string, cursor, lang_str_len, out_frame);
@@ -7114,47 +8106,69 @@
 	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_otp_result = \"");
-	if (sec_session->sms_check_fail_times > 0) {
+	if (sec_session->sms_check_fail_times > 0)
+	{
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 634, &lang_str_len);
-	} else if (sec_session->sms_check_fail_times == 0 && sec_session->sms_resend_times > 0) {
+	}
+	else if (sec_session->sms_check_fail_times == 0 && sec_session->sms_resend_times > 0)
+	{
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 635, &lang_str_len);
-	} else {
+	}
+	else
+	{
 		lang_string = "";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_otp_message = \"");
-	if (vsite->otp_message != NULL) {
+	if (vsite->otp_message != NULL)
+	{
 		lang_string = vsite->otp_message;
-	} else {
+	}
+	else
+	{
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 637, &lang_str_len);
 	}
 	phone_len = strlen(sec_session->sms_phone);
-	if (phone_len == 0) {
+	if (phone_len == 0)
+	{
 		char *at_p = NULL;
 		int j;
 
 		phone_len = strlen(sec_session->sms_email);
-		at_p = strnstr(sec_session->sms_email, "@", sizeof(sec_session->sms_email)-1);
-		if (at_p != NULL) {
+		at_p = strnstr(sec_session->sms_email, "@", sizeof(sec_session->sms_email) - 1);
+		if (at_p != NULL)
+		{
 			j = at_p - &sec_session->sms_email[0];
 
-			for (i = 0; i < phone_len; i++) {
-				if (i < 2 || i > j-3) {
+			for (i = 0; i < phone_len; i++)
+			{
+				if (i < 2 || i > j - 3)
+				{
 					tmp_phone[i] = sec_session->sms_email[i];
-				} else {
+				}
+				else
+				{
 					tmp_phone[i] = '*';
 				}
 			}
-		} else {
-			strncpy(tmp_phone, sec_session->sms_email, sizeof(tmp_phone)-1);
 		}
-	} else {
-		for (i = 0; i < phone_len; i++) {
-			if (i < 3 || phone_len-i < 4) {
+		else
+		{
+			strncpy(tmp_phone, sec_session->sms_email, sizeof(tmp_phone) - 1);
+		}
+	}
+	else
+	{
+		for (i = 0; i < phone_len; i++)
+		{
+			if (i < 3 || phone_len - i < 4)
+			{
 				tmp_phone[i] = sec_session->sms_phone[i];
-			} else {
+			}
+			else
+			{
 				tmp_phone[i] = '*';
 			}
 		}
@@ -7186,9 +8200,12 @@
 	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_otp_resend = \"");
-	if (sec_session->sms_resend_times >= 3) {
+	if (sec_session->sms_resend_times >= 3)
+	{
 		lang_string = "false";
-	} else {
+	}
+	else
+	{
 		lang_string = "true";
 	}
 	lang_str_len = strlen(lang_string);
@@ -7200,8 +8217,8 @@
 
 static int
 sec_generate_vpn_js_response(struct smanager_data *sec_data, struct frame **out_frame,
-			uint8_t **cursor, char* redirect_url, char* auto_value, uint8_t shut_down)
-{ 
+							 uint8_t **cursor, char *redirect_url, char *auto_value, uint8_t shut_down)
+{
 	int32_t lang_str_len;
 	char *lang_string;
 	char sessid[256];
@@ -7212,7 +8229,8 @@
 	sec_session_t *sec_session = sec_data->session;
 	uint32_t netpool_flags;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing vpn js, vsite is null");
 		return SEC_FAIL;
 	}
@@ -7233,55 +8251,62 @@
 
 	write_data_str("var _AN_str_startvpn = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 371, &lang_str_len);
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        write_data_str("\";\n");
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_info_vpn = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 356, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-	
-	write_data_str("var _AN_str_info_vpn2 = \"");	
-	if (vsite->autolaunch_message != NULL) {
-		if (vsite->input_enc == HTML2BINARY) {
+	write_data_str("var _AN_str_info_vpn2 = \"");
+	if (vsite->autolaunch_message != NULL)
+	{
+		if (vsite->input_enc == HTML2BINARY)
+		{
 			int32_t msg_len;
 			char *msg;
 			msg = strhtml2binary(vsite->autolaunch_message, &msg_len);
 			lang_string = msg;
-		} else {
+		}
+		else
+		{
 			lang_string = vsite->autolaunch_message;
 		}
-		
+
 		char clang[PORTAL_MESSAGE_LEN * 4 + 1] = {0};
-		if (vsite->autolaunch_escape == 1) {
+		if (vsite->autolaunch_escape == 1)
+		{
 			lang_str_len = portal_message_convert_for_document_write(lang_string, &clang[0]);
 			write_data(&clang[0], cursor, lang_str_len, out_frame);
-		} else {
+		}
+		else
+		{
 			write_data(lang_string, cursor, strlen(lang_string), out_frame);
 		}
-
-	} else {
+	}
+	else
+	{
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 357, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
+		write_data(lang_string, cursor, lang_str_len, out_frame);
 	}
 
 	write_data_str("\";\n");
-/*
-        write_data_str("var _AN_str_info_vpn2 = \"");
-	lang_string = sec_language_get_and_unescape_msg(vsite->language, 357, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_info_wait = \"");
-	lang_string = sec_language_get_and_unescape_msg(vsite->language, 358, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-*/
+	/*
+			write_data_str("var _AN_str_info_vpn2 = \"");
+		lang_string = sec_language_get_and_unescape_msg(vsite->language, 357, &lang_str_len);
+			write_data(lang_string, cursor, lang_str_len, out_frame);
+			write_data_str("\";\n");
+
+			write_data_str("var _AN_str_info_wait = \"");
+		lang_string = sec_language_get_and_unescape_msg(vsite->language, 358, &lang_str_len);
+			write_data(lang_string, cursor, lang_str_len, out_frame);
+			write_data_str("\";\n");
+	*/
 	write_data_str("var _AN_str_failmsg_vpn = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 359, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_failmsg_vpn_IE90 = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 626, &lang_str_len);
@@ -7289,51 +8314,69 @@
 	write_data_str("\";\n");
 
 	/* client auth */
-	if (SEC_ISSET(vsite->common_flags, SEC_SSL_CLIENTAUTH_ENABLED)) {
+	if (SEC_ISSET(vsite->common_flags, SEC_SSL_CLIENTAUTH_ENABLED))
+	{
 		lang_string = "var _AN_cauth = 1;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_cauth = 0;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	/* vpnc version for linux and macos */
-        write_data_str("var _AN_ver_linux = ");
-	if (linux_ver_frame == NULL) {
+	write_data_str("var _AN_ver_linux = ");
+	if (linux_ver_frame == NULL)
+	{
 		write_data_str("\"0.0\";");
-	} else {
+	}
+	else
+	{
 		write_frame_chunk(out_frame, cursor, &linux_ver_frame);
 	}
 	write_data_str("\n");
-        write_data_str("var _AN_ver_mac = ");
-	if (mac_ver_frame == NULL) {
-                write_data_str("\"0.0\";");                                           
-        } else {
-                write_frame_chunk(out_frame, cursor, &mac_ver_frame);
-        }
+	write_data_str("var _AN_ver_mac = ");
+	if (mac_ver_frame == NULL)
+	{
+		write_data_str("\"0.0\";");
+	}
+	else
+	{
+		write_frame_chunk(out_frame, cursor, &mac_ver_frame);
+	}
 	write_data_str("\n");
 
 	/* shutdown js flag */
-	if (shut_down) {
+	if (shut_down)
+	{
 		lang_string = "var _AN_shutdownvpn = true;\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_shutdownvpn = false;\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
 		lang_string = "var _AN_redirecturl = \"http://localh/welcome\";\n";
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_redirecturl = \"http://localhost/welcome\";\n";
 	}
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 
 	netpool_flags = vpn_get_netpool_flags(vsite, sec_session->vpn_netpools);
-	if ((netpool_flags & VPN_NETPOOL_JAVA) != 0) {
+	if ((netpool_flags & VPN_NETPOOL_JAVA) != 0)
+	{
 		lang_string = "var _AN_activex_client = 0;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 		lang_string = "var _AN_java_client = 1;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_activex_client = 1;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 		lang_string = "var _AN_java_client = 0;\n";
@@ -7345,52 +8388,60 @@
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	write_data_str("\";\n");
 
-        write_data_str("var _AN_vsite_ip = \"");
-        sprintf(tmp, "%s", inet_ntoa(lip));
-        write_data(tmp, cursor, strlen(tmp), out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_vsite_port = ");
-        sprintf(tmp, "%d", lport);
-        write_data(tmp, cursor, strlen(tmp), out_frame);
-        write_data_str(";\n");
- 
+	write_data_str("var _AN_vsite_ip = \"");
+	sprintf(tmp, "%s", inet_ntoa(lip));
+	write_data(tmp, cursor, strlen(tmp), out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_vsite_port = ");
+	sprintf(tmp, "%d", lport);
+	write_data(tmp, cursor, strlen(tmp), out_frame);
+	write_data_str(";\n");
+
 	write_data_str("var _AN_username = \"");
-	char * uname = malloc(strlen(sec_session->username) * 5 + 1);
- 	if(uname != NULL) {
- 		convert_char_for_http_show(sec_session->username, uname);
+	char *uname = malloc(strlen(sec_session->username) * 5 + 1);
+	if (uname != NULL)
+	{
+		convert_char_for_http_show(sec_session->username, uname);
 	}
 	lang_string = uname ? uname : sec_session->username;
-	if(lang_string)
+	if (lang_string)
 		lang_str_len = strlen(lang_string);
 	else
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-     				"user name lang_string is NULL");
+						"user name lang_string is NULL");
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	if(uname != NULL) {
+	if (uname != NULL)
+	{
 		free(uname);
 		uname = NULL;
 	}
 
-	if ((netpool_flags & VPN_NETPOOL_AUTOSWITH) != 0) {
+	if ((netpool_flags & VPN_NETPOOL_AUTOSWITH) != 0)
+	{
 		lang_string = "var _AN_autoswitch = 1;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
-	} else {
+	}
+	else
+	{
 		lang_string = "var _AN_autoswitch = 0;\n";
 		write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	}
-        lang_string = "var _AN_auto = 1;\n";
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	lang_string = "var _AN_auto = 1;\n";
+	write_data(lang_string, cursor, strlen(lang_string), out_frame);
+
+	if ((netpool_flags & VPN_NETPOOL_AUTOLAUNCH_STOPONERR) != 0)
+	{
+		lang_string = "var _AN_autolaunch_stoponerr = 1;\n";
+		write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	}
+	else
+	{
+		lang_string = "var _AN_autolaunch_stoponerr = 0;\n";
+		write_data(lang_string, cursor, strlen(lang_string), out_frame);
+	}
 
-        if ((netpool_flags & VPN_NETPOOL_AUTOLAUNCH_STOPONERR) != 0) {
-                lang_string = "var _AN_autolaunch_stoponerr = 1;\n";
-                write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        } else {
-                lang_string = "var _AN_autolaunch_stoponerr = 0;\n";
-                write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        }
-             
 	write_data_str("var _AN_str_portallanguage = \"");
 	lang_string = sec_portal_language_id_to_name(vsite->language);
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
@@ -7400,32 +8451,32 @@
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 609, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	
-	//Your computer does not appear to have a Java Virtual Machine installed
+
+	// Your computer does not appear to have a Java Virtual Machine installed
 	write_data_str("var _AN_str_fail_needJVM = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 615, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	     
-	//Failed to installJava component
+
+	// Failed to installJava component
 	write_data_str("var _AN_str_fail_insJAVA = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 616, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	     
-	//ActiveX is enabled for VPN initiation and the adminstrator does not allow to switch to Java component
+
+	// ActiveX is enabled for VPN initiation and the adminstrator does not allow to switch to Java component
 	write_data_str("var _AN_str_fail_enActiveX = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 617, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	     
-	//Failed to initiate VPN Java component
+
+	// Failed to initiate VPN Java component
 	write_data_str("var _AN_str_fail_initJAVA = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 618, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	     
-	//Thisfeature is not supported with Windows 98 or Windows Me
+
+	// Thisfeature is not supported with Windows 98 or Windows Me
 	write_data_str("var _AN_str_fail_Win98me = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 619, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
@@ -7437,13 +8488,14 @@
 
 static int
 sec_generate_ai_vpn_js_response(struct smanager_data *sec_data,
-                char* redirect_url, char* auto_value, uint8_t shut_down)
+								char *redirect_url, char *auto_value, uint8_t shut_down)
 {
 	struct frame *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
 
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing vpn js, alloc fail");
 		return SEC_FAIL;
 	}
@@ -7454,14 +8506,17 @@
 	sec_generate_vpn_js_response(sec_data, &out_frame, &cursor, redirect_url, auto_value, shut_down);
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-	                0, NULL, NULL,
-	                "text/javascript", NULL, sec_data,
-	                NULL, 0, 0);
-	if (sec_data->response == NULL){
+															0, NULL, NULL,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "failed to create response when writing welcome js");
 		parser_frame_chain_free(in_frame);
 		return SEC_FAIL;
-	} else {
+	}
+	else
+	{
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 	}
 
@@ -7470,7 +8525,7 @@
 
 static int
 sec_generate_challenge_js_response(struct smanager_data *sec_data,
-                     struct frame **out_frame, uint8_t **cursor)
+								   struct frame **out_frame, uint8_t **cursor)
 {
 	int32_t lang_str_len, i;
 	char *lang_string, *p = NULL;
@@ -7501,45 +8556,55 @@
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	write_data_str("\";\n");
 
-        /* Help link */
-        write_data_str("var _AN_str_help = \"");                                                
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 329, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	/* Help link */
+	write_data_str("var _AN_str_help = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 329, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
 	lang_string = sec_data->session->shared_string;
 	lang_str_len = strlen(lang_string);
-	if (lang_str_len > 0) {
+	if (lang_str_len > 0)
+	{
 		char tmp[SEC_MAX_PROMPT_MSG_LEN] = {0};
 
 		/* Modify CRLF character since these values will be assigned to a variable */
 		p = lang_string;
-		for (i=0; i<lang_str_len; i++) {
-			if (*p == '\n') {
-				if (i > 0 && *(p-1) == '\r') {
+		for (i = 0; i < lang_str_len; i++)
+		{
+			if (*p == '\n')
+			{
+				if (i > 0 && *(p - 1) == '\r')
+				{
 					/* convert 0x0D0A to "\\n" */
-					*(p-1) = '\\';
+					*(p - 1) = '\\';
 					*p = 'n';
-				} else {
+				}
+				else
+				{
 					/* convert 0x0A to "\\n" */
 					bzero(tmp, sizeof(tmp));
-					strncpy(tmp, (p+1), sizeof(tmp)-1);
+					strncpy(tmp, (p + 1), sizeof(tmp) - 1);
 					*p++ = '<';
 					*p++ = 'b';
 					*p++ = 'r';
 					*p++ = '>';
-					strncpy(p, tmp, sizeof(tmp)-(p-lang_string)-1);
+					strncpy(p, tmp, sizeof(tmp) - (p - lang_string) - 1);
 					continue;
 				}
-			} else if (*p == '"') {
+			}
+			else if (*p == '"')
+			{
 				/* convert '"' to '\"' */
 				bzero(tmp, sizeof(tmp));
-				strncpy(tmp, (p+1), sizeof(tmp)-1);
+				strncpy(tmp, (p + 1), sizeof(tmp) - 1);
 				*p++ = '\\';
 				*p++ = '"';
-				strncpy(p, tmp, sizeof(tmp)-(p-lang_string)-1);
+				strncpy(p, tmp, sizeof(tmp) - (p - lang_string) - 1);
 				continue;
-			} else if (*p == '\0') {
+			}
+			else if (*p == '\0')
+			{
 				break;
 			}
 			p++;
@@ -7559,12 +8624,14 @@
 }
 
 static int
-sec_generate_ai_challenge_js_response(struct smanager_data *sec_data) {
+sec_generate_ai_challenge_js_response(struct smanager_data *sec_data)
+{
 	struct frame *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
 
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_challenge_js response");
 		return SEC_FAIL;
 	}
@@ -7575,21 +8642,24 @@
 	sec_generate_challenge_js_response(sec_data, &out_frame, &cursor);
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-	                HTTP_NOCACHE, NULL, NULL,
-	                "text/javascript", NULL, sec_data,
-	                NULL, 0, 0);
-	if (sec_data->response == NULL) {
+															HTTP_NOCACHE, NULL, NULL,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate ai challenge js response failed");
 		parser_frame_chain_free(in_frame);
 		return SEC_FAIL;
-	} else {
+	}
+	else
+	{
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 	}
 
 	return SEC_SUCCESS;
 }
 
-static void 
+static void
 sec_generate_radius_challenge_response(struct smanager_data *sec_data)
 {
 	struct frame *final_page, *out_frame = NULL, *in_frame;
@@ -7600,32 +8670,38 @@
 	length_t msg_len;
 
 	in_frame = id_to_frame_chain(RADIUS_CHAL_ID, vsite->default_theme);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static radius challenge content is not available");
 		/* customized error page url */
-		if( redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_INTERNAL) ) {
+		if (redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_INTERNAL))
+		{
 			sec_generate_rewrite_redirect(sec_data, sec_data->redirect_url,
-					strlen(sec_data->redirect_url));
+										  strlen(sec_data->redirect_url));
 		}
 		return;
 	}
 
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
-	DBG_PRINTF("Begin to find page content id final_page is %p",final_page);
-	
+	DBG_PRINTF("Begin to find page content id final_page is %p", final_page);
+
 	sec_generate_challenge_js_response(sec_data, &out_frame, &cursor);
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-	if (final_page != NULL) {
+	if (final_page != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page,
-							 HTTP_NOCACHE, NULL, NULL,
-							 "text/html", NULL, sec_data,
-							 NULL, 0,
-							 0);
-		if (sec_data->response == NULL) {
+																HTTP_NOCACHE, NULL, NULL,
+																"text/html", NULL, sec_data,
+																NULL, 0,
+																0);
+		if (sec_data->response == NULL)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate radius challenge response failed.");
 			parser_frame_chain_free(final_page);
-		} else {
+		}
+		else
+		{
 			HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 		}
 	}
@@ -7635,111 +8711,119 @@
 static void
 sec_generate_mobileconfig_response(struct smanager_data *sec_data)
 {
-    struct frame *final_page, *out_frame = NULL, *in_frame;
-    uint8_t *cursor = NULL;
+	struct frame *final_page, *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *sec_session = sec_data->session;
 	char *msg_string;
 	length_t msg_len;
 	content_node_t *content = sec_data->content;
 
-    in_frame = id_to_frame_chain(MOBILE_CONFIG_ID, 0);
-    if (in_frame == NULL) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static mobile config content is not available");
+	in_frame = id_to_frame_chain(MOBILE_CONFIG_ID, 0);
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static mobile config content is not available");
 		/* customized error page url */
-		if( redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_INTERNAL) ) {
+		if (redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_INTERNAL))
+		{
 			sec_generate_rewrite_redirect(sec_data, sec_data->redirect_url,
-					strlen(sec_data->redirect_url));
+										  strlen(sec_data->redirect_url));
 		}
-        return;
-    }
+		return;
+	}
 
-    final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
-    sec_generate_mobile_psk_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
-    sec_generate_mobile_username_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
-    sec_generate_mobile_hostname_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);	
-    sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
-    sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
-    sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
-    if (final_page != NULL) {
+	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_mobile_psk_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_mobile_username_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_mobile_hostname_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
+	if (final_page != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page,
-							 HTTP_NOCACHE, NULL, NULL,
-							 id_to_content_type(content->id), NULL, sec_data,
-							 NULL, 0,
-							 0);
-		if (sec_data->response != NULL) {
+																HTTP_NOCACHE, NULL, NULL,
+																id_to_content_type(content->id), NULL, sec_data,
+																NULL, 0,
+																0);
+		if (sec_data->response != NULL)
+		{
 			HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-		} else {
+		}
+		else
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate mobile config response failed.");
 			parser_frame_chain_free(final_page);
 		}
-    }
+	}
 	return;
-	
 }
 
 static void
 sec_generate_intermediate_ca_response(struct smanager_data *sec_data, struct frame **out_frame, uint8_t **cursor)
 {
-    intermediate_ca_t *ca_node = NULL;
-    char content[4096] = {0};
+	intermediate_ca_t *ca_node = NULL;
+	char content[4096] = {0};
 
-    SLIST_FOREACH(ca_node, &(sec_data->vsite_p->ipsec_config.intermediate_ca_list), next) {
-        snprintf(content, sizeof(content),
-"<dict>\n"
-"    <key>PayloadCertificateFileName</key>\n"
-"    <string>IntermediateCA.cer</string>\n"
-"    <key>PayloadContent</key>\n"
-"    <data>\n"
-"%s\n"
-"    </data>\n"
-"    <key>PayloadDescription</key>\n"
-"    <string>Configures certificate settings.</string>\n"
-"    <key>PayloadDisplayName</key>\n"
-"    <string>Intermediate CA</string>\n"
-"    <key>PayloadIdentifier</key>\n"
-"    <string>net.arraynetworks.credential3.BA41751A-BDA2-40DD-AA5A-F17C5909D23E</string>\n"
-"    <key>PayloadType</key>\n"
-"    <string>com.apple.security.root</string>\n"
-"    <key>PayloadUUID</key>\n"
-"    <string>BA41751A-BDA2-40DD-AA5A-F17C5909D23E</string>\n"
-"    <key>PayloadVersion</key>\n"
-"    <integer>1</integer>\n"
-"</dict>\n",
-            ca_node->ca);
-        write_data(content, cursor, strlen(content), out_frame);
-    }
+	SLIST_FOREACH(ca_node, &(sec_data->vsite_p->ipsec_config.intermediate_ca_list), next)
+	{
+		snprintf(content, sizeof(content),
+				 "<dict>\n"
+				 "    <key>PayloadCertificateFileName</key>\n"
+				 "    <string>IntermediateCA.cer</string>\n"
+				 "    <key>PayloadContent</key>\n"
+				 "    <data>\n"
+				 "%s\n"
+				 "    </data>\n"
+				 "    <key>PayloadDescription</key>\n"
+				 "    <string>Configures certificate settings.</string>\n"
+				 "    <key>PayloadDisplayName</key>\n"
+				 "    <string>Intermediate CA</string>\n"
+				 "    <key>PayloadIdentifier</key>\n"
+				 "    <string>net.arraynetworks.credential3.BA41751A-BDA2-40DD-AA5A-F17C5909D23E</string>\n"
+				 "    <key>PayloadType</key>\n"
+				 "    <string>com.apple.security.root</string>\n"
+				 "    <key>PayloadUUID</key>\n"
+				 "    <string>BA41751A-BDA2-40DD-AA5A-F17C5909D23E</string>\n"
+				 "    <key>PayloadVersion</key>\n"
+				 "    <integer>1</integer>\n"
+				 "</dict>\n",
+				 ca_node->ca);
+		write_data(content, cursor, strlen(content), out_frame);
+	}
 }
 
 static void
 sec_generate_vod_config_response(struct smanager_data *sec_data)
 {
-    struct frame *final_page, *out_frame = NULL, *in_frame;
-    uint8_t *cursor = NULL;
+	struct frame *final_page, *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *sec_session = sec_data->session;
 	char *msg_string;
 	length_t msg_len;
 	content_node_t *content = sec_data->content;
-	char buf[VSITE_NAME_LEN+9] = {0};
+	char buf[VSITE_NAME_LEN + 9] = {0};
 	int ret = 0;
 
-    in_frame = id_to_frame_chain(VPN_ON_DEMAND_ID, 0);
-    if (in_frame == NULL) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static mobile ipsec config content is not available");
+	in_frame = id_to_frame_chain(VPN_ON_DEMAND_ID, 0);
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static mobile ipsec config content is not available");
 		/* customized error page url */
-		if( redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_INTERNAL) ) {
+		if (redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_INTERNAL))
+		{
 			sec_generate_rewrite_redirect(sec_data, sec_data->redirect_url,
-					strlen(sec_data->redirect_url));
+										  strlen(sec_data->redirect_url));
 		}
-        return;
-    }
+		return;
+	}
 
 	/*
 	 * OnDemandRules (New key for iOS 7 and later)
@@ -7766,130 +8850,141 @@
 	 * PayloadUUID
 	 */
 	ret = get_vsite_uuid(sec_data, buf, sizeof(buf));
-	if (ret == -1) {
+	if (ret == -1)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Getting UUID, vsite is null");
 		return;
 	}
 
-    final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
+	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
 	/* domains for vpn on demand */
 
 	/* OnDemandRules
 	 * This key is only for iOS 7 and later, iOS 6 will ignore this.
 	 */
 	sec_generate_vod_domains_always_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-	/* OnDemandMatchDomainsAlways 
+	/* OnDemandMatchDomainsAlways
 	 * This key is deprecated by iOS 7, and it will be overridden by OnDemandRules
 	 */
 	sec_generate_vod_domains_always_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
 	sec_generate_vod_domains_never_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 	sec_generate_vod_domains_onretry_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
 	sec_generate_mobile_uuid_response(sec_data, buf, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
 	sec_generate_mobile_hostname_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 	/* in VOD, username should be device id*/
-    sec_generate_mobile_device_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
-    sec_generate_mobile_password_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);	
+	sec_generate_mobile_device_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_mobile_password_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-    sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 	sec_generate_mobile_uuid_response(sec_data, buf, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 	sec_generate_mobile_uuid_response(sec_data, buf, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
-    sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
 	sec_generate_vod_ca_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 	sec_generate_mobile_uuid_response(sec_data, buf, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 	sec_generate_mobile_uuid_response(sec_data, buf, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 	sec_generate_mobile_uuid_response(sec_data, buf, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 	sec_generate_mobile_uuid_response(sec_data, buf, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-    if (!SLIST_EMPTY(&(vsite->ipsec_config.intermediate_ca_list))) {
-        sec_generate_intermediate_ca_response(sec_data, &out_frame, &cursor);
-    }
+	if (!SLIST_EMPTY(&(vsite->ipsec_config.intermediate_ca_list)))
+	{
+		sec_generate_intermediate_ca_response(sec_data, &out_frame, &cursor);
+	}
 
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-    sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_mobile_profilename_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 	sec_generate_mobile_uuid_response(sec_data, buf, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
 	sec_generate_mobile_uuid_response(sec_data, buf, &out_frame, &cursor);
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-    if (final_page != NULL) {
+	if (final_page != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page,
-							 HTTP_NOCACHE, NULL, NULL,
-							 id_to_content_type(content->id), NULL, sec_data,
-							 NULL, 0,
-							 0);
-		if (sec_data->response != NULL) {
+																HTTP_NOCACHE, NULL, NULL,
+																id_to_content_type(content->id), NULL, sec_data,
+																NULL, 0,
+																0);
+		if (sec_data->response != NULL)
+		{
 			HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-		} else {
+		}
+		else
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate mobile config response failed.");
 			parser_frame_chain_free(final_page);
 		}
-    }
+	}
 	return;
-	
 }
 
 static void
 sec_generate_welcome_html_response(struct smanager_data *sec_data, uint8_t version)
 {
-    struct frame *final_page, *out_frame = NULL, *in_frame;
-    uint8_t *cursor = NULL;
+	struct frame *final_page, *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *sec_session = sec_data->session;
 	char *msg_string;
 	length_t msg_len;
 
-    version = vsite->default_theme;
-    in_frame = id_to_frame_chain(WELCOME_ID, version);
-    if (in_frame == NULL) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static welcome content is not available");
+	version = vsite->default_theme;
+	in_frame = id_to_frame_chain(WELCOME_ID, version);
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static welcome content is not available");
 		/* customized error page url */
-		if( redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_INTERNAL) ) {
+		if (redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_INTERNAL))
+		{
 			sec_generate_rewrite_redirect(sec_data, sec_data->redirect_url,
-					strlen(sec_data->redirect_url));
+										  strlen(sec_data->redirect_url));
 		}
-        return;
-    }
+		return;
+	}
 
-    final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
-    sec_generate_welcome_js_response(sec_data, &out_frame, &cursor);
-    write_frame_chunk(&out_frame, &cursor, &in_frame);
-    if (final_page != NULL) {
+	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
+	sec_generate_welcome_js_response(sec_data, &out_frame, &cursor);
+	write_frame_chunk(&out_frame, &cursor, &in_frame);
+	if (final_page != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page,
-							 HTTP_NOCACHE, NULL, NULL,
-							 "text/html", NULL, sec_data,
-							 NULL, 0,
-							 0);
-		if (sec_data->response != NULL) {
+																HTTP_NOCACHE, NULL, NULL,
+																"text/html", NULL, sec_data,
+																NULL, 0,
+																0);
+		if (sec_data->response != NULL)
+		{
 			HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-		} else {
+		}
+		else
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate welcome html response failed.");
 			parser_frame_chain_free(final_page);
 		}
-    }
+	}
 	return;
 }
 
@@ -7901,110 +8996,122 @@
 
 static void
 sec_generate_welcome_redirect_with_ai(struct smanager_data *sec_data,
-                              sec_session_t *sec_session, sec_vsite_t *site,
-                              char *redirect_url, uint8_t no_custom, uint8_t use_ai)
+									  sec_session_t *sec_session, sec_vsite_t *site,
+									  char *redirect_url, uint8_t no_custom, uint8_t use_ai)
 {
 	int32_t pre_len, path_len;
 	uint8_t *bookmark_cookie_exp_str = NULL;
 	uint8_t path_malloced = 0;
 	length_t bookmark_cookie_exp_len = 0;
-	
+
 	pre_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s",
-	               HTTPS_SCHEME, sec_data->req_domain);
-	
-	if (pre_len >= MAX_APP_PRINT_SIZE) {
+					   HTTPS_SCHEME, sec_data->req_domain);
+
+	if (pre_len >= MAX_APP_PRINT_SIZE)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "host name too long");
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-		    SEC_CUSTOM_ERR_INTERNAL,
-		    sec_language_get_msg_ex(sec_data, 224));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 224));
 		return;
 	}
 
 	path_len = snprintf(portal_temp_string + pre_len, MAX_APP_PRINT_SIZE - pre_len,
-	                    SEC_PREFIX_DEFAULT "/");
-	if (path_len >= (MAX_APP_PRINT_SIZE - pre_len)) {
-        	ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "prefix url too long");
+						SEC_PREFIX_DEFAULT "/");
+	if (path_len >= (MAX_APP_PRINT_SIZE - pre_len))
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "prefix url too long");
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-		    SEC_CUSTOM_ERR_INTERNAL,
-		    sec_language_get_msg_ex(sec_data, 224));
-        return;
-    }
-    pre_len += path_len;
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 224));
+		return;
+	}
+	pre_len += path_len;
 
-    if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-        snprintf(portal_temp_string+pre_len, MAX_APP_PRINT_SIZE - pre_len,
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
+		snprintf(portal_temp_string + pre_len, MAX_APP_PRINT_SIZE - pre_len,
 				 "http/localh%s", redirect_url);
-    } else {
-        snprintf(portal_temp_string+pre_len, MAX_APP_PRINT_SIZE - pre_len,
+	}
+	else
+	{
+		snprintf(portal_temp_string + pre_len, MAX_APP_PRINT_SIZE - pre_len,
 				 "http/" SEC_PUBLIC_SERVERNAME "%s", redirect_url);
-    }
-	
-    DBG_PRINTF("Generating a redirect to the portal page at %s", portal_temp_string);
-
-    snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
-
-    sprint_nav_cookie(nav_cookie_buffer, sec_data);
-    
-    if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-        strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS_HTTPONLY);
-    } else {
-        strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS);/*The cookie is just used  in this case:  autolaunch enable and stoponerr disable , when welcome page refresh, vpn auto reconnect.*/
-    }
-
-    if (sec_data->bookmark_cookie &&
-    	!SEC_ISSET(site->common_flags, SEC_STATEFULREDIRECT) &&
-    	site->vsite_type == SITE_ALIAS) {
-    	DBG_PRINTF("expire bookmark cookie: %s\n",  SEC_AN_BOOKMARK_COOKIE_EXPIRES);
-    	bookmark_cookie_exp_str = SEC_AN_BOOKMARK_COOKIE_EXPIRES;
-    	bookmark_cookie_exp_len = SLEN(SEC_AN_BOOKMARK_COOKIE_EXPIRES);
-    }
+	}
 
-	sec_generate_redirect(sec_data, "302 Redirect",
-				  SLEN("302 Redirect"),
-				  portal_temp_string, strlen(portal_temp_string),
-				  session_cookie_buffer, strlen(session_cookie_buffer),
-				  nav_cookie_buffer, strlen(nav_cookie_buffer),
-				  bookmark_cookie_exp_str, bookmark_cookie_exp_len,
-				  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+	DBG_PRINTF("Generating a redirect to the portal page at %s", portal_temp_string);
 
+	snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
+
+	sprint_nav_cookie(nav_cookie_buffer, sec_data);
+
+	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+	{
+		strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS_HTTPONLY);
+	}
+	else
+	{
+		strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS); /*The cookie is just used  in this case:  autolaunch enable and stoponerr disable , when welcome page refresh, vpn auto reconnect.*/
+	}
+
+	if (sec_data->bookmark_cookie &&
+		!SEC_ISSET(site->common_flags, SEC_STATEFULREDIRECT) &&
+		site->vsite_type == SITE_ALIAS)
+	{
+		DBG_PRINTF("expire bookmark cookie: %s\n", SEC_AN_BOOKMARK_COOKIE_EXPIRES);
+		bookmark_cookie_exp_str = SEC_AN_BOOKMARK_COOKIE_EXPIRES;
+		bookmark_cookie_exp_len = SLEN(SEC_AN_BOOKMARK_COOKIE_EXPIRES);
+	}
+
+	sec_generate_redirect(sec_data, "302 Redirect",
+						  SLEN("302 Redirect"),
+						  portal_temp_string, strlen(portal_temp_string),
+						  session_cookie_buffer, strlen(session_cookie_buffer),
+						  nav_cookie_buffer, strlen(nav_cookie_buffer),
+						  bookmark_cookie_exp_str, bookmark_cookie_exp_len,
+						  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
 }
 
-void
-sec_generate_welcome_redirect(struct smanager_data *sec_data,
-                              sec_session_t *sec_session, sec_vsite_t *site,
-                              char *redirect_url, uint8_t no_custom)
+void sec_generate_welcome_redirect(struct smanager_data *sec_data,
+								   sec_session_t *sec_session, sec_vsite_t *site,
+								   char *redirect_url, uint8_t no_custom)
 {
-	
+
 	sec_generate_welcome_redirect_with_ai(sec_data, sec_session, site,
-					      redirect_url, no_custom, FALSE);
+										  redirect_url, no_custom, FALSE);
 }
 
 static void
 sec_generate_common_diskfile_response(struct smanager_data *sec_data,
-                                           uint8_t version)
+									  uint8_t version)
 {
 	uint8_t *cursor = NULL;
 	struct frame *final_page, *in_frame, *out_frame = NULL;
 	content_node_t *content = sec_data->content;
 
 	in_frame = id_to_frame_chain(content->id, version);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static content(%d) is not available.", content->id);
 		return;
 	}
-	
-	if((final_page = write_frame_chunk(&out_frame, &cursor, &in_frame)) != NULL) {
+
+	if ((final_page = write_frame_chunk(&out_frame, &cursor, &in_frame)) != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK,
-				final_page, HTTP_NOCACHE, NULL, NULL,
-				id_to_content_type(content->id), NULL, sec_data,
-				NULL, 0, 0);
-		if (sec_data->response == NULL) {
+																final_page, HTTP_NOCACHE, NULL, NULL,
+																id_to_content_type(content->id), NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Generate common diskfile failed");
 			parser_frame_chain_free(final_page);
 			return;
 		}
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-	} else {
+	}
+	else
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Generate common diskfile failed 1");
 		parser_frame_chain_free(in_frame);
 	}
@@ -8014,185 +9121,209 @@
 static void
 sec_generate_welcome_redirect_from_return_url(smanager_data_t *sec_data, sec_vsite_t *site)
 {
-    snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
+	snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
+
+	sprint_nav_cookie(nav_cookie_buffer, sec_data);
 
-    sprint_nav_cookie(nav_cookie_buffer, sec_data);
+	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+	{
+		strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS_HTTPONLY);
+	}
+	else
+	{
+		strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS); /*The cookie is just used  in this case:  autolaunch enable and stoponerr disable , when welcome page refresh, vpn auto reconnect.*/
+	}
+	DBG_PRINTF("Generating a redirect to the login return page at %s\n", sec_data->login_return_url);
 
-    if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-        strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS_HTTPONLY);
-    } else {
-        strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS);/*The cookie is just used  in this case:  autolaunch enable and stoponerr disable , when welcome page refresh, vpn auto reconnect.*/
-    }
-    DBG_PRINTF("Generating a redirect to the login return page at %s\n", sec_data->login_return_url);
-
-    if (SEC_ISSET(site->common_flags, SEC_STATEFULREDIRECT) &&
-        sec_data->bookmark_cookie && 
-        sec_data->bookmark_cookie_len < MAX_APP_PRINT_SIZE) {
-        /* user is being redirected to the original page, expire bookmarked cookie */
-        DBG_PRINTF("expire bookmark cookie: %s\n",  SEC_AN_BOOKMARK_COOKIE_EXPIRES);
-        sec_generate_redirect(sec_data, "302 Redirect", 
-                              SLEN("302 Redirect"), 
-                              sec_data->login_return_url, strlen(sec_data->login_return_url), 
-                              session_cookie_buffer, strlen(session_cookie_buffer),
-                              nav_cookie_buffer, strlen(nav_cookie_buffer),
-                              SEC_AN_BOOKMARK_COOKIE_EXPIRES, SLEN(SEC_AN_BOOKMARK_COOKIE_EXPIRES),
-                              IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
-    } else {
-        sec_generate_redirect(sec_data, "302 Redirect", 
-                              SLEN("302 Redirect"), 
-                              sec_data->login_return_url, strlen(sec_data->login_return_url), 
-                              session_cookie_buffer, strlen(session_cookie_buffer),
-                              nav_cookie_buffer, strlen(nav_cookie_buffer),
-                              NULL, 0,
-                              IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
-    }
+	if (SEC_ISSET(site->common_flags, SEC_STATEFULREDIRECT) &&
+		sec_data->bookmark_cookie &&
+		sec_data->bookmark_cookie_len < MAX_APP_PRINT_SIZE)
+	{
+		/* user is being redirected to the original page, expire bookmarked cookie */
+		DBG_PRINTF("expire bookmark cookie: %s\n", SEC_AN_BOOKMARK_COOKIE_EXPIRES);
+		sec_generate_redirect(sec_data, "302 Redirect",
+							  SLEN("302 Redirect"),
+							  sec_data->login_return_url, strlen(sec_data->login_return_url),
+							  session_cookie_buffer, strlen(session_cookie_buffer),
+							  nav_cookie_buffer, strlen(nav_cookie_buffer),
+							  SEC_AN_BOOKMARK_COOKIE_EXPIRES, SLEN(SEC_AN_BOOKMARK_COOKIE_EXPIRES),
+							  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+	}
+	else
+	{
+		sec_generate_redirect(sec_data, "302 Redirect",
+							  SLEN("302 Redirect"),
+							  sec_data->login_return_url, strlen(sec_data->login_return_url),
+							  session_cookie_buffer, strlen(session_cookie_buffer),
+							  nav_cookie_buffer, strlen(nav_cookie_buffer),
+							  NULL, 0,
+							  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+	}
 
-    sec_data->login_return_url[0] = '\0';
+	sec_data->login_return_url[0] = '\0';
 }
 
 static void
 sec_generate_welcome_redirect_from_bookmark(smanager_data_t *sec_data,
-					    sec_session_t *sec_session, sec_vsite_t *site)
+											sec_session_t *sec_session, sec_vsite_t *site)
 {
-    int32_t pre_len, path_len, bookmark_cookie_len;
-    
-    /*used in processing of bookmark cookie in case of alias site with WRM off*/
-    char path_prefix[SEC_MAX_SCHEME_LEN+2]; /*additional space for '/' and '\0'*/
-    int32_t path_prefix_len;
-    int32_t path_len_skip;
-    uint8_t* effective_path;
-
-    /*
-     * caller of this function makes sure that url created from the cookie fits into buffer
-     * url components are already taken into account, so no need to check for size limit
-     * redirect_url contains host and path
-     * url might contain multibyte chars, so use bcopy
-     */
+	int32_t pre_len, path_len, bookmark_cookie_len;
+
+	/*used in processing of bookmark cookie in case of alias site with WRM off*/
+	char path_prefix[SEC_MAX_SCHEME_LEN + 2]; /*additional space for '/' and '\0'*/
+	int32_t path_prefix_len;
+	int32_t path_len_skip;
+	uint8_t *effective_path;
+
+	/*
+	 * caller of this function makes sure that url created from the cookie fits into buffer
+	 * url components are already taken into account, so no need to check for size limit
+	 * redirect_url contains host and path
+	 * url might contain multibyte chars, so use bcopy
+	 */
 
 	/*if (FLAG_ISSET(PROXY_UDATA(client_conn_p)->flags, FPCD_QUICKLINK_CONNECTION)) {
 		pre_len = snprintf(bookmark_cookie_buffer, MAX_APP_PRINT_SIZE, "%s://%s%s",
-		                   "https", sec_get_sp_hostname(sec_data), SEC_GET_PREFIX(site->common_flags));
+						   "https", sec_get_sp_hostname(sec_data), SEC_GET_PREFIX(site->common_flags));
 	} else*/
-	if (SEC_ISSET(site->common_flags, SEC_AAA_SAMLIDP_ENABLED)){
+	if (SEC_ISSET(site->common_flags, SEC_AAA_SAMLIDP_ENABLED))
+	{
 		pre_len = snprintf(bookmark_cookie_buffer, MAX_APP_PRINT_SIZE, "%s://%s/%s",
-                               "https", sec_data->req_domain, "prx/000/http/localhost");
-	} else if (SEC_ISSET(site->common_flags, SEC_WRM)){
+						   "https", sec_data->req_domain, "prx/000/http/localhost");
+	}
+	else if (SEC_ISSET(site->common_flags, SEC_WRM))
+	{
 		pre_len = snprintf(bookmark_cookie_buffer, MAX_APP_PRINT_SIZE, "%s://%s%s",
-                               "https", sec_data->req_domain, SEC_GET_PREFIX(site->common_flags));	
-	} else {
+						   "https", sec_data->req_domain, SEC_GET_PREFIX(site->common_flags));
+	}
+	else
+	{
 		pre_len = snprintf(bookmark_cookie_buffer, MAX_APP_PRINT_SIZE, "%s://%s",
-                              "https", sec_data->req_domain);
+						   "https", sec_data->req_domain);
+	}
+
+	/*
+	 * format of bookmark cookie is always scheme/host/url
+	 * in case of wrm off scheme and host match with the scheme and host of the site
+	 * Skip scheme/host at the begining of the cookie (regardless wether the site is
+	 * exclusive or an alias). this allows the rest of the cookie prossesing to be
+	 * the same for wrm off and wrm on cases
+	 */
+	path_len_skip = 0;
+	if (!SEC_ISSET(site->common_flags, SEC_WRM))
+	{
+		strcpy(path_prefix, scheme_to_string(sec_data->scheme_type));
+		strcat(path_prefix, "/");
+		path_prefix_len = strlen(path_prefix);
+
+		if (strncmp(sec_data->bookmark_cookie, path_prefix, path_prefix_len) == 0)
+		{
+			effective_path = strstr(sec_data->bookmark_cookie + path_prefix_len, "/");
+			if (effective_path)
+			{
+				path_len_skip = effective_path - sec_data->bookmark_cookie;
+			}
+		}
+	}
+
+	/*
+	 * path_len_skip calculated above is used to skip the portion of the
+	 * bookmark cookie from the begining
+	 */
+	bcopy(sec_data->bookmark_cookie + path_len_skip, bookmark_cookie_buffer + pre_len,
+		  sec_data->bookmark_cookie_len - path_len_skip);
+	path_len = sec_data->bookmark_cookie_len - path_len_skip;
+
+	bookmark_cookie_len = pre_len + path_len;
+
+	if (rewrite_api_mask_urls(site->common_flags))
+	{
+		char *masked_url;
+		int32_t len = GET_MASKED_SIZE(path_len), masked_len;
+		uint8_t *data_p = bookmark_cookie_buffer + pre_len;
+
+		masked_url = (char *)malloc(len);
+		if (masked_url != NULL)
+		{
+			masked_len = rewrite_api_get_url_encoding(data_p, path_len,
+													  (uint8_t *)masked_url, len, site->common_flags,
+													  sec_session->session_id);
+			if (masked_len > 0 &&
+				masked_len < ((MAX_APP_PRINT_SIZE - path_len) + 1))
+			{
+				bcopy(masked_url, data_p, masked_len);
+				*(data_p + masked_len) = '\0';
+				bookmark_cookie_len = pre_len + masked_len;
+			}
+			else
+			{
+				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to mask the welcome url, masked_len = %d", masked_len);
+			}
+			free(masked_url);
+		}
+		else
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to mask the welcome url, malloc failed");
+		}
+	}
+	DBG_PRINTF("Generating a redirect to the bookmarked page at %s, len %d",
+			   bookmark_cookie_buffer, bookmark_cookie_len);
+
+	snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
+
+	sprint_nav_cookie(nav_cookie_buffer, sec_data);
+
+	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+	{
+		strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS_HTTPONLY);
+	}
+	else
+	{
+		strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS); /*The cookie is just used  in this case:  autolaunch enable and stoponerr disable , when welcome page refresh, vpn auto reconnect.*/
 	}
 
-    /*
-     * format of bookmark cookie is always scheme/host/url
-     * in case of wrm off scheme and host match with the scheme and host of the site
-     * Skip scheme/host at the begining of the cookie (regardless wether the site is 
-     * exclusive or an alias). this allows the rest of the cookie prossesing to be
-     * the same for wrm off and wrm on cases 
-     */    
-    path_len_skip = 0;
-    if(!SEC_ISSET(site->common_flags, SEC_WRM)){
-        strcpy(path_prefix, scheme_to_string(sec_data->scheme_type));
-        strcat(path_prefix, "/");
-        path_prefix_len = strlen(path_prefix);
-
-        if (strncmp(sec_data->bookmark_cookie, path_prefix, path_prefix_len) == 0){
-            effective_path = strstr(sec_data->bookmark_cookie+path_prefix_len, "/");
-            if (effective_path){
-                path_len_skip = effective_path - sec_data->bookmark_cookie;  
-            }
-        }
-    }
-    
-    /* 
-     * path_len_skip calculated above is used to skip the portion of the 
-     * bookmark cookie from the begining
-     */
-    bcopy(sec_data->bookmark_cookie+path_len_skip, bookmark_cookie_buffer + pre_len, 
-          sec_data->bookmark_cookie_len-path_len_skip);
-    path_len = sec_data->bookmark_cookie_len-path_len_skip;
-
-    bookmark_cookie_len = pre_len + path_len;
-
-    if (rewrite_api_mask_urls(site->common_flags)) {
-	    char *masked_url;
-	    int32_t len = GET_MASKED_SIZE(path_len), masked_len;
-	    uint8_t *data_p = bookmark_cookie_buffer + pre_len;
-	    
-	    masked_url = (char *)malloc(len);
-	    if (masked_url != NULL) {
-		    masked_len = rewrite_api_get_url_encoding(data_p, path_len,
-							      (uint8_t *)masked_url, len, site->common_flags,
-							       sec_session->session_id);
-		    if (masked_len > 0 && 
-			masked_len < ((MAX_APP_PRINT_SIZE - path_len) + 1))
-		    {
-			    bcopy(masked_url, data_p, masked_len);
-			    *(data_p + masked_len) = '\0';
-			    bookmark_cookie_len = pre_len + masked_len;
-		    } else {
-			    ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to mask the welcome url, masked_len = %d", masked_len);
-		    }
-		    free(masked_url);
-	    } else {
-		    ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to mask the welcome url, malloc failed");
-	    }
-    }
-    DBG_PRINTF("Generating a redirect to the bookmarked page at %s, len %d",
-	      bookmark_cookie_buffer, bookmark_cookie_len);        
-
-    snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
-
-    sprint_nav_cookie(nav_cookie_buffer, sec_data);
-
-    if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-        strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS_HTTPONLY);
-    } else {
-        strcat(nav_cookie_buffer, COOKIE_FOR_CLIENT_REFRESH_LOGIN_SUCCESS);/*The cookie is just used  in this case:  autolaunch enable and stoponerr disable , when welcome page refresh, vpn auto reconnect.*/
-    }
-
-    /* user is being redirected to the bookmarked page, expire bookmarked cookie */
-    DBG_PRINTF("expire bookmark cookie: %s\n",  SEC_AN_BOOKMARK_COOKIE_EXPIRES);
-    ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-                      ULOG_NO657, 0,0,0,0,0,0,0);
-
-    sec_generate_redirect(sec_data, "302 Redirect", 
-                          SLEN("302 Redirect"), 
-                          bookmark_cookie_buffer, bookmark_cookie_len, 
-                          session_cookie_buffer, strlen(session_cookie_buffer),
-                          nav_cookie_buffer, strlen(nav_cookie_buffer),
-                          SEC_AN_BOOKMARK_COOKIE_EXPIRES, SLEN(SEC_AN_BOOKMARK_COOKIE_EXPIRES),
-			     IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
-}
-
-void
-sec_generate_login_success_response(struct smanager_data *sec_data,
-    sec_session_t *sec_session, sec_vsite_t *site)
+	/* user is being redirected to the bookmarked page, expire bookmarked cookie */
+	DBG_PRINTF("expire bookmark cookie: %s\n", SEC_AN_BOOKMARK_COOKIE_EXPIRES);
+	ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
+					  ULOG_NO657, 0, 0, 0, 0, 0, 0, 0);
+
+	sec_generate_redirect(sec_data, "302 Redirect",
+						  SLEN("302 Redirect"),
+						  bookmark_cookie_buffer, bookmark_cookie_len,
+						  session_cookie_buffer, strlen(session_cookie_buffer),
+						  nav_cookie_buffer, strlen(nav_cookie_buffer),
+						  SEC_AN_BOOKMARK_COOKIE_EXPIRES, SLEN(SEC_AN_BOOKMARK_COOKIE_EXPIRES),
+						  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+}
+
+void sec_generate_login_success_response(struct smanager_data *sec_data,
+										 sec_session_t *sec_session, sec_vsite_t *site)
 {
 	/* vpn on and autolaunch */
-	if (sec_session->authorized_netpool.autolaunch_stoponerr && 
-	    HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_VPN) &&
-	    !is_vpn_created(sec_data))
+	if (sec_session->authorized_netpool.autolaunch_stoponerr &&
+		HTTP_FLAG_ISSET(sec_session->privileges, CLIENT_SEC_VPN) &&
+		!is_vpn_created(sec_data))
 	{
-		return sec_generate_welcome_redirect(sec_data, sec_session, site, 
-			AUTOLAUNCH_PATH, TRUE);
+		return sec_generate_welcome_redirect(sec_data, sec_session, site,
+											 AUTOLAUNCH_PATH, TRUE);
 	}
-	
-	if (sec_data->login_return_url[0] != '\0') {
+
+	if (sec_data->login_return_url[0] != '\0')
+	{
 		return sec_generate_welcome_redirect_from_return_url(sec_data, site);
 	}
-	
-	if(SEC_ISSET(site->common_flags, SEC_STATEFULREDIRECT) &&
-            sec_data->bookmark_cookie && 
-            sec_data->bookmark_cookie_len < MAX_APP_PRINT_SIZE) {
+
+	if (SEC_ISSET(site->common_flags, SEC_STATEFULREDIRECT) &&
+		sec_data->bookmark_cookie &&
+		sec_data->bookmark_cookie_len < MAX_APP_PRINT_SIZE)
+	{
 		return sec_generate_welcome_redirect_from_bookmark(sec_data, sec_session, site);
 	}
-	return sec_generate_welcome_redirect(sec_data, sec_session, site, 
-								  WELCOME_PATH, FALSE);
+	return sec_generate_welcome_redirect(sec_data, sec_session, site,
+										 WELCOME_PATH, FALSE);
 }
 
-static void 
+static void
 sec_generate_passchange_response(struct smanager_data *sec_data)
 {
 	uint8_t *cursor = NULL;
@@ -8201,55 +9332,62 @@
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	uint8_t version = 0;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "vsite is NULL in gen_passchange_response.");
 		return;
 	}
 
 	version = vsite->default_theme;
 	in_frame = id_to_frame_chain(content->id, version);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static content(%d) is not available.", content->id);
 		/* customized error page url */
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-		    SEC_CUSTOM_ERR_INTERNAL,
-		    sec_language_get_msg_ex(sec_data, 234));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 234));
 		return;
 	}
-	
+
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
 
 	sec_generate_passchange_js_response(sec_data, &out_frame, &cursor);
 
-	if(write_frame_chunk(&out_frame, &cursor, &in_frame) != NULL) {
+	if (write_frame_chunk(&out_frame, &cursor, &in_frame) != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK,
-				final_page, HTTP_NOCACHE, NULL, NULL,
-				id_to_content_type(content->id), NULL, sec_data,
-				NULL, 0, 0);
-		if (sec_data->response == NULL) {
+																final_page, HTTP_NOCACHE, NULL, NULL,
+																id_to_content_type(content->id), NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate passchange response failed");
 			parser_frame_chain_free(final_page);
 		}
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-	} else {
+	}
+	else
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate passchange response failed 1");
 		parser_frame_chain_free(in_frame);
 	}
 	return;
 }
 
-static void 
+static void
 get_ldap_server_from_url(struct smanager_data *sec_data)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	uint8_t version = 0;
 	sec_session_t *sec_session = sec_data->session;
-	const char *url_prefix_ldap_server = PASSCHANGE_LDAP_PATH"?server=";
+	const char *url_prefix_ldap_server = PASSCHANGE_LDAP_PATH "?server=";
 	int url_prefix_len = strlen(url_prefix_ldap_server);
 	uint8_t *server_p = NULL, old_char = 0;
 	int server_len = 0, unesc_serlen = 0;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "vsite is NULL in get_ldap_server_from_url().");
 		return;
 	}
@@ -8257,7 +9395,7 @@
 	ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "URL:[%s]", sec_data->req_parser_info.url_host.url_p);
 	server_p = sec_data->req_parser_info.url_host.url_p + url_prefix_len;
 	server_len = sec_data->req_parser_info.url_host.url_p + sec_data->req_parser_info.url_host.url_len - server_p;
-	
+
 	old_char = server_p[server_len];
 	server_p[server_len] = 0;
 	n_unescape(server_p, sec_session->current_ldap_server, server_len, AAA_SEV_NAME_LEN, &unesc_serlen);
@@ -8269,7 +9407,7 @@
 	return;
 }
 
-static void 
+static void
 sec_generate_passchange_ldap_response(struct smanager_data *sec_data)
 {
 	uint8_t *cursor = NULL;
@@ -8278,12 +9416,13 @@
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	uint8_t version = 0;
 	sec_session_t *sec_session = sec_data->session;
-	const char *url_prefix_ldap_server = PASSCHANGE_LDAP_PATH"?server=";
+	const char *url_prefix_ldap_server = PASSCHANGE_LDAP_PATH "?server=";
 	int url_prefix_len = strlen(url_prefix_ldap_server);
 	uint8_t *server_p = NULL, old_char = 0;
 	int server_len = 0, unesc_serlen = 0;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "vsite is NULL in gen_passchange_ldap_response.");
 		return;
 	}
@@ -8291,7 +9430,7 @@
 	ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "URL:[%s]", sec_data->req_parser_info.url_host.url_p);
 	server_p = sec_data->req_parser_info.url_host.url_p + url_prefix_len;
 	server_len = sec_data->req_parser_info.url_host.url_p + sec_data->req_parser_info.url_host.url_len - server_p;
-	
+
 	old_char = server_p[server_len];
 	server_p[server_len] = 0;
 	n_unescape(server_p, sec_session->current_ldap_server, server_len, AAA_SEV_NAME_LEN, &unesc_serlen);
@@ -8301,33 +9440,37 @@
 	ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "server_p:[%s]", server_p);
 	ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_session->current_ldap_server:[%s]", sec_session->current_ldap_server);
 
-
 	version = vsite->default_theme;
 	in_frame = id_to_frame_chain(content->id, version);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static content(%d) is not available.", content->id);
 		/* customized error page url */
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-		    SEC_CUSTOM_ERR_INTERNAL,
-		    sec_language_get_msg_ex(sec_data, 234));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 234));
 		return;
 	}
-	
+
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
 
 	sec_generate_passchange_ldap_js_response(sec_data, &out_frame, &cursor);
 
-	if(write_frame_chunk(&out_frame, &cursor, &in_frame) != NULL) {
+	if (write_frame_chunk(&out_frame, &cursor, &in_frame) != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK,
-				final_page, HTTP_NOCACHE, NULL, NULL,
-				id_to_content_type(content->id), NULL, sec_data,
-				NULL, 0, 0);
-		if (sec_data->response == NULL) {
+																final_page, HTTP_NOCACHE, NULL, NULL,
+																id_to_content_type(content->id), NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate passchange ldap response failed");
 			parser_frame_chain_free(final_page);
 		}
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-	} else {
+	}
+	else
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate passchange ldap response failed 1");
 		parser_frame_chain_free(in_frame);
 	}
@@ -8335,12 +9478,14 @@
 }
 
 static int
-sec_generate_ai_sms_js_response(struct smanager_data *sec_data) {
+sec_generate_ai_sms_js_response(struct smanager_data *sec_data)
+{
 	struct frame *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
 
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_sms_js response");
 		return SEC_FAIL;
 	}
@@ -8351,21 +9496,24 @@
 	sec_generate_sms_auth_js_response(sec_data, &out_frame, &cursor);
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-	                HTTP_NOCACHE, NULL, NULL,
-	                "text/javascript", NULL, sec_data,
-	                NULL, 0, 0);
-	if (sec_data->response == NULL) {
+															HTTP_NOCACHE, NULL, NULL,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate ai sms js response failed");
 		parser_frame_chain_free(in_frame);
 		return SEC_FAIL;
-	} else {
+	}
+	else
+	{
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 	}
 
 	return SEC_SUCCESS;
 }
 
-static void 
+static void
 sec_generate_sms_auth_response(struct smanager_data *sec_data)
 {
 	uint8_t *cursor = NULL;
@@ -8374,125 +9522,134 @@
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	uint8_t version = 0;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "vsite is NULL in gen_passchange_response.");
 		return;
 	}
 
 	version = vsite->default_theme;
 	in_frame = id_to_frame_chain(content->id, version);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static content(%d) is not available.", content->id);
 		/* customized error page url */
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-		    SEC_CUSTOM_ERR_INTERNAL,
-		    sec_language_get_msg_ex(sec_data, 234));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 234));
 		return;
 	}
-	
+
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
 
 	sec_generate_sms_auth_js_response(sec_data, &out_frame, &cursor);
 
-	if(write_frame_chunk(&out_frame, &cursor, &in_frame) != NULL) {
+	if (write_frame_chunk(&out_frame, &cursor, &in_frame) != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK,
-				final_page, HTTP_NOCACHE, NULL, NULL,
-				id_to_content_type(content->id), NULL, sec_data,
-				NULL, 0, 0);
-		if (sec_data->response == NULL) {
+																final_page, HTTP_NOCACHE, NULL, NULL,
+																id_to_content_type(content->id), NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate sms response failed");
 			parser_frame_chain_free(final_page);
 		}
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-	} else {
+	}
+	else
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate sms response failed 1");
 		parser_frame_chain_free(in_frame);
 	}
 	return;
 }
 
-static int 
+static int
 sec_generate_bookmark_js_response(struct smanager_data *sec_data,
-                               struct frame **out_frame, uint8_t **cursor) 
+								  struct frame **out_frame, uint8_t **cursor)
 {
-        sec_vsite_t *vsite = sec_data->vsite_p;
-        sec_session_t *sec_session = sec_data->session;
-        int ret = 0;
-        char *lang_string;
-        int32_t lang_str_len;
-
-        if (vsite == NULL) {
-                ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing bookmark js, vsite is null");
-                return ret;
-        }
-
-        if (sec_session == NULL) {
-                ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing bookmark js, sec_session is null");
-                return ret;
-        }
+	sec_vsite_t *vsite = sec_data->vsite_p;
+	sec_session_t *sec_session = sec_data->session;
+	int ret = 0;
+	char *lang_string;
+	int32_t lang_str_len;
+
+	if (vsite == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing bookmark js, vsite is null");
+		return ret;
+	}
+
+	if (sec_session == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing bookmark js, sec_session is null");
+		return ret;
+	}
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
-                
-        write_data_str("var _AN_str_cancel = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 331, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_submit = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 631, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_description = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 763, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_format = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 764, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_type = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 765, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_weblink = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 766, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-
-        write_data_str("var _AN_str_filelink = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 767, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-        
-        write_data_str("var _AN_str_desktop = \"");
-        lang_string = sec_language_get_and_unescape_msg(vsite->language, 768, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
 
-#undef write_data_str
-        return ret;
+	write_data_str("var _AN_str_cancel = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 331, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_submit = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 631, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
+	write_data_str("var _AN_str_description = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 763, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_format = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 764, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_type = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 765, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_weblink = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 766, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_filelink = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 767, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_str_desktop = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 768, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+#undef write_data_str
+	return ret;
 }
 
 static int
 sec_generate_dd_js_response(struct smanager_data *sec_data,
-                               struct frame **out_frame, uint8_t **cursor)
+							struct frame **out_frame, uint8_t **cursor)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *sec_session = sec_data->session;
 	int ret = 0;
 	char *lang_string;
 	int32_t lang_str_len;
-	
-	if (vsite == NULL) {
+
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing dd js, vsite is null");
 		return ret;
 	}
-	
-	if (sec_session == NULL) {
+
+	if (sec_session == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing dd js, sec_session is null");
 		return ret;
 	}
@@ -8527,7 +9684,7 @@
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 668, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	
+
 	write_data_str("var _AN_str_connecting = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 669, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
@@ -8760,8 +9917,8 @@
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 715, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	
-		write_data_str("var _AN_str_bitmap = \"");
+
+	write_data_str("var _AN_str_bitmap = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 716, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
@@ -8916,28 +10073,29 @@
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 752, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
 	write_data_str("\";\n");
-	
-	
+
 #undef write_data_str
 	return ret;
 }
 
 static int
 sec_generate_smx_auth_js_response(struct smanager_data *sec_data,
-                               struct frame **out_frame, uint8_t **cursor, int action)
+								  struct frame **out_frame, uint8_t **cursor, int action)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *sec_session = sec_data->session;
 	int ret = 0;
 	char *lang_string;
 	int32_t lang_str_len;
-	
-	if (vsite == NULL) {
+
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing smx js, vsite is null");
 		return ret;
 	}
-	
-	if (sec_session == NULL) {
+
+	if (sec_session == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing smx js, sec_session is null");
 		return ret;
 	}
@@ -8958,7 +10116,7 @@
 	write_data_str("var _AN_str_username = \"");
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	write_data_str("\";\n");
-	
+
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 221, &lang_str_len);
 	write_data_str("var _AN_str_password = \"");
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
@@ -8968,22 +10126,23 @@
 	write_data_str("var _AN_str_currentpass = \"");
 	write_data(lang_string, cursor, strlen(lang_string), out_frame);
 	write_data_str("\";\n");
-		
+
 	write_data_str("var _AN_str_newpass = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 327, &lang_str_len);
-        write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
 
-        write_data_str("var _AN_str_confirm = \"");
+	write_data_str("var _AN_str_confirm = \"");
 	lang_string = sec_language_get_and_unescape_msg(vsite->language, 328, &lang_str_len);
 	write_data(lang_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");	
+	write_data_str("\";\n");
 
 	write_data_str("var _AN_LoginID = \"");
 	write_data(sec_session->username, cursor, strlen(sec_session->username), out_frame);
 	write_data_str("\";\n");
 
-	if (action == CONFIRM_PASSWORD) {
+	if (action == CONFIRM_PASSWORD)
+	{
 		write_data_str("var _AN_action = \"CONFIRM_PASSWORD\";\n");
 		write_data_str("var _AN_matrixResource = \"");
 		write_data(sec_session->smx_result.matrixResource, cursor, strlen(sec_session->smx_result.matrixResource), out_frame);
@@ -9003,11 +10162,15 @@
 		write_data_str("var _AN_str_title = \"");
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 654, &lang_str_len);
 		write_data(lang_string, cursor, lang_str_len, out_frame);
-	        write_data_str("\";\n");
+		write_data_str("\";\n");
 		ret = 1;
-	} else if (action == GET_MATRIX_RESOURCE) {
+	}
+	else if (action == GET_MATRIX_RESOURCE)
+	{
 		/*should not come here*/
-	} else if (action == GET_MATRIX_RESOURCE_C) {
+	}
+	else if (action == GET_MATRIX_RESOURCE_C)
+	{
 		write_data_str("var _AN_action = \"GET_MATRIX_RESOURCE_C\";\n");
 		write_data_str("var _AN_matrixResource = \"");
 		write_data(sec_session->smx_result.matrixResource, cursor, strlen(sec_session->smx_result.matrixResource), out_frame);
@@ -9027,9 +10190,11 @@
 		write_data_str("var _AN_str_title = \"");
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 655, &lang_str_len);
 		write_data(lang_string, cursor, lang_str_len, out_frame);
-	        write_data_str("\";\n");
+		write_data_str("\";\n");
 		ret = 1;
-	} else if (action == COMMIT_PASSWORD) {
+	}
+	else if (action == COMMIT_PASSWORD)
+	{
 		write_data_str("var _AN_action = \"COMMIT_PASSWORD\";\n");
 		write_data_str("var _AN_matrixResource = \"");
 		write_data(sec_session->smx_result.matrixResource, cursor, strlen(sec_session->smx_result.matrixResource), out_frame);
@@ -9052,9 +10217,11 @@
 		write_data_str("var _AN_str_title = \"");
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 655, &lang_str_len);
 		write_data(lang_string, cursor, lang_str_len, out_frame);
-	        write_data_str("\";\n");
+		write_data_str("\";\n");
 		ret = 1;
-	} else if (action == DECIDE_PASSWORD) {
+	}
+	else if (action == DECIDE_PASSWORD)
+	{
 		write_data_str("var _AN_action = \"DECIDE_PASSWORD\";\n");
 		write_data_str("var _AN_matrixResource = \"");
 		write_data(sec_session->smx_result.matrixResource, cursor, strlen(sec_session->smx_result.matrixResource), out_frame);
@@ -9074,32 +10241,36 @@
 		write_data_str("var _AN_str_title = \"");
 		lang_string = sec_language_get_and_unescape_msg(vsite->language, 655, &lang_str_len);
 		write_data(lang_string, cursor, lang_str_len, out_frame);
-	        write_data_str("\";\n");
+		write_data_str("\";\n");
 		ret = 1;
-	} else {
+	}
+	else
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "invalid step");
 	}
-	
+
 #undef write_data_str
 	return ret;
 }
 
 static int
-sec_generate_ai_smx_js_response(struct smanager_data *sec_data) {
+sec_generate_ai_smx_js_response(struct smanager_data *sec_data)
+{
 	struct frame *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
 	int action = 0;
 	sec_session_t *sec_session = sec_data->session;
-	
+
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_smx_js response");
 		return SEC_FAIL;
 	}
 
 	/* get action from session */
 	action = sec_session->smx_result.step;
-	
+
 	cursor = in_frame->f_data;
 	in_frame->f_datalen = 0;
 	out_frame = in_frame;
@@ -9107,14 +10278,17 @@
 	sec_generate_smx_auth_js_response(sec_data, &out_frame, &cursor, action);
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-	                HTTP_NOCACHE, NULL, NULL,
-	                "text/javascript", NULL, sec_data,
-	                NULL, 0, 0);
-	if (sec_data->response == NULL) {
+															HTTP_NOCACHE, NULL, NULL,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate ai smx js response failed");
 		parser_frame_chain_free(in_frame);
 		return SEC_FAIL;
-	} else {
+	}
+	else
+	{
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 	}
 
@@ -9122,13 +10296,15 @@
 }
 
 static int
-sec_generate_ai_dd_js_response(struct smanager_data *sec_data) {
+sec_generate_ai_dd_js_response(struct smanager_data *sec_data)
+{
 	struct frame *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
 	sec_session_t *sec_session = sec_data->session;
-	
+
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_dd_js response");
 		return SEC_FAIL;
 	}
@@ -9138,73 +10314,82 @@
 	sec_generate_dd_js_response(sec_data, &out_frame, &cursor);
 
 	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-	                HTTP_NOCACHE, NULL, NULL,
-	                "text/javascript", NULL, sec_data,
-	                NULL, 0, 0);
-	if (sec_data->response == NULL) {
+															HTTP_NOCACHE, NULL, NULL,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate ai dd js response failed");
 		parser_frame_chain_free(in_frame);
 		return SEC_FAIL;
-	} else {
+	}
+	else
+	{
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 	}
 
 	return SEC_SUCCESS;
 }
 
-static int 
-sec_generate_ai_bookmark_js_response(struct smanager_data *sec_data) {     
-        struct frame *out_frame = NULL, *in_frame;
-        uint8_t *cursor = NULL;
-        sec_session_t *sec_session = sec_data->session;
-
-        in_frame = parser_frame_alloc();
-        if (in_frame == NULL) {
-                ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_dd_js response");
-                return SEC_FAIL;
-        }
-        cursor = in_frame->f_data;
-        in_frame->f_datalen = 0;
-        out_frame = in_frame;
-        sec_generate_bookmark_js_response(sec_data, &out_frame, &cursor);
-
-        sec_data->response = create_http_response_with_bookmark(OK, in_frame,
-                        HTTP_NOCACHE, NULL, NULL,
-                        "text/javascript", NULL, sec_data,
-                        NULL, 0, 0);
-        if (sec_data->response == NULL) {
-                ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate ai dd js response failed");
-                parser_frame_chain_free(in_frame);
-                return SEC_FAIL;
-        } else {
-                HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-        }
+static int
+sec_generate_ai_bookmark_js_response(struct smanager_data *sec_data)
+{
+	struct frame *out_frame = NULL, *in_frame;
+	uint8_t *cursor = NULL;
+	sec_session_t *sec_session = sec_data->session;
+
+	in_frame = parser_frame_alloc();
+	if (in_frame == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in create_dd_js response");
+		return SEC_FAIL;
+	}
+	cursor = in_frame->f_data;
+	in_frame->f_datalen = 0;
+	out_frame = in_frame;
+	sec_generate_bookmark_js_response(sec_data, &out_frame, &cursor);
+
+	sec_data->response = create_http_response_with_bookmark(OK, in_frame,
+															HTTP_NOCACHE, NULL, NULL,
+															"text/javascript", NULL, sec_data,
+															NULL, 0, 0);
+	if (sec_data->response == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate ai dd js response failed");
+		parser_frame_chain_free(in_frame);
+		return SEC_FAIL;
+	}
+	else
+	{
+		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
+	}
 
-        return SEC_SUCCESS;
+	return SEC_SUCCESS;
 }
 
-int
-sec_get_smx_info_from_url(smanager_data_t *sec_data)
+int sec_get_smx_info_from_url(smanager_data_t *sec_data)
 {
 	uint8_t *action_p = NULL, old_char = 0;
 	int device_len = 0;
 	sec_session_t *sec_session = sec_data->session;
 
-	if (strncmp(SMX_PATH"?server=", sec_data->req_parser_info.url_host.url_p, strlen(SMX_PATH"?server=")) == 0) {
-		sscanf(sec_data->req_parser_info.url_host.url_p, SMX_PATH"?server=%s", sec_session->smx_server_name);
+	if (strncmp(SMX_PATH "?server=", sec_data->req_parser_info.url_host.url_p, strlen(SMX_PATH "?server=")) == 0)
+	{
+		sscanf(sec_data->req_parser_info.url_host.url_p, SMX_PATH "?server=%s", sec_session->smx_server_name);
 		return 0;
-	}else if (strncmp(AI_SMX_JS_PATH"?server=", sec_data->req_parser_info.url_host.url_p, strlen(SMX_PATH"?server=")) == 0) {
-		sscanf(sec_data->req_parser_info.url_host.url_p, SMX_PATH"?server=%s", sec_session->smx_server_name);
+	}
+	else if (strncmp(AI_SMX_JS_PATH "?server=", sec_data->req_parser_info.url_host.url_p, strlen(SMX_PATH "?server=")) == 0)
+	{
+		sscanf(sec_data->req_parser_info.url_host.url_p, SMX_PATH "?server=%s", sec_session->smx_server_name);
 		return 0;
 	}
 	ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "%s: invalid URL: %s.", __FUNCTION__,
-			sec_data->req_parser_info.url_host.url_p);
+					sec_data->req_parser_info.url_host.url_p);
 
 	return -1;
 }
 
-
-static int 
+static int
 sec_generate_smx_auth_response(struct smanager_data *sec_data)
 {
 	uint8_t *cursor = NULL;
@@ -9215,107 +10400,125 @@
 	int action = 0;
 	int step = 0;
 	sec_session_t *sec_session = sec_data->session;
-	
-	if (vsite == NULL) {
+
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "vsite is NULL in sec_generate_smx_auth_response.");
 		return SEC_REQ_ERR;
 	}
 
-	if (sec_session == NULL) {
+	if (sec_session == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_session is null in sec_generate_smx_auth_response");
 		return SEC_REQ_ERR;
 	}
-	
+
 	version = vsite->default_theme;
 	in_frame = id_to_frame_chain(content->id, version);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static content(%d) is not available.", content->id);
 		/* customized error page url */
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-		    SEC_CUSTOM_ERR_INTERNAL,
-		    sec_language_get_msg_ex(sec_data, 234));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 234));
 		return SEC_REQ_ERR;
 	}
 
 	/* get action from session */
 	step = sec_session->smx_result.step;
 	action = sec_session->smx_action;
-	if (step == 0 && action != SEC_MESSAGE_TYPE_SMX_AUTH) {
+	if (step == 0 && action != SEC_MESSAGE_TYPE_SMX_AUTH)
+	{
 		/* smx_action is 0 when login sequences or password change sequences finished.
 		 * so if come here, this must be a password change start request
 		 */
 		int ret = 0;
 		ret = sec_get_smx_info_from_url(sec_data);
-		if (ret < 0) {
+		if (ret < 0)
+		{
 			sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-			    SEC_CUSTOM_ERR_REQ,
-			    sec_language_get_msg_ex(sec_data, 239));
+										SEC_CUSTOM_ERR_REQ,
+										sec_language_get_msg_ex(sec_data, 239));
 			return SEC_REQ_ERR;
-		} else {
+		}
+		else
+		{
 			/* send requset to AAA */
-			issue_smx_auth_resp(sec_data, sec_data->vsite_p->name, 
-		                      sec_session->username, NULL, NULL, NULL, SEC_MESSAGE_TYPE_SMX_PASSWDCHANGE, GET_MATRIX_RESOURCE);
+			issue_smx_auth_resp(sec_data, sec_data->vsite_p->name,
+								sec_session->username, NULL, NULL, NULL, SEC_MESSAGE_TYPE_SMX_PASSWDCHANGE, GET_MATRIX_RESOURCE);
 			/*need to change to smanager wait AAA stat*/
 			return SEC_REQ_SMX_PWD_START;
 		}
 	}
-	
+
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
 
 	/*sec_generate_smx_auth_js_response(sec_data, &out_frame, &cursor, action);*/
-	if (final_page != NULL) {
-	/*if(write_frame_chunk(&out_frame, &cursor, &in_frame) != NULL) {*/
+	if (final_page != NULL)
+	{
+		/*if(write_frame_chunk(&out_frame, &cursor, &in_frame) != NULL) {*/
 		sec_data->response = create_http_response_with_bookmark(OK,
-				final_page, HTTP_NOCACHE, NULL, NULL,
-				id_to_content_type(content->id), NULL, sec_data,
-				NULL, 0, 0);
-		if (sec_data->response == NULL) {
+																final_page, HTTP_NOCACHE, NULL, NULL,
+																id_to_content_type(content->id), NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate smx response failed");
 			parser_frame_chain_free(final_page);
 		}
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-	} else {
+	}
+	else
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate smx response failed 1");
 		parser_frame_chain_free(in_frame);
 	}
 	return SEC_REQ_SMX_AUTH_PATH;
 }
 
-
 static void
 sec_generate_autolaunch_response(struct smanager_data *sec_data, sec_vsite_t *vsite,
-		sec_session_t *session, char* redirect_url, char* auto_value, uint8_t shut_down)
+								 sec_session_t *session, char *redirect_url, char *auto_value, uint8_t shut_down)
 {
 	uint8_t *cursor = NULL;
 	struct frame *final_page, *in_frame, *out_frame = NULL;
 	content_node_t *content = sec_data->content;
 
 	in_frame = id_to_frame_chain(AUTOLAUNCH_ID, vsite->default_theme);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Autolaunch page is not available.");
 		/* customized error page url */
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-		    SEC_CUSTOM_ERR_INTERNAL, sec_language_get_msg_ex(sec_data, 234));
+									SEC_CUSTOM_ERR_INTERNAL, sec_language_get_msg_ex(sec_data, 234));
 		return;
 	}
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
 		sec_generate_vpn_js_response(sec_data, &out_frame, &cursor, "http://localh/welcome", "1", FALSE);
-	} else {
+	}
+	else
+	{
 		sec_generate_vpn_js_response(sec_data, &out_frame, &cursor, "http://localhost/welcome", "1", FALSE);
 	}
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
-	if(final_page != NULL) {
+	if (final_page != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK,
-				final_page, HTTP_NOCACHE, NULL, NULL,
-				id_to_content_type(AUTOLAUNCH_ID), NULL, sec_data,
-				NULL, 0, 0);
-		if (sec_data->response == NULL) {
-				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate autolaunch response failed");
-				parser_frame_chain_free(final_page);
+																final_page, HTTP_NOCACHE, NULL, NULL,
+																id_to_content_type(AUTOLAUNCH_ID), NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate autolaunch response failed");
+			parser_frame_chain_free(final_page);
 		}
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-	} else {
+	}
+	else
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate autolaunch response failed 1");
 		parser_frame_chain_free(in_frame);
 	}
@@ -9324,7 +10527,7 @@
 
 static void
 sec_generate_quicklink_set_response(struct smanager_data *sec_data,
-	sec_vsite_t *vhost, sec_session_t *session)
+									sec_vsite_t *vhost, sec_session_t *session)
 {
 	sec_quicklink_info_t *quicklink_info = NULL;
 	sec_quicklink_detail_info_t *quicklink_detail = NULL;
@@ -9334,24 +10537,31 @@
 	char *colon_pos = NULL;
 	char req_prefix[SEC_MAX_URL_LEN] = {0};
 
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-		strncpy(req_prefix, "/prx/000/http/localh", SEC_MAX_URL_LEN-1);
-	} else {
-		strncpy(req_prefix, SEC_REWRITTEN_PREFIX, SEC_MAX_URL_LEN-1);
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
+		strncpy(req_prefix, "/prx/000/http/localh", SEC_MAX_URL_LEN - 1);
+	}
+	else
+	{
+		strncpy(req_prefix, SEC_REWRITTEN_PREFIX, SEC_MAX_URL_LEN - 1);
 	}
-	if(sec_data->req_parser_info.url_host.url_len > QUICKLINK_STR_LEN
-			&& strncmp(QUICKLINK_STR, sec_data->req_parser_info.url_host.url_p, QUICKLINK_STR_LEN)==0)
+	if (sec_data->req_parser_info.url_host.url_len > QUICKLINK_STR_LEN && strncmp(QUICKLINK_STR, sec_data->req_parser_info.url_host.url_p, QUICKLINK_STR_LEN) == 0)
 	{
 		snprintf(req_domain, SEC_MAX_URL_LEN, "%s", sec_data->req_domain);
-		if (DOMAIN_IS_IPV6_ADDRESS(req_domain)) {
+		if (DOMAIN_IS_IPV6_ADDRESS(req_domain))
+		{
 			colon_pos = strchr(req_domain, ']');
-			if (colon_pos) {
+			if (colon_pos)
+			{
 				colon_pos = strchr(colon_pos, ':');
 			}
-		} else {
+		}
+		else
+		{
 			colon_pos = strchr(req_domain, ':');
 		}
-		if (colon_pos != NULL) {
+		if (colon_pos != NULL)
+		{
 			*colon_pos = '\0';
 		}
 
@@ -9359,76 +10569,88 @@
 		resource_p = sec_data->req_parser_info.url_host.url_p + QUICKLINK_STR_LEN;
 		resource_len = sec_data->req_parser_info.url_host.url_len - QUICKLINK_STR_LEN;
 		url_p = strnstr(resource_p, QUICKLINK_STR2, resource_len);
-		if (url_p == NULL) {
+		if (url_p == NULL)
+		{
 			sec_generate_error_response(sec_data, TRUE, FORBIDDEN,
-			            SEC_CUSTOM_ERR_INTERNAL,
-			            sec_language_get_msg_ex(sec_data, 272));
+										SEC_CUSTOM_ERR_INTERNAL,
+										sec_language_get_msg_ex(sec_data, 272));
 			return;
 		}
 		resource_len = url_p - resource_p;
 		url_p += QUICKLINK_STR2_LEN;
 		url_len = sec_data->req_parser_info.url_host.url_len - QUICKLINK_STR_LEN - resource_len - QUICKLINK_STR2_LEN;
-			
-		if (' ' == url_p[url_len-1]) {
+
+		if (' ' == url_p[url_len - 1])
+		{
 			/* the url is ended with a blank space, strip it */
 			url_len--;
 		}
-		TAILQ_FOREACH(quicklink_detail, &vhost->quicklink_detail_list, next_info) {
-			if(resource_len == strlen(quicklink_detail->quicklink_id->resource_id)
-					&& strncmp(quicklink_detail->quicklink_id->resource_id, resource_p, resource_len) == 0
-					&& quicklink_detail->is_link)
+		TAILQ_FOREACH(quicklink_detail, &vhost->quicklink_detail_list, next_info)
+		{
+			if (resource_len == strlen(quicklink_detail->quicklink_id->resource_id) && strncmp(quicklink_detail->quicklink_id->resource_id, resource_p, resource_len) == 0 && quicklink_detail->is_link)
 			{
 				snprintf(sec_data->session->sp_host, VSITE_DOMAIN_LEN, sec_data->req_domain);
 				quicklink_info = quicklink_detail->quicklink_id;
 				sprint_session_cookie_for_quicklink(session_cookie_buffer, sec_data);
-				if (url_p) {
-					escape_multibyte(url_p, url_len, 
-					                 quicklink_url_buffer, SEC_MAX_URL_LEN);
-				} else {
+				if (url_p)
+				{
+					escape_multibyte(url_p, url_len,
+									 quicklink_url_buffer, SEC_MAX_URL_LEN);
+				}
+				else
+				{
 					escape_multibyte(quicklink_detail->backend_url + quicklink_detail->host_and_scheme_len,
-					                 strlen(quicklink_detail->backend_url + quicklink_detail->host_and_scheme_len),
-					                 quicklink_url_buffer, SEC_MAX_URL_LEN);
+									 strlen(quicklink_detail->backend_url + quicklink_detail->host_and_scheme_len),
+									 quicklink_url_buffer, SEC_MAX_URL_LEN);
 				}
-				
-				if (quicklink_info->port) {
+
+				if (quicklink_info->port)
+				{
 					sprintf(portal_temp_string, "%s://%s:%d%s%s?url=%s&%s=%s&session=%s",
-						"https", req_domain, quicklink_info->port, req_prefix,
-						AN_QUICKLINK_GET_PATH, 
-						quicklink_url_buffer,
-						SEC_AN_SPHOST_NAME, sec_data->req_domain, 
-						session_cookie_buffer);
-				} else if (quicklink_info->hostname[0]){
-					if(!sec_data->req_port){
-						sprintf(portal_temp_string, "%s://%s%s%s?url=%s&%s=%s&session=%s",
-							"https", quicklink_info->hostname, req_prefix, 
-							AN_QUICKLINK_GET_PATH, 
+							"https", req_domain, quicklink_info->port, req_prefix,
+							AN_QUICKLINK_GET_PATH,
 							quicklink_url_buffer,
 							SEC_AN_SPHOST_NAME, sec_data->req_domain,
 							session_cookie_buffer);
-					} else {
+				}
+				else if (quicklink_info->hostname[0])
+				{
+					if (!sec_data->req_port)
+					{
+						sprintf(portal_temp_string, "%s://%s%s%s?url=%s&%s=%s&session=%s",
+								"https", quicklink_info->hostname, req_prefix,
+								AN_QUICKLINK_GET_PATH,
+								quicklink_url_buffer,
+								SEC_AN_SPHOST_NAME, sec_data->req_domain,
+								session_cookie_buffer);
+					}
+					else
+					{
 						sprintf(portal_temp_string, "%s://%s:%d%s%s?url=%s&%s=%s&session=%s",
-							"https", quicklink_info->hostname, sec_data->req_port, req_prefix,
-							AN_QUICKLINK_GET_PATH, 
-							quicklink_url_buffer,
-							SEC_AN_SPHOST_NAME, sec_data->req_domain,
-							session_cookie_buffer);
+								"https", quicklink_info->hostname, sec_data->req_port, req_prefix,
+								AN_QUICKLINK_GET_PATH,
+								quicklink_url_buffer,
+								SEC_AN_SPHOST_NAME, sec_data->req_domain,
+								session_cookie_buffer);
 					}
-				} else if (quicklink_info->pathname[0]) {
+				}
+				else if (quicklink_info->pathname[0])
+				{
 					sprintf(portal_temp_string, "%s://%s/%s%s",
-					"https", sec_data->req_domain, quicklink_info->pathname,
-					quicklink_url_buffer);
+							"https", sec_data->req_domain, quicklink_info->pathname,
+							quicklink_url_buffer);
 				}
 				sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-							  portal_temp_string, strlen(portal_temp_string),
-							  NULL, 0,
-							  NULL, 0, NULL, 0, 
-							  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+									  portal_temp_string, strlen(portal_temp_string),
+									  NULL, 0,
+									  NULL, 0, NULL, 0,
+									  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
 				return;
 			}
 		}
 		sec_generate_error_response(sec_data, TRUE, FORBIDDEN,
-		            SEC_CUSTOM_ERR_INTERNAL,
-		            sec_language_get_msg_ex(sec_data, 272));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 272));
 	}
 	return;
 }
@@ -9437,11 +10659,11 @@
 #define GET_IDLELEFT_STR "{ret: %d, idle_left: %d}"
 #define GET_LIFELEFT_STR "{ret: %d, life_left: %d}"
 #define GET_TIMELEFT_STR "{ret: %d, idle_left: %d, life_left: %d}"
-#define RESET_IDLE_STR   "{ret: %d}"
-#define RESET_LIFE_STR   "{ret: %d}"
+#define RESET_IDLE_STR "{ret: %d}"
+#define RESET_LIFE_STR "{ret: %d}"
 #define SESS_EXT_ERR_STR "{ret: 0}"
 #define SESS_EXT_SUCCESS 1
-#define SESS_EXT_FAIL    0
+#define SESS_EXT_FAIL 0
 
 static int32_t
 sec_generate_sessext_response(struct smanager_data *sec_data)
@@ -9462,22 +10684,25 @@
 	uint8_t *cursor = NULL;
 	time_t current_time;
 	char ipstr[INET6_ADDRSTRLEN];
- 	struct in_addr ip4;
+	struct in_addr ip4;
 	ip4.s_addr = sec_data->serverip;
 	inet_ntop(AF_INET, &ip4, ipstr, INET6_ADDRSTRLEN);
 
 	in_frame = parser_frame_alloc();
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in sessext response");
 		return SEC_FAIL;
 	}
-	
+
 	role_p = session->role_list[0];
-	if (role_p == NULL) {
+	if (role_p == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to get role in session");
 		return SEC_FAIL;
 	}
-	if (role_p->session_lifecycle_policy_p != NULL) {
+	if (role_p->session_lifecycle_policy_p != NULL)
+	{
 		idle_warning = role_p->session_lifecycle_policy_p->idle_warning;
 		lifetime_warning = role_p->session_lifecycle_policy_p->lifetime_warning;
 		lifetime_ext = role_p->session_lifecycle_policy_p->lifetime_ext;
@@ -9490,96 +10715,109 @@
 	out_frame = in_frame;
 
 	if ((role_p->session_lifecycle_policy_p == NULL && !SEC_ISSET(vsite->common_flags, SEC_SESS_EXT_ENABLED)) ||
-		(role_p->session_lifecycle_policy_p != NULL && role_p->session_lifecycle_policy_p->session_ext == 0) || 
+		(role_p->session_lifecycle_policy_p != NULL && role_p->session_lifecycle_policy_p->session_ext == 0) ||
 		content == NULL ||
 		content->id < SESSION_EXT_WARNINGTIME_ID ||
-		content->id > SESSION_EXT_EXTEND_LIFE_ID) {
+		content->id > SESSION_EXT_EXTEND_LIFE_ID)
+	{
 		/* the feature session extension is off */
 		snprintf(str, sizeof(str), SESS_EXT_ERR_STR);
 		write_data(str, &cursor, strlen(str), &out_frame);
-	} else {
-		current_time =  get_curtime();
-		switch (content->id) {
-			case SESSION_EXT_WARNINGTIME_ID:
-				snprintf(str, sizeof(str), WARNING_TIME_STR, SESS_EXT_SUCCESS,
-				    idle_warning, lifetime_warning, lifetime_ext);
-				write_data(str, &cursor, strlen(str), &out_frame);
-				break;
-			case SESSION_EXT_GET_IDLE_ID:
-				snprintf(str, sizeof(str), GET_IDLELEFT_STR, SESS_EXT_SUCCESS,
-					idle_timeout - (current_time - session->last_active_time));
-				write_data(str, &cursor, strlen(str), &out_frame);
-				break;
-			case SESSION_EXT_GET_LIFE_ID:
-				snprintf(str, sizeof(str), GET_LIFELEFT_STR, SESS_EXT_SUCCESS,
-					(session->extension_lifetime + lifetime_timeout) - 
-					(current_time - session->login_time));
-				write_data(str, &cursor, strlen(str), &out_frame);
-				break;
-			case SESSION_EXT_GET_LEFTTIME_ID:
-				snprintf(str, sizeof(str), GET_TIMELEFT_STR, SESS_EXT_SUCCESS,
-					idle_timeout - (current_time - session->last_active_time),
-					(session->extension_lifetime + lifetime_timeout) - 
-					(current_time - session->login_time));
-				write_data(str, &cursor, strlen(str), &out_frame);
-				break;
-			case SESSION_EXT_EXTEND_LIFE_ID:
-			{
-				int32_t cur_ext = lifetime_ext;
+	}
+	else
+	{
+		current_time = get_curtime();
+		switch (content->id)
+		{
+		case SESSION_EXT_WARNINGTIME_ID:
+			snprintf(str, sizeof(str), WARNING_TIME_STR, SESS_EXT_SUCCESS,
+					 idle_warning, lifetime_warning, lifetime_ext);
+			write_data(str, &cursor, strlen(str), &out_frame);
+			break;
+		case SESSION_EXT_GET_IDLE_ID:
+			snprintf(str, sizeof(str), GET_IDLELEFT_STR, SESS_EXT_SUCCESS,
+					 idle_timeout - (current_time - session->last_active_time));
+			write_data(str, &cursor, strlen(str), &out_frame);
+			break;
+		case SESSION_EXT_GET_LIFE_ID:
+			snprintf(str, sizeof(str), GET_LIFELEFT_STR, SESS_EXT_SUCCESS,
+					 (session->extension_lifetime + lifetime_timeout) -
+						 (current_time - session->login_time));
+			write_data(str, &cursor, strlen(str), &out_frame);
+			break;
+		case SESSION_EXT_GET_LEFTTIME_ID:
+			snprintf(str, sizeof(str), GET_TIMELEFT_STR, SESS_EXT_SUCCESS,
+					 idle_timeout - (current_time - session->last_active_time),
+					 (session->extension_lifetime + lifetime_timeout) -
+						 (current_time - session->login_time));
+			write_data(str, &cursor, strlen(str), &out_frame);
+			break;
+		case SESSION_EXT_EXTEND_LIFE_ID:
+		{
+			int32_t cur_ext = lifetime_ext;
 
-				char *p = NULL;
-				p = strnstr(sec_data->req_parser_info.url_host.url_p, "?exttime=",
-				       sec_data->req_parser_info.url_host.url_len);
-				if (p != NULL) {
-					p += strlen("?exttime=");
-					cur_ext = strtol(p, NULL, 10);
-					if (cur_ext <= 0 || cur_ext > lifetime_ext) {
-						cur_ext = lifetime_ext;
-					}
-				}
-				/* The extension time cannot exceed 3 times of session lifetime. */
-				if (session->extension_lifetime + cur_ext > 3 * lifetime_timeout) {
-					cur_ext = 3 * lifetime_timeout - session->extension_lifetime;
-					session->extension_lifetime = 3 * lifetime_timeout;
-				} else {
-					session->extension_lifetime += cur_ext;
+			char *p = NULL;
+			p = strnstr(sec_data->req_parser_info.url_host.url_p, "?exttime=",
+						sec_data->req_parser_info.url_host.url_len);
+			if (p != NULL)
+			{
+				p += strlen("?exttime=");
+				cur_ext = strtol(p, NULL, 10);
+				if (cur_ext <= 0 || cur_ext > lifetime_ext)
+				{
+					cur_ext = lifetime_ext;
 				}
+			}
+			/* The extension time cannot exceed 3 times of session lifetime. */
+			if (session->extension_lifetime + cur_ext > 3 * lifetime_timeout)
+			{
+				cur_ext = 3 * lifetime_timeout - session->extension_lifetime;
+				session->extension_lifetime = 3 * lifetime_timeout;
+			}
+			else
+			{
+				session->extension_lifetime += cur_ext;
+			}
 
-				slog1(SMANAGER_SESS_EXTEND_LIFE, vsite->name, session->username,
-				    NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
-				    ipstr, sec_data->port, sec_data->servername,
-				    sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
-				    -1, -1, WELF_TYPE_VPN, 3, session->session_id, cur_ext, session->extension_lifetime);
+			slog1(SMANAGER_SESS_EXTEND_LIFE, vsite->name, session->username,
+				  NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
+				  ipstr, sec_data->port, sec_data->servername,
+				  sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
+				  -1, -1, WELF_TYPE_VPN, 3, session->session_id, cur_ext, session->extension_lifetime);
 
-				snprintf(str, sizeof(str), RESET_IDLE_STR, SESS_EXT_SUCCESS);
-				write_data(str, &cursor, strlen(str), &out_frame);
-				break;
-			}
-			case SESSION_EXT_RESET_IDLE_ID:
-				slog1(SMANAGER_SESS_RESET_IDLE, vsite->name, session->username,
-				    NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
-				    ipstr, sec_data->port, sec_data->servername,
-				    sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
-				    -1, -1, WELF_TYPE_VPN, 1, session->session_id);
-				snprintf(str, sizeof(str), RESET_IDLE_STR, SESS_EXT_SUCCESS);
-				write_data(str, &cursor, strlen(str), &out_frame);
-				break;
-			default:
-				break;
+			snprintf(str, sizeof(str), RESET_IDLE_STR, SESS_EXT_SUCCESS);
+			write_data(str, &cursor, strlen(str), &out_frame);
+			break;
+		}
+		case SESSION_EXT_RESET_IDLE_ID:
+			slog1(SMANAGER_SESS_RESET_IDLE, vsite->name, session->username,
+				  NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
+				  ipstr, sec_data->port, sec_data->servername,
+				  sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
+				  -1, -1, WELF_TYPE_VPN, 1, session->session_id);
+			snprintf(str, sizeof(str), RESET_IDLE_STR, SESS_EXT_SUCCESS);
+			write_data(str, &cursor, strlen(str), &out_frame);
+			break;
+		default:
+			break;
 		}
 	}
 
-	if(in_frame != NULL) {
+	if (in_frame != NULL)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK,
-				in_frame, HTTP_NOCACHE, NULL, NULL,
-				id_to_content_type(SESSION_EXT_WARNINGTIME_ID), NULL, sec_data,
-				NULL, 0, 0);
-		if (sec_data->response == NULL) {
-				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate autolaunch response failed");
-				parser_frame_chain_free(in_frame);
+																in_frame, HTTP_NOCACHE, NULL, NULL,
+																id_to_content_type(SESSION_EXT_WARNINGTIME_ID), NULL, sec_data,
+																NULL, 0, 0);
+		if (sec_data->response == NULL)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate autolaunch response failed");
+			parser_frame_chain_free(in_frame);
 		}
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
-	} else {
+	}
+	else
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "generate autolaunch response failed 1");
 		parser_frame_chain_free(in_frame);
 	}
@@ -9596,23 +10834,26 @@
 
 	memset(randcode, 0, sizeof(randcode));
 	start = strstr(url_host_p->url_p, "verifycode=");
-	if (start == NULL) {
+	if (start == NULL)
+	{
 		return NULL;
 	}
 
 	start += strlen("verifycode=");
 	end = strstr(start, "&");
-	if (end == NULL || (intptr_t)end > (intptr_t)(url_host_p->url_p + url_host_p->url_len)) {
-		strncpy(randcode, start, min(sizeof(randcode)-1,
-		        url_host_p->url_len-((intptr_t)start-(intptr_t)url_host_p->url_p)));
-	} else {
-		strncpy(randcode, url_host_p->url_p, (end-start-1));
+	if (end == NULL || (intptr_t)end > (intptr_t)(url_host_p->url_p + url_host_p->url_len))
+	{
+		strncpy(randcode, start, min(sizeof(randcode) - 1, url_host_p->url_len - ((intptr_t)start - (intptr_t)url_host_p->url_p)));
+	}
+	else
+	{
+		strncpy(randcode, url_host_p->url_p, (end - start - 1));
 	}
 
 	return randcode;
 }
 
-int32_t 
+int32_t
 sec_local_request(struct smanager_data *sec_data)
 {
 	content_node_t *local_content = sec_data->content;
@@ -9622,284 +10863,345 @@
 	passwd_change_page_t *pass_page = NULL;
 	char *url_p;
 
-	if (local_content == NULL) {
+	if (local_content == NULL)
+	{
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-		            SEC_CUSTOM_ERR_INTERNAL,
-		            sec_language_get_msg_ex(sec_data, 234));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 234));
 		return SEC_SUCCESS;
 	}
 
 	DBG_PRINTF("Get local request, id %d", local_content->id);
 	ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-	                  ULOG_NO658, local_content->id, 0,0,0,0,0,0);
-	switch (local_content->id) {
-		case LOGOUT_ID:
-			if (session != NULL && SEC_ISSET(session->flags, SESS_FROM_SAML)) {
-				snprintf(sec_data->redirect_url, SEC_MAX_NAVIGATE_URL_LEN, "http://%s%s/%s%s?as=%s&logout",
-				     SAML_SERVER_NAME, AAA_SAML_PATH, vsite->name, SAML_SERVER_AUTH_PATH, vsite->name);
-				return SEC_REDIRECT;
+					  ULOG_NO658, local_content->id, 0, 0, 0, 0, 0, 0);
+	switch (local_content->id)
+	{
+	case LOGOUT_ID:
+		if (session != NULL && SEC_ISSET(session->flags, SESS_FROM_SAML))
+		{
+			snprintf(sec_data->redirect_url, SEC_MAX_NAVIGATE_URL_LEN, "http://%s%s/%s%s?as=%s&logout",
+					 SAML_SERVER_NAME, AAA_SAML_PATH, vsite->name, SAML_SERVER_AUTH_PATH, vsite->name);
+			return SEC_REDIRECT;
+		}
+		if (vsite->cus_contents[SEC_CUSTOM_PAGE_LOGOUT] != NULL &&
+			(!SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC) ||
+			 (session != NULL && SEC_ISSET(session->flags, SESS_CLIENTSEC_ONLYHI))))
+		{
+			url_p = vsite->cus_contents[SEC_CUSTOM_PAGE_LOGOUT]->content_url;
+			sec_clear_cookie_for_logout_response(sec_data, vsite);
+			sec_generate_rewrite_redirect_with_bookmark(sec_data, url_p, strlen(url_p), session_cookie_buffer, strlen(session_cookie_buffer));
+		}
+		else if (vsite->ai_active_theme != NULL &&
+				 (page = vsite->ai_active_theme->ai_page_index[AI_URL_LOGOUT]) != NULL)
+		{
+			if (SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED) &&
+				session != NULL && session->oauth_vendor == GOOGLE)
+			{
+				ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER, ULOG_NO658, local_content->id, 3, 0, 0, 0, 0, 0);
+				sec_redirect_oauth_logout(sec_data, -1);
 			}
-			if(vsite->cus_contents[SEC_CUSTOM_PAGE_LOGOUT] != NULL &&
-			          (!SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC) ||
-                      (session != NULL && SEC_ISSET(session->flags, SESS_CLIENTSEC_ONLYHI))))
-            {
-				url_p = vsite->cus_contents[SEC_CUSTOM_PAGE_LOGOUT]->content_url;
-				sec_clear_cookie_for_logout_response(sec_data, vsite);
-				sec_generate_rewrite_redirect_with_bookmark(sec_data, url_p, strlen(url_p), session_cookie_buffer, strlen(session_cookie_buffer));
-			} else if( vsite->ai_active_theme != NULL &&
-				(page = vsite->ai_active_theme->ai_page_index[AI_URL_LOGOUT]) != NULL ) {
-				if (SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED) && 
-				    session != NULL && session->oauth_vendor == GOOGLE) {
-					ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER, ULOG_NO658, local_content->id, 3,0,0,0,0,0);
-					sec_redirect_oauth_logout(sec_data, -1);
-				} else {
-					ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER, ULOG_NO658, local_content->id, 4,0,0,0,0,0);
-					sec_generate_portal_theme_logout_redirect(sec_data, vsite, page, session);
-				}
-			} else {
-				if (SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED) &&
-				    session != NULL && session->oauth_vendor == GOOGLE) {
-					ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER, ULOG_NO658, local_content->id, 1,0,0,0,0,0);
-					sec_redirect_oauth_logout(sec_data, -1);
-				} else {
-					ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER, ULOG_NO658, local_content->id, 2,0,0,0,0,0);
-					sec_generate_logout_response(sec_data, session, vsite, TRUE);
-				}
+			else
+			{
+				ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER, ULOG_NO658, local_content->id, 4, 0, 0, 0, 0, 0);
+				sec_generate_portal_theme_logout_redirect(sec_data, vsite, page, session);
+			}
+		}
+		else
+		{
+			if (SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED) &&
+				session != NULL && session->oauth_vendor == GOOGLE)
+			{
+				ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER, ULOG_NO658, local_content->id, 1, 0, 0, 0, 0, 0);
+				sec_redirect_oauth_logout(sec_data, -1);
+			}
+			else
+			{
+				ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER, ULOG_NO658, local_content->id, 2, 0, 0, 0, 0, 0);
+				sec_generate_logout_response(sec_data, session, vsite, TRUE);
 			}
-            sec_data->session_id = INVALID_SESSION_ID;
-            sec_data->session = NULL;
-	    	return SEC_SUCCESS;
-        case AI_WELCOME_JS_ID:
-            sec_generate_ai_welcome_js_response(sec_data);
-	    	return SEC_REQ_AI_WELCOME_JS;
+		}
+		sec_data->session_id = INVALID_SESSION_ID;
+		sec_data->session = NULL;
+		return SEC_SUCCESS;
+	case AI_WELCOME_JS_ID:
+		sec_generate_ai_welcome_js_response(sec_data);
+		return SEC_REQ_AI_WELCOME_JS;
 	case WINADMIN_ID:
 		sec_generate_nonhtml_response_winadmin(sec_data, 0);
-	   	return SEC_REQ_WINADMIN_ZIP;
+		return SEC_REQ_WINADMIN_ZIP;
 	case WINADMIN64_ID:
 		sec_generate_nonhtml_response_winadmin(sec_data, 1);
 		return SEC_REQ_WINADMIN_ZIP;
 	case SSO_ID:
 		sec_generate_sso_response(sec_data);
 		return SEC_SUCCESS;
-        case AI_PASSCHANGE_JS_ID:
-            sec_generate_ai_passchange_js_response(sec_data);
-	    	return SEC_REQ_AI_PASSCHANGE_JS;
-		case AI_PASSCHANGE_LDAP_JS_ID:
-            sec_generate_ai_passchange_ldap_js_response(sec_data);
-	    	return SEC_REQ_AI_PASSCHANGE_LDAP_JS;
-        case AI_VPN_JS_ID:
-			if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-	            sec_generate_ai_vpn_js_response(sec_data, "http://localh/welcome", "1", FALSE);
-			} else {
-				sec_generate_ai_vpn_js_response(sec_data, "http://localhost/welcome", "1", FALSE);
-			}
-     	    return SEC_REQ_AI_VPN_JS;
-        case AI_CHAL_JS_ID:
-            sec_generate_ai_challenge_js_response(sec_data);
-	    	break;
+	case AI_PASSCHANGE_JS_ID:
+		sec_generate_ai_passchange_js_response(sec_data);
+		return SEC_REQ_AI_PASSCHANGE_JS;
+	case AI_PASSCHANGE_LDAP_JS_ID:
+		sec_generate_ai_passchange_ldap_js_response(sec_data);
+		return SEC_REQ_AI_PASSCHANGE_LDAP_JS;
+	case AI_VPN_JS_ID:
+		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
+			sec_generate_ai_vpn_js_response(sec_data, "http://localh/welcome", "1", FALSE);
+		}
+		else
+		{
+			sec_generate_ai_vpn_js_response(sec_data, "http://localhost/welcome", "1", FALSE);
+		}
+		return SEC_REQ_AI_VPN_JS;
+	case AI_CHAL_JS_ID:
+		sec_generate_ai_challenge_js_response(sec_data);
+		break;
 	case HELP_ID:
 		sec_generate_help_response(sec_data);
-		break; 
-        case RADIUS_CHAL_ID:
-			if(!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL &&
-				(page = vsite->ai_active_theme->ai_page_index[AI_PAGE_CHALLENGE]) != NULL ) {
-				sec_generate_portal_theme_redirect(sec_data, vsite, page);
-			} else {
-				sec_generate_radius_challenge_response(sec_data);
-			}
-			return SEC_REQ_CHALLENGE;
-        case WELCOME_ID:
-			if (sec_data->login_return_url[0] != '\0') {
-				sec_generate_welcome_redirect_from_return_url(sec_data, vsite);
-			} else if (SEC_ISSET(vsite->common_flags, SEC_STATEFULREDIRECT) &&
-					sec_data->bookmark_cookie && 
-					sec_data->bookmark_cookie_len < MAX_APP_PRINT_SIZE) {
-				sec_generate_welcome_redirect_from_bookmark(sec_data, session, vsite);
-			} else if( vsite->cus_contents[SEC_CUSTOM_PAGE_WELCOME] != NULL ) {
-				url_p = vsite->cus_contents[SEC_CUSTOM_PAGE_WELCOME]->content_url;
-				sec_generate_rewrite_redirect(sec_data, url_p, strlen(url_p));
-			} else if( vsite->ai_active_theme != NULL &&
-				(page = vsite->ai_active_theme->ai_page_index[AI_URL_WELCOME]) != NULL ) {
-				sec_generate_portal_theme_redirect(sec_data, vsite, page);
-			} else {
-				sec_generate_welcome_response(sec_data);
-			}
-            		return SEC_REQ_WELCOME;
+		break;
+	case RADIUS_CHAL_ID:
+		if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL &&
+			(page = vsite->ai_active_theme->ai_page_index[AI_PAGE_CHALLENGE]) != NULL)
+		{
+			sec_generate_portal_theme_redirect(sec_data, vsite, page);
+		}
+		else
+		{
+			sec_generate_radius_challenge_response(sec_data);
+		}
+		return SEC_REQ_CHALLENGE;
+	case WELCOME_ID:
+		if (sec_data->login_return_url[0] != '\0')
+		{
+			sec_generate_welcome_redirect_from_return_url(sec_data, vsite);
+		}
+		else if (SEC_ISSET(vsite->common_flags, SEC_STATEFULREDIRECT) &&
+				 sec_data->bookmark_cookie &&
+				 sec_data->bookmark_cookie_len < MAX_APP_PRINT_SIZE)
+		{
+			sec_generate_welcome_redirect_from_bookmark(sec_data, session, vsite);
+		}
+		else if (vsite->cus_contents[SEC_CUSTOM_PAGE_WELCOME] != NULL)
+		{
+			url_p = vsite->cus_contents[SEC_CUSTOM_PAGE_WELCOME]->content_url;
+			sec_generate_rewrite_redirect(sec_data, url_p, strlen(url_p));
+		}
+		else if (vsite->ai_active_theme != NULL &&
+				 (page = vsite->ai_active_theme->ai_page_index[AI_URL_WELCOME]) != NULL)
+		{
+			sec_generate_portal_theme_redirect(sec_data, vsite, page);
+		}
+		else
+		{
+			sec_generate_welcome_response(sec_data);
+		}
+		return SEC_REQ_WELCOME;
 	case MOBILE_CONFIG_ID:
 		sec_generate_mobileconfig_response(sec_data);
 		return SEC_REQ_WELCOME;
-        case ROOT_ID:
-			sec_generate_login_success_response(sec_data,
-			            sec_data->session, sec_data->vsite_p);
-
-            return SEC_REQ_WELCOME_REDIRECT;
-        case VPN_UTIL_JS_ID:
-            sec_generate_common_diskfile_response(sec_data, 0);
-	    return SEC_REQ_VPNUTIL_JS;
+	case ROOT_ID:
+		sec_generate_login_success_response(sec_data,
+											sec_data->session, sec_data->vsite_p);
+
+		return SEC_REQ_WELCOME_REDIRECT;
+	case VPN_UTIL_JS_ID:
+		sec_generate_common_diskfile_response(sec_data, 0);
+		return SEC_REQ_VPNUTIL_JS;
 	case SESSION_MNG_JS_ID:
 		sec_generate_common_diskfile_response(sec_data, 0);
 		return SEC_REQ_SESSMNG_JS;
-        case CIFS_ID:
-        case UPLOAD_ID:
-        case DELETE_ID:
-        case ADDFOLDER_ID:
-        case RENAME_ID:
-        case MOVE_ID:
-        case GO_ID:
-            if (SEC_ISSET(vsite->common_flags, SEC_FILESHARE_CIFS)) {
-                SEC_SET(sec_data->flags, SDAT_FILESHARE_REQ);
-                SEC_SET(sec_data->flags, SDAT_LOCAL_REQUEST);
-                SEC_SET(sec_data->flags, SDAT_RESP_FORCE_REWRITE);
-		int link_count = 0;
-		role_resource_display_head_t *resource_list = NULL;
-		role_resource_display_item_t *tmp_item;
-		char* url = NULL;
-		int url_len;
-		char unescape_url[SEC_MAX_URL_LEN + 1] = {0};
+	case CIFS_ID:
+	case UPLOAD_ID:
+	case DELETE_ID:
+	case ADDFOLDER_ID:
+	case RENAME_ID:
+	case MOVE_ID:
+	case GO_ID:
+		if (SEC_ISSET(vsite->common_flags, SEC_FILESHARE_CIFS))
+		{
+			SEC_SET(sec_data->flags, SDAT_FILESHARE_REQ);
+			SEC_SET(sec_data->flags, SDAT_LOCAL_REQUEST);
+			SEC_SET(sec_data->flags, SDAT_RESP_FORCE_REWRITE);
+			int link_count = 0;
+			role_resource_display_head_t *resource_list = NULL;
+			role_resource_display_item_t *tmp_item;
+			char *url = NULL;
+			int url_len;
+			char unescape_url[SEC_MAX_URL_LEN + 1] = {0};
 
-		unescape_string(sec_data->req_parser_info.url_host.url_p, sec_data->req_parser_info.url_host.url_len, unescape_url, &url_len, SEC_MAX_URL_LEN);
+			unescape_string(sec_data->req_parser_info.url_host.url_p, sec_data->req_parser_info.url_host.url_len, unescape_url, &url_len, SEC_MAX_URL_LEN);
 
-		if (strstr(unescape_url, "service=") == NULL){
-			return SEC_CONTINUE;
-		}
-		link_count = sec_get_available_resource(session, &resource_list, ROLE_RES_CIFS);
-		if (link_count > 0 ){
-			SLIST_FOREACH(tmp_item, resource_list, next) {
-				url = tmp_item->role_resource->resource;
-				uint32_t i = 2;
-				uint32_t url_len = strlen(url);
-				while (i < url_len && url[i] != '/') {
-					i++;
-				}
-				i++;
-				while (i < url_len && url[i] != '/') {
+			if (strstr(unescape_url, "service=") == NULL)
+			{
+				return SEC_CONTINUE;
+			}
+			link_count = sec_get_available_resource(session, &resource_list, ROLE_RES_CIFS);
+			if (link_count > 0)
+			{
+				SLIST_FOREACH(tmp_item, resource_list, next)
+				{
+					url = tmp_item->role_resource->resource;
+					uint32_t i = 2;
+					uint32_t url_len = strlen(url);
+					while (i < url_len && url[i] != '/')
+					{
+						i++;
+					}
 					i++;
-				}
-				if(i != url_len) {
-				    if (strcmp(url + i, "/username") == 0) {
-					snprintf(portal_temp_string, strlen("service=") + strlen(url) - strlen("/username") + 1, "service=%s", url);
-
-					if (strstr(unescape_url, portal_temp_string) != NULL) {
-						if (SEC_ISSET(vsite->common_flags, SEC_APP_SSO_FILESHARE) && session->app_sso_info.sso_account[0]) {
-							url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "path=/%s/", session->app_sso_info.sso_account)	;
-						} else {
-							url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "path=/%s/", session->username);
-						}
-						if (strstr(unescape_url, portal_temp_string) == NULL) {
-							sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-                            					SEC_CUSTOM_ERR_REQ,
-                            					sec_language_get_msg_ex(sec_data, 112));
+					while (i < url_len && url[i] != '/')
+					{
+						i++;
+					}
+					if (i != url_len)
+					{
+						if (strcmp(url + i, "/username") == 0)
+						{
+							snprintf(portal_temp_string, strlen("service=") + strlen(url) - strlen("/username") + 1, "service=%s", url);
+
+							if (strstr(unescape_url, portal_temp_string) != NULL)
+							{
+								if (SEC_ISSET(vsite->common_flags, SEC_APP_SSO_FILESHARE) && session->app_sso_info.sso_account[0])
+								{
+									url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "path=/%s/", session->app_sso_info.sso_account);
+								}
+								else
+								{
+									url_len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "path=/%s/", session->username);
+								}
+								if (strstr(unescape_url, portal_temp_string) == NULL)
+								{
+									sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
+																SEC_CUSTOM_ERR_REQ,
+																sec_language_get_msg_ex(sec_data, 112));
 
-							return SEC_REQ_ERR;
+									return SEC_REQ_ERR;
+								}
+							}
 						}
 					}
-				    }
-				} 
-				
+				}
 			}
-		}
 
-                return SEC_CONTINUE;
-            } else {
-                return SEC_REQ_ERR;
-            }
-		/*case AI_VPN_JS_ID:
-			sec_generate_welcome_atp_js_response(client_conn_data);
-			return SEC_REQ_AI_VPN_JS;*/
-		case ATP_WELCOME_ID:
-			sec_generate_common_diskfile_response(sec_data, 0);
-			return SEC_REQ_ATPWELCOME;
-		case ATP_SCRIPT_ID:
-			sec_generate_common_diskfile_response(sec_data, 0);
-			return SEC_REQ_ATPSCRIPT;
-		case ATP_CAB_ID:
-		case ATP_CAB2_ID:
-		case ATP_L3CAB_ID:
-			sec_generate_common_diskfile_response(sec_data, 0);
-			return SEC_REQ_ATPCAB;
+			return SEC_CONTINUE;
+		}
+		else
+		{
+			return SEC_REQ_ERR;
+		}
+	/*case AI_VPN_JS_ID:
+		sec_generate_welcome_atp_js_response(client_conn_data);
+		return SEC_REQ_AI_VPN_JS;*/
+	case ATP_WELCOME_ID:
+		sec_generate_common_diskfile_response(sec_data, 0);
+		return SEC_REQ_ATPWELCOME;
+	case ATP_SCRIPT_ID:
+		sec_generate_common_diskfile_response(sec_data, 0);
+		return SEC_REQ_ATPSCRIPT;
+	case ATP_CAB_ID:
+	case ATP_CAB2_ID:
+	case ATP_L3CAB_ID:
+		sec_generate_common_diskfile_response(sec_data, 0);
+		return SEC_REQ_ATPCAB;
 	case PASSCHANGE_ID:
 		/* check the CLI 'portal custom changepassword' */
-		TAILQ_FOREACH(pass_page, &vsite->passwd_change_page_list, next_page) {
+		TAILQ_FOREACH(pass_page, &vsite->passwd_change_page_list, next_page)
+		{
 			if (!strcasecmp(session->method_id, pass_page->auth_method))
 				break;
 		}
 
-		if (pass_page) {
+		if (pass_page)
+		{
 			sec_generate_rewrite_redirect(sec_data, pass_page->page_url, strlen(pass_page->page_url));
-		} else if(!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL &&
-                        (page = vsite->ai_active_theme->ai_page_index[AI_URL_PASSCHANGE]) != NULL) {
-                        sec_generate_portal_theme_redirect(sec_data, vsite, page);
-		} else {
+		}
+		else if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL &&
+				 (page = vsite->ai_active_theme->ai_page_index[AI_URL_PASSCHANGE]) != NULL)
+		{
+			sec_generate_portal_theme_redirect(sec_data, vsite, page);
+		}
+		else
+		{
 			sec_generate_passchange_response(sec_data);
 		}
 		return SEC_REQ_PASSCHANGE;
 	case PASSCHANGE_LDAP_ID:
-		if(!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL &&
-			(page = vsite->ai_active_theme->ai_page_index[AI_URL_PASSCHANGE_LDAP]) != NULL) {
+		if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL &&
+			(page = vsite->ai_active_theme->ai_page_index[AI_URL_PASSCHANGE_LDAP]) != NULL)
+		{
 			get_ldap_server_from_url(sec_data);
 			sec_generate_portal_theme_redirect(sec_data, vsite, page);
-		} else {
+		}
+		else
+		{
 			sec_generate_passchange_ldap_response(sec_data);
 		}
 		return SEC_REQ_PASSCHANGE_LDAP;
 	case SMS_ID:
-		if(!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL &&
-			(page = vsite->ai_active_theme->ai_page_index[AI_URL_SMS_AUTH]) != NULL) {
+		if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL &&
+			(page = vsite->ai_active_theme->ai_page_index[AI_URL_SMS_AUTH]) != NULL)
+		{
 			sec_generate_portal_theme_redirect(sec_data, vsite, page);
-		} else {
+		}
+		else
+		{
 			sec_generate_sms_auth_response(sec_data);
 		}
 		return SEC_REQ_SMS_AUTH_PATH;
 	case FSHARE_AUTH_ID:
-		sec_generate_fshare_auth_response(sec_data, sec_data->req_parser_info.url_host.url_p, 
-				sec_data->req_parser_info.url_host.url_len, NULL);
+		sec_generate_fshare_auth_response(sec_data, sec_data->req_parser_info.url_host.url_p,
+										  sec_data->req_parser_info.url_host.url_len, NULL);
 		break;
 	case AI_SMS_JS_ID:
-            sec_generate_ai_sms_js_response(sec_data);
-	    	break;
+		sec_generate_ai_sms_js_response(sec_data);
+		break;
 	case SMX_ID:
 	{
 		int rc = SEC_REQ_SMX_AUTH_PATH;
-		if(!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL &&
-                        (page = vsite->ai_active_theme->ai_page_index[AI_URL_SMX_AUTH]) != NULL) {
+		if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL &&
+			(page = vsite->ai_active_theme->ai_page_index[AI_URL_SMX_AUTH]) != NULL)
+		{
 			/* get action from session */
-        		int step = sec_data->session->smx_result.step;
-        		int action = sec_data->session->smx_action;
-        		if (step == 0 && action != SEC_MESSAGE_TYPE_SMX_AUTH) {
-                		/* smx_action is 0 when login sequences or password change sequences finished.
-                		 * so if come here, this must be a password change start request
-                		 */
-                		int ret = 0;
-                		ret = sec_get_smx_info_from_url(sec_data);
-                		if (ret < 0) {
-                        		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-                            			SEC_CUSTOM_ERR_REQ,
-                            			sec_language_get_msg_ex(sec_data, 239));
-                        		return SEC_REQ_ERR;
-                		} else {
-                        		/* send requset to AAA */
-                        		issue_smx_auth_resp(sec_data, sec_data->vsite_p->name,
-                                      		sec_data->session->username, NULL, NULL, NULL, SEC_MESSAGE_TYPE_SMX_PASSWDCHANGE, GET_MATRIX_RESOURCE);
-                        		/*need to change to smanager wait AAA stat*/
-                        		return SEC_REQ_SMX_PWD_START;
-                		}
-        		}
+			int step = sec_data->session->smx_result.step;
+			int action = sec_data->session->smx_action;
+			if (step == 0 && action != SEC_MESSAGE_TYPE_SMX_AUTH)
+			{
+				/* smx_action is 0 when login sequences or password change sequences finished.
+				 * so if come here, this must be a password change start request
+				 */
+				int ret = 0;
+				ret = sec_get_smx_info_from_url(sec_data);
+				if (ret < 0)
+				{
+					sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
+												SEC_CUSTOM_ERR_REQ,
+												sec_language_get_msg_ex(sec_data, 239));
+					return SEC_REQ_ERR;
+				}
+				else
+				{
+					/* send requset to AAA */
+					issue_smx_auth_resp(sec_data, sec_data->vsite_p->name,
+										sec_data->session->username, NULL, NULL, NULL, SEC_MESSAGE_TYPE_SMX_PASSWDCHANGE, GET_MATRIX_RESOURCE);
+					/*need to change to smanager wait AAA stat*/
+					return SEC_REQ_SMX_PWD_START;
+				}
+			}
 
 			sec_generate_portal_theme_redirect(sec_data, vsite, page);
-		} else {
+		}
+		else
+		{
 			rc = sec_generate_smx_auth_response(sec_data);
 		}
 		return rc;
 	}
 	case AI_SMX_JS_ID:
-            sec_generate_ai_smx_js_response(sec_data);
-	    break;
+		sec_generate_ai_smx_js_response(sec_data);
+		break;
 	case AI_DD_JS_ID:
 		sec_generate_ai_dd_js_response(sec_data);
 		break;
-	case AI_BOOKMARK_JS_ID: 
-                sec_generate_ai_bookmark_js_response(sec_data);
-                break;
+	case AI_BOOKMARK_JS_ID:
+		sec_generate_ai_bookmark_js_response(sec_data);
+		break;
 	/*images for Desktop Direct */
 	case IMG_DD_MY_DESK_ID:
 	case IMG_DD_PC_ID:
@@ -9932,30 +11234,35 @@
 		sec_generate_dd_portal_response(sec_data);
 		break;
 	case BOOKMARK_ADD_ID:
-                sec_generate_bookmark_add_response(sec_data);
-                break;
+		sec_generate_bookmark_add_response(sec_data);
+		break;
 	case BOOKMARK_EDIT_ID:
-                sec_generate_bookmark_edit_response(sec_data);
-                break;
+		sec_generate_bookmark_edit_response(sec_data);
+		break;
 	case AUTOLAUNCH_ID:
 		/*if (SEC_ISSET(vsite->flags, SEC_VPN_AUTOLAUNCH)) {
 		   SEC_SET(session->flags, SESS_VPN_STARTED);
 		}*/
 		/* check the portal theme settings for autolaunch page */
-		if(vsite->ai_active_theme != NULL &&
-			(page = vsite->ai_active_theme->ai_page_index[AI_PAGE_AUTOLAUNCH]) != NULL) {
+		if (vsite->ai_active_theme != NULL &&
+			(page = vsite->ai_active_theme->ai_page_index[AI_PAGE_AUTOLAUNCH]) != NULL)
+		{
 			sec_generate_portal_theme_redirect(sec_data, vsite, page);
-		} else if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+		}
+		else if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
 			sec_generate_autolaunch_response(sec_data, vsite, session,
-			            "http://localh/welcome", "1", FALSE);
-		} else {
+											 "http://localh/welcome", "1", FALSE);
+		}
+		else
+		{
 			sec_generate_autolaunch_response(sec_data, vsite, session,
-			            "http://localhost/welcome", "1", FALSE);
+											 "http://localhost/welcome", "1", FALSE);
 		}
 		return SEC_REQ_JSLIB;
 	case LINUX_RUN_PAGE_ID:
-		sec_generate_common_diskfile_response(sec_data, 0);	
-		return SEC_REQ_LINUX_RUN_PAGE; 
+		sec_generate_common_diskfile_response(sec_data, 0);
+		return SEC_REQ_LINUX_RUN_PAGE;
 	case AN_QUICKLINK_SET_ID:
 		sec_generate_quicklink_set_response(sec_data, vsite, session);
 		return SEC_REQ_ERR;
@@ -9972,19 +11279,18 @@
 		return SEC_REQ_TO_AAA;
 	default:
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Some private local request, id %d", local_content->id);
-		return SEC_REQ_PROXY; 
-    } 
+		return SEC_REQ_PROXY;
+	}
 
-    return SEC_REQ_PROXY;
+	return SEC_REQ_PROXY;
 }
 
-int
-sec_generate_redirect(smanager_data_t *sec_data, uint8_t *response_code,
-                      length_t code_len, uint8_t *url, length_t url_len,
-                      uint8_t *session_cookie, length_t session_cookie_len,
-                      uint8_t *nav_cookie, length_t nav_cookie_len,
-                      uint8_t *bookmark_cookie, length_t bookmark_cookie_len,
-                      uint8_t clean_pcookie, uint32_t flags)
+int sec_generate_redirect(smanager_data_t *sec_data, uint8_t *response_code,
+						  length_t code_len, uint8_t *url, length_t url_len,
+						  uint8_t *session_cookie, length_t session_cookie_len,
+						  uint8_t *nav_cookie, length_t nav_cookie_len,
+						  uint8_t *bookmark_cookie, length_t bookmark_cookie_len,
+						  uint8_t clean_pcookie, uint32_t flags)
 {
 #define REDIRECT_RSP_HTTP_VER "HTTP/1.1 "
 #define REDIRECT_RSP_LOCATION "\r\nLocation: "
@@ -10003,8 +11309,8 @@
 #define REDIRECT_RSP_X_DOWNLOAD_OPTIONS "X-Download-Options: noopen\r\n"
 #define REDIRECT_RSP_SCOOKIE_1 "Set-Cookie: "
 #define REDIRECT_RSP_CRLF "\r\n"
-#define REDIRECT_RSP_SCOOKIE_EXP_BEGIN ("Set-Cookie: "SEC_COOKIE_SESSION_NAME_PREFIX)
-#define REDIRECT_RSP_SCOOKIE_EXP_END   "=expire; expires=Tue, 01 Jan 1980 00:00:00 GMT; path=/; secure\r\n"
+#define REDIRECT_RSP_SCOOKIE_EXP_BEGIN ("Set-Cookie: " SEC_COOKIE_SESSION_NAME_PREFIX)
+#define REDIRECT_RSP_SCOOKIE_EXP_END "=expire; expires=Tue, 01 Jan 1980 00:00:00 GMT; path=/; secure\r\n"
 #define REDIRECT_HTML1 "<html><body><p>Please go <a href=\""
 #define REDIRECT_HTML2 "\">here</a> to continue.</p></body></html>"
 	struct frame *response_chain;
@@ -10013,7 +11319,8 @@
 	uint8_t clen_buf[10];
 	static int rr_refresh = 2;
 	response_chain = parser_frame_alloc();
-	if(response_chain == NULL) {
+	if (response_chain == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in sec_generate_redirect");
 		return SEC_FAIL;
 	}
@@ -10023,26 +11330,30 @@
 	write_p = response_frame->f_data;
 
 	if (write_data(REDIRECT_RSP_HTTP_VER, &write_p, SLEN(REDIRECT_RSP_HTTP_VER),
-				  &response_frame) != HTTP_SUCCESS)
+				   &response_frame) != HTTP_SUCCESS)
 	{
 		goto GEN_REDIRECT_EXIT;
 	}
 
 	if (write_data(response_code, &write_p, code_len, &response_frame) !=
-				   HTTP_SUCCESS)
+		HTTP_SUCCESS)
 	{
 		goto GEN_REDIRECT_EXIT;
 	}
 
-	if (!FLAG_ISSET(flags, SEC_GENERATE_REDIR_USINGRR)) {
+	if (!FLAG_ISSET(flags, SEC_GENERATE_REDIR_USINGRR))
+	{
 		if (write_data(REDIRECT_RSP_LOCATION, &write_p, SLEN(REDIRECT_RSP_LOCATION),
 					   &response_frame) != HTTP_SUCCESS)
 		{
 			goto GEN_REDIRECT_EXIT;
 		}
-	} else {
+	}
+	else
+	{
 		if (write_data(REDIRECT_RSP_REFRESH1, &write_p, SLEN(REDIRECT_RSP_REFRESH1),
-					   &response_frame) != HTTP_SUCCESS) {
+					   &response_frame) != HTTP_SUCCESS)
+		{
 			goto GEN_REDIRECT_EXIT;
 		}
 		sprintf(clen_buf, "%d", rr_refresh);
@@ -10058,8 +11369,7 @@
 		}
 	}
 
-	if (write_data(url, &write_p, url_len, &response_frame)
-		!= HTTP_SUCCESS)
+	if (write_data(url, &write_p, url_len, &response_frame) != HTTP_SUCCESS)
 	{
 		goto GEN_REDIRECT_EXIT;
 	}
@@ -10070,67 +11380,73 @@
 		goto GEN_REDIRECT_EXIT;
 	}
 
-	if (okay_to_close_client(PROXY_UDATA(sec_data->client_conn))) {
+	if (okay_to_close_client(PROXY_UDATA(sec_data->client_conn)))
+	{
 		if (write_data(CONNECTION_CLOSE, &write_p, CONNECTION_CLOSE_LEN,
-			&response_frame) != HTTP_SUCCESS)
+					   &response_frame) != HTTP_SUCCESS)
 		{
 			goto GEN_REDIRECT_EXIT;
 		}
-	} else {
+	}
+	else
+	{
 		if (write_data(CONNECTION_KALIVE, &write_p, CONNECTION_KALIVE_LEN,
-			&response_frame) != HTTP_SUCCESS)
+					   &response_frame) != HTTP_SUCCESS)
 		{
 			goto GEN_REDIRECT_EXIT;
 		}
 	}
 
 	if (clean_pcookie == CLEAN_CLIENTSEC_COOKIE_REDIR ||
-	    clean_pcookie == CLEAN_CLIENTSEC_COOKIE_REDIR_INSERT_STAGE2 ||
-	    clean_pcookie == CLEAN_CLIENTSEC_COOKIE)
+		clean_pcookie == CLEAN_CLIENTSEC_COOKIE_REDIR_INSERT_STAGE2 ||
+		clean_pcookie == CLEAN_CLIENTSEC_COOKIE)
 	{
 		write_clean_cookie(portal_temp_string, sec_data);
 
-		if (write_data(portal_temp_string, &write_p, strlen(portal_temp_string),			  
-						   &response_frame) != HTTP_SUCCESS)
-		{				  
+		if (write_data(portal_temp_string, &write_p, strlen(portal_temp_string),
+					   &response_frame) != HTTP_SUCCESS)
+		{
 			goto GEN_REDIRECT_EXIT;
 		}
-		
-		/* 
+
+		/*
 		 * we do not need clientsec sec java cookie anymore
 		 * we made the decision on how tp handle stage2 (msjvm vs jre)
 		 */
 		write_clean_clientsec_java_cookie(portal_temp_string, sec_data);
-		if (write_data(portal_temp_string, &write_p, strlen(portal_temp_string),			  
-						   &response_frame) != HTTP_SUCCESS)
-		{				  
+		if (write_data(portal_temp_string, &write_p, strlen(portal_temp_string),
+					   &response_frame) != HTTP_SUCCESS)
+		{
 			goto GEN_REDIRECT_EXIT;
 		}
-		
-		if (clean_pcookie == CLEAN_CLIENTSEC_COOKIE_REDIR_INSERT_STAGE2) {
+
+		if (clean_pcookie == CLEAN_CLIENTSEC_COOKIE_REDIR_INSERT_STAGE2)
+		{
 			write_clientsec_stage2_cookie(portal_temp_string, sec_data);
-			if (write_data(portal_temp_string, &write_p, strlen(portal_temp_string),			  
-					   &response_frame) != HTTP_SUCCESS)
-			{				  
+			if (write_data(portal_temp_string, &write_p, strlen(portal_temp_string),
+						   &response_frame) != HTTP_SUCCESS)
+			{
 				goto GEN_REDIRECT_EXIT;
 			}
 		}
-	} else if (SEC_ISSET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE)) {
+	}
+	else if (SEC_ISSET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE))
+	{
 		write_clientsec_persist_cookie(portal_temp_string, sec_data);
 		if (write_data(portal_temp_string, &write_p, strlen(portal_temp_string),
-				   &response_frame) != HTTP_SUCCESS)
+					   &response_frame) != HTTP_SUCCESS)
 		{
 			goto GEN_REDIRECT_EXIT;
 		}
 
-		/* 
+		/*
 		 * we do not need clientsec sec java cookie anymore
 		 * we are passed clientsec check already
 		 */
 		write_clean_clientsec_java_cookie(portal_temp_string, sec_data);
-		if (write_data(portal_temp_string, &write_p, strlen(portal_temp_string),			  
+		if (write_data(portal_temp_string, &write_p, strlen(portal_temp_string),
 					   &response_frame) != HTTP_SUCCESS)
-		{				  
+		{
 			goto GEN_REDIRECT_EXIT;
 		}
 	}
@@ -10141,9 +11457,12 @@
 		goto GEN_REDIRECT_EXIT;
 	}
 
-	if (!FLAG_ISSET(flags, SEC_GENERATE_REDIR_USINGRR)) {
+	if (!FLAG_ISSET(flags, SEC_GENERATE_REDIR_USINGRR))
+	{
 		sprintf(clen_buf, "%d", SLEN(REDIRECT_HTML1) + url_len + SLEN(REDIRECT_HTML2));
-	} else {
+	}
+	else
+	{
 		sprintf(clen_buf, "%d", 0);
 	}
 
@@ -10159,70 +11478,80 @@
 		goto GEN_REDIRECT_EXIT;
 	}
 
-    if (write_data(REDIRECT_RSP_CACHE_CTL, &write_p, SLEN(REDIRECT_RSP_CACHE_CTL),
-                &response_frame) != HTTP_SUCCESS)
-    {
-        goto GEN_REDIRECT_EXIT;
-    }
+	if (write_data(REDIRECT_RSP_CACHE_CTL, &write_p, SLEN(REDIRECT_RSP_CACHE_CTL),
+				   &response_frame) != HTTP_SUCCESS)
+	{
+		goto GEN_REDIRECT_EXIT;
+	}
 
 	/* Add Content-Security-Policy header */
 	if (write_data(REDIRECT_RSP_CONT_SEC, &write_p, SLEN(REDIRECT_RSP_CONT_SEC),
-                &response_frame) != HTTP_SUCCESS) {
+				   &response_frame) != HTTP_SUCCESS)
+	{
 		goto GEN_REDIRECT_EXIT;
 	}
 
 	/* Add X-Content-Type-Options header */
-        if (write_data(REDIRECT_RSP_X_CONT_TYPE_OPT, &write_p, SLEN(REDIRECT_RSP_X_CONT_TYPE_OPT),
-                &response_frame) != HTTP_SUCCESS) {
-                goto GEN_REDIRECT_EXIT;
-        }
+	if (write_data(REDIRECT_RSP_X_CONT_TYPE_OPT, &write_p, SLEN(REDIRECT_RSP_X_CONT_TYPE_OPT),
+				   &response_frame) != HTTP_SUCCESS)
+	{
+		goto GEN_REDIRECT_EXIT;
+	}
 
 	/* Add X-Xss-Protection header */
-        if (write_data(REDIRECT_RSP_X_XSS_PROT,  &write_p, SLEN(REDIRECT_RSP_X_XSS_PROT),
-                &response_frame) != HTTP_SUCCESS) {
-                goto GEN_REDIRECT_EXIT;
-        }
+	if (write_data(REDIRECT_RSP_X_XSS_PROT, &write_p, SLEN(REDIRECT_RSP_X_XSS_PROT),
+				   &response_frame) != HTTP_SUCCESS)
+	{
+		goto GEN_REDIRECT_EXIT;
+	}
 
 	/* Add Strict-Transport-Security header */
-	if (write_data(REDIRECT_RSP_STRICT_TRANSPORT_SECURITY,  &write_p, SLEN(REDIRECT_RSP_STRICT_TRANSPORT_SECURITY),
-			&response_frame) != HTTP_SUCCESS) {
+	if (write_data(REDIRECT_RSP_STRICT_TRANSPORT_SECURITY, &write_p, SLEN(REDIRECT_RSP_STRICT_TRANSPORT_SECURITY),
+				   &response_frame) != HTTP_SUCCESS)
+	{
 		goto GEN_REDIRECT_EXIT;
 	}
 
 	/* Add X-Content-Security-Policy header */
-	if (write_data(REDIRECT_RSP_X_CONTENT_SECURITY_POLICY,  &write_p, SLEN(REDIRECT_RSP_X_CONTENT_SECURITY_POLICY),
-			&response_frame) != HTTP_SUCCESS) {
+	if (write_data(REDIRECT_RSP_X_CONTENT_SECURITY_POLICY, &write_p, SLEN(REDIRECT_RSP_X_CONTENT_SECURITY_POLICY),
+				   &response_frame) != HTTP_SUCCESS)
+	{
 		goto GEN_REDIRECT_EXIT;
 	}
 
 	/* Add X-WebKit-CSP header */
-	if (write_data(REDIRECT_RSP_X_WEBKIT_CSP,  &write_p, SLEN(REDIRECT_RSP_X_WEBKIT_CSP),
-			&response_frame) != HTTP_SUCCESS) {
+	if (write_data(REDIRECT_RSP_X_WEBKIT_CSP, &write_p, SLEN(REDIRECT_RSP_X_WEBKIT_CSP),
+				   &response_frame) != HTTP_SUCCESS)
+	{
 		goto GEN_REDIRECT_EXIT;
 	}
 
 	/* Add Referrer-Policy header */
 	if (write_data(REDIRECT_RSP_REFERRER_POLICY, &write_p, SLEN(REDIRECT_RSP_REFERRER_POLICY),
-			&response_frame) != HTTP_SUCCESS) {
+				   &response_frame) != HTTP_SUCCESS)
+	{
 		goto GEN_REDIRECT_EXIT;
 	}
 
 	/* Add X-Permitted-Cross-Domain-Policies header */
 	if (write_data(REDIRECT_RSP_X_PERMITTED_CROSS_DOMAIN_POLICIES, &write_p, SLEN(REDIRECT_RSP_X_PERMITTED_CROSS_DOMAIN_POLICIES),
-			&response_frame) != HTTP_SUCCESS) {
+				   &response_frame) != HTTP_SUCCESS)
+	{
 		goto GEN_REDIRECT_EXIT;
 	}
 
 	/* Add X-Download-Options header */
 	if (write_data(REDIRECT_RSP_X_DOWNLOAD_OPTIONS, &write_p, SLEN(REDIRECT_RSP_X_DOWNLOAD_OPTIONS),
-			&response_frame) != HTTP_SUCCESS) {
+				   &response_frame) != HTTP_SUCCESS)
+	{
 		goto GEN_REDIRECT_EXIT;
 	}
 
-	if (session_cookie != NULL && session_cookie_len > 0) {
+	if (session_cookie != NULL && session_cookie_len > 0)
+	{
 		DBG_PRINTF("sess cookie %s, cookie_len %d", session_cookie, session_cookie_len);
 		ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-		                  ULOG_NO659, session_cookie_len, 0,0,0,0,0,0);
+						  ULOG_NO659, session_cookie_len, 0, 0, 0, 0, 0, 0);
 		if (write_data(REDIRECT_RSP_SCOOKIE_1, &write_p, SLEN(REDIRECT_RSP_SCOOKIE_1),
 					   &response_frame) != HTTP_SUCCESS)
 		{
@@ -10235,19 +11564,20 @@
 			goto GEN_REDIRECT_EXIT;
 		}
 
-                if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
-                        if (write_data(";HttpOnly", &write_p, SLEN(";HttpOnly"),
-                                           &response_frame) != HTTP_SUCCESS)
-                        {
-                                goto GEN_REDIRECT_EXIT;
-                        }
-                }
-
-                if (write_data(";secure", &write_p, SLEN(";secure"),
-                                &response_frame) != HTTP_SUCCESS)
-                {
-                        goto GEN_REDIRECT_EXIT;
-                }
+		if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
+			if (write_data(";HttpOnly", &write_p, SLEN(";HttpOnly"),
+						   &response_frame) != HTTP_SUCCESS)
+			{
+				goto GEN_REDIRECT_EXIT;
+			}
+		}
+
+		if (write_data(";secure", &write_p, SLEN(";secure"),
+					   &response_frame) != HTTP_SUCCESS)
+		{
+			goto GEN_REDIRECT_EXIT;
+		}
 
 		if (write_data(REDIRECT_RSP_CRLF, &write_p, SLEN(REDIRECT_RSP_CRLF),
 					   &response_frame) != HTTP_SUCCESS)
@@ -10257,22 +11587,26 @@
 	}
 
 #ifdef SM_ISREADY
-	if (sec_data->peer_sp_id) {
+	if (sec_data->peer_sp_id)
+	{
 		/* we got cookie from the peer; expire the cookie */
-		if (write_data(REDIRECT_RSP_SCOOKIE_EXP_BEGIN, &write_p, SLEN(REDIRECT_RSP_SCOOKIE_EXP_BEGIN), 
-			   &response_frame) != HTTP_SUCCESS) {
+		if (write_data(REDIRECT_RSP_SCOOKIE_EXP_BEGIN, &write_p, SLEN(REDIRECT_RSP_SCOOKIE_EXP_BEGIN),
+					   &response_frame) != HTTP_SUCCESS)
+		{
 			SP_DEBUG("Failed to allocate a frame in sec_generate_redirect");
 			frame_chain_free0(response_chain);
 			return;
 		}
 		if (write_data(sec_data->peer_sp_id, &write_p, CLICK_ID_LENGTH,
-			   &response_frame) != HTTP_SUCCESS) {
+					   &response_frame) != HTTP_SUCCESS)
+		{
 			SP_DEBUG("Failed to allocate a frame in sec_generate_redirect");
 			frame_chain_free0(response_chain);
 			return;
 		}
-		if (write_data(REDIRECT_RSP_SCOOKIE_EXP_END, &write_p, SLEN(REDIRECT_RSP_SCOOKIE_EXP_END), 
-			   &response_frame) != HTTP_SUCCESS) {
+		if (write_data(REDIRECT_RSP_SCOOKIE_EXP_END, &write_p, SLEN(REDIRECT_RSP_SCOOKIE_EXP_END),
+					   &response_frame) != HTTP_SUCCESS)
+		{
 			SP_DEBUG("Failed to allocate a frame in sec_generate_redirect");
 			frame_chain_free0(response_chain);
 			return;
@@ -10282,7 +11616,8 @@
 	}
 #endif
 
-	if (nav_cookie != NULL && nav_cookie_len > 0) {
+	if (nav_cookie != NULL && nav_cookie_len > 0)
+	{
 		if (write_data(REDIRECT_RSP_SCOOKIE_1, &write_p, SLEN(REDIRECT_RSP_SCOOKIE_1),
 					   &response_frame) != HTTP_SUCCESS)
 		{
@@ -10302,28 +11637,30 @@
 		}
 	}
 
-	if (bookmark_cookie != NULL && bookmark_cookie_len > 0) {
-		if (write_data(REDIRECT_RSP_SCOOKIE_1, &write_p, SLEN(REDIRECT_RSP_SCOOKIE_1), 
+	if (bookmark_cookie != NULL && bookmark_cookie_len > 0)
+	{
+		if (write_data(REDIRECT_RSP_SCOOKIE_1, &write_p, SLEN(REDIRECT_RSP_SCOOKIE_1),
 					   &response_frame) != HTTP_SUCCESS)
 		{
 			goto GEN_REDIRECT_EXIT;
 		}
 
 		if (write_data(bookmark_cookie, &write_p, bookmark_cookie_len,
-			   &response_frame) != HTTP_SUCCESS)
+					   &response_frame) != HTTP_SUCCESS)
 		{
 			goto GEN_REDIRECT_EXIT;
 		}
 
-                if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) { 
-                        if (write_data(";HttpOnly", &write_p, SLEN(";HttpOnly"),
-                                           &response_frame) != HTTP_SUCCESS)
-                        {
-                                goto GEN_REDIRECT_EXIT;
-                        }
-                }
+		if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
+			if (write_data(";HttpOnly", &write_p, SLEN(";HttpOnly"),
+						   &response_frame) != HTTP_SUCCESS)
+			{
+				goto GEN_REDIRECT_EXIT;
+			}
+		}
 
-		if (write_data(REDIRECT_RSP_CRLF, &write_p, SLEN(REDIRECT_RSP_CRLF), 
+		if (write_data(REDIRECT_RSP_CRLF, &write_p, SLEN(REDIRECT_RSP_CRLF),
 					   &response_frame) != HTTP_SUCCESS)
 		{
 			goto GEN_REDIRECT_EXIT;
@@ -10336,15 +11673,15 @@
 		goto GEN_REDIRECT_EXIT;
 	}
 
-	if (!FLAG_ISSET(flags, SEC_GENERATE_REDIR_USINGRR)) {
+	if (!FLAG_ISSET(flags, SEC_GENERATE_REDIR_USINGRR))
+	{
 		if (write_data(REDIRECT_HTML1, &write_p, SLEN(REDIRECT_HTML1),
 					   &response_frame) != HTTP_SUCCESS)
 		{
 			goto GEN_REDIRECT_EXIT;
 		}
 
-		if (write_data(url, &write_p, url_len, &response_frame)
-			!= HTTP_SUCCESS)
+		if (write_data(url, &write_p, url_len, &response_frame) != HTTP_SUCCESS)
 		{
 			goto GEN_REDIRECT_EXIT;
 		}
@@ -10362,141 +11699,164 @@
 	return SEC_SUCCESS;
 GEN_REDIRECT_EXIT:
 	ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to allocate a frame in sec_generate_redirect.");
-	if (response_chain) {
+	if (response_chain)
+	{
 		parser_frame_chain_free(response_chain);
 	}
 	return SEC_FAIL;
 }
 
-int
-sec_generate_clientsec_redirect(smanager_data_t *sec_data)
+int sec_generate_clientsec_redirect(smanager_data_t *sec_data)
 {
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s", 
-	          "/prx/000/http/localh", VPD_PAGE_PATH);
-	} else {
-		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s", 
-	          SEC_REWRITTEN_PREFIX, VPD_PAGE_PATH);
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
+		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s",
+				 "/prx/000/http/localh", VPD_PAGE_PATH);
+	}
+	else
+	{
+		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s",
+				 SEC_REWRITTEN_PREFIX, VPD_PAGE_PATH);
 	}
 
 	return sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-						  portal_temp_string, strlen(portal_temp_string), NULL, 0, NULL, 0,
-						  NULL, 0, CLEAN_CLIENTSEC_COOKIE_REDIR, SEC_GENERATE_REDIR_NOFLAGS);
+								 portal_temp_string, strlen(portal_temp_string), NULL, 0, NULL, 0,
+								 NULL, 0, CLEAN_CLIENTSEC_COOKIE_REDIR, SEC_GENERATE_REDIR_NOFLAGS);
 }
 
 static client_sec_location_t *
 lookup_client_sec_location(sec_vsite_t *vsite, char *location_name)
 {
-    client_sec_location_t *curr_location = NULL;
+	client_sec_location_t *curr_location = NULL;
 
-    TAILQ_FOREACH(curr_location, &vsite->client_sec_location_q, next_location)
-    {
-        if (!strcmp(curr_location->location_name, location_name)) {
-            return curr_location;
-        }
-    }
-    return NULL;
+	TAILQ_FOREACH(curr_location, &vsite->client_sec_location_q, next_location)
+	{
+		if (!strcmp(curr_location->location_name, location_name))
+		{
+			return curr_location;
+		}
+	}
+	return NULL;
 }
 
 static client_sec_privilege_t *
 lookup_client_sec_privilege(sec_vsite_t *vsite, char *security_level)
 {
-    client_sec_privilege_t *curr_privilege = NULL;
+	client_sec_privilege_t *curr_privilege = NULL;
 
-    TAILQ_FOREACH(curr_privilege, &vsite->client_sec_privilege_q, next_privilege)
-    {
-        if (!strcmp(curr_privilege->security_level, security_level)) {
-            return curr_privilege;
-        }
-    }
-    return NULL;
+	TAILQ_FOREACH(curr_privilege, &vsite->client_sec_privilege_q, next_privilege)
+	{
+		if (!strcmp(curr_privilege->security_level, security_level))
+		{
+			return curr_privilege;
+		}
+	}
+	return NULL;
 }
 
 static int32_t
 get_level_privileges(sec_vsite_t *vsite, char *level_name,
-    uint32_t *security_flags)
+					 uint32_t *security_flags)
 {
-    client_sec_privilege_t *curr_privileges;
-    /* low, medium, high, none */
-    if (strcmp("none", level_name) == 0) {
-        *security_flags = 0;
-        return 0;
-    }
-    if (strcmp("low", level_name) == 0) {
-        *security_flags = CLIENT_SEC_HTTP | CLIENT_SEC_HTTP_BROWSE;
-        return 0;
-    }
-    if (strcmp("medium", level_name) == 0) {
-        *security_flags = CLIENT_SEC_HTTP |  CLIENT_SEC_FILE | 
-                          CLIENT_SEC_CLIENTAPP | CLIENT_SEC_TCS;
-        return 0;
-    }
-    if (strcmp("high", level_name) == 0) {
-        *security_flags = CLIENT_SEC_HTTP | CLIENT_SEC_HTTP_BROWSE | 
-                          CLIENT_SEC_FILE | CLIENT_SEC_FILE_BROWSE |
-                          CLIENT_SEC_CLIENTAPP | CLIENT_SEC_TCS |
-		                  CLIENT_SEC_VPN;
-        return 0;
-    }
-
-    if ((curr_privileges = lookup_client_sec_privilege(vsite,
-        level_name))) {
-        *security_flags = curr_privileges->security_flags;
-        return 0;
-    } else {
-        return -1;
-    }
+	client_sec_privilege_t *curr_privileges;
+	/* low, medium, high, none */
+	if (strcmp("none", level_name) == 0)
+	{
+		*security_flags = 0;
+		return 0;
+	}
+	if (strcmp("low", level_name) == 0)
+	{
+		*security_flags = CLIENT_SEC_HTTP | CLIENT_SEC_HTTP_BROWSE;
+		return 0;
+	}
+	if (strcmp("medium", level_name) == 0)
+	{
+		*security_flags = CLIENT_SEC_HTTP | CLIENT_SEC_FILE |
+						  CLIENT_SEC_CLIENTAPP | CLIENT_SEC_TCS;
+		return 0;
+	}
+	if (strcmp("high", level_name) == 0)
+	{
+		*security_flags = CLIENT_SEC_HTTP | CLIENT_SEC_HTTP_BROWSE |
+						  CLIENT_SEC_FILE | CLIENT_SEC_FILE_BROWSE |
+						  CLIENT_SEC_CLIENTAPP | CLIENT_SEC_TCS |
+						  CLIENT_SEC_VPN;
+		return 0;
+	}
+
+	if ((curr_privileges = lookup_client_sec_privilege(vsite,
+													   level_name)))
+	{
+		*security_flags = curr_privileges->security_flags;
+		return 0;
+	}
+	else
+	{
+		return -1;
+	}
 }
 
 static int32_t
 get_location_privileges(sec_vsite_t *vsite, char *location_name,
-    uint32_t *security_flags)
+						uint32_t *security_flags)
 {
-    client_sec_location_t *curr_location;
+	client_sec_location_t *curr_location;
 
-    if ((curr_location = lookup_client_sec_location(vsite, location_name))) {
-        if (!get_level_privileges(vsite, curr_location->security_level,
-                security_flags)) {
-            return 0;
-        } else {
-            return -1;
-        }
-    } else {
-        return -1;
-    }
+	if ((curr_location = lookup_client_sec_location(vsite, location_name)))
+	{
+		if (!get_level_privileges(vsite, curr_location->security_level,
+								  security_flags))
+		{
+			return 0;
+		}
+		else
+		{
+			return -1;
+		}
+	}
+	else
+	{
+		return -1;
+	}
 }
 
 static uint32_t
 get_client_security_default_privilege(sec_vsite_t *vsite)
 {
-    uint32_t privileges;
+	uint32_t privileges;
 
-    if (!get_level_privileges(vsite, vsite->client_sec_default_level,
-            &privileges)) {
-        return privileges;
-    } else {    
-        return 0;
-    }
+	if (!get_level_privileges(vsite, vsite->client_sec_default_level,
+							  &privileges))
+	{
+		return privileges;
+	}
+	else
+	{
+		return 0;
+	}
 }
 
-static void 
+static void
 unencode_twingo(char *src, char *dest)
 {
-/*
-    src - the original twingo encoded string
-    dest - a buffer for the unencoded string 1/2 the length of src
-*/
-    int32_t i;
-    int32_t size = strlen(src);
-    int code;
-    for (i = 0; i < size; i +=2) {
-        if (sscanf(&src[i], "%2x", &code) != 1) {
-            code = '?';
-        }
-        *dest = code;
-        dest++;   
-    }
-    *dest = '\0';
+	/*
+		src - the original twingo encoded string
+		dest - a buffer for the unencoded string 1/2 the length of src
+	*/
+	int32_t i;
+	int32_t size = strlen(src);
+	int code;
+	for (i = 0; i < size; i += 2)
+	{
+		if (sscanf(&src[i], "%2x", &code) != 1)
+		{
+			code = '?';
+		}
+		*dest = code;
+		dest++;
+	}
+	*dest = '\0';
 }
 
 /*
@@ -10510,72 +11870,96 @@
 {
 	static char *short_str = "wc=";
 
-	if(!strncmp(cookie, short_str, strlen(short_str))) {
+	if (!strncmp(cookie, short_str, strlen(short_str)))
+	{
 		return 0;
 	}
 	return 1;
 }
 
 static char *
-get_twingo_cookie_param(char *param, char *cookie, uint32_t *value_len) 
+get_twingo_cookie_param(char *param, char *cookie, uint32_t *value_len)
 {
-    char *value;    
-    char *value_end;    
-    
-    /* reset the length first */
-    *value_len=0;
-    
-    value = strstr(cookie, param);
-    if (value) {
-        value += strlen(param);
-        value_end = strstr(value, "\"");
-        if (value_end) {
-            *value_len = value_end - value;
-            return value; 
-        } else {
-            return NULL; /* should never occur */ 
-        } 
-    } else {
-        return NULL;
-    }
+	char *value;
+	char *value_end;
+
+	/* reset the length first */
+	*value_len = 0;
+
+	value = strstr(cookie, param);
+	if (value)
+	{
+		value += strlen(param);
+		value_end = strstr(value, "\"");
+		if (value_end)
+		{
+			*value_len = value_end - value;
+			return value;
+		}
+		else
+		{
+			return NULL; /* should never occur */
+		}
+	}
+	else
+	{
+		return NULL;
+	}
 }
 
 static int32_t
 test_cookie_param(char *param, char *cookie)
 {
-    char *test;
-    uint32_t test_len;
+	char *test;
+	uint32_t test_len;
 
-    test = get_twingo_cookie_param(param, cookie, &test_len); 
-    if (test && (test_len == 1)) {
-        if (test[0] == '0') {
-            return 0; 
-        } else if (test[0] == '1') {
-            return 1; 
-        } else {
-            return -1; 
-        }
-    } else {
-        return -1;
-    } 
+	test = get_twingo_cookie_param(param, cookie, &test_len);
+	if (test && (test_len == 1))
+	{
+		if (test[0] == '0')
+		{
+			return 0;
+		}
+		else if (test[0] == '1')
+		{
+			return 1;
+		}
+		else
+		{
+			return -1;
+		}
+	}
+	else
+	{
+		return -1;
+	}
 }
 
 static int32_t
 test_hi_param(char *cookie)
 {
-    uint32_t rc;
-    if(!test_cookie_param("hiav=\"", cookie)) {
-	rc = ERR_CLIENTSEC_HOSTCHECK_AV_FAILED;
-    } else if(!test_cookie_param("hifw=\"", cookie)) {
-	rc = ERR_CLIENTSEC_HOSTCHECK_FW_FAILED;
-    } else if(!test_cookie_param("hisp=\"", cookie)) {
-	rc = ERR_CLIENTSEC_HOSTCHECK_SP_FAILED;
-    } else if(!test_cookie_param("hics=\"", cookie)) {
-	rc = ERR_CLIENTSEC_HOSTCHECK_CS_FAILED;
-    } else {
-	rc = ERR_CLIENTSEC_HOSTCHECK_FAILED;
-    }
-    return rc;
+	uint32_t rc;
+	if (!test_cookie_param("hiav=\"", cookie))
+	{
+		rc = ERR_CLIENTSEC_HOSTCHECK_AV_FAILED;
+	}
+	else if (!test_cookie_param("hifw=\"", cookie))
+	{
+		rc = ERR_CLIENTSEC_HOSTCHECK_FW_FAILED;
+	}
+	else if (!test_cookie_param("hisp=\"", cookie))
+	{
+		rc = ERR_CLIENTSEC_HOSTCHECK_SP_FAILED;
+	}
+	else if (!test_cookie_param("hics=\"", cookie))
+	{
+		rc = ERR_CLIENTSEC_HOSTCHECK_CS_FAILED;
+	}
+	else
+	{
+		rc = ERR_CLIENTSEC_HOSTCHECK_FAILED;
+	}
+	return rc;
 }
 
 /*
@@ -10589,20 +11973,25 @@
 	char *front, *end;
 	char *attr = "msg=\"";
 	int32_t len;
-	
-	if (cookie == NULL) {
+
+	if (cookie == NULL)
+	{
 		return -1;
 	}
-	if ((front = strstr(cookie, attr)) != NULL){
+	if ((front = strstr(cookie, attr)) != NULL)
+	{
 		front += strlen(attr);
 		end = front;
-		while(*end != '\"') {
+		while (*end != '\"')
+		{
 			end++;
 		}
 		len = end - front;
-		if ((len > 0) && (len < MAX_STRING_LEN)) {
+		if ((len > 0) && (len < MAX_STRING_LEN))
+		{
 			*msg = (char *)malloc(len + 1);
-			if (*msg != NULL) {
+			if (*msg != NULL)
+			{
 				memcpy(*msg, front, len);
 				(*msg)[len] = '\0';
 				return 0;
@@ -10618,102 +12007,127 @@
 	char *test;
 	uint32_t test_len;
 
-	test = get_twingo_cookie_param(param, cookie, &test_len); 
-	if (test && (test_len == 1)) {
-		if (test[0] == '1') {
-			return 0; 
-		} else if (test[0] == '2') {
-			return 1; 
-		} else {
-			return -1; 
+	test = get_twingo_cookie_param(param, cookie, &test_len);
+	if (test && (test_len == 1))
+	{
+		if (test[0] == '1')
+		{
+			return 0;
 		}
-	} else {
+		else if (test[0] == '2')
+		{
+			return 1;
+		}
+		else
+		{
+			return -1;
+		}
+	}
+	else
+	{
 		return -1;
-	} 
+	}
 }
 
-static const char 
-*extract_error_value(char *cookie) {
-    static char result[256];
-    const char *start = strstr(cookie, "error=");
-
-    if (start) {
-        start += strlen("error=");
-        const char *end = strchr(start, '\"');
-        if (end) {
-            size_t length = end - start;
-            if (length < sizeof(result)) {
-                strncpy(result, start, length);
-                result[length] = '\0';
-                return result;
-            } else {
-                return NULL;
-            }
-        }
-    }
+static const char *extract_error_value(char *cookie)
+{
+	static char result[256];
+	const char *start = strstr(cookie, "error=");
+
+	if (start)
+	{
+		start += strlen("error=");
+		const char *end = strchr(start, '\"');
+		if (end)
+		{
+			size_t length = end - start;
+			if (length < sizeof(result))
+			{
+				strncpy(result, start, length);
+				result[length] = '\0';
+				return result;
+			}
+			else
+			{
+				return NULL;
+			}
+		}
+	}
 
-    return NULL;
+	return NULL;
 }
 
 static int32_t
-get_client_privileges_from_cookie(smanager_data_t *sec_data, 
-                                  uint32_t *privileges, char **msg, char **ploc)
+get_client_privileges_from_cookie(smanager_data_t *sec_data,
+								  uint32_t *privileges, char **msg, char **ploc)
 
 {
-	char *cookie=NULL;
+	char *cookie = NULL;
 	char *encoded_cookie = sec_data->client_sec_info;
 	uint32_t cookie_len;
-	char *location=NULL;
-	uint32_t location_len=0;
+	char *location = NULL;
+	uint32_t location_len = 0;
 	int32_t hi_check, cc_check, vd_check, onlyhi_check, stage, alias_check;
 	uint32_t default_privileges;
 	int32_t rc, cookie_rc;
 	sec_vsite_t *vsite = sec_data->vsite_p;
-	*ploc=NULL;
-	char *redirect_error=NULL;
+	*ploc = NULL;
+	char *redirect_error = NULL;
 
-	if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC)) {
-		default_privileges = get_client_security_default_privilege(vsite); 
-		*privileges = default_privileges; 
+	if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC))
+	{
+		default_privileges = get_client_security_default_privilege(vsite);
+		*privileges = default_privileges;
 
-		if (encoded_cookie != NULL) {
+		if (encoded_cookie != NULL)
+		{
 			cookie_len = (strlen(encoded_cookie) + 1) / 2;
 			cookie = (char *)malloc(sizeof(char) * (cookie_len + 1));
-			if (cookie) {
+			if (cookie)
+			{
 				unencode_twingo(encoded_cookie, cookie);
 				cookie_rc = clientsec_cookie_format(cookie);
 				/* create redirect error message in buffer logging */
 				redirect_error = extract_error_value(cookie);
-				if (redirect_error) {
+				if (redirect_error)
+				{
 					fastlog_logex(CLIENTSEC_CHECK_FAIL, 2, "the local system did not pass the client security check:", redirect_error);
 				}
-				else {
+				else
+				{
 					fastlog_logex(CLIENTSEC_CHECK_FAIL, 2, "warning:", "the machine you are using to browse this site is not secure");
 				}
 				/*check if it need redirect*/
-				if(sec_redirect_client_security(sec_data, cookie, strlen(cookie)) == 0){
-					if (cookie) {
+				if (sec_redirect_client_security(sec_data, cookie, strlen(cookie)) == 0)
+				{
+					if (cookie)
+					{
 						free(cookie);
 					}
 					return ERR_CLIENTSEC_REDIRECT;
 				}
-				
+
 				/* a client security cookie always contains the location name. So we get it first */
-				location = get_twingo_cookie_param("locationname=\"", cookie, &location_len); 
-				if (location && location_len) {
+				location = get_twingo_cookie_param("locationname=\"", cookie, &location_len);
+				if (location && location_len)
+				{
 					*ploc = (char *)malloc(location_len + 1);
-					if (*ploc) {
+					if (*ploc)
+					{
 						memset(*ploc, 0, location_len + 1);
 						memcpy(*ploc, location, location_len);
-					} 
+					}
 				}
 
-				if (cookie_rc == 0) {
-					hi_check = test_cookie_param("hi=\"", cookie); 
-					cc_check = test_cookie_param("wc=\"", cookie); 
+				if (cookie_rc == 0)
+				{
+					hi_check = test_cookie_param("hi=\"", cookie);
+					cc_check = test_cookie_param("wc=\"", cookie);
 					vd_check = test_cookie_param("sd=\"", cookie);
-					onlyhi_check = test_cookie_param("onlyhi=\"", cookie); 
-				} else {
+					onlyhi_check = test_cookie_param("onlyhi=\"", cookie);
+				}
+				else
+				{
 					hi_check = test_cookie_param("hostintegrity=\"", cookie);
 					cc_check = test_cookie_param("windowscleaner=\"", cookie);
 					vd_check = test_cookie_param("securedesktop=\"", cookie);
@@ -10721,86 +12135,118 @@
 				}
 				stage = test_cookie_param("stage=\"", cookie);
 
-				if (cc_check != 1) {
+				if (cc_check != 1)
+				{
 					ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-					                "client security: cache cleaner install on"
-					                " client failed at location %s.", location ? location : "");
+									"client security: cache cleaner install on"
+									" client failed at location %s.",
+									location ? location : "");
 					rc = ERR_CLIENTSEC_CCCHECK_FAILED;
-				} else if (vd_check != 1) {
+				}
+				else if (vd_check != 1)
+				{
 					ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-					                "client security: virtual desktop install on"
-					                " client failed at location %s.", location ? location : "");
+									"client security: virtual desktop install on"
+									" client failed at location %s.",
+									location ? location : "");
 					rc = ERR_CLIENTSEC_VDCHECK_FAILED;
-				} else if (hi_check != 1) {
+				}
+				else if (hi_check != 1)
+				{
 					ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-					                "client security: client did not pass host check "
-					                "criteria at location %s.", location ? location : "");
-					if (stage == 1 && SEC_ISSET(vsite->common_flags, SEC_CLIENTSEC_TWOSTAGE)) {
+									"client security: client did not pass host check "
+									"criteria at location %s.",
+									location ? location : "");
+					if (stage == 1 && SEC_ISSET(vsite->common_flags, SEC_CLIENTSEC_TWOSTAGE))
+					{
 						rc = ERR_CLIENTSEC_INVOKE_STAGE2;
-					} else {
+					}
+					else
+					{
 						rc = test_hi_param(cookie);
 						extract_cookie_msg(cookie, msg);
-		    		}
-				} else {
-					if (*ploc) {
-						if(!get_location_privileges(vsite, *ploc, privileges)) {
+					}
+				}
+				else
+				{
+					if (*ploc)
+					{
+						if (!get_location_privileges(vsite, *ploc, privileges))
+						{
 							/* the tests below will succeed even if test_subcookie_param() returns < 0 */
 							if ((cookie_rc == 0) &&
-							    test_subcookie_param("hisp=\"", cookie) && 
-							    test_subcookie_param("hiav=\"", cookie) &&
-							    test_subcookie_param("hifw=\"", cookie) &&
-							    test_subcookie_param("hias=\"", cookie) &&
-							    test_subcookie_param("hics=\"", cookie))
+								test_subcookie_param("hisp=\"", cookie) &&
+								test_subcookie_param("hiav=\"", cookie) &&
+								test_subcookie_param("hifw=\"", cookie) &&
+								test_subcookie_param("hias=\"", cookie) &&
+								test_subcookie_param("hics=\"", cookie))
 							{
 								rc = ERR_CLIENTSEC_OK;
-							} else if ((cookie_rc == 1) &&
-							    test_subcookie_param("hostintegrityservicepack=\"", cookie) && 
-							    test_subcookie_param("hostintegrityantivirus=\"", cookie) &&
-							    test_subcookie_param("hostintegrityfirewall=\"", cookie) &&
-							    test_subcookie_param("hostintegrityantispyware=\"", cookie) &&
-							    test_subcookie_param("hostintegritycustomset=\"", cookie))
+							}
+							else if ((cookie_rc == 1) &&
+									 test_subcookie_param("hostintegrityservicepack=\"", cookie) &&
+									 test_subcookie_param("hostintegrityantivirus=\"", cookie) &&
+									 test_subcookie_param("hostintegrityfirewall=\"", cookie) &&
+									 test_subcookie_param("hostintegrityantispyware=\"", cookie) &&
+									 test_subcookie_param("hostintegritycustomset=\"", cookie))
 							{
 								rc = ERR_CLIENTSEC_OK;
-							} else {
-								*privileges = default_privileges; 
+							}
+							else
+							{
+								*privileges = default_privileges;
 								rc = ERR_CLIENTSEC_HOSTCHECK_FAILED;
 							}
-						} else {
+						}
+						else
+						{
 							rc = ERR_CLIENTSEC_OK;
 						}
-						if (onlyhi_check == 1) {
-							SEC_UNSET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE); 
+						if (onlyhi_check == 1)
+						{
+							SEC_UNSET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE);
 							SEC_SET(sec_data->flags, SDAT_CLIENTSEC_ONLYHI);
-						} else {
-							SEC_SET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE); 
+						}
+						else
+						{
+							SEC_SET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE);
 							SEC_UNSET(sec_data->flags, SDAT_CLIENTSEC_ONLYHI);
 						}
-					} else { /* empty location */
+					}
+					else
+					{ /* empty location */
 						ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-						                "client security: failed to map the client "
-						                "security cookie to a location");
+										"client security: failed to map the client "
+										"security cookie to a location");
 						rc = ERR_CLIENTSEC_FAILURE;
 					}
 				}
 
 				/* for the sake of safty to do a pointer check */
-				if (cookie) {
+				if (cookie)
+				{
 					free(cookie);
 				}
-			} else { /* cookie == NULL */
+			}
+			else
+			{ /* cookie == NULL */
 				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-				                "client security: "
-				                "failed to allocate enough space to store the "
-				                "unencoded client security cookie");
+								"client security: "
+								"failed to allocate enough space to store the "
+								"unencoded client security cookie");
 				return ERR_CLIENTSEC_FAILURE;
 			}
-		} else { /* encode_cookie == NULL */
+		}
+		else
+		{ /* encode_cookie == NULL */
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-			                "client security: "
-			                "cookie information is not available");
+							"client security: "
+							"cookie information is not available");
 			rc = ERR_CLIENTSEC_FAILURE;
 		}
-	} else { /* SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC)  is not a lient sec connection */
+	}
+	else
+	{ /* SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC)  is not a lient sec connection */
 		*privileges = CLIENT_SEC_FULL_PRIVILEGES;
 		rc = ERR_CLIENTSEC_IGNORE;
 	}
@@ -10810,7 +12256,7 @@
 
 static struct frame *
 sec_generate_default_html_message(smanager_data_t *sec_data,
-    uint8_t with_home_button, char *big_message, char *title)
+								  uint8_t with_home_button, char *big_message, char *title)
 {
 	struct frame *final_page, *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
@@ -10821,76 +12267,89 @@
 	int32_t vgen_str_len;
 	int32_t lang_str_len;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-		                "vsite is null");
+						"vsite is null");
 		return NULL;
 	}
 	lang_id = vsite->language;
 
 	in_frame = id_to_frame_chain(ERROR_ID, version);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static error content is not "
-			   "available");
+																  "available");
 		return NULL;
 	}
 #define write_data_str(str) write_data(str, &cursor, sizeof(str) - 1, &out_frame)
 
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-	if (with_home_button) {
+	if (with_home_button)
+	{
 		write_data_str("var _AN_withhomebtn = true;\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("var _AN_withhomebtn = false;\n");
 	}
-	if (sec_data->session != NULL) {
+	if (sec_data->session != NULL)
+	{
 		write_data_str("var _AN_hassession = true;\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("var _AN_hassession = false;\n");
 	}
-	if (need_logout_link(sec_data->session, vsite) == TRUE) {
+	if (need_logout_link(sec_data->session, vsite) == TRUE)
+	{
 		write_data_str("var _AN_needlogoutlink = true;\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("var _AN_needlogoutlink = false;\n");
 	}
 	if (sec_data->session == NULL ||
-	    SEC_ISSET(sec_data->session->flags, SESS_ANONYMOUS))
+		SEC_ISSET(sec_data->session->flags, SESS_ANONYMOUS))
 	{
 		write_data_str("var _AN_isanonymous = true;\n");
-	} else {
+	}
+	else
+	{
 		write_data_str("var _AN_isanonymous = false;\n");
 	}
 
 	/* Page title */
 	write_data_str("var _AN_str_title = \"");
-	bcopy(title, portal_lang_buffer, strlen(title)+1);
+	bcopy(title, portal_lang_buffer, strlen(title) + 1);
 	lang_str_len = language_unescape(portal_lang_buffer);
 	write_data(portal_lang_buffer, &cursor, lang_str_len, &out_frame);
 	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_back = \"");
-	lang_string = sec_language_get_and_unescape_msg(lang_id, 11,	&lang_str_len);
+	lang_string = sec_language_get_and_unescape_msg(lang_id, 11, &lang_str_len);
 	write_data(lang_string, &cursor, lang_str_len, &out_frame);
 	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_logout = \"");
 	lang_string = sec_language_get_and_unescape_msg(lang_id, 330, &lang_str_len);
 	write_data(lang_string, &cursor, lang_str_len, &out_frame);
-	write_data_str("\";\n");			
+	write_data_str("\";\n");
 
 	write_data_str("var _AN_str_help = \"");
 	lang_string = sec_language_get_and_unescape_msg(lang_id, 329, &lang_str_len);
 	write_data(lang_string, &cursor, lang_str_len, &out_frame);
 	write_data_str("\";\n");
-		
+
 	write_data_str("var _AN_str_errortitle = \"");
-	bcopy(big_message, portal_lang_buffer, strlen(big_message)+1);
+	bcopy(big_message, portal_lang_buffer, strlen(big_message) + 1);
 	lang_str_len = language_unescape(portal_lang_buffer);
 	write_data(portal_lang_buffer, &cursor, lang_str_len, &out_frame);
 	write_data_str("\";\n");
-		
+
 	write_data_str("var _AN_str_goto = \"");
-	lang_string = sec_language_get_and_unescape_msg(lang_id, 302,&lang_str_len);
+	lang_string = sec_language_get_and_unescape_msg(lang_id, 302, &lang_str_len);
 	write_data(lang_string, &cursor, lang_str_len, &out_frame);
 	write_data_str("\";\n");
 
@@ -10900,7 +12359,7 @@
 	write_data(portal_temp_string, &cursor, vgen_str_len, &out_frame);
 	write_data_str("\";\n");
 
-#undef write_data_str	
+#undef write_data_str
 
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
@@ -10909,63 +12368,71 @@
 
 static int
 vgen_html_message(smanager_data_t *sec_data, int32_t http_code,
-                  uint8_t with_home_button, char *big_message,
-                  char *title, char *fmt, va_list ap)
+				  uint8_t with_home_button, char *big_message,
+				  char *title, char *fmt, va_list ap)
 {
-    struct frame *final_page = NULL;
-    struct frame *ai_page_frame = NULL;
+	struct frame *final_page = NULL;
+	struct frame *ai_page_frame = NULL;
 #ifdef AI_READY
-    sec_vsite_t *vsite = sec_data->vsite_p;
-    if (vsite != NULL) {
-        ai_page_frame = AI_GET_PAGE(vsite, AI_PAGE_INFO);
-    }
+	sec_vsite_t *vsite = sec_data->vsite_p;
+	if (vsite != NULL)
+	{
+		ai_page_frame = AI_GET_PAGE(vsite, AI_PAGE_INFO);
+	}
 #endif
-    /* portal_temp_string's contents will be used by a sub function */
-    vsnprintf(portal_temp_string, MAX_APP_PRINT_SIZE, fmt, ap);
+	/* portal_temp_string's contents will be used by a sub function */
+	vsnprintf(portal_temp_string, MAX_APP_PRINT_SIZE, fmt, ap);
 
-    if (ai_page_frame != NULL) {
+	if (ai_page_frame != NULL)
+	{
 #ifdef AI_READY
-        final_page = ai_generate_html_message(sec_data, title, 
-                               portal_temp_string, big_message);
+		final_page = ai_generate_html_message(sec_data, title,
+											  portal_temp_string, big_message);
 #endif
-    } else {
-        final_page = sec_generate_default_html_message(sec_data,
-                            with_home_button, big_message, title);
-    }
+	}
+	else
+	{
+		final_page = sec_generate_default_html_message(sec_data,
+													   with_home_button, big_message, title);
+	}
 
-    if (final_page != NULL) {
-        uint32_t flags = 0;
+	if (final_page != NULL)
+	{
+		uint32_t flags = 0;
 
-		if (okay_to_close_client(PROXY_UDATA(sec_data->client_conn))) {
+		if (okay_to_close_client(PROXY_UDATA(sec_data->client_conn)))
+		{
 			flags = HTTP_NOCACHE;
 		}
 
-        sec_data->response = create_http_response_with_bookmark(http_code,
-                 final_page, flags, NULL, NULL,
-                 "text/html", NULL, sec_data, NULL, 0,
-                 IGNORE_CLIENTSEC_COOKIE);
-		if (sec_data->response == NULL) {
+		sec_data->response = create_http_response_with_bookmark(http_code,
+																final_page, flags, NULL, NULL,
+																"text/html", NULL, sec_data, NULL, 0,
+																IGNORE_CLIENTSEC_COOKIE);
+		if (sec_data->response == NULL)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Generate response failed.");
 			parser_frame_chain_free(final_page);
 			return SEC_FAIL;
-		} else {
+		}
+		else
+		{
 			HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 		}
-    }
+	}
 	return SEC_SUCCESS;
 }
 
-int
-sec_generate_html_message(smanager_data_t *sec_data, int32_t http_code,
-    uint8_t with_home_button, char *big_message, char *title, char *fmt, ...)
+int sec_generate_html_message(smanager_data_t *sec_data, int32_t http_code,
+							  uint8_t with_home_button, char *big_message, char *title, char *fmt, ...)
 {
-    va_list ap;
+	va_list ap;
 	int rc;
 
-    va_start(ap, fmt);
-    rc = vgen_html_message(sec_data, http_code, with_home_button, big_message,
-                      title, fmt, ap);
-    va_end(ap);
+	va_start(ap, fmt);
+	rc = vgen_html_message(sec_data, http_code, with_home_button, big_message,
+						   title, fmt, ap);
+	va_end(ap);
 
 	return rc;
 }
@@ -10973,61 +12440,72 @@
 static void
 sec_generate_clientsec_redirect_default(smanager_data_t *sec_data)
 {
-    char req_prefix[SEC_MAX_URL_LEN] = {0};
+	char req_prefix[SEC_MAX_URL_LEN] = {0};
 
-    if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-        strncpy(req_prefix, "/prx/000/http/localh", SEC_MAX_URL_LEN-1);
-    } else {
-        strncpy(req_prefix, SEC_REWRITTEN_PREFIX, SEC_MAX_URL_LEN-1);
-    }
-    /*
-     * the flag will be set if parser finds clientsec jre cookie
-     * we need different handling for clientsec in case
-     * jre and msjvm because of the sygate bugs
-     * - jre case: for 2 stage handling we will not redirect 
-     *   to /site.default but we will insert the stage2 cookie and
-     *   rewrite url will insert stage2 cookie and rewrite
-     *   vsite/setup.xml to vsite.default/setup.xml
-     * - msjvm case: for 2 stage redirect to vsite.default,
-     *   do not insert the stage2 cookie and do not rewrite
-     *   url for setup.xml
-     */
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
+		strncpy(req_prefix, "/prx/000/http/localh", SEC_MAX_URL_LEN - 1);
+	}
+	else
+	{
+		strncpy(req_prefix, SEC_REWRITTEN_PREFIX, SEC_MAX_URL_LEN - 1);
+	}
+	/*
+	 * the flag will be set if parser finds clientsec jre cookie
+	 * we need different handling for clientsec in case
+	 * jre and msjvm because of the sygate bugs
+	 * - jre case: for 2 stage handling we will not redirect
+	 *   to /site.default but we will insert the stage2 cookie and
+	 *   rewrite url will insert stage2 cookie and rewrite
+	 *   vsite/setup.xml to vsite.default/setup.xml
+	 * - msjvm case: for 2 stage redirect to vsite.default,
+	 *   do not insert the stage2 cookie and do not rewrite
+	 *   url for setup.xml
+	 */
 	sec_vsite_t *vsite = sec_data->vsite_p;
-    if (FLAG_ISSET(sec_data->proxy_p->flags, HTTP_PF_CLIENTSEC_NEED_STAGE2_COOKIE)) {
+	if (FLAG_ISSET(sec_data->proxy_p->flags, HTTP_PF_CLIENTSEC_NEED_STAGE2_COOKIE))
+	{
 
-	    snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s/%s", 
-		     req_prefix, TWINGO_PATH, vsite->name);
-	    sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-				  portal_temp_string, strlen(portal_temp_string), NULL, 0, NULL, 0,
-				  NULL, 0, CLEAN_CLIENTSEC_COOKIE_REDIR_INSERT_STAGE2,
-				  SEC_GENERATE_REDIR_NOFLAGS);
-    } else {
-        if (!SEC_ISSET(vsite->common_flags, SEC_MASK_URLS)) {
-            snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s/%s%s/", 
-		         req_prefix, TWINGO_PATH, vsite->name, CLIENTSEC_STAGE2_SUFFIX);
-        } else {
-            bcopy(SEC_PREFIX_MASK, portal_temp_string, SLEN(SEC_PREFIX_MASK));
-
-            if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-                 snprintf(portal_lang_buffer, MAX_APP_PRINT_SIZE,
-                          "/http/localh%s/%s%s/",
-                          TWINGO_PATH, vsite->name, CLIENTSEC_STAGE2_SUFFIX);
- 			} else {
-                 snprintf(portal_lang_buffer, MAX_APP_PRINT_SIZE,
-                          "/http/localhost%s/%s%s/",
-                          TWINGO_PATH, vsite->name, CLIENTSEC_STAGE2_SUFFIX);
- 			}
-            rewrite_api_get_url_encoding(portal_lang_buffer, 
-        			strlen(portal_lang_buffer),
-        			portal_temp_string + SLEN(SEC_PREFIX_MASK), 
-        			MAX_APP_PRINT_SIZE - SLEN(SEC_PREFIX_MASK), vsite->common_flags, sec_data->session_id);
-
-        }
-        sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-        	      portal_temp_string, strlen(portal_temp_string), NULL, 0, NULL, 0,
-        	      NULL, 0, CLEAN_CLIENTSEC_COOKIE_REDIR,
-        	      SEC_GENERATE_REDIR_NOFLAGS);
-    }
+		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s/%s",
+				 req_prefix, TWINGO_PATH, vsite->name);
+		sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
+							  portal_temp_string, strlen(portal_temp_string), NULL, 0, NULL, 0,
+							  NULL, 0, CLEAN_CLIENTSEC_COOKIE_REDIR_INSERT_STAGE2,
+							  SEC_GENERATE_REDIR_NOFLAGS);
+	}
+	else
+	{
+		if (!SEC_ISSET(vsite->common_flags, SEC_MASK_URLS))
+		{
+			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s/%s%s/",
+					 req_prefix, TWINGO_PATH, vsite->name, CLIENTSEC_STAGE2_SUFFIX);
+		}
+		else
+		{
+			bcopy(SEC_PREFIX_MASK, portal_temp_string, SLEN(SEC_PREFIX_MASK));
+
+			if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+			{
+				snprintf(portal_lang_buffer, MAX_APP_PRINT_SIZE,
+						 "/http/localh%s/%s%s/",
+						 TWINGO_PATH, vsite->name, CLIENTSEC_STAGE2_SUFFIX);
+			}
+			else
+			{
+				snprintf(portal_lang_buffer, MAX_APP_PRINT_SIZE,
+						 "/http/localhost%s/%s%s/",
+						 TWINGO_PATH, vsite->name, CLIENTSEC_STAGE2_SUFFIX);
+			}
+			rewrite_api_get_url_encoding(portal_lang_buffer,
+										 strlen(portal_lang_buffer),
+										 portal_temp_string + SLEN(SEC_PREFIX_MASK),
+										 MAX_APP_PRINT_SIZE - SLEN(SEC_PREFIX_MASK), vsite->common_flags, sec_data->session_id);
+		}
+		sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
+							  portal_temp_string, strlen(portal_temp_string), NULL, 0, NULL, 0,
+							  NULL, 0, CLEAN_CLIENTSEC_COOKIE_REDIR,
+							  SEC_GENERATE_REDIR_NOFLAGS);
+	}
 }
 
 uint8_t
@@ -11035,26 +12513,30 @@
 {
 	int32_t clientsec_result;
 	char *msg_str = NULL; /* malloc-ed in "extract_cookie_msg()", freed in this function */
-	char *location = NULL; 
+	char *location = NULL;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 
 	clientsec_result = get_client_privileges_from_cookie(
-							sec_data, privileges, &msg_str, &location);
-	if (*privileges == CLIENT_SEC_NONE) {
-		if (clientsec_result == ERR_CLIENTSEC_FAILURE) {
-/*
-			slog(LOG_NOTICE,
-				 vsite->site_id, NULL, NULL,
-				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
-				 0, -1, -1, -1, WELF_TYPE_VPN,
-				 "Authentication failed - failed to obtain client security information %s%s", 
-				 location?"at location ":"", location?location:"");
-*/
+		sec_data, privileges, &msg_str, &location);
+	if (*privileges == CLIENT_SEC_NONE)
+	{
+		if (clientsec_result == ERR_CLIENTSEC_FAILURE)
+		{
+			/*
+						slog(LOG_NOTICE,
+							 vsite->site_id, NULL, NULL,
+							 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
+							 0, -1, -1, -1, WELF_TYPE_VPN,
+							 "Authentication failed - failed to obtain client security information %s%s",
+							 location?"at location ":"", location?location:"");
+			*/
 			sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
-				  sec_language_get_msg(vsite->language, 284),
-				  sec_language_get_msg(vsite->language, 284),
-				  sec_language_get_msg(vsite->language, 282));
-		} else if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_FAILED) {
+									  sec_language_get_msg(vsite->language, 284),
+									  sec_language_get_msg(vsite->language, 284),
+									  sec_language_get_msg(vsite->language, 282));
+		}
+		else if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_FAILED)
+		{
 /*
 			slog(LOG_NOTICE,
 				 vsite->site_id, NULL, NULL,
@@ -11064,241 +12546,290 @@
 				 location?"at location ":"", location?location:"");
 */
 #ifdef AI_READY
-			if (vsite->content_urls[SEC_CUSTOM_ERR_HOSTCHECK] != NULL) {
-				 sec_generate_error_response(client_conn, TRUE,
-											 FORBIDDEN,
-											 SEC_CUSTOM_ERR_HOSTCHECK,
-									sec_language_get_msg(vsite->language, 566));
-			} else if (AI_GET_URL(vsite, AI_URL_HIC_DEFAULT) != NULL) {
+			if (vsite->content_urls[SEC_CUSTOM_ERR_HOSTCHECK] != NULL)
+			{
+				sec_generate_error_response(client_conn, TRUE,
+											FORBIDDEN,
+											SEC_CUSTOM_ERR_HOSTCHECK,
+											sec_language_get_msg(vsite->language, 566));
+			}
+			else if (AI_GET_URL(vsite, AI_URL_HIC_DEFAULT) != NULL)
+			{
 				sec_generate_rewrite_redirect(client_conn,
-						   AI_GET_URL(vsite, AI_URL_HIC_DEFAULT),
-					strlen(AI_GET_URL(vsite, AI_URL_HIC_DEFAULT)));
-			} else 
+											  AI_GET_URL(vsite, AI_URL_HIC_DEFAULT),
+											  strlen(AI_GET_URL(vsite, AI_URL_HIC_DEFAULT)));
+			}
+			else
 #endif
 			{
 				sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
-					sec_language_get_msg(vsite->language, 284),
-					sec_language_get_msg(vsite->language, 284),
-					sec_language_get_msg(vsite->language, 566));
+										  sec_language_get_msg(vsite->language, 284),
+										  sec_language_get_msg(vsite->language, 284),
+										  sec_language_get_msg(vsite->language, 566));
 			}
-		} else if (clientsec_result == ERR_CLIENTSEC_INVOKE_STAGE2) {
-/*			slog(LOG_NOTICE,
-				 vsite->site_id, NULL, NULL,
-				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
-				 0, -1, -1, -1, WELF_TYPE_VPN,
-				 "Authentication failed - host check failed, trying default location %s%s",
-				 location?"at location ":"", location?location:"");
-*/
+		}
+		else if (clientsec_result == ERR_CLIENTSEC_INVOKE_STAGE2)
+		{
+			/*			slog(LOG_NOTICE,
+							 vsite->site_id, NULL, NULL,
+							 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
+							 0, -1, -1, -1, WELF_TYPE_VPN,
+							 "Authentication failed - host check failed, trying default location %s%s",
+							 location?"at location ":"", location?location:"");
+			*/
 			sec_generate_clientsec_redirect_default(sec_data);
-		} else if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_AV_FAILED) {
+		}
+		else if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_AV_FAILED)
+		{
 /*
-			slog(LOG_NOTICE, vsite->site_id, NULL, NULL, 
-				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 
-				 0, -1, -1, -1, WELF_TYPE_VPN, 
-				 "Authentication failed - host check antivirus failed %s%s: %s", 
+			slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
+				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
+				 0, -1, -1, -1, WELF_TYPE_VPN,
+				 "Authentication failed - host check antivirus failed %s%s: %s",
 				 location?"at location ":"", location?location:"",
 				 msg_str);
 */
 #ifdef AI_READY
-			if (vsite->content_urls[SEC_CUSTOM_ERR_ANTIVIRUS] != NULL) {
-				sec_generate_error_response(client_conn, TRUE, 
+			if (vsite->content_urls[SEC_CUSTOM_ERR_ANTIVIRUS] != NULL)
+			{
+				sec_generate_error_response(client_conn, TRUE,
 											FORBIDDEN,
-											SEC_CUSTOM_ERR_ANTIVIRUS, 
-									sec_language_get_msg(vsite->language, 562));
-			} else if (AI_GET_URL(vsite, AI_URL_HIC_AV) != NULL) {
+											SEC_CUSTOM_ERR_ANTIVIRUS,
+											sec_language_get_msg(vsite->language, 562));
+			}
+			else if (AI_GET_URL(vsite, AI_URL_HIC_AV) != NULL)
+			{
 				sec_generate_rewrite_redirect(client_conn,
-						   AI_GET_URL(vsite, AI_URL_HIC_AV),
-					strlen(AI_GET_URL(vsite, AI_URL_HIC_AV)));
-			} else 
+											  AI_GET_URL(vsite, AI_URL_HIC_AV),
+											  strlen(AI_GET_URL(vsite, AI_URL_HIC_AV)));
+			}
+			else
 #endif
 			{
 				sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
-					sec_language_get_msg(vsite->language, 284),
-					sec_language_get_msg(vsite->language, 284),
-					"%s: %s", sec_language_get_msg(vsite->language, 562), 
-					((msg_str == NULL) ? "reason unspecified" : msg_str));
+										  sec_language_get_msg(vsite->language, 284),
+										  sec_language_get_msg(vsite->language, 284),
+										  "%s: %s", sec_language_get_msg(vsite->language, 562),
+										  ((msg_str == NULL) ? "reason unspecified" : msg_str));
 			}
-		} else if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_FW_FAILED) {
+		}
+		else if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_FW_FAILED)
+		{
 /*
-			slog(LOG_NOTICE, vsite->site_id, NULL, NULL, 
-				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 
-				 0, -1, -1, -1, WELF_TYPE_VPN, 
-				 "Authentication failed - host check personal firewall failed %s%s: %s", 
+			slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
+				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
+				 0, -1, -1, -1, WELF_TYPE_VPN,
+				 "Authentication failed - host check personal firewall failed %s%s: %s",
 				 location?"at location ":"", location?location:"",
 				 msg_str);
 */
 #ifdef AI_READY
-			if (vsite->content_urls[SEC_CUSTOM_ERR_PERSONALFW] != NULL) {
-				 sec_generate_error_response(client_conn, TRUE, 
-											 FORBIDDEN,
-											 SEC_CUSTOM_ERR_PERSONALFW, 
-									sec_language_get_msg(vsite->language, 563));
-			} else if (AI_GET_URL(vsite, AI_URL_HIC_FW) != NULL) {
+			if (vsite->content_urls[SEC_CUSTOM_ERR_PERSONALFW] != NULL)
+			{
+				sec_generate_error_response(client_conn, TRUE,
+											FORBIDDEN,
+											SEC_CUSTOM_ERR_PERSONALFW,
+											sec_language_get_msg(vsite->language, 563));
+			}
+			else if (AI_GET_URL(vsite, AI_URL_HIC_FW) != NULL)
+			{
 				sec_generate_rewrite_redirect(client_conn,
-						   AI_GET_URL(vsite, AI_URL_HIC_FW),
-					strlen(AI_GET_URL(vsite, AI_URL_HIC_FW)));
-			} else 
+											  AI_GET_URL(vsite, AI_URL_HIC_FW),
+											  strlen(AI_GET_URL(vsite, AI_URL_HIC_FW)));
+			}
+			else
 #endif
 			{
 				sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
-					sec_language_get_msg(vsite->language, 284),
-					sec_language_get_msg(vsite->language, 284),
-					"%s: %s", sec_language_get_msg(vsite->language, 563),
-					((msg_str == NULL) ? "reason unspecified" : msg_str));
+										  sec_language_get_msg(vsite->language, 284),
+										  sec_language_get_msg(vsite->language, 284),
+										  "%s: %s", sec_language_get_msg(vsite->language, 563),
+										  ((msg_str == NULL) ? "reason unspecified" : msg_str));
 			}
-		} else if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_SP_FAILED) {
+		}
+		else if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_SP_FAILED)
+		{
 /*
-			slog(LOG_NOTICE, vsite->site_id, NULL, NULL, 
-				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 
-				 0, -1, -1, -1, WELF_TYPE_VPN, 
-				 "Authentication failed - host check service pack failed %s%s: %s", 
+			slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
+				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
+				 0, -1, -1, -1, WELF_TYPE_VPN,
+				 "Authentication failed - host check service pack failed %s%s: %s",
 				 location?"at location ":"", location?location:"",
 				 msg_str);
 */
 #ifdef AI_READY
-			if (vsite->content_urls[SEC_CUSTOM_ERR_SERVICEPACK] != NULL) {
-				 sec_generate_error_response(client_conn, TRUE, 
-											 FORBIDDEN,
-											 SEC_CUSTOM_ERR_SERVICEPACK, 
-									sec_language_get_msg(vsite->language, 564));
-			} else if (AI_GET_URL(vsite, AI_URL_HIC_SP) != NULL) {
+			if (vsite->content_urls[SEC_CUSTOM_ERR_SERVICEPACK] != NULL)
+			{
+				sec_generate_error_response(client_conn, TRUE,
+											FORBIDDEN,
+											SEC_CUSTOM_ERR_SERVICEPACK,
+											sec_language_get_msg(vsite->language, 564));
+			}
+			else if (AI_GET_URL(vsite, AI_URL_HIC_SP) != NULL)
+			{
 				sec_generate_rewrite_redirect(client_conn,
-						   AI_GET_URL(vsite, AI_URL_HIC_SP),
-					strlen(AI_GET_URL(vsite, AI_URL_HIC_SP)));
-			} else 
+											  AI_GET_URL(vsite, AI_URL_HIC_SP),
+											  strlen(AI_GET_URL(vsite, AI_URL_HIC_SP)));
+			}
+			else
 #endif
 			{
 				sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
-					sec_language_get_msg(vsite->language, 284),
-					sec_language_get_msg(vsite->language, 284),
-					"%s: %s", sec_language_get_msg(vsite->language, 564),
-					((msg_str == NULL) ? "reason unspecified" : msg_str));
+										  sec_language_get_msg(vsite->language, 284),
+										  sec_language_get_msg(vsite->language, 284),
+										  "%s: %s", sec_language_get_msg(vsite->language, 564),
+										  ((msg_str == NULL) ? "reason unspecified" : msg_str));
 			}
-		} else 
+		}
+		else
 			/* add the AntiSpyware check here */
-			if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_AS_FAILED) {
+			if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_AS_FAILED)
+			{
 /*
-				slog(LOG_NOTICE, vsite->site_id, NULL, NULL, 
-					 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 
-					 0, -1, -1, -1, WELF_TYPE_VPN, 
-					 "Authentication failed - host check antispyware failed %s%s: %s", 
+				slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
+					 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
+					 0, -1, -1, -1, WELF_TYPE_VPN,
+					 "Authentication failed - host check antispyware failed %s%s: %s",
 					 location?"at location ":"", location?location:"", msg_str);
 */
 #ifdef AI_READY
-			if (vsite->content_urls[SEC_CUSTOM_ERR_ANTISPYWARE] != NULL) {
-				sec_generate_error_response(client_conn, TRUE, 
-					FORBIDDEN,
-					SEC_CUSTOM_ERR_ANTISPYWARE, 
-					sec_language_get_msg(vsite->language, 564));
-			} else if (AI_GET_URL(vsite, AI_URL_HIC_AS) != NULL) {
-				sec_generate_rewrite_redirect(client_conn,
-					AI_GET_URL(vsite, AI_URL_HIC_AS),
-					strlen(AI_GET_URL(vsite, AI_URL_HIC_AS)));
-			} else
+				if (vsite->content_urls[SEC_CUSTOM_ERR_ANTISPYWARE] != NULL)
+				{
+					sec_generate_error_response(client_conn, TRUE,
+												FORBIDDEN,
+												SEC_CUSTOM_ERR_ANTISPYWARE,
+												sec_language_get_msg(vsite->language, 564));
+				}
+				else if (AI_GET_URL(vsite, AI_URL_HIC_AS) != NULL)
+				{
+					sec_generate_rewrite_redirect(client_conn,
+												  AI_GET_URL(vsite, AI_URL_HIC_AS),
+												  strlen(AI_GET_URL(vsite, AI_URL_HIC_AS)));
+				}
+				else
 #endif
-			{
-				sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
-					sec_language_get_msg(vsite->language, 284),
-					sec_language_get_msg(vsite->language, 284),
-					"%s: %s", sec_language_get_msg(vsite->language, 564),
-					((msg_str == NULL) ? "reason unspecified" : msg_str));
+				{
+					sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
+											  sec_language_get_msg(vsite->language, 284),
+											  sec_language_get_msg(vsite->language, 284),
+											  "%s: %s", sec_language_get_msg(vsite->language, 564),
+											  ((msg_str == NULL) ? "reason unspecified" : msg_str));
+				}
 			}
-		} else 
-			if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_CS_FAILED) {
+			else if (clientsec_result == ERR_CLIENTSEC_HOSTCHECK_CS_FAILED)
+			{
 /*
-				slog(LOG_NOTICE, vsite->site_id, NULL, NULL, 
-					 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 
-					 0, -1, -1, -1, WELF_TYPE_VPN, 
-					 "Authentication failed - host check custom rule failed %s%s: %s", 
+				slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
+					 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
+					 0, -1, -1, -1, WELF_TYPE_VPN,
+					 "Authentication failed - host check custom rule failed %s%s: %s",
 					 location?"at location ":"", location?location:"", msg_str);
 */
 #ifdef AI_READY
-			if (vsite->content_urls[SEC_CUSTOM_ERR_CUSTOMRULE] != NULL) {
-				 sec_generate_error_response(client_conn, TRUE, 
-											 FORBIDDEN,
-											 SEC_CUSTOM_ERR_CUSTOMRULE, 
-									sec_language_get_msg(vsite->language, 565));
-			} else if (AI_GET_URL(vsite, AI_URL_HIC_CUSTOM) != NULL) {
-				sec_generate_rewrite_redirect(client_conn,
-						   AI_GET_URL(vsite, AI_URL_HIC_CUSTOM),
-					strlen(AI_GET_URL(vsite, AI_URL_HIC_CUSTOM)));
-			} else
+				if (vsite->content_urls[SEC_CUSTOM_ERR_CUSTOMRULE] != NULL)
+				{
+					sec_generate_error_response(client_conn, TRUE,
+												FORBIDDEN,
+												SEC_CUSTOM_ERR_CUSTOMRULE,
+												sec_language_get_msg(vsite->language, 565));
+				}
+				else if (AI_GET_URL(vsite, AI_URL_HIC_CUSTOM) != NULL)
+				{
+					sec_generate_rewrite_redirect(client_conn,
+												  AI_GET_URL(vsite, AI_URL_HIC_CUSTOM),
+												  strlen(AI_GET_URL(vsite, AI_URL_HIC_CUSTOM)));
+				}
+				else
 #endif
+				{
+					sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
+											  sec_language_get_msg(vsite->language, 284),
+											  sec_language_get_msg(vsite->language, 284),
+											  "%s: %s", sec_language_get_msg(vsite->language, 565),
+											  ((msg_str == NULL) ? "reason unspecified" : msg_str));
+				}
+			}
+			else if (clientsec_result == ERR_CLIENTSEC_CCCHECK_FAILED)
 			{
+				/*
+							slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
+								 0, -1, -1, -1, WELF_TYPE_VPN,
+								 "Cache Cleaner failed to launch %s%s",
+								 location?"at location ":"", location?location:"");
+				*/
 				sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
-					sec_language_get_msg(vsite->language, 284),
-					sec_language_get_msg(vsite->language, 284),
-					"%s: %s", sec_language_get_msg(vsite->language, 565),
-					((msg_str == NULL) ? "reason unspecified" : msg_str));
+										  sec_language_get_msg(vsite->language, 554),
+										  sec_language_get_msg(vsite->language, 554),
+										  sec_language_get_msg(vsite->language, 553));
 			}
-		} else if (clientsec_result == ERR_CLIENTSEC_CCCHECK_FAILED) {
-/*
-			slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
-				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
-				 0, -1, -1, -1, WELF_TYPE_VPN,
-				 "Cache Cleaner failed to launch %s%s",
-				 location?"at location ":"", location?location:"");
-*/
-			sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
-				 sec_language_get_msg(vsite->language, 554),
-				 sec_language_get_msg(vsite->language, 554),
-				 sec_language_get_msg(vsite->language, 553));
-		} else if (clientsec_result == ERR_CLIENTSEC_VDCHECK_FAILED) {
-/*
-			slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
-				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
-				 0, -1, -1, -1, WELF_TYPE_VPN,
-				 "Virtual Desktop failed to launch %s%s",
-				 location?"at location ":"", location?location:"");
-*/
-			sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
-				 sec_language_get_msg(vsite->language, 554),
-				 sec_language_get_msg(vsite->language, 554),
-				 sec_language_get_msg(vsite->language, 555));
-		} else if (clientsec_result == ERR_CLIENTSEC_WRONG_ALIAS) {
-/*
-			slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
-				 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
-				 0, -1, -1, -1, WELF_TYPE_VPN,
-				 "Starting client security check for new alias site %s%s",
-				 location?"at location ":"", location?location:"");
-*/
-			SEC_UNSET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE);
-			sec_generate_clientsec_redirect(sec_data);
-		} else if (clientsec_result == ERR_CLIENTSEC_REDIRECT) {
-		} else {
-/*
-			slog(LOG_NOTICE,
-				 vsite->site_id, NULL, NULL,
-				SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-				-1, -1, WELF_TYPE_VPN,
-				"Authentication failed - rejected by client security %s%s",
-				location?"at location ":"", location?location:"");
-*/
-			sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
-				 sec_language_get_msg(vsite->language, 284),
-				 sec_language_get_msg(vsite->language, 284),
-				 sec_language_get_msg(vsite->language, 283));
-		}
-		if (msg_str != NULL) {
-		   free(msg_str);
+			else if (clientsec_result == ERR_CLIENTSEC_VDCHECK_FAILED)
+			{
+				/*
+							slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
+								 0, -1, -1, -1, WELF_TYPE_VPN,
+								 "Virtual Desktop failed to launch %s%s",
+								 location?"at location ":"", location?location:"");
+				*/
+				sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
+										  sec_language_get_msg(vsite->language, 554),
+										  sec_language_get_msg(vsite->language, 554),
+										  sec_language_get_msg(vsite->language, 555));
+			}
+			else if (clientsec_result == ERR_CLIENTSEC_WRONG_ALIAS)
+			{
+				/*
+							slog(LOG_NOTICE, vsite->site_id, NULL, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL,
+								 0, -1, -1, -1, WELF_TYPE_VPN,
+								 "Starting client security check for new alias site %s%s",
+								 location?"at location ":"", location?location:"");
+				*/
+				SEC_UNSET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE);
+				sec_generate_clientsec_redirect(sec_data);
+			}
+			else if (clientsec_result == ERR_CLIENTSEC_REDIRECT)
+			{
+			}
+			else
+			{
+				/*
+							slog(LOG_NOTICE,
+								 vsite->site_id, NULL, NULL,
+								SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								-1, -1, WELF_TYPE_VPN,
+								"Authentication failed - rejected by client security %s%s",
+								location?"at location ":"", location?location:"");
+				*/
+				sec_generate_html_message(sec_data, FORBIDDEN, FALSE,
+										  sec_language_get_msg(vsite->language, 284),
+										  sec_language_get_msg(vsite->language, 284),
+										  sec_language_get_msg(vsite->language, 283));
+			}
+		if (msg_str != NULL)
+		{
+			free(msg_str);
 		}
 
-		if (location != NULL) {
-		   free(location);
-		   location=NULL;
+		if (location != NULL)
+		{
+			free(location);
+			location = NULL;
 		}
 
 		return FALSE;
 	}
 
-	if (msg_str != NULL) {
+	if (msg_str != NULL)
+	{
 		free(msg_str);
 	}
 
-	if (location != NULL) {
+	if (location != NULL)
+	{
 		free(location);
-		location=NULL;
+		location = NULL;
 	}
 
 	return TRUE;
@@ -11312,7 +12843,8 @@
 	sec_vsite_t *vsite = sec_data->vsite_p;
 
 	in_frame = id_to_frame_chain(VPD_PAGE_ID, 0);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Static vpd page content is not available");
 		/* customized error page url */
 		redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
@@ -11326,211 +12858,241 @@
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
 	/* original client security host check page url */
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s/%s/",
-		         "/prx/000/http/localh", TWINGO_PATH, vsite->name);
-	} else {
+				 "/prx/000/http/localh", TWINGO_PATH, vsite->name);
+	}
+	else
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s/%s/",
-		         SEC_REWRITTEN_PREFIX, TWINGO_PATH, vsite->name);
+				 SEC_REWRITTEN_PREFIX, TWINGO_PATH, vsite->name);
 	}
 	write_data(portal_temp_string, &cursor, strlen(portal_temp_string), &out_frame);
 
 	/* close out the page */
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-    if (final_page != NULL) {
+	if (final_page != NULL)
+	{
 		uint32_t flags = 0;
-		if (okay_to_close_client(PROXY_UDATA(sec_data->client_conn))) {
+		if (okay_to_close_client(PROXY_UDATA(sec_data->client_conn)))
+		{
 			flags = HTTP_NOCACHE;
 		}
 
-        sec_data->response = create_http_response_with_bookmark(OK, final_page, 
-                            flags, NULL, NULL, "text/html", NULL, 
-                            sec_data, NULL, 0, IGNORE_CLIENTSEC_COOKIE);
-                            
-        if (sec_data->response == NULL) {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Generate response failed.");
-            parser_frame_chain_free(final_page);
+		sec_data->response = create_http_response_with_bookmark(OK, final_page,
+																flags, NULL, NULL, "text/html", NULL,
+																sec_data, NULL, 0, IGNORE_CLIENTSEC_COOKIE);
+
+		if (sec_data->response == NULL)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Generate response failed.");
+			parser_frame_chain_free(final_page);
 			/* customized error page url */
 			redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
-            return SEC_FAIL;
-        }
-        return SEC_SUCCESS;
-    }
+			return SEC_FAIL;
+		}
+		return SEC_SUCCESS;
+	}
 	return SEC_FAIL;
 }
 
-void
-sec_generate_choose_site_redirect(smanager_data_t *sec_data, const sec_vsite_t *vsite)
+void sec_generate_choose_site_redirect(smanager_data_t *sec_data, const sec_vsite_t *vsite)
 {
-    struct ai_page *choose_site_page = NULL;
+	struct ai_page *choose_site_page = NULL;
+
+	if (vsite->ai_active_theme)
+	{
+		choose_site_page = vsite->ai_active_theme->ai_page_index[AI_URL_CHOOSESITE];
+	}
+
+	if (choose_site_page)
+	{
+		uint16_t path_pos = choose_site_page->path_pos;
 
-    if(vsite->ai_active_theme) {
-        choose_site_page = vsite->ai_active_theme->ai_page_index[AI_URL_CHOOSESITE];
-    }
-
-    if (choose_site_page) {
-        uint16_t path_pos = choose_site_page->path_pos;
-
-        if (choose_site_page->ai_url[choose_site_page->path_pos] == '/') {
-            path_pos++;
-        }
-
-        if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-            snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s", HTTPS_SCHEME, sec_data->req_domain,
-                 "/prx/000/http/localh", choose_site_page->id, choose_site_page->ai_url + path_pos);
-        } else {
-            snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s", HTTPS_SCHEME, sec_data->req_domain,
-                 SEC_REWRITTEN_PREFIX, choose_site_page->id, choose_site_page->ai_url + path_pos);
-        }
-    } else {
-        snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", CHOOSESITE_PATH);
-    }
-
-    sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"), portal_temp_string,
-                          strlen(portal_temp_string), NULL, 0, NULL, 0, NULL, 0, 0, 0);
-}
-
-int
-sec_generate_choose_site_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor,
-    const char *err_message, const char *info_message, sec_vsite_t *parent)
+		if (choose_site_page->ai_url[choose_site_page->path_pos] == '/')
+		{
+			path_pos++;
+		}
+
+		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
+			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s", HTTPS_SCHEME, sec_data->req_domain,
+					 "/prx/000/http/localh", choose_site_page->id, choose_site_page->ai_url + path_pos);
+		}
+		else
+		{
+			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s", HTTPS_SCHEME, sec_data->req_domain,
+					 SEC_REWRITTEN_PREFIX, choose_site_page->id, choose_site_page->ai_url + path_pos);
+		}
+	}
+	else
+	{
+		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s", CHOOSESITE_PATH);
+	}
+
+	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"), portal_temp_string,
+						  strlen(portal_temp_string), NULL, 0, NULL, 0, NULL, 0, 0, 0);
+}
+
+int sec_generate_choose_site_js_response(smanager_data_t *sec_data, struct frame **out_frame, uint8_t **cursor,
+										 const char *err_message, const char *info_message, sec_vsite_t *parent)
 {
 #define write_data_str(str) write_data(str, cursor, sizeof(str) - 1, out_frame)
-    char *lang_string = NULL;
-    sec_vsite_t *vsite = sec_data->vsite_p;
-    int32_t lang_str_len = 0;
-    sec_vsite_q_head_t *queue = NULL;
-    sec_vsite_t *site = NULL;
-    int next_flag = 0;
-
-    write_data_str("\nvar _AN_chooseSiteTitle = \"");
-    lang_string = sec_language_get_and_unescape_msg(vsite->language, 529, &lang_str_len);
-    write_data(lang_string, cursor, lang_str_len, out_frame);
-    write_data_str("\";\n");
-
-    write_data_str("var _AN_chooseSiteHelp = \"");
-    lang_string = sec_language_get_and_unescape_msg(vsite->language, 329, &lang_str_len);
-    write_data(lang_string, cursor, lang_str_len, out_frame);
-    write_data_str("\";\n");
-
-    write_data_str("var _AN_chooseSiteHeadline = \"");
-    lang_string = sec_language_get_and_unescape_msg(vsite->language, 529, &lang_str_len);
-    write_data(lang_string, cursor, lang_str_len, out_frame);
-    write_data_str("\";\n");
-
-    if (err_message) {
-        bcopy(err_message, portal_temp_string, strlen(err_message) + 1);
-        lang_str_len = language_unescape(portal_temp_string);
-        write_data_str("var _AN_chooseSiteError = \"");
-        write_data(portal_temp_string, cursor, lang_str_len, out_frame);
-        write_data_str("\";\n");
-    } else {
-        write_data_str("var _AN_chooseSiteError = \"\";\n");
-    }
- 
-    if (vsite->choose_site_message) {
-        char clang[PORTAL_MESSAGE_LEN * 4 + 1] = {0};
-
-        write_data_str("var _AN_chooseSiteInfo = \"");
-
-        if (vsite->input_enc == HTML2BINARY) {
-            int32_t msg_len = 0;
-
-            lang_string = strhtml2binary(vsite->choose_site_message, &msg_len);
-        } else {
-            lang_string = vsite->choose_site_message;
-        }
-
-        //lang_str_len = portal_message_convert_for_document_write(lang_string, clang);
-        //write_data(clang, cursor, lang_str_len, out_frame);
-        write_data(lang_string, cursor, strlen(lang_string), out_frame);
-        write_data_str("\";\n");
-    } else {
-        write_data_str("var _AN_chooseSiteInfo = \"\";\n");
-    }
-
-    write_data_str("var _AN_chooseSitePrompt = \"");
-    lang_string = sec_language_get_and_unescape_msg(vsite->language, 531, &lang_str_len);
-    write_data(lang_string, cursor, lang_str_len, out_frame);
-    write_data_str("\";\n");
-
-    write_data_str("var _AN_choosesiteSubmit = \"");
-    lang_string = sec_language_get_and_unescape_msg(vsite->language, 121, &lang_str_len);
-    write_data(lang_string, cursor, lang_str_len, out_frame);
-    write_data_str("\";\n");
-
-    queue = get_vsite_queue_head();
-    if (queue == NULL) {
-        return 0;
-    }
-
-    write_data_str("var _AN_site = [\n");
-
-    TAILQ_FOREACH(site, queue, next) {
-        if (site->vsite_type == SITE_ALIAS && strcmp(site->parent_vsite_name, parent->name) == 0) {
-            if (next_flag) {
-                write_data_str(",\n");
-            }
-
-            write_data_str("  {\n    \"name\": \"");
-            write_data(site->name, cursor, strlen(site->name), out_frame);
-            write_data_str("\",\n    \"display\": \"");
-            if (strlen(site->desc) > 0) {
-                  write_data(site->desc, cursor, strlen(site->desc), out_frame);
-            } else {
-                  write_data(site->name, cursor, strlen(site->name), out_frame);
-            }
-            write_data_str("\"\n  }");
-
-            next_flag = 1;
-        }
-    }
+	char *lang_string = NULL;
+	sec_vsite_t *vsite = sec_data->vsite_p;
+	int32_t lang_str_len = 0;
+	sec_vsite_q_head_t *queue = NULL;
+	sec_vsite_t *site = NULL;
+	int next_flag = 0;
+
+	write_data_str("\nvar _AN_chooseSiteTitle = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 529, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_chooseSiteHelp = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 329, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_chooseSiteHeadline = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 529, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	if (err_message)
+	{
+		bcopy(err_message, portal_temp_string, strlen(err_message) + 1);
+		lang_str_len = language_unescape(portal_temp_string);
+		write_data_str("var _AN_chooseSiteError = \"");
+		write_data(portal_temp_string, cursor, lang_str_len, out_frame);
+		write_data_str("\";\n");
+	}
+	else
+	{
+		write_data_str("var _AN_chooseSiteError = \"\";\n");
+	}
+
+	if (vsite->choose_site_message)
+	{
+		char clang[PORTAL_MESSAGE_LEN * 4 + 1] = {0};
+
+		write_data_str("var _AN_chooseSiteInfo = \"");
+
+		if (vsite->input_enc == HTML2BINARY)
+		{
+			int32_t msg_len = 0;
+
+			lang_string = strhtml2binary(vsite->choose_site_message, &msg_len);
+		}
+		else
+		{
+			lang_string = vsite->choose_site_message;
+		}
+
+		// lang_str_len = portal_message_convert_for_document_write(lang_string, clang);
+		// write_data(clang, cursor, lang_str_len, out_frame);
+		write_data(lang_string, cursor, strlen(lang_string), out_frame);
+		write_data_str("\";\n");
+	}
+	else
+	{
+		write_data_str("var _AN_chooseSiteInfo = \"\";\n");
+	}
+
+	write_data_str("var _AN_chooseSitePrompt = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 531, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	write_data_str("var _AN_choosesiteSubmit = \"");
+	lang_string = sec_language_get_and_unescape_msg(vsite->language, 121, &lang_str_len);
+	write_data(lang_string, cursor, lang_str_len, out_frame);
+	write_data_str("\";\n");
+
+	queue = get_vsite_queue_head();
+	if (queue == NULL)
+	{
+		return 0;
+	}
+
+	write_data_str("var _AN_site = [\n");
+
+	TAILQ_FOREACH(site, queue, next)
+	{
+		if (site->vsite_type == SITE_ALIAS && strcmp(site->parent_vsite_name, parent->name) == 0)
+		{
+			if (next_flag)
+			{
+				write_data_str(",\n");
+			}
 
-    write_data_str("\n];\n");
+			write_data_str("  {\n    \"name\": \"");
+			write_data(site->name, cursor, strlen(site->name), out_frame);
+			write_data_str("\",\n    \"display\": \"");
+			if (strlen(site->desc) > 0)
+			{
+				write_data(site->desc, cursor, strlen(site->desc), out_frame);
+			}
+			else
+			{
+				write_data(site->name, cursor, strlen(site->name), out_frame);
+			}
+			write_data_str("\"\n  }");
+
+			next_flag = 1;
+		}
+	}
 
-    return 0;
+	write_data_str("\n];\n");
+
+	return 0;
 }
 
 static int
 sec_generate_ai_choose_site_js_response(smanager_data_t *sec_data)
 {
-     struct frame *out_frame = NULL, *in_frame = NULL;
-     uint8_t *cursor = NULL;
-     int32_t ret = SEC_FAIL;
-
-     in_frame = parser_frame_alloc();
-     if (!in_frame) {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "parser_frame_alloc failed.");
-            return SEC_FAIL;
-     }
-
-     cursor = in_frame->f_data;
-     in_frame->f_datalen = 0;
-     out_frame = in_frame;
-
-     ret = sec_generate_choose_site_js_response(sec_data, &out_frame, &cursor, NULL, NULL, sec_data->vsite_p);
-
-     sec_data->response = create_http_response_with_bookmark(OK, in_frame, HTTP_NOCACHE, NULL,
-                                                             COOKIE_FOR_PORTAL_ERROR_MESSAGE, "text/javascript",
-                                                             NULL, sec_data, NULL, 0, 0);
-     if (!sec_data->response) {
-           ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create choose site js response failed.");
-           parser_frame_chain_free(in_frame);
-           return SEC_FAIL;
-     }
+	struct frame *out_frame = NULL, *in_frame = NULL;
+	uint8_t *cursor = NULL;
+	int32_t ret = SEC_FAIL;
+
+	in_frame = parser_frame_alloc();
+	if (!in_frame)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "parser_frame_alloc failed.");
+		return SEC_FAIL;
+	}
+
+	cursor = in_frame->f_data;
+	in_frame->f_datalen = 0;
+	out_frame = in_frame;
+
+	ret = sec_generate_choose_site_js_response(sec_data, &out_frame, &cursor, NULL, NULL, sec_data->vsite_p);
 
-     return ret;
+	sec_data->response = create_http_response_with_bookmark(OK, in_frame, HTTP_NOCACHE, NULL,
+															COOKIE_FOR_PORTAL_ERROR_MESSAGE, "text/javascript",
+															NULL, sec_data, NULL, 0, 0);
+	if (!sec_data->response)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create choose site js response failed.");
+		parser_frame_chain_free(in_frame);
+		return SEC_FAIL;
+	}
+
+	return ret;
 }
 
-int
-sec_generate_choose_site_response(smanager_data_t *sec_data, sec_vsite_t *vsite)
+int sec_generate_choose_site_response(smanager_data_t *sec_data, sec_vsite_t *vsite)
 {
 	struct frame *final_page = NULL, *out_frame = NULL, *in_frame = NULL;
 	uint8_t *cursor = NULL;
-	uint8_t itype = sec_data->vsite_p->language; 
+	uint8_t itype = sec_data->vsite_p->language;
 
 	in_frame = id_to_frame_chain(CHOOSESITE_ID, vsite->default_theme);
-	if (!in_frame) {
+	if (!in_frame)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "The content of choose site node is empty.");
 		redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
 		return SEC_FAIL;
@@ -11540,10 +13102,12 @@
 	sec_generate_choose_site_js_response(sec_data, &out_frame, &cursor, NULL, NULL, vsite);
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-	if (final_page) {
+	if (final_page)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page, 0, NULL, NULL, "text/html",
-		                     NULL, sec_data, NULL, 0, 0);
-		if (!sec_data->response) {
+																NULL, sec_data, NULL, 0, 0);
+		if (!sec_data->response)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create response to Client failed.");
 			parser_frame_chain_free(final_page);
 			redirect_customized_error_page(sec_data->vsite_p, sec_data, SEC_CUSTOM_ERR_REQ);
@@ -11554,8 +13118,7 @@
 	return SEC_SUCCESS;
 }
 
-int
-sec_generate_register_response(smanager_data_t *sec_data, const char *info_message, int32_t msg_id)
+int sec_generate_register_response(smanager_data_t *sec_data, const char *info_message, int32_t msg_id)
 {
 	struct frame *final_page = NULL, *out_frame = NULL, *in_frame = NULL;
 	sec_vsite_t *vsite = sec_data->vsite_p;
@@ -11563,16 +13126,18 @@
 	const char *err_message = NULL;
 
 	in_frame = id_to_frame_chain(REGISTER_ID, vsite->default_theme);
-	if (!in_frame) {
+	if (!in_frame)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "%s: id_to_frame_chain failed.",
-			__FUNCTION__);
+						__FUNCTION__);
 		redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
 		return SEC_FAIL;
 	}
 
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-	if(msg_id > -1) {
+	if (msg_id > -1)
+	{
 		err_message = sec_language_get_msg_ex(sec_data, msg_id);
 	}
 
@@ -11580,12 +13145,14 @@
 
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-	if (final_page) {
+	if (final_page)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page, 0, NULL, NULL, "text/html",
-			NULL, sec_data, NULL, 0, 0);
-		if (!sec_data->response) {
+																NULL, sec_data, NULL, 0, 0);
+		if (!sec_data->response)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-				"%s: create_http_response_with_bookmark failed.", __FUNCTION__);
+							"%s: create_http_response_with_bookmark failed.", __FUNCTION__);
 			parser_frame_chain_free(final_page);
 			redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
 			return SEC_FAIL;
@@ -11595,31 +13162,33 @@
 	return SEC_SUCCESS;
 }
 
-int
-sec_get_device_id_from_url(smanager_data_t *sec_data)
+int sec_get_device_id_from_url(smanager_data_t *sec_data)
 {
-	const char *url_prefix = VPN_ON_DEMAND_PATH"?device=";
+	const char *url_prefix = VPN_ON_DEMAND_PATH "?device=";
 	int url_prefix_len = strlen(url_prefix);
 	uint8_t *device_p = NULL, old_char = 0;
 	int device_len = 0;
 
-	if (sec_data->session_id != INVALID_SESSION_ID) {
+	if (sec_data->session_id != INVALID_SESSION_ID)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "%s: session ID exists.", __FUNCTION__);
 		return SEC_CONTINUE;
 	}
 
-	if (strncmp(url_prefix, sec_data->req_parser_info.url_host.url_p, url_prefix_len)) {
+	if (strncmp(url_prefix, sec_data->req_parser_info.url_host.url_p, url_prefix_len))
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "%s: invalid URL: %s.", __FUNCTION__,
-			sec_data->req_parser_info.url_host.url_p);
+						sec_data->req_parser_info.url_host.url_p);
 		return SEC_FAIL;
 	}
 
 	device_p = sec_data->req_parser_info.url_host.url_p + url_prefix_len;
 	device_len = sec_data->req_parser_info.url_host.url_p + sec_data->req_parser_info.url_host.url_len - device_p;
-	
-	if (device_len > SEC_DEVICEID_LEN) {
+
+	if (device_len > SEC_DEVICEID_LEN)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "%s: invalid URL length: %s.", __FUNCTION__,
-			sec_data->req_parser_info.url_host.url_p);
+						sec_data->req_parser_info.url_host.url_p);
 		return SEC_FAIL;
 	}
 
@@ -11637,25 +13206,28 @@
 	return SEC_CONTINUE;
 }
 
-int
-is_register_enabled(sec_vsite_t *vsite)
+int is_register_enabled(sec_vsite_t *vsite)
 {
 	struct aaa_conf *aaa_conf = NULL;
 	struct aaa_method *element = NULL;
 	int8_t i = 0;
 
-	if (vsite == NULL) {
+	if (vsite == NULL)
+	{
 		return SEC_FAIL;
 	}
-	
+
 	aaa_conf = vsite->aaa_configure;
-	if (!aaa_conf) {
+	if (!aaa_conf)
+	{
 		return SEC_FAIL;
 	}
 
 	element = aaa_conf->loginmethod;
-	for (i = 0; i < METHOD_MAX; i++) {
-		if (element[i].id[0] && element[i].register_method) {
+	for (i = 0; i < METHOD_MAX; i++)
+	{
+		if (element[i].id[0] && element[i].register_method)
+		{
 			return SEC_SUCCESS;
 		}
 	}
@@ -11664,602 +13236,726 @@
 }
 
 int32_t
-sec_public_request(smanager_data_t *sec_data, struct aaa_method ** rt_method)
+sec_public_request(smanager_data_t *sec_data, struct aaa_method **rt_method)
 {
 	uint32_t privileges;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	content_node_t *local_content = sec_data->content;
 	int32_t ret = SEC_FAIL;
 	ai_page_t *page = NULL;
-	
+
+	static int32_t count = 0;
+
 	ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-	                  ULOG_NO660, local_content->id, 0,0,0,0,0,0);
-	switch (local_content->id) {
-		case AI_LOGIN_JS_ID:
-			ret = sec_generate_ai_login_js_response(sec_data);
-			break; 
-		case AI_CS_JS_ID:
-			ret = sec_generate_ai_cs_js_response(sec_data);
-			break;
-		case AI_LOGOUT_JS_ID:
-			ret = sec_generate_ai_logout_js_response(sec_data);
-			break;
-		case AI_CHOOSESITE_JS_ID:
-			ret = sec_generate_ai_choose_site_js_response(sec_data);
-			break; 
-		case LOGIN_ID:
-			if (vsite && vsite->vsite_type == SITE_SHARED) {
-				sec_generate_choose_site_redirect(sec_data, vsite);
-				return SEC_SUCCESS;
-			}
+					  ULOG_NO660, local_content->id, 0, 0, 0, 0, 0, 0);
+	switch (local_content->id)
+	{
+	case AI_LOGIN_JS_ID:
+		count++;
+
+		if (count == 3)
+		{
+			count = 0;
+			FILE *fp = fopen(SETUPXML_FILE_PATH, "r");
+			long filesize;
+			char *buffer = NULL;
+			if (fp)
+			{
+				fseek(fp, 0, SEEK_END);
+				filesize = ftell(fp);
+
+				if (filesize < 0)
+				{
+					fclose(fp);
+					ret = sec_generate_ai_login_js_response(sec_data);
+					break;
+				}
+
+				fseek(fp, 0, SEEK_SET);
+				buffer = malloc(filesize + 1);
 
-			if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC) &&
-				!SEC_ISSET(sec_data->flags, SDAT_REQ_CLIENTSEC_COOKIE)) 
-			{
-				if (!SEC_ISSET(sec_data->flags, SDAT_PREINSTALL_DONE) && 
-					SEC_ISSET(vsite->common_flags, SEC_ATP_ENABLE) &&
-					SEC_ISSET(vsite->common_flags, SEC_VPN_PREINSTALL_ON)) 
+				if (!buffer)
 				{
+					fclose(fp);
+				}
+				else
+				{
+					fread(buffer, 1, filesize, fp);
+					buffer[filesize] = '\0';
+					fclose(fp);
+				}
+			}
+			if (buffer && strstr(buffer, "FailureURL=\"\""))
+			{
+				fastlog_logex(CLIENTSEC_CHECK_FAIL, 2, "Because the failure URL is not configured, ", "the scan result will not be recorded in the AG log buffer");
+			}
+
+			if (buffer)
+			{
+				free(buffer);
+			}
+		}
+
+		ret = sec_generate_ai_login_js_response(sec_data);
+		break;
+	case AI_CS_JS_ID:
+		ret = sec_generate_ai_cs_js_response(sec_data);
+		break;
+	case AI_LOGOUT_JS_ID:
+		ret = sec_generate_ai_logout_js_response(sec_data);
+		break;
+	case AI_CHOOSESITE_JS_ID:
+		ret = sec_generate_ai_choose_site_js_response(sec_data);
+		break;
+	case LOGIN_ID:
+		if (vsite && vsite->vsite_type == SITE_SHARED)
+		{
+			sec_generate_choose_site_redirect(sec_data, vsite);
+			return SEC_SUCCESS;
+		}
+
+		if (SEC_ISSET(vsite->common_flags, SEC_CLIENT_SEC) &&
+			!SEC_ISSET(sec_data->flags, SDAT_REQ_CLIENTSEC_COOKIE))
+		{
+			if (!SEC_ISSET(sec_data->flags, SDAT_PREINSTALL_DONE) &&
+				SEC_ISSET(vsite->common_flags, SEC_ATP_ENABLE) &&
+				SEC_ISSET(vsite->common_flags, SEC_VPN_PREINSTALL_ON))
+			{
 #if 0
 					sec_generate_atp_install_redirect(conn_p, vhost);
 #endif
-				} else {
-					return sec_generate_clientsec_redirect(sec_data);
-				}
-				return SEC_SUCCESS;
 			}
+			else
+			{
+				return sec_generate_clientsec_redirect(sec_data);
+			}
+			return SEC_SUCCESS;
+		}
+
+		if (!sec_get_client_privileges(sec_data, &privileges))
+		{
+			ret = SEC_SUCCESS; /* when check fail, need be redirect to proper url, so it's "success" */
+		}
+		else
+		{
+			struct aaa_conf *aaaconf = vsite->aaa_configure;
 
-			if (!sec_get_client_privileges(sec_data, &privileges)) 
+			/* aaa off, create session directly */
+			if (aaaconf != NULL && aaaconf->aaa_on == AAA_IS_OFF)
 			{
-				ret = SEC_SUCCESS; /* when check fail, need be redirect to proper url, so it's "success" */
-			} else {
-				struct aaa_conf *aaaconf = vsite->aaa_configure;
-				
-				/* aaa off, create session directly */
-				if (aaaconf != NULL && aaaconf->aaa_on == AAA_IS_OFF) {
-					return SEC_AAA_OFF;
-				} else if (no_need_login_page(vsite, rt_method, sec_data)) {
-					return SEC_AAA_ON_NO_NEED_LOGIN_PAGE;
-				} else if (SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ)) {
-					/* standalone request */
-					ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1); 
-				} else if ( vsite->cus_contents[SEC_CUSTOM_PAGE_LOGIN] != NULL ||
-							(vsite->ai_active_theme != NULL && vsite->ai_active_theme->ai_page_index[AI_PAGE_LOGIN] != NULL) )
-				{
-					/* check the settings for 'portal custom login' and 'portal theme login' */
-					return SEC_REDIRECT;
-				} else {
-					ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1); // -1 == no error message
-				}
+				return SEC_AAA_OFF;
 			}
-			break;
-		case OAUTH_AUTH_ID:
-			if (!SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED)) {
+			else if (no_need_login_page(vsite, rt_method, sec_data))
+			{
+				return SEC_AAA_ON_NO_NEED_LOGIN_PAGE;
+			}
+			else if (SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ))
+			{
+				/* standalone request */
 				ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
-				break;
 			}
+			else if (vsite->cus_contents[SEC_CUSTOM_PAGE_LOGIN] != NULL ||
+					 (vsite->ai_active_theme != NULL && vsite->ai_active_theme->ai_page_index[AI_PAGE_LOGIN] != NULL))
+			{
+				/* check the settings for 'portal custom login' and 'portal theme login' */
+				return SEC_REDIRECT;
+			}
+			else
+			{
+				ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1); // -1 == no error message
+			}
+		}
+		break;
+	case OAUTH_AUTH_ID:
+		if (!SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED))
+		{
+			ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
+			break;
+		}
 
-			sec_redirect_oauth_request(sec_data, vsite);
-			ret = SEC_SUCCESS;
+		sec_redirect_oauth_request(sec_data, vsite);
+		ret = SEC_SUCCESS;
+		break;
+	case OAUTH_WECHAT_AUTH_ID:
+		if (!SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED))
+		{
+			ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
 			break;
-		case OAUTH_WECHAT_AUTH_ID:
-			if (!SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED)) {
-				ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
-				break;
-			}
+		}
 
-			sec_redirect_oauth_wechat_request(sec_data, vsite);
-			ret = SEC_SUCCESS;
+		sec_redirect_oauth_wechat_request(sec_data, vsite);
+		ret = SEC_SUCCESS;
+		break;
+	case OAUTH_WECHAT_QY_AUTH_ID:
+		if (!SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED))
+		{
+			ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
 			break;
-		case OAUTH_WECHAT_QY_AUTH_ID:
-			if (!SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED)) {
-				ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
-				break;
-			}
+		}
 
-			sec_redirect_oauth_wechat_qy_request(sec_data, vsite);
-			ret = SEC_SUCCESS;
+		sec_redirect_oauth_wechat_qy_request(sec_data, vsite);
+		ret = SEC_SUCCESS;
+		break;
+	case OAUTH_GENERIC_AUTH_ID:
+		if (!SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED))
+		{
+			ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
 			break;
-		case OAUTH_GENERIC_AUTH_ID:
-			if (!SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED)) {
-				ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
-				break;
-			}
+		}
 
-			sec_redirect_oauth_generic_request(sec_data, vsite);
-			ret = SEC_SUCCESS;
+		sec_redirect_oauth_generic_request(sec_data, vsite);
+		ret = SEC_SUCCESS;
+		break;
+	case OAUTH_CODE_ID:
+	case OAUTH_WECHAT_CODE_ID:
+	case OAUTH_WECHAT_QY_CODE_ID:
+	case OAUTH_WECHAT_QY_APP_CODE_ID:
+	case OAUTH_GENERIC_CODE_ID:
+		if (!SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED))
+		{
+			ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
 			break;
-		case OAUTH_CODE_ID:
-		case OAUTH_WECHAT_CODE_ID:
-		case OAUTH_WECHAT_QY_CODE_ID:
-		case OAUTH_WECHAT_QY_APP_CODE_ID:
-		case OAUTH_GENERIC_CODE_ID:
-			if (!SEC_ISSET(vsite->common_flags, SEC_AAA_OAUTH_ENABLED)) {
-				ret = sec_generate_login_response(sec_data, NULL, SEC_PORTAL_ERROR_URLS, -1);
-				break;
-			}
+		}
 
-			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "OAuth url: %s",
-				sec_data->req_parser_info.url_host.url_p);
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "OAuth url: %s",
+						sec_data->req_parser_info.url_host.url_p);
 
-			sec_data->oauth_vendor = (local_content->id == OAUTH_CODE_ID) ? GOOGLE :
-				(local_content->id == OAUTH_GENERIC_CODE_ID) ? GENERIC : WECHAT;
+		sec_data->oauth_vendor = (local_content->id == OAUTH_CODE_ID) ? GOOGLE : (local_content->id == OAUTH_GENERIC_CODE_ID) ? GENERIC
+																															  : WECHAT;
 
-			char *code = strstr(sec_data->req_parser_info.url_host.url_p, "?code=");
-			if (!code) {
-				code = strstr(sec_data->req_parser_info.url_host.url_p, "&code=");
-			}
-			if (!code) {
-				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "No code in OAuth request");
-				if (local_content->id == OAUTH_CODE_ID) {
-					sec_redirect_oauth_logout(sec_data, -1);
-				}
-				ret = SEC_SUCCESS;
-				break;
+		char *code = strstr(sec_data->req_parser_info.url_host.url_p, "?code=");
+		if (!code)
+		{
+			code = strstr(sec_data->req_parser_info.url_host.url_p, "&code=");
+		}
+		if (!code)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "No code in OAuth request");
+			if (local_content->id == OAUTH_CODE_ID)
+			{
+				sec_redirect_oauth_logout(sec_data, -1);
 			}
+			ret = SEC_SUCCESS;
+			break;
+		}
 
-			code += strlen("?code=");
-			char tmp[2048] = {0};
-			strncpy(tmp, code, sizeof(tmp));
-			char *p = strchr(tmp, ' ');
-			if (p) *p = 0;
-			p = strchr(tmp, '&');
-			if (p) *p = 0;
-			/*
-			 * FIXME:
-			 * 'wechat_ib' means 'wechat inner browser'. For we use field pwd1 carried
-			 * query string, it's length is limited to 64, and it would not be too long.
-			 */
-			snprintf(tmp, sizeof(tmp), "%s&vsite=%s&vendor=%s", tmp, vsite->name,
-				local_content->id == OAUTH_CODE_ID ? "google" :
-				(local_content->id == OAUTH_GENERIC_CODE_ID) ? "generic" :
-				(local_content->id == OAUTH_WECHAT_QY_CODE_ID || local_content->id == OAUTH_WECHAT_QY_APP_CODE_ID) ? "wechat_qy" :
-				from_wechat_inner_browser(sec_data->proxy_p) ? "wechat_ib" : "wechat");
-			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "OAuth query: %s", tmp);
-
-			issue_auth_request(sec_data->client_conn, sec_data->vsite_p->name,
-				"placeholder", /* it would be replaced by some field in OAuth response */
-				tmp, /* an_password would be used as OAuth query string in HTTP request template */
-				"", "", OAUTH_METHOD, sec_data->log_id, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-				NULL, local_content->id == OAUTH_CODE_ID ? "google" : (local_content->id == OAUTH_GENERIC_CODE_ID) ? "generic" : "wechat",
-				local_content->id == OAUTH_WECHAT_QY_APP_CODE_ID ? 1: 0);
+		code += strlen("?code=");
+		char tmp[2048] = {0};
+		strncpy(tmp, code, sizeof(tmp));
+		char *p = strchr(tmp, ' ');
+		if (p)
+			*p = 0;
+		p = strchr(tmp, '&');
+		if (p)
+			*p = 0;
+		/*
+		 * FIXME:
+		 * 'wechat_ib' means 'wechat inner browser'. For we use field pwd1 carried
+		 * query string, it's length is limited to 64, and it would not be too long.
+		 */
+		snprintf(tmp, sizeof(tmp), "%s&vsite=%s&vendor=%s", tmp, vsite->name,
+				 local_content->id == OAUTH_CODE_ID ? "google" : (local_content->id == OAUTH_GENERIC_CODE_ID)													  ? "generic"
+															 : (local_content->id == OAUTH_WECHAT_QY_CODE_ID || local_content->id == OAUTH_WECHAT_QY_APP_CODE_ID) ? "wechat_qy"
+															 : from_wechat_inner_browser(sec_data->proxy_p)														  ? "wechat_ib"
+																																								  : "wechat");
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "OAuth query: %s", tmp);
+
+		issue_auth_request(sec_data->client_conn, sec_data->vsite_p->name,
+						   "placeholder", /* it would be replaced by some field in OAuth response */
+						   tmp,			  /* an_password would be used as OAuth query string in HTTP request template */
+						   "", "", OAUTH_METHOD, sec_data->log_id, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+						   NULL, local_content->id == OAUTH_CODE_ID ? "google" : (local_content->id == OAUTH_GENERIC_CODE_ID) ? "generic"
+																															  : "wechat",
+						   local_content->id == OAUTH_WECHAT_QY_APP_CODE_ID ? 1 : 0);
 
-			ret = SEC_WAIT_AAA;
-			break;
-		case REGISTER_ID:
+		ret = SEC_WAIT_AAA;
+		break;
+	case REGISTER_ID:
+	{
+		const char *register_info = "Your device is not registered yet, please register it firstly.";
+		if (is_register_enabled(vsite) == SEC_SUCCESS)
 		{
-			const char *register_info = "Your device is not registered yet, please register it firstly.";
-			if (is_register_enabled(vsite) == SEC_SUCCESS) {
-				ret = sec_generate_register_response(sec_data, register_info, -1);
-			} else {
-				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "register service is unavailable.");
-				redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
-
-				ret = SEC_FAIL;
-			}
-			break;
+			ret = sec_generate_register_response(sec_data, register_info, -1);
 		}
-		case OAUTH_BIND_ID:
+		else
 		{
-			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-		                "generate OAuth bind response.");
-			ret = sec_generate_oauth_bind_response(sec_data);
-			break;
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "register service is unavailable.");
+			redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
+
+			ret = SEC_FAIL;
 		}
-		case MP_REDIRECT_ID:
+		break;
+	}
+	case OAUTH_BIND_ID:
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+						"generate OAuth bind response.");
+		ret = sec_generate_oauth_bind_response(sec_data);
+		break;
+	}
+	case MP_REDIRECT_ID:
+	{
+		/*?ANsession0000605125674622=vs+3605ff6d_b9f0b03f8777c247fdda1bf23f9fec17&MPcontext=123456&RedirectURL=http://host.com/u
+		or
+		https://10.8.2.40/prx/000/http/localhost/mp_redirect?ANsession0000605125674622=vs+2d6cf98e_3e4b6b81ce5dc944101fa1f73a5871ab&MPtoken=123456&
+		AN_CLIENTSEC=77633d2231223b68693d2231223b73643d2231223b6f6e6c7968693d2231223b686963733d2232223b686973703d2232223b686966773d2232223b686961763d2232223b686961733d2232223b65787465726e616c3d2230223b6c6f67696e636f6f6b69653d2228737464696e293d206162376439656262663633396539393165306430343237373365346138316339223b6c6f636174696f6e6e616d653d22646576696365223b&RedirectURL=http://10.3.0.20
+		*/
+		int url_len = sec_data->req_parser_info.url_host.url_len;
+		char *url = (char *)malloc(url_len + 1);
+		strncpy(url, sec_data->req_parser_info.url_host.url_p, url_len);
+		url[url_len] = 0;
+		char *sessid = strstr(url, "?ANsession");
+		char *mpcontext = strstr(url, "&MPtoken=");
+		char *redirecturl = strstr(url, "&RedirectURL=");
+		char *clientsec_cookie = strstr(url, "&AN_CLIENTSEC=");
+		if (sessid && mpcontext && redirecturl && mpcontext > sessid && redirecturl > mpcontext)
 		{
-			/*?ANsession0000605125674622=vs+3605ff6d_b9f0b03f8777c247fdda1bf23f9fec17&MPcontext=123456&RedirectURL=http://host.com/u
-			or 
-			https://10.8.2.40/prx/000/http/localhost/mp_redirect?ANsession0000605125674622=vs+2d6cf98e_3e4b6b81ce5dc944101fa1f73a5871ab&MPtoken=123456&
-			AN_CLIENTSEC=77633d2231223b68693d2231223b73643d2231223b6f6e6c7968693d2231223b686963733d2232223b686973703d2232223b686966773d2232223b686961763d2232223b686961733d2232223b65787465726e616c3d2230223b6c6f67696e636f6f6b69653d2228737464696e293d206162376439656262663633396539393165306430343237373365346138316339223b6c6f636174696f6e6e616d653d22646576696365223b&RedirectURL=http://10.3.0.20 
-			*/			
-			int url_len = sec_data->req_parser_info.url_host.url_len;
-			char *url = (char*) malloc(url_len + 1);
-			strncpy(url, sec_data->req_parser_info.url_host.url_p, url_len);
-			url[url_len] = 0;
-			char *sessid = strstr(url, "?ANsession");
-			char *mpcontext = strstr(url, "&MPtoken="); 
-			char *redirecturl = strstr(url, "&RedirectURL=");
-			char *clientsec_cookie = strstr(url, "&AN_CLIENTSEC=");
-			if (sessid && mpcontext && redirecturl && mpcontext > sessid &&  redirecturl > mpcontext) {
-				/*redirect to login page*/
-				sec_data->session_id = get_sessionid_from_cookie(sessid, mpcontext-sessid, sec_data->sess_signature);
-				if (sec_data->session_id != INVALID_SESSION_ID) {
-					sec_data->session  = get_session_by_id(sec_data, sec_data->session_id);
-					if (sec_data->session ) {
-						mpcontext += strlen("&MPtoken=");	
-						*redirecturl = 0;
-						if (clientsec_cookie) {
-							*clientsec_cookie = 0;
-						}
-						uint32_t mpcontextid = strtoul(mpcontext, NULL, 10);
-						if (mpcontextid == sec_data->session->mp_token) {
-							srand(time(0));
-							sec_data->session->mp_token = rand();
-							sec_data->vsite_p = find_vsite_by_name(sec_data->session->site_id);  /*correct the site for alias case*/
-							if (sec_data->vsite_p) {
-								if (clientsec_cookie && (clientsec_cookie + strlen("&AN_CLIENTSEC=") < redirecturl)) {
-									clientsec_cookie += strlen("&AN_CLIENTSEC=");
-									if (sec_data->client_sec_info != NULL) {
-									  	free(sec_data->client_sec_info);
-									}
-									sec_data->client_sec_info = strdup(clientsec_cookie);
-									if (sec_data->client_sec_info) {
-										SEC_SET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE);	
-									}																	    
+			/*redirect to login page*/
+			sec_data->session_id = get_sessionid_from_cookie(sessid, mpcontext - sessid, sec_data->sess_signature);
+			if (sec_data->session_id != INVALID_SESSION_ID)
+			{
+				sec_data->session = get_session_by_id(sec_data, sec_data->session_id);
+				if (sec_data->session)
+				{
+					mpcontext += strlen("&MPtoken=");
+					*redirecturl = 0;
+					if (clientsec_cookie)
+					{
+						*clientsec_cookie = 0;
+					}
+					uint32_t mpcontextid = strtoul(mpcontext, NULL, 10);
+					if (mpcontextid == sec_data->session->mp_token)
+					{
+						srand(time(0));
+						sec_data->session->mp_token = rand();
+						sec_data->vsite_p = find_vsite_by_name(sec_data->session->site_id); /*correct the site for alias case*/
+						if (sec_data->vsite_p)
+						{
+							if (clientsec_cookie && (clientsec_cookie + strlen("&AN_CLIENTSEC=") < redirecturl))
+							{
+								clientsec_cookie += strlen("&AN_CLIENTSEC=");
+								if (sec_data->client_sec_info != NULL)
+								{
+									free(sec_data->client_sec_info);
+								}
+								sec_data->client_sec_info = strdup(clientsec_cookie);
+								if (sec_data->client_sec_info)
+								{
+									SEC_SET(sec_data->flags, SDAT_CLIENTSEC_PERSIST_COOKIE);
 								}
-								redirecturl += strlen("&RedirectURL=");
-								int redirecturl_len = sec_data->req_parser_info.url_host.url_len -(redirecturl - url);
-								redirecturl_len = (redirecturl_len >= SEC_MAX_COMMON_URL_LEN) ? SEC_MAX_COMMON_URL_LEN -1: redirecturl_len;
-								strncpy(sec_data->login_return_url, redirecturl, redirecturl_len);
-								sec_data->login_return_url[redirecturl_len] = 0;
-								
-								sec_generate_welcome_redirect_from_return_url(sec_data, vsite);
-								return SEC_SUCCESS;
 							}
+							redirecturl += strlen("&RedirectURL=");
+							int redirecturl_len = sec_data->req_parser_info.url_host.url_len - (redirecturl - url);
+							redirecturl_len = (redirecturl_len >= SEC_MAX_COMMON_URL_LEN) ? SEC_MAX_COMMON_URL_LEN - 1 : redirecturl_len;
+							strncpy(sec_data->login_return_url, redirecturl, redirecturl_len);
+							sec_data->login_return_url[redirecturl_len] = 0;
+
+							sec_generate_welcome_redirect_from_return_url(sec_data, vsite);
+							return SEC_SUCCESS;
 						}
-							
 					}
 				}
 			}
-			
-			sec_data->session = NULL;
-			sec_data->session_id = INVALID_SESSION_ID;
-			sec_generate_login_redirect(sec_data, vsite);
-			
-			return SEC_SUCCESS;			
 		}
-		case IMG_SPACER_ID:
-		case IMG_LOGOUT_ID:
-		case IMG_HOME_ID:
-		/* the following images are actually image/png format */
-		case IMG_BULLET_ID:
-		case IMG_GRADIENT_ID:
-		/* images for the navtool */
-		case IMG_GO_ID:
-		case IMG_SHOW_ID:
-		case IMG_HIDE_ID:
-		case IMG_SRIGHT_ID:
-		case IMG_SLEFT_ID:
-		case IMG_URLO_ID:
-		case IMG_URLC_ID:
-		/* images for the tabs */
-		case IMG_WEB_TAB_ID:
-		case IMG_WEBS_ID:
-		case IMG_FILES_TAB_ID:
-		case IMG_FILESS_ID:
-		case IMG_APPS_TAB_ID:
-		case IMG_APPSS_ID:
-		case IMG_TCS_TAB_ID:
-		case IMG_TCSS_ID:
-		case IMG_NETWORK_ID:
-		case IMG_NETWORKS_ID:
-		case IMG_NEWWINDOW_ID:
-		case IMG_IE68_EN_ID:
-		case IMG_IE68_CN_ID:
-		case IMG_IE68_JP_ID:
-		case IMG_IE90_EN_ID:
-		case IMG_IE90_CN_ID:
-		case IMG_IE90_JP_ID:	
-		case SPCSS_ID:
-		case PORTAL_CSS_ID:
-		case FCP_MAC_JAR_ID:
-		/* Arthur says we do not need to call sec_generate_sharedroot_redirect*/
-		case VPD_JAR_ID:
-		case VPD_CAB_ID:
-		case NSLIB_ID:
-		case AN_UTIL_ID:
-		/*l3vpn client for linux*/
-		case LINUX_LOADER_ID:
-		case LINUX_VPNC_ID:
-		case LINUX_UTIL_JAR_ID:
-		case LINUX_RUN_JAR_ID:
-		case LINUX_LOADER64_ID:
-		case LINUX_VPNC64_ID:
-                case ATP_L3APPLET_ID:
-		/*l3vpn client for macos*/
-		case MAC_NCUTIL104_ID:
-		case MAC_NCUTIL105_ID:
-		case MAC_LOADER_ID:
-		case MAC_VPNC_ID:
-		case MAC_TUN_INTEL_ID:
-		case MAC_RUN_JAR_ID:
-		case ARRAYVPN_RUN_JAR_ID: 	
-		case ARRAYVPN_LINX_CHMOD_ID:
-		case ARRAYVPN_LINX_PROXY_ID:	
-		/* image for OAuth */
-		case IMG_OAUTH_LOGIN_ID:
-		case IMG_OAUTH_WECHAT_LOGIN_ID:
-		case IMG_OAUTH_WECHAT_QY_LOGIN_ID:
-		case IMG_OAUTH_GENERIC_LOGIN_ID:
-			/*
-			 * These cases' related resources are all static resources
-			 * referenced by portal pages.
-			 * You should add/delete/modify the related filename in file 
-			 *     "proxy/lite/sp_content/static_resource"
-			 * if you want to add/delete/modify the cases mentioned above.
-			 */
-			ret = sec_generate_nonhtml_response(sec_data);
-			break;
-		case HARDWAREID_APPLET_LINUX_MACOS_ID:
-		case HARDWAREID_LINUX_MACOS_ID:
-		case HARDWAREID_APPLET_WINDOWS_ID:
-		case HARDWAREID_CAB_ID:
-			ret = sec_generate_nonhtml_response(sec_data);
-			break;
-		case IMG_LOGO_ID:
-			ret = sec_generate_nonhtml_response_logo(sec_data);
-			break;
-		case AN_CAPP_ID:
-		case AN_DVPN_ID:
-			if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_DVPN_ENABLE)) {
-				/*sec_data->new_app_id = PROXY_L4VPN;*/
-				return SEC_CONTINUE;
-				/* TODO: switch to new app id */
-			} else {
-				DBG_PRINTF("DVPN is disabled");
-				/* customized error page url */
-				redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
-				return SEC_FAIL;
-			}
-		case VPD_PAGE_ID:
-			if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL && (page = vsite->ai_active_theme->ai_page_index[AI_URL_CLIENT_SECURITY]) != NULL) {
-				if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-					snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
-						HTTPS_SCHEME, sec_data->req_domain, "/prx/000/http/localh", 
-						page->id, page->ai_url + page->path_pos +
-						(page->ai_url[page->path_pos] == '/' ? 1 : 0));
-				} else {
-					snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
-						HTTPS_SCHEME, sec_data->req_domain, SEC_REWRITTEN_PREFIX, 
-						page->id, page->ai_url + page->path_pos +
-						(page->ai_url[page->path_pos] == '/' ? 1 : 0));
-				}
-				sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-					portal_temp_string, strlen(portal_temp_string),
-					NULL, 0,
-					NULL, 0, NULL, 0,
-					IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
-					
-				return SEC_SUCCESS;
-			} else {
-				ret = sec_generate_vpd_page_response(sec_data);
+
+		sec_data->session = NULL;
+		sec_data->session_id = INVALID_SESSION_ID;
+		sec_generate_login_redirect(sec_data, vsite);
+
+		return SEC_SUCCESS;
+	}
+	case IMG_SPACER_ID:
+	case IMG_LOGOUT_ID:
+	case IMG_HOME_ID:
+	/* the following images are actually image/png format */
+	case IMG_BULLET_ID:
+	case IMG_GRADIENT_ID:
+	/* images for the navtool */
+	case IMG_GO_ID:
+	case IMG_SHOW_ID:
+	case IMG_HIDE_ID:
+	case IMG_SRIGHT_ID:
+	case IMG_SLEFT_ID:
+	case IMG_URLO_ID:
+	case IMG_URLC_ID:
+	/* images for the tabs */
+	case IMG_WEB_TAB_ID:
+	case IMG_WEBS_ID:
+	case IMG_FILES_TAB_ID:
+	case IMG_FILESS_ID:
+	case IMG_APPS_TAB_ID:
+	case IMG_APPSS_ID:
+	case IMG_TCS_TAB_ID:
+	case IMG_TCSS_ID:
+	case IMG_NETWORK_ID:
+	case IMG_NETWORKS_ID:
+	case IMG_NEWWINDOW_ID:
+	case IMG_IE68_EN_ID:
+	case IMG_IE68_CN_ID:
+	case IMG_IE68_JP_ID:
+	case IMG_IE90_EN_ID:
+	case IMG_IE90_CN_ID:
+	case IMG_IE90_JP_ID:
+	case SPCSS_ID:
+	case PORTAL_CSS_ID:
+	case FCP_MAC_JAR_ID:
+	/* Arthur says we do not need to call sec_generate_sharedroot_redirect*/
+	case VPD_JAR_ID:
+	case VPD_CAB_ID:
+	case NSLIB_ID:
+	case AN_UTIL_ID:
+	/*l3vpn client for linux*/
+	case LINUX_LOADER_ID:
+	case LINUX_VPNC_ID:
+	case LINUX_UTIL_JAR_ID:
+	case LINUX_RUN_JAR_ID:
+	case LINUX_LOADER64_ID:
+	case LINUX_VPNC64_ID:
+	case ATP_L3APPLET_ID:
+	/*l3vpn client for macos*/
+	case MAC_NCUTIL104_ID:
+	case MAC_NCUTIL105_ID:
+	case MAC_LOADER_ID:
+	case MAC_VPNC_ID:
+	case MAC_TUN_INTEL_ID:
+	case MAC_RUN_JAR_ID:
+	case ARRAYVPN_RUN_JAR_ID:
+	case ARRAYVPN_LINX_CHMOD_ID:
+	case ARRAYVPN_LINX_PROXY_ID:
+	/* image for OAuth */
+	case IMG_OAUTH_LOGIN_ID:
+	case IMG_OAUTH_WECHAT_LOGIN_ID:
+	case IMG_OAUTH_WECHAT_QY_LOGIN_ID:
+	case IMG_OAUTH_GENERIC_LOGIN_ID:
+		/*
+		 * These cases' related resources are all static resources
+		 * referenced by portal pages.
+		 * You should add/delete/modify the related filename in file
+		 *     "proxy/lite/sp_content/static_resource"
+		 * if you want to add/delete/modify the cases mentioned above.
+		 */
+		ret = sec_generate_nonhtml_response(sec_data);
+		break;
+	case HARDWAREID_APPLET_LINUX_MACOS_ID:
+	case HARDWAREID_LINUX_MACOS_ID:
+	case HARDWAREID_APPLET_WINDOWS_ID:
+	case HARDWAREID_CAB_ID:
+		ret = sec_generate_nonhtml_response(sec_data);
+		break;
+	case IMG_LOGO_ID:
+		ret = sec_generate_nonhtml_response_logo(sec_data);
+		break;
+	case AN_CAPP_ID:
+	case AN_DVPN_ID:
+		if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_DVPN_ENABLE))
+		{
+			/*sec_data->new_app_id = PROXY_L4VPN;*/
+			return SEC_CONTINUE;
+			/* TODO: switch to new app id */
+		}
+		else
+		{
+			DBG_PRINTF("DVPN is disabled");
+			/* customized error page url */
+			redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
+			return SEC_FAIL;
+		}
+	case VPD_PAGE_ID:
+		if (!SEC_ISSET(sec_data->flags, SDAT_URL_STANDALONE_REQ) && vsite->ai_active_theme != NULL && (page = vsite->ai_active_theme->ai_page_index[AI_URL_CLIENT_SECURITY]) != NULL)
+		{
+			if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+			{
+				snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
+						 HTTPS_SCHEME, sec_data->req_domain, "/prx/000/http/localh",
+						 page->id, page->ai_url + page->path_pos + (page->ai_url[page->path_pos] == '/' ? 1 : 0));
 			}
-			break;
-		case AN_QUICKLINK_GET_ID:
-			ret = sec_generate_quicklink_get_response(sec_data);
-			break;
-		case CHOOSESITE_ID:
-			if (vsite->vsite_type == SITE_EXCLUSIVE) {
+			else
+			{
+				snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s/%s/%s",
+						 HTTPS_SCHEME, sec_data->req_domain, SEC_REWRITTEN_PREFIX,
+						 page->id, page->ai_url + page->path_pos + (page->ai_url[page->path_pos] == '/' ? 1 : 0));
+			}
+			sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
+								  portal_temp_string, strlen(portal_temp_string),
+								  NULL, 0,
+								  NULL, 0, NULL, 0,
+								  IGNORE_CLIENTSEC_COOKIE, SEC_GENERATE_REDIR_NOFLAGS);
+
+			return SEC_SUCCESS;
+		}
+		else
+		{
+			ret = sec_generate_vpd_page_response(sec_data);
+		}
+		break;
+	case AN_QUICKLINK_GET_ID:
+		ret = sec_generate_quicklink_get_response(sec_data);
+		break;
+	case CHOOSESITE_ID:
+		if (vsite->vsite_type == SITE_EXCLUSIVE)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+							"exclusive virtual site should not access choose site page.");
+
+			redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
+
+			return SEC_FAIL;
+		}
+		else if (vsite->vsite_type == SITE_ALIAS)
+		{
+			sec_vsite_t *parent = find_vsite_by_name(vsite->parent_vsite_name);
+
+			if (!parent)
+			{
 				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-				                "exclusive virtual site should not access choose site page.");
+								"no parent site found.");
 
 				redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
 
 				return SEC_FAIL;
-			} else if (vsite->vsite_type == SITE_ALIAS) {
-				sec_vsite_t *parent = find_vsite_by_name(vsite->parent_vsite_name);
+			}
 
-				if (!parent) {
-					ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-					                "no parent site found.");
+			vsite = parent;
+		}
 
-					redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
+		if (vsite->ai_active_theme && vsite->ai_active_theme->ai_page_index[AI_URL_CHOOSESITE])
+		{
+			return SEC_REDIRECT;
+		}
 
-					return SEC_FAIL;
-				}
+		ret = sec_generate_choose_site_response(sec_data, vsite);
 
-				vsite = parent;
-			}
+		break;
+	case VPN_ON_DEMAND_ID:
+		ret = sec_get_device_id_from_url(sec_data);
+		if (ret != SEC_FAIL)
+		{
+			sec_generate_vod_config_response(sec_data);
+			return SEC_SUCCESS;
+		}
+		break;
+	case BLANK_ID:
+	case EMPTY_ID:
+		ret = sec_generate_empty_response(sec_data);
+		break;
+	case SYSTEM_TIME_ID:
+		ret = sec_generate_system_time_response(sec_data);
+		break;
 
-			if (vsite->ai_active_theme && vsite->ai_active_theme->ai_page_index[AI_URL_CHOOSESITE]) {
-				return SEC_REDIRECT;
+	case REGISTER_HWID_ID:
+	{
+		char *randcode = NULL;
+		randcode = sec_get_hwid_randcode_fromurl(sec_data);
+		if (randcode == NULL || randcode[0] == '\0')
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "get randcode from url fail");
+			return SEC_FAIL;
+		}
+		ret = issue_hwid_regist_request(sec_data->client_conn, vsite->name, randcode);
+		if (ret == SEC_SUCCESS)
+		{
+			return SEC_WAIT_AAA;
+		}
+		break;
+	}
+	default:
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+						"not sensitive content %d, return to smanager", local_content->id);
+		return SEC_CONTINUE;
+	}
+
+	return ret;
+}
+
+static char *
+sec_redirect_url_log_message(char *redirect_url, char *cookie, int *ext)
+{
+#define LOG_BUFFER_SIZE 1024
+	char *location = NULL, *log_msg = NULL,
+		 *wc = NULL, *hi = NULL, *sd = NULL, *stage = NULL, *onlyhi = NULL,
+		 *external = NULL, *p = NULL, *lp = NULL;
+	uint32_t l = 0;
+
+	do
+	{
+		if (!cookie)
+		{
+			return NULL;
+		}
+
+		log_msg = (char *)malloc(LOG_BUFFER_SIZE + 1);
+		if (!log_msg)
+		{
+			return NULL;
+		}
+		memset(log_msg, 0, LOG_BUFFER_SIZE + 1);
+		lp = log_msg;
+
+		/* get the location name */
+		location = get_twingo_cookie_param("locationname=\"", cookie, &l);
+		if (location && l)
+		{
+			p = "the user is redirected from location \"";
+			memcpy(lp, p, strlen(p));
+			lp += strlen(lp);
+			memcpy(lp, location, l);
+			lp += strlen(lp);
+			external = get_twingo_cookie_param("external=\"", cookie, &l);
+			if (external && l)
+			{
+				if (*external == '1')
+				{
+					memcpy(lp, "\" using external URL ", strlen("\" using external URL "));
+					*ext = 1;
+				}
+				else
+				{
+					memcpy(lp, "\" using URL ", strlen("\" using URL "));
+					*ext = 0;
+				}
+			}
+			lp += strlen(lp);
+			memcpy(lp, redirect_url, strlen(redirect_url));
+			lp += strlen(lp);
+			memcpy(lp, " with the reason - ", strlen(" with the reason - "));
+			lp += strlen(lp);
+		}
+
+		/* add the reason */
+		wc = get_twingo_cookie_param("wc=\"", cookie, &l);
+		sd = get_twingo_cookie_param("sd=\"", cookie, &l);
+		hi = get_twingo_cookie_param("hi=\"", cookie, &l);
+		stage = get_twingo_cookie_param("stage=\"", cookie, &l);
+		onlyhi = get_twingo_cookie_param("onlyhi=\"", cookie, &l);
+
+		/* check the status of the modules */
+		if (wc && hi && sd &&
+			(*wc == '1') && (*hi == '1') && (*sd == '1'))
+		{
+			if (*onlyhi == '1')
+			{
+				p = "host integrity check only: success.";
 			}
+			else
+			{
+				p = "all checks: success.";
+			}
+			l = strlen(p);
+			memcpy(lp, p, l);
+			break;
+		}
 
-			ret = sec_generate_choose_site_response(sec_data, vsite);
+		if (wc && (*wc == '0'))
+		{
+			p = "cache cleaner check: failed.";
+			l = strlen(p);
+			memcpy(lp, p, l);
+			break;
+		}
 
+		if (sd && (*sd == '0'))
+		{
+			p = "virtual desktop check: failed.";
+			l = strlen(p);
+			memcpy(lp, p, l);
 			break;
-		case VPN_ON_DEMAND_ID:
-			ret = sec_get_device_id_from_url(sec_data);
-			if (ret != SEC_FAIL) {
-				sec_generate_vod_config_response(sec_data);
-				return SEC_SUCCESS;
+		}
+
+		/* remediation info */
+		if (hi && (*hi == '2'))
+		{
+			if (stage && (*stage == '2'))
+			{
+				p = "remediation redirection due to host integrity check failure for TwoStage.";
 			}
+			else
+			{
+				p = "remediation redirection due to host integrity check failure.";
+			}
+			l = strlen(p);
+			memcpy(lp, p, l);
 			break;
-        case BLANK_ID:
-        case EMPTY_ID:
-            ret = sec_generate_empty_response(sec_data);
-            break;
-		case SYSTEM_TIME_ID:
-			ret = sec_generate_system_time_response(sec_data);
-			break;
-		
-		case REGISTER_HWID_ID:
+		}
+
+		if (hi && (*hi == '0'))
 		{
-			char *randcode = NULL;
-			randcode = sec_get_hwid_randcode_fromurl(sec_data);
-			if (randcode == NULL || randcode[0] == '\0') {
-				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "get randcode from url fail");
-				return SEC_FAIL;
+			if (stage && (*stage == '2'))
+			{
+				p = "host integrity for TwoStage with ";
+			}
+			else
+			{
+				p = "host integrity with ";
+			}
+			l = strlen(p);
+			memcpy(lp, p, l);
+			lp += strlen(lp);
+			p = get_twingo_cookie_param("hics=\"", cookie, &l);
+			if (p && (*p == '0'))
+			{
+				p = "customset check failed.";
+				l = strlen(p);
+				memcpy(lp, p, l);
+				break;
+			}
+
+			p = get_twingo_cookie_param("hisp=\"", cookie, &l);
+			if (p && (*p == '0'))
+			{
+				p = "service package check failed.";
+				l = strlen(p);
+				memcpy(lp, p, l);
+				break;
+			}
+
+			p = get_twingo_cookie_param("hifw=\"", cookie, &l);
+			if (p && (*p == '0'))
+			{
+				p = "personal firewall check failed.";
+				l = strlen(p);
+				memcpy(lp, p, l);
+				break;
+			}
+
+			p = get_twingo_cookie_param("hiav=\"", cookie, &l);
+			if (p && (*p == '0'))
+			{
+				p = "antivirus check failed.";
+				l = strlen(p);
+				memcpy(lp, p, l);
+				break;
 			}
-			ret = issue_hwid_regist_request(sec_data->client_conn, vsite->name, randcode);
-			if (ret == SEC_SUCCESS) {
-				return SEC_WAIT_AAA;
+
+			p = get_twingo_cookie_param("hias=\"", cookie, &l);
+			if (p && (*p == '0'))
+			{
+				p = "antispyware check failed.";
+				l = strlen(p);
+				memcpy(lp, p, l);
+				break;
 			}
+
+			p = "a check failed";
+			l = strlen(p);
+			memcpy(lp, p, l);
 			break;
- 		}
-	default:
-			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-			                "not sensitive content %d, return to smanager", local_content->id);
-			return SEC_CONTINUE;
-	}
+		} /* end of (hi && (*hi=='0')) */
 
-	return ret;
-}
+		/*  unknown status. We should not come here */
+		p = "a unknown check.";
+		l = strlen(p);
+		memcpy(lp, p, l);
+	} while (0);
 
-static char *
-sec_redirect_url_log_message(char *redirect_url, char *cookie, int *ext)
-{
-#define LOG_BUFFER_SIZE 1024			
-    char *location=NULL, *log_msg=NULL,
-         *wc=NULL,*hi=NULL,*sd=NULL,*stage=NULL,*onlyhi=NULL,
-         *external=NULL, *p=NULL, *lp=NULL;
-    uint32_t l=0;
-	
-	
-    do {
-        if (!cookie) {
-            return NULL;
-        }
-								
-        log_msg = (char *)malloc(LOG_BUFFER_SIZE + 1);
-        if (!log_msg) {
-            return NULL;
-        }
-        memset(log_msg, 0, LOG_BUFFER_SIZE + 1);
-        lp=log_msg;
-		
-        /* get the location name */
-        location = get_twingo_cookie_param("locationname=\"", cookie, &l);
-        if (location && l) {	
-            p = "the user is redirected from location \"";
-            memcpy(lp, p, strlen(p));
-            lp += strlen(lp);
-            memcpy(lp, location, l);
-            lp += strlen(lp);
-            external = get_twingo_cookie_param("external=\"", cookie, &l);
-            if (external && l) {
-                if (*external == '1') {		  
-                    memcpy(lp, "\" using external URL ", strlen("\" using external URL "));
-                    *ext = 1;
-                } else {
-                    memcpy(lp, "\" using URL ", strlen("\" using URL "));
-                    *ext = 0;
-                }
-            }
-            lp += strlen(lp);
-            memcpy(lp, redirect_url, strlen(redirect_url));
-            lp += strlen(lp);
-            memcpy(lp, " with the reason - ", strlen(" with the reason - "));
-            lp += strlen(lp);
-        }
-
-        /* add the reason */
-        wc = get_twingo_cookie_param("wc=\"", cookie, &l); 
-        sd = get_twingo_cookie_param("sd=\"", cookie, &l); 
-        hi = get_twingo_cookie_param("hi=\"", cookie, &l); 
-        stage = get_twingo_cookie_param("stage=\"", cookie, &l); 
-        onlyhi=  get_twingo_cookie_param("onlyhi=\"", cookie, &l); 
-
-        /* check the status of the modules */
-        if (wc && hi && sd &&
-            (*wc=='1') && (*hi=='1') && (*sd=='1')) {
-           if (*onlyhi=='1') {
-               p = "host integrity check only: success.";
-           } else {
-               p = "all checks: success.";
-           }		  
-           l = strlen(p);
-           memcpy(lp, p, l);
-           break;
-	}
-								
-        if (wc && (*wc=='0')) {
-            p = "cache cleaner check: failed.";
-            l = strlen(p);
-            memcpy(lp, p, l);
-            break;
-         }
-									
-         if (sd && (*sd=='0')) {
-             p = "virtual desktop check: failed.";
-             l = strlen(p);
-             memcpy(lp, p, l);
-             break;
-         }
-									
-         /* remediation info */
-         if (hi && (*hi=='2')) {
-             if (stage && (*stage=='2')) {
-                 p = "remediation redirection due to host integrity check failure for TwoStage.";
-             } else {
-                 p = "remediation redirection due to host integrity check failure.";
-             }
-             l = strlen(p);
-             memcpy(lp, p, l);
-             break;
-         }
-			
-         if (hi && (*hi=='0')) {
-             if (stage && (*stage=='2')) {
-                 p = "host integrity for TwoStage with ";
-             } else {
-                 p = "host integrity with ";
-             }
-             l = strlen(p);
-             memcpy(lp, p, l);
-             lp += strlen(lp);
-             p = get_twingo_cookie_param("hics=\"", cookie, &l); 
-             if (p && (*p=='0')) {
-                 p = "customset check failed.";
-                 l = strlen(p);
-                 memcpy(lp, p, l);
-                 break;
-             }
-
-             p = get_twingo_cookie_param("hisp=\"", cookie, &l); 
-             if (p && (*p=='0')) {
-                 p = "service package check failed.";
-                 l = strlen(p);
-                 memcpy(lp, p, l);
-                 break;
-            }
-		  
-             p = get_twingo_cookie_param("hifw=\"", cookie, &l); 
-             if (p && (*p=='0')) {
-                 p = "personal firewall check failed.";
-                 l = strlen(p);
-                 memcpy(lp, p, l);
-                 break;
-             }
-		  
-             p = get_twingo_cookie_param("hiav=\"", cookie, &l); 
-             if (p && (*p=='0')) {
-                 p = "antivirus check failed.";
-                 l = strlen(p);
-                 memcpy(lp, p, l);
-                 break;
-             }
-		  
-             p = get_twingo_cookie_param("hias=\"", cookie, &l); 
-             if (p && (*p=='0')) {
-                 p = "antispyware check failed.";
-                 l = strlen(p);
-                 memcpy(lp, p, l);
-                 break;
-             } 
-
-             p = "a check failed";
-             l = strlen(p);
-             memcpy(lp, p, l);
-             break;
-         } /* end of (hi && (*hi=='0')) */
-
-         /*  unknown status. We should not come here */
-         p = "a unknown check.";
-         l = strlen(p);
-         memcpy(lp, p, l);
-    } while (0);
-	
-    return log_msg;
+	return log_msg;
 }
 
 static int32_t
-sec_get_redirect_url (
-    char *cookie, 
-    char **redirect_url, 
-    char **log_msg,
-    char **url_alias)
+sec_get_redirect_url(
+	char *cookie,
+	char **redirect_url,
+	char **log_msg,
+	char **url_alias)
 {
 	char *redirect = NULL;
 	char *alias = NULL;
@@ -12270,83 +13966,95 @@
 	char buffer[1024];
 	char *p = NULL;
 
-	
-	do {
+	do
+	{
 		redirect = get_twingo_cookie_param("redirect=\"", cookie, &len);
-		if (len == 0) {
-/*
-			slog(LOG_INFO, 
-				 NULL, NULL, NULL, NULL, 0, NULL, 0, NULL, NULL, NULL, 0, -1, -1, -1, WELF_TYPE_MGMT, 
-				 "%s: there is no need to redirect", __FUNCTION__);
-*/
+		if (len == 0)
+		{
+			/*
+						slog(LOG_INFO,
+							 NULL, NULL, NULL, NULL, 0, NULL, 0, NULL, NULL, NULL, 0, -1, -1, -1, WELF_TYPE_MGMT,
+							 "%s: there is no need to redirect", __FUNCTION__);
+			*/
 			ret = 1;
 			break;
 		}
-		
+
 		/* set the redirect url */
 		memcpy(*redirect_url, redirect, len);
 
 		/* set the redirction log message */
 		*log_msg = sec_redirect_url_log_message(*redirect_url, cookie, &external);
-		if (!external) {
+		if (!external)
+		{
 			/* if this is not an external redirection, then
-			   update the redirect url to include the logincookie, 
+			   update the redirect url to include the logincookie,
 			   alias and location name for further validation */
-					
+
 			/* set the login cookie first */
-			logincookie = get_twingo_cookie_param("logincookie=\"", cookie, &len); 
-			memcpy(buffer,"logincookie=\"",strlen("logincookie=\"")),
-			p = buffer+strlen("logincookie=\"");
-			if (logincookie && len) {
+			logincookie = get_twingo_cookie_param("logincookie=\"", cookie, &len);
+			memcpy(buffer, "logincookie=\"", strlen("logincookie=\"")),
+				p = buffer + strlen("logincookie=\"");
+			if (logincookie && len)
+			{
 				memcpy(p, logincookie, len);
-			} 
-			p +=len;
+			}
+			p += len;
 			memcpy(p, "\";", 2);
 			p += 2;
-			
+
 			/* set the alias in the second */
 			memcpy(p, "alias=\"", strlen("alias=\""));
 			p += strlen("alias=\"");
-			alias = get_twingo_cookie_param("alias=\"", cookie, &len); 
-			if (len) {
+			alias = get_twingo_cookie_param("alias=\"", cookie, &len);
+			if (len)
+			{
 				memcpy(p, alias, len);
 				*url_alias = (char *)malloc(256);
-				if (!*url_alias) {
+				if (!*url_alias)
+				{
 					ret = -1;
-/*
-					slog(LOG_NOTICE, 
-						 NULL, NULL, NULL, NULL, 0, NULL, 0, NULL, NULL, NULL, 0, -1, -1, -1, WELF_TYPE_MGMT, 
-						 "%s: cannot allocate memory for the url_alias\n", __FUNCTION__); 
-*/
+					/*
+										slog(LOG_NOTICE,
+											 NULL, NULL, NULL, NULL, 0, NULL, 0, NULL, NULL, NULL, 0, -1, -1, -1, WELF_TYPE_MGMT,
+											 "%s: cannot allocate memory for the url_alias\n", __FUNCTION__);
+					*/
 					break;
-				} else {
-					memset(*url_alias, 0, sizeof(char)*256);
-					memcpy(*url_alias, alias, (len<255)?len:255);
 				}
-			} 
-			p +=len;
+				else
+				{
+					memset(*url_alias, 0, sizeof(char) * 256);
+					memcpy(*url_alias, alias, (len < 255) ? len : 255);
+				}
+			}
+			p += len;
 			memcpy(p, "\";", 2);
 			p += 2;
-			
+
 			/* set the location name in the third */
 			memcpy(p, "locationname=\"", strlen("locationname=\""));
 			p += strlen("locationname=\"");
-			location = get_twingo_cookie_param("locationname=\"", cookie, &len); 
-			if (location && len) {
+			location = get_twingo_cookie_param("locationname=\"", cookie, &len);
+			if (location && len)
+			{
 				memcpy(p, location, len);
-			} 
-			p +=len;
+			}
+			p += len;
 			memcpy(p, "\";", 2);
-			
+
 			/* do a hex encoding */
-			memcpy(*redirect_url+strlen(*redirect_url), "?data=", 6);
-			p = *redirect_url+strlen(*redirect_url);
-			while (i < strlen(buffer)) {
-			   sprintf(p, "%x", buffer[i]);
-			   p+=2;i++;
+			memcpy(*redirect_url + strlen(*redirect_url), "?data=", 6);
+			p = *redirect_url + strlen(*redirect_url);
+			while (i < strlen(buffer))
+			{
+				sprintf(p, "%x", buffer[i]);
+				p += 2;
+				i++;
 			}
-		} else {
-			ulog_info_default(0, AMP_ULOGF_MODULE_SMANAGER, ULOG_NO661, 0,0,0,0,0,0,0);
+		}
+		else
+		{
+			ulog_info_default(0, AMP_ULOGF_MODULE_SMANAGER, ULOG_NO661, 0, 0, 0, 0, 0, 0, 0);
 		}
 	} while (0);
 
@@ -12354,8 +14062,8 @@
 }
 
 content_node_t *
-sec_content_search(char *host, int32_t host_len, uint16_t port, char *url, int32_t url_len, 
-    sec_vsite_t *vsite, int32_t *classification, int *can_compress_resp, int32_t *match_exact)
+sec_content_search(char *host, int32_t host_len, uint16_t port, char *url, int32_t url_len,
+				   sec_vsite_t *vsite, int32_t *classification, int *can_compress_resp, int32_t *match_exact)
 {
 	patricia_node_t *result;
 	content_node_t *content;
@@ -12368,17 +14076,20 @@
 	*classification = URL_INTERNAL;
 	*match_exact = FALSE;
 
-	if (port == SEC_DEFAULT_HTTP_PORT || 
-	    port == SEC_DEFAULT_HTTPS_PORT ||
-	    (port == SAML_SERVER_PORT && 
-	     strncmp(SAML_SERVER_NAME, host, strlen(SAML_SERVER_NAME)) == 0) ||
-	     (port == SAMLIDP_SERVER_PORT && 
-	     strncmp(SAML_SERVER_NAME, host, strlen(SAML_SERVER_NAME)) == 0) ||
-	    port == 0) {
+	if (port == SEC_DEFAULT_HTTP_PORT ||
+		port == SEC_DEFAULT_HTTPS_PORT ||
+		(port == SAML_SERVER_PORT &&
+		 strncmp(SAML_SERVER_NAME, host, strlen(SAML_SERVER_NAME)) == 0) ||
+		(port == SAMLIDP_SERVER_PORT &&
+		 strncmp(SAML_SERVER_NAME, host, strlen(SAML_SERVER_NAME)) == 0) ||
+		port == 0)
+	{
 		port_len = 0;
-	} else {
-		/* 
-		 * port is something other than port 80; 
+	}
+	else
+	{
+		/*
+		 * port is something other than port 80;
 		 * include port into the search string
 		 * port_len includes ':'
 		 */
@@ -12387,18 +14098,22 @@
 
 	host_url_len = host_len + url_len + port_len + 1;
 
-	if (search_buffer == NULL || host_url_len >= buff_size) {
-		if (host_url_len > MAX_HOST_URL_LEN) {
+	if (search_buffer == NULL || host_url_len >= buff_size)
+	{
+		if (host_url_len > MAX_HOST_URL_LEN)
+		{
 			ulog_error_no_conn(AMP_ULOG_SMANAGER, "The length of url host exceed limit -- %d", MAX_HOST_URL_LEN);
 			return NULL;
 		}
 
-		if (search_buffer != NULL) {
+		if (search_buffer != NULL)
+		{
 			free(search_buffer);
 		}
 
 		search_buffer = (uint8_t *)malloc(host_url_len);
-		if (search_buffer == NULL) {
+		if (search_buffer == NULL)
+		{
 			ulog_error_no_conn(AMP_ULOG_SMANAGER, "failed to allocate a buffer of size %d", host_url_len);
 			buff_size = 0;
 			return NULL;
@@ -12407,7 +14122,8 @@
 	}
 
 	bcopy(host, search_buffer, host_len);
-	if (port_len > 0) {
+	if (port_len > 0)
+	{
 		/* include port into the search string */
 		bcopy(port_str, search_buffer + host_len, port_len);
 	}
@@ -12415,47 +14131,53 @@
 	search_buffer[host_url_len - 1] = '\0';
 
 	result = patricia_insearch(content_tree, search_buffer, host_url_len - 1,
-	                           PATRICIA_MATCH_PREFIX);
-	if (result != NULL) {
-		if (result->data != NULL) {
+							   PATRICIA_MATCH_PREFIX);
+	if (result != NULL)
+	{
+		if (result->data != NULL)
+		{
 			content = (content_node_t *)(result->data);
-			if (content->id == ROOT_ID && result->len < host_url_len-1 && 
-				search_buffer[host_len + port_len + 1] != '?') {
-				/* 
-				 * The search resulted in root, but the search was for 
+			if (content->id == ROOT_ID && result->len < host_url_len - 1 &&
+				search_buffer[host_len + port_len + 1] != '?')
+			{
+				/*
+				 * The search resulted in root, but the search was for
 				 * something longer. Since we do prefix matching, root will
 				 * almost always match on a miss, at least when the host
 				 * is localhost.
 				 */
 				goto check_url_policy;
 			}
-			if (result->len > (host_url_len-1)) {
-				/* 
+			if (result->len > (host_url_len - 1))
+			{
+				/*
 				 * If the search resulted in a string which is longer than
 				 * what we were searching for, then there is no match.
 				 */
 				goto check_url_policy;
 			}
-			if (!FLAG_ISSET(content->flags, SEC_LOCAL)) {
+			if (!FLAG_ISSET(content->flags, SEC_LOCAL))
+			{
 				/* All non-local content in this tree is public */
 				*classification = URL_PUBLIC;
 			}
 
 			/* whether match exactly */
-			*match_exact = result->len == host_url_len-1 ? TRUE : FALSE;
+			*match_exact = result->len == host_url_len - 1 ? TRUE : FALSE;
 
 			return content;
-		} 
+		}
 		ulog_error_no_conn(AMP_ULOG_SMANAGER,
-		                   "patricia_insearch returned a patricia node without a content node");
+						   "patricia_insearch returned a patricia node without a content node");
 	}
 check_url_policy:
-	if (classification != NULL && vsite != NULL) {
-		*classification = url_classify(vsite->url_policy_tree, search_buffer, host_url_len-1);
+	if (classification != NULL && vsite != NULL)
+	{
+		*classification = url_classify(vsite->url_policy_tree, search_buffer, host_url_len - 1);
 	}
 
 	if (can_compress_resp != NULL && classification != NULL && vsite != NULL &&
-	    *classification != URL_EXTERNAL)
+		*classification != URL_EXTERNAL)
 	{
 		/*
 		 * do not need to lookup comp policy for external url, since user will be redirected
@@ -12463,11 +14185,13 @@
 		 * XXX we could add optimization to skip lookup when compression is disabled,
 		 * the only problem with that would be if compression gets enabled by the time response
 		 * comes back we would miss checking url compression policies.
-		 * 
+		 *
 		 * Note: can_compress_url already skips the search if no policies are configured
 		 */
 		DBG_PRINTF("calling can_compress");
-	} else {
+	}
+	else
+	{
 		DBG_PRINTF("skiping can_compress");
 	}
 
@@ -12475,279 +14199,315 @@
 }
 
 /*
- * Advance the *src (and *src_frame_p) to nbytes after *src along the 
- * given frame chain *src_frame_p. The function returns 0 if it is 
+ * Advance the *src (and *src_frame_p) to nbytes after *src along the
+ * given frame chain *src_frame_p. The function returns 0 if it is
  * able to advance the frame pointer to the requested place; otherwise -1.
- * Note, the resulting *src points within the frame chain if possible. 
- * The function returns -1 if after advancing nbytes number of data, *src 
+ * Note, the resulting *src points within the frame chain if possible.
+ * The function returns -1 if after advancing nbytes number of data, *src
  * doesn't point within a frame. In this case, *src_frame_p is NULL but
  * *src is undefined.
  */
-int
-advance_frame_ptr(uint8_t **src, struct frame **src_frame_p, 
-                      length_t nbytes)
+int advance_frame_ptr(uint8_t **src, struct frame **src_frame_p,
+					  length_t nbytes)
 {
 	length_t bytes_cur_frame = 0;
 	length_t bytes_left = nbytes;
 
 	if (*src_frame_p == NULL ||
-		*src - (*src_frame_p)->f_data > (*src_frame_p)->f_datalen) {
+		*src - (*src_frame_p)->f_data > (*src_frame_p)->f_datalen)
+	{
 
 		return -1;
-
 	}
 
-
-	while (bytes_left > 0 && *src_frame_p != NULL) {
-		bytes_cur_frame = (*src_frame_p)->f_datalen - 
+	while (bytes_left > 0 && *src_frame_p != NULL)
+	{
+		bytes_cur_frame = (*src_frame_p)->f_datalen -
 						  (*src - (*src_frame_p)->f_data);
-		if (bytes_cur_frame > bytes_left) {
+		if (bytes_cur_frame > bytes_left)
+		{
 			*src += bytes_left;
 			return 0;
-		} else {
+		}
+		else
+		{
 			bytes_left -= bytes_cur_frame;
 			*src_frame_p = STAILQ_NEXT(*src_frame_p, f_next);
-			if (*src_frame_p != NULL) { 
+			if (*src_frame_p != NULL)
+			{
 				*src = (*src_frame_p)->f_data;
 			}
 		}
 	}
 
-	if (bytes_left == 0) {
+	if (bytes_left == 0)
+	{
 		return 0;
-	} else {
+	}
+	else
+	{
 		return -1;
 	}
 }
 
-/* 
- * The function advances a pointer to the first instance of a specified 
+/*
+ * The function advances a pointer to the first instance of a specified
  * character. If the charater is found, the function returns 0, and the
- * len parameter stores the number of characters before the specified 
- * character; otherwise return -1 and the len stores the total number of 
+ * len parameter stores the number of characters before the specified
+ * character; otherwise return -1 and the len stores the total number of
  * bytes from *src to the end of the frame chain. This function traverses
  * at most max_len number of bytes.
  */
-int
-advance_frame_to_char(uint8_t **src, struct frame **src_frame_p, length_t *len,
-    char c, length_t max_len)
-{
-    *len = 0;
-
-    if (*src_frame_p == NULL ||
-        *src - (*src_frame_p)->f_data >= (*src_frame_p)->f_datalen ||
-        max_len == 0) 
-    {
-        return -1;
-    }
-
-    while (**src != c) {
-        (*len)++;
-        if (*len >= max_len) {
-            return -1;
-        }
-
-        if (*src - (*src_frame_p)->f_data + 1 >= (*src_frame_p)->f_datalen) {
-            *src_frame_p = STAILQ_NEXT(*src_frame_p, f_next);
-            if (*src_frame_p != NULL) { 
-                *src = (*src_frame_p)->f_data;
-            } else {
-                (*src)++;
-                return -1;
-	        }
-        } else {
-            (*src)++;
-        }
-    }
-    return 0;
+int advance_frame_to_char(uint8_t **src, struct frame **src_frame_p, length_t *len,
+						  char c, length_t max_len)
+{
+	*len = 0;
+
+	if (*src_frame_p == NULL ||
+		*src - (*src_frame_p)->f_data >= (*src_frame_p)->f_datalen ||
+		max_len == 0)
+	{
+		return -1;
+	}
+
+	while (**src != c)
+	{
+		(*len)++;
+		if (*len >= max_len)
+		{
+			return -1;
+		}
+
+		if (*src - (*src_frame_p)->f_data + 1 >= (*src_frame_p)->f_datalen)
+		{
+			*src_frame_p = STAILQ_NEXT(*src_frame_p, f_next);
+			if (*src_frame_p != NULL)
+			{
+				*src = (*src_frame_p)->f_data;
+			}
+			else
+			{
+				(*src)++;
+				return -1;
+			}
+		}
+		else
+		{
+			(*src)++;
+		}
+	}
+	return 0;
 }
 
-post_field_t * 
+post_field_t *
 extract_field(uint8_t **data_p, struct frame **frame_p, int32_t *remaining_len,
-              uint8_t *last_field)
+			  uint8_t *last_field)
 {
-    int32_t result;
-    int32_t len;
-    uint8_t *name_p, *value_p;
-    struct frame *value_frame;
-    struct frame *name_frame;
-    post_field_t *new_field;
-
-    *last_field = FALSE;
-
-    new_field = (post_field_t *)malloc(sizeof(post_field_t));
-    if (new_field == NULL) {
-        return NULL;
-    }
-    bzero(new_field, sizeof(post_field_t));
-
-    name_frame = *frame_p;
-    name_p = *data_p;
-
-    result = advance_frame_to_char(data_p, frame_p, &len, '=',
-                                   *remaining_len);
-    if (result < 0) {
-        post_field_dtor(new_field);
-        return NULL;
-    }
-    *remaining_len -= len;
-
-    if (len > 0) {
-        new_field->name = (uint8_t *)malloc(len + 1);
-        if (new_field->name == NULL) {
-            post_field_dtor(new_field);
-            return NULL;
-        }
+	int32_t result;
+	int32_t len;
+	uint8_t *name_p, *value_p;
+	struct frame *value_frame;
+	struct frame *name_frame;
+	post_field_t *new_field;
+
+	*last_field = FALSE;
+
+	new_field = (post_field_t *)malloc(sizeof(post_field_t));
+	if (new_field == NULL)
+	{
+		return NULL;
+	}
+	bzero(new_field, sizeof(post_field_t));
+
+	name_frame = *frame_p;
+	name_p = *data_p;
+
+	result = advance_frame_to_char(data_p, frame_p, &len, '=',
+								   *remaining_len);
+	if (result < 0)
+	{
+		post_field_dtor(new_field);
+		return NULL;
+	}
+	*remaining_len -= len;
+
+	if (len > 0)
+	{
+		new_field->name = (uint8_t *)malloc(len + 1);
+		if (new_field->name == NULL)
+		{
+			post_field_dtor(new_field);
+			return NULL;
+		}
 
 		parser_frame_chain_copy_to_buff(new_field->name,
-			name_p, len, name_frame);
-        new_field->name[len] = '\0';
-        new_field->name_len = len;
-    }
-
-    /* Skip over the '=' */
-    result = advance_frame_ptr(data_p, frame_p, 1);
-    if (result < 0) {
-        post_field_dtor(new_field);
-        return NULL;
-    }
-    *remaining_len -= 1;
-
-    if (*remaining_len <= 0) {
-        *last_field = TRUE;
-        /* Return a field with an empty value */
-        return new_field;
-    }
-
-    value_p = *data_p;
-    value_frame = *frame_p;
-
-    result = advance_frame_to_char(data_p, frame_p,
-                                   &len, '&', *remaining_len);
-    if (result < 0) {
-        *last_field = TRUE;
-    } else {
-        /* Skip over the '&' */
-        advance_frame_ptr(data_p, frame_p, 1);
-        *remaining_len -= 1;
-    }
-
-    *remaining_len -= len;
-
-    if (len > 0) {
-        new_field->value = (uint8_t*)malloc(len + 1);
-        if (new_field->value == NULL) {
-            post_field_dtor(new_field);
-            return NULL;
-        }
-
-		parser_frame_chain_copy_to_buff(new_field->value, 
-			value_p, len, value_frame);
-        new_field->value[len] = '\0';
-        new_field->value_len = len;
-    }
-
-    return new_field;
-}
-
-void 
-post_field_dtor(post_field_t *field)
-{
-    if (field->name != NULL) {
-        free(field->name);
-    }
-
-    if (field->value != NULL) {
-        free(field->value);
-    }
-
-    free(field);
-}
-
-void
-post_field_list_dtor(void)
-{
-    post_field_t *curr_field;
-
-    while (!STAILQ_EMPTY(&post_field_list)) {
-        curr_field = STAILQ_FIRST(&post_field_list);
-        STAILQ_REMOVE_HEAD(&post_field_list, next_field);
-        post_field_dtor(curr_field);
-    }
+										name_p, len, name_frame);
+		new_field->name[len] = '\0';
+		new_field->name_len = len;
+	}
+
+	/* Skip over the '=' */
+	result = advance_frame_ptr(data_p, frame_p, 1);
+	if (result < 0)
+	{
+		post_field_dtor(new_field);
+		return NULL;
+	}
+	*remaining_len -= 1;
+
+	if (*remaining_len <= 0)
+	{
+		*last_field = TRUE;
+		/* Return a field with an empty value */
+		return new_field;
+	}
+
+	value_p = *data_p;
+	value_frame = *frame_p;
+
+	result = advance_frame_to_char(data_p, frame_p,
+								   &len, '&', *remaining_len);
+	if (result < 0)
+	{
+		*last_field = TRUE;
+	}
+	else
+	{
+		/* Skip over the '&' */
+		advance_frame_ptr(data_p, frame_p, 1);
+		*remaining_len -= 1;
+	}
+
+	*remaining_len -= len;
+
+	if (len > 0)
+	{
+		new_field->value = (uint8_t *)malloc(len + 1);
+		if (new_field->value == NULL)
+		{
+			post_field_dtor(new_field);
+			return NULL;
+		}
+
+		parser_frame_chain_copy_to_buff(new_field->value,
+										value_p, len, value_frame);
+		new_field->value[len] = '\0';
+		new_field->value_len = len;
+	}
+
+	return new_field;
+}
+
+void post_field_dtor(post_field_t *field)
+{
+	if (field->name != NULL)
+	{
+		free(field->name);
+	}
+
+	if (field->value != NULL)
+	{
+		free(field->value);
+	}
+
+	free(field);
+}
+
+void post_field_list_dtor(void)
+{
+	post_field_t *curr_field;
+
+	while (!STAILQ_EMPTY(&post_field_list))
+	{
+		curr_field = STAILQ_FIRST(&post_field_list);
+		STAILQ_REMOVE_HEAD(&post_field_list, next_field);
+		post_field_dtor(curr_field);
+	}
 
-    STAILQ_INIT(&post_field_list);
+	STAILQ_INIT(&post_field_list);
 }
 
 uint8_t
 extract_post_fields(struct frame *frame_p, length_t header_len,
-                    length_t content_len, char *content_out)
+					length_t content_len, char *content_out)
 {
-    int32_t result;
-    uint8_t *data_p;
-    int32_t remaining_len;
-    post_field_t *new_field;
-    uint8_t last_field = FALSE;
-
-    data_p = frame_p->f_data;
-
-    /* Get to the beginning of the content */
-    result = advance_frame_ptr(&data_p, &frame_p, header_len); 
-    if (result < 0) {
+	int32_t result;
+	uint8_t *data_p;
+	int32_t remaining_len;
+	post_field_t *new_field;
+	uint8_t last_field = FALSE;
+
+	data_p = frame_p->f_data;
+
+	/* Get to the beginning of the content */
+	result = advance_frame_ptr(&data_p, &frame_p, header_len);
+	if (result < 0)
+	{
 		ulog_error_no_conn(AMP_ULOG_SMANAGER, "Authentication failed - internal error (sm071)");
-        return FALSE;
-    }
+		return FALSE;
+	}
 
-	if (content_out != NULL) {
+	if (content_out != NULL)
+	{
 		parser_frame_chain_copy_to_buff(content_out, data_p, content_len, frame_p);
 	}
 
-    remaining_len = content_len;
+	remaining_len = content_len;
 
-    STAILQ_INIT(&post_field_list);
+	STAILQ_INIT(&post_field_list);
 
-    do {
-        new_field = extract_field(&data_p, &frame_p, &remaining_len,
-                                  &last_field);
-        if (new_field != NULL) {
-            STAILQ_INSERT_TAIL(&post_field_list, new_field, next_field);
-        } else {
-        	ulog_error_no_conn(AMP_ULOG_SMANAGER, "Authentication failed - internal error (sm072)");
-            post_field_list_dtor();
-            return FALSE;
-        }
-    } while (!last_field);
+	do
+	{
+		new_field = extract_field(&data_p, &frame_p, &remaining_len,
+								  &last_field);
+		if (new_field != NULL)
+		{
+			STAILQ_INSERT_TAIL(&post_field_list, new_field, next_field);
+		}
+		else
+		{
+			ulog_error_no_conn(AMP_ULOG_SMANAGER, "Authentication failed - internal error (sm072)");
+			post_field_list_dtor();
+			return FALSE;
+		}
+	} while (!last_field);
 
-    return TRUE;
+	return TRUE;
 }
 
 static void
 strip_space_prefix(char *str)
 {
-    char *p = str;
+	char *p = str;
 
-    if (!*p) {
-        return;
-    }
+	if (!*p)
+	{
+		return;
+	}
 
-    while (*p == ' ') {
-        p++;
-    }
+	while (*p == ' ')
+	{
+		p++;
+	}
 
-    while (*p) {
-        *str++ = *p++;
-    }
+	while (*p)
+	{
+		*str++ = *p++;
+	}
 
-    *str = 0;
+	*str = 0;
 
-    return;
+	return;
 }
 
 static struct http_var_value *
 get_var_val_by_name(char *var_name, struct http_vvalues *vvalues)
 {
 	struct http_var_value *value = NULL;
-	TAILQ_FOREACH(value, vvalues, next) {
-		if (strncmp(value->var_name, var_name, strlen(value->var_name)) == 0) {
+	TAILQ_FOREACH(value, vvalues, next)
+	{
+		if (strncmp(value->var_name, var_name, strlen(value->var_name)) == 0)
+		{
 			break;
 		}
 	}
@@ -12760,96 +14520,129 @@
 {
 	int32_t rc, val_len;
 
-	if (content != NULL && content[0] != '\0' && !TAILQ_EMPTY(&vsite->req_vars)) {
+	if (content != NULL && content[0] != '\0' && !TAILQ_EMPTY(&vsite->req_vars))
+	{
 		struct http_var_value *val = NULL;
 		struct custom_var_profile *var_prof = NULL;
 		char *p, *q;
 		int got_all_val = 0;
 
-		TAILQ_FOREACH(var_prof, &vsite->req_vars, next) {
+		TAILQ_FOREACH(var_prof, &vsite->req_vars, next)
+		{
 			/* create all_vars to hold all variants, put the var value into attribute 'profile' */
-			if (var_prof->var_name[0] != '\0') {
+			if (var_prof->var_name[0] != '\0')
+			{
 				val = (struct http_var_value *)malloc(sizeof(*val));
-				if (val == NULL) {
+				if (val == NULL)
+				{
 					return USER_PASS_CUSTOM_VAR_FAIL;
 				}
 				memset(val, 0, sizeof(*val));
-				
-				strncpy(val->var_name, var_prof->var_name, sizeof(val->var_name)-1);
+
+				strncpy(val->var_name, var_prof->var_name, sizeof(val->var_name) - 1);
 				TAILQ_INSERT_TAIL(all_value, val, next);
-			} else {
+			}
+			else
+			{
 				break;
 			}
 		}
 
-		TAILQ_FOREACH(var_prof, &vsite->req_vars, next) {
+		TAILQ_FOREACH(var_prof, &vsite->req_vars, next)
+		{
 			struct custom_var_parser *parser_p, *pp1;
 			char *p = content, *q, c;
 
-			if (got_all_val) {
+			if (got_all_val)
+			{
 				/* all value was fetched, no more parser needed */
 				break;
 			}
 
-			if (var_prof->profile[0] != '\0') {
-				TAILQ_FOREACH(parser_p, &var_prof->parser, next) {
+			if (var_prof->profile[0] != '\0')
+			{
+				TAILQ_FOREACH(parser_p, &var_prof->parser, next)
+				{
 					p = strstr(p, parser_p->prefix);
-					if (p != NULL) {
-						if (parser_p->var_name[0] != '\0') {
+					if (p != NULL)
+					{
+						if (parser_p->var_name[0] != '\0')
+						{
 							val = get_var_val_by_name(parser_p->var_name, all_value);
-							if (val == NULL) {
+							if (val == NULL)
+							{
 								/* the parser is invalid, break out */
 								break;
 							}
 
-							pp1 = TAILQ_NEXT(parser_p, next);							
-							if (pp1 != NULL) {
+							pp1 = TAILQ_NEXT(parser_p, next);
+							if (pp1 != NULL)
+							{
 								q = strstr(p, pp1->prefix);
-								if (q != NULL) {
-									if (val->value != NULL) {
+								if (q != NULL)
+								{
+									if (val->value != NULL)
+									{
 										p += strlen(parser_p->prefix);
 										c = *q;
 										*q = '\0';
-										strncpy(val->tmp_value, p, sizeof(val->tmp_value)-1);
+										strncpy(val->tmp_value, p, sizeof(val->tmp_value) - 1);
 										*q = c;
 									}
 									p = q;
-								} else {
+								}
+								else
+								{
 									/* the next separating word is miss, so this parser is not matched */
 									break;
 								}
-							} else {
+							}
+							else
+							{
 								/* all tailer is the var value */
 								p += strlen(parser_p->prefix);
-								strncpy(val->tmp_value, p, sizeof(val->tmp_value)-1);
+								strncpy(val->tmp_value, p, sizeof(val->tmp_value) - 1);
 							}
-						} else if (TAILQ_NEXT(parser_p, next) != NULL){
+						}
+						else if (TAILQ_NEXT(parser_p, next) != NULL)
+						{
 							/* the parser is invalid, break out */
 							break;
 						}
-					} else {
+					}
+					else
+					{
 						/* the parser is not match, ignore it */
 						break;
 					}
 				}
-				if (parser_p == NULL) {
+				if (parser_p == NULL)
+				{
 					/* all parser part matched, realize the value */
 					got_all_val = 1;
-					TAILQ_FOREACH(val, all_value, next) {
-						if (val->value[0] == '\0') {
-							if (val->tmp_value[0] != '\0') {
+					TAILQ_FOREACH(val, all_value, next)
+					{
+						if (val->value[0] == '\0')
+						{
+							if (val->tmp_value[0] != '\0')
+							{
 								unescape_string(val->tmp_value, strlen(val->tmp_value),
-								             val->value, &val_len, sizeof(val->value)-1);
-							} else {
+												val->value, &val_len, sizeof(val->value) - 1);
+							}
+							else
+							{
 								got_all_val = 0;
 								continue;
 							}
 						}
 						memset(val->tmp_value, 0, sizeof(val->tmp_value));
 					}
-				} else {
+				}
+				else
+				{
 					/* parser doesnot matched, release the value */
-					TAILQ_FOREACH(val, all_value, next) {
+					TAILQ_FOREACH(val, all_value, next)
+					{
 						memset(val->tmp_value, 0, sizeof(val->tmp_value));
 					}
 				}
@@ -12864,20 +14657,23 @@
 {
 	struct http_var_value *val = NULL;
 	char *p = params->cus_def_vars;
-	int remain_len = sizeof(params->cus_def_vars)-1;
+	int remain_len = sizeof(params->cus_def_vars) - 1;
 
-	TAILQ_FOREACH(val, all_value, next) {
-		if (remain_len <= 0) {
+	TAILQ_FOREACH(val, all_value, next)
+	{
+		if (remain_len <= 0)
+		{
 			return -1;
 		}
 		strncpy(p, val->var_name, remain_len);
-		p += (strlen(val->var_name)+1);
-		remain_len -= (strlen(val->var_name)+1);
+		p += (strlen(val->var_name) + 1);
+		remain_len -= (strlen(val->var_name) + 1);
 
-		if (remain_len > 0) {
+		if (remain_len > 0)
+		{
 			strncpy(p, val->value, remain_len);
-			p += (strlen(val->value)+1);
-			remain_len -= (strlen(val->value)+1);
+			p += (strlen(val->value) + 1);
+			remain_len -= (strlen(val->value) + 1);
 		}
 	}
 	return 0;
@@ -12888,7 +14684,8 @@
 {
 	struct http_var_value *val = NULL;
 	val = TAILQ_FIRST(all_value);
-	while(val != NULL) {
+	while (val != NULL)
+	{
 		TAILQ_REMOVE(all_value, val, next);
 		free(val);
 		val = TAILQ_FIRST(all_value);
@@ -12896,17 +14693,25 @@
 	return 0;
 }
 
-typedef enum {OS_WINDOWS=1, OS_IPHONE, OS_IPAD, OS_ANDROID, OS_MACOS, OS_LINUX, OS_COUNT} OS_TYPE;
-static char ostype_str[OS_COUNT][MAX_OSTYPE_LEN+1] = 
+typedef enum
 {
-	"Others",
-	"Windows",
-	"iPhone",
-	"iPad",
-	"Android",
-	"MacOS",
-	"Linux"
-};
+	OS_WINDOWS = 1,
+	OS_IPHONE,
+	OS_IPAD,
+	OS_ANDROID,
+	OS_MACOS,
+	OS_LINUX,
+	OS_COUNT
+} OS_TYPE;
+static char ostype_str[OS_COUNT][MAX_OSTYPE_LEN + 1] =
+	{
+		"Others",
+		"Windows",
+		"iPhone",
+		"iPad",
+		"Android",
+		"MacOS",
+		"Linux"};
 
 static char *
 get_ostype_by_id(uint8_t id)
@@ -12917,494 +14722,582 @@
 	return ostype_str[id];
 }
 
-/* 
+/*
  * Need to normalize the username and password,
  * e.g., "abc&def" is transmitted as "abc%26def". What about trailing spaces?
  */
 int32_t
 extract_username_password(smanager_data_t *sec_data, sec_vsite_t *vsite, struct frame *frame_p,
-    length_t header_len, length_t content_len, auth_params_t *params)
+						  length_t header_len, length_t content_len, auth_params_t *params)
 {
-    int32_t validcode_len = 0, username_len = 0, password_len = 0, password1_len = 0, password2_len = 0,
-            cid_len = 0, auth_method_len = 0, extra_param_len = 0, deviceid_len = 0, device_name_len = 0,
-            secret_len = 0, encpass_len = 0, encuname_len = 0;
+	int32_t validcode_len = 0, username_len = 0, password_len = 0, password1_len = 0, password2_len = 0,
+			cid_len = 0, auth_method_len = 0, extra_param_len = 0, deviceid_len = 0, device_name_len = 0,
+			secret_len = 0, encpass_len = 0, encuname_len = 0;
 	int32_t uniq_log_id_len = 0;
-    int32_t result, i;
-    post_field_t *curr_field;
-    static char *content = NULL;
-    static uint16_t cont_size = 0;
-    char fingerprint [8];
-    int post_check = 0;
-    char str_pwdtype[8] = {0};
-    char encpass[LONG_PASSWORD_LEN * 2] = {0};
+	int32_t result, i;
+	post_field_t *curr_field;
+	static char *content = NULL;
+	static uint16_t cont_size = 0;
+	char fingerprint[8];
+	int post_check = 0;
+	char str_pwdtype[8] = {0};
+	char encpass[LONG_PASSWORD_LEN * 2] = {0};
 	char encuname[USERNAME_LEN * 2] = {0};
-    int32_t pwdtype = 0;
-    struct http_vvalues all_value = TAILQ_HEAD_INITIALIZER(all_value);
-    uint8_t osid = 0;
+	int32_t pwdtype = 0;
+	struct http_vvalues all_value = TAILQ_HEAD_INITIALIZER(all_value);
+	uint8_t osid = 0;
 	BOOL salted_base64 = FALSE;
 	uint8_t salt[5] = {97, 114, 114, 97, 121}; // array
 
-    if (cont_size < content_len+1) {
-        content = reallocf(content, content_len+1);
-        if (content == NULL) {
-            cont_size = 0;
-            return -1;
-        }
-        cont_size = content_len+1;
-    }
-    memset(content, 0, cont_size);
-
-    memset(params, 0, sizeof(*params));
-    params->pin = SID_PIN_INVALID;
-
-    if (!extract_post_fields(frame_p, header_len, content_len, content)) {
-        return USER_PASS_USER_FAIL;
-    }
-    if (vsite && (SEC_ISSET(vsite->common_flags, SEC_POST_CHECK))) {
-        post_check = 1;
-    }
-
-    STAILQ_FOREACH(curr_field, &post_field_list, next_field) {
-        if (curr_field->name_len > 0 && curr_field->value_len > 0) {
-            if(validcode_len <= 0 &&
-               !strncasecmp(curr_field->name, "valid", curr_field->name_len))
-            {
-                /* We found the validcode */
-                result = unescape_string(curr_field->value, curr_field->value_len,
-                    params->validcode, &validcode_len, sizeof(params->validcode)-1);
-                if (result != ERROR) {
-                    params->validcode[validcode_len] = 0;
-                } else {
-                    params->validcode[0] = 0;
-                }
-			} else if ((curr_field->name_len == 9) && 
-					!strncasecmp(curr_field->name, "logintype", curr_field->name_len)) 
-			{
-					/* Found logintype, so user login from Webui */
-					salted_base64 = TRUE;
-            } else if (username_len <= 0 &&
-                (((vsite == NULL || vsite->uname_field == NULL) && 
-                 !strncasecmp(curr_field->name, "uname",
-                              curr_field->name_len))
-                ||
-                (vsite != NULL && vsite->uname_field != NULL &&
-                 !strncasecmp(curr_field->name, vsite->uname_field,
-                              curr_field->name_len))))
-            {
-                /* We found the username */
-                if (salted_base64) {
-                    result = unescape_string(curr_field->value,
-                             curr_field->value_len, encuname, &encuname_len,
-                             sizeof(encuname)-1);
-                    if (result < 0) {
-                        post_field_list_dtor();
-                        return USER_PASS_USER_UNESCAPE_FAIL;
-                    }
-                    encuname[encuname_len] = '\0';
-                    uproxy_sec_log("(%s): encuname : %s", __FUNCTION__, encuname);
-                    username_len = sizeof(params->uname) - 1;
-                    if (base64_decode(params->uname, &username_len, encuname, encuname_len) != 0) {
-                        return USER_PASS_USER_UNESCAPE_FAIL;
-                    }
-                    xor_with_salt(params->uname, salt,  username_len, sizeof(salt));
-                } else {
-                    result = unescape_string(curr_field->value,
-                                curr_field->value_len, params->uname, &username_len,
-                                sizeof(params->uname)-1);
-                    if (result < 0) {
-                        post_field_list_dtor();
-                        return USER_PASS_USER_UNESCAPE_FAIL;
-                    }
-                }
-                params->uname[username_len] = '\0';
-                uproxy_sec_log("(%s): uname : %s", __FUNCTION__, params->uname);
-                if (post_check && libinjection_sqli(params->uname, username_len, fingerprint)) {
-                    ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->uname);
-                    post_field_list_dtor();
-                    return USER_PASS_SQL_INJECTION;
-                }
-                if (params->uname[0] == ' ') { /* space prefix */
-                    strip_space_prefix(params->uname);
-                }
-            } else if (!strncasecmp(curr_field->name, "redirect_url", curr_field->name_len)) {
-                /* We found the redirect_url */
-                if (curr_field->value_len < SEC_MAX_URL_LEN) {
-                        if (sec_data->bookmark_cookie != NULL) {
-                                free(sec_data->bookmark_cookie);
-                                sec_data->bookmark_cookie = NULL;
-                                sec_data->bookmark_cookie_len = 0;
-                            }
-
-                            sec_data->bookmark_cookie = (uint8_t*)malloc(curr_field->value_len + 1);
-
-                            if (NULL == sec_data->bookmark_cookie) {
-                                ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "malloc failed");
-                            } else {
-                                result = unescape_string(curr_field->value,
-                                     curr_field->value_len, sec_data->bookmark_cookie, &sec_data->bookmark_cookie_len,
-                                             SEC_MAX_URL_LEN);
-                                if (result < 0) {
-                                            post_field_list_dtor();
-                                            return USER_PASS_PASS_UNESCAPE_FAIL;
-                                }
-                        }
-                }
-            } else if ((curr_field->name_len == 7) && 
-					!strncasecmp(curr_field->name, "pwdtype", curr_field->name_len)) {
-                /* We found the password type. 0: base64 */
-                if (curr_field->value_len > 0 && curr_field->value_len < 8) {
-                    strncpy(str_pwdtype, curr_field->value, curr_field->value_len);
-                    str_pwdtype[curr_field->value_len] = '\0';
-                    pwdtype = atoi(str_pwdtype);
-                }
-            } else if (password_len <= 0 && 
-                   (((vsite == NULL || vsite->pass_field == NULL) &&
-                    !strncasecmp(curr_field->name, "pwd",
-                                 curr_field->name_len))
-                   ||
-                    (vsite != NULL && vsite->pass_field != NULL &&
-                    !strncasecmp(curr_field->name, vsite->pass_field,
-                                 curr_field->name_len))))
-            {
-                /* We found the password */
-                if (pwdtype > 0) {
-                    result = unescape_string(curr_field->value,
-                             curr_field->value_len, encpass, &encpass_len,
-                             sizeof(encpass)-1);
-                    if (result < 0) {
-                        post_field_list_dtor();
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                    encpass[encpass_len] = '\0';
-                    password_len = sizeof(params->passwd) - 1;
-                    if (base64_decode(params->passwd, &password_len, encpass, encpass_len) != 0) {
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                } else if (salted_base64) {
-                    result = unescape_string(curr_field->value,
-                             curr_field->value_len, encpass, &encpass_len,
-                             sizeof(encpass)-1);
-                    if (result < 0) {
-                        post_field_list_dtor();
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                    encpass[encpass_len] = '\0';
-                    uproxy_sec_log("(%s): encpass : %s", __FUNCTION__, encpass);
-                    password_len = sizeof(params->passwd) - 1;
-                    if (base64_decode(params->passwd, &password_len, encpass, encpass_len) != 0) {
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                    xor_with_salt(params->passwd, salt,  password_len, sizeof(salt));
-                } else {
-                    result = unescape_string(curr_field->value,
-                             curr_field->value_len, params->passwd, &password_len,
-                             sizeof(params->passwd)-1);
-                    if (result < 0) {
-                        post_field_list_dtor();
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                }
-                params->passwd[password_len] = '\0';
+	if (cont_size < content_len + 1)
+	{
+		content = reallocf(content, content_len + 1);
+		if (content == NULL)
+		{
+			cont_size = 0;
+			return -1;
+		}
+		cont_size = content_len + 1;
+	}
+	memset(content, 0, cont_size);
+
+	memset(params, 0, sizeof(*params));
+	params->pin = SID_PIN_INVALID;
+
+	if (!extract_post_fields(frame_p, header_len, content_len, content))
+	{
+		return USER_PASS_USER_FAIL;
+	}
+	if (vsite && (SEC_ISSET(vsite->common_flags, SEC_POST_CHECK)))
+	{
+		post_check = 1;
+	}
+
+	STAILQ_FOREACH(curr_field, &post_field_list, next_field)
+	{
+		if (curr_field->name_len > 0 && curr_field->value_len > 0)
+		{
+			if (validcode_len <= 0 &&
+				!strncasecmp(curr_field->name, "valid", curr_field->name_len))
+			{
+				/* We found the validcode */
+				result = unescape_string(curr_field->value, curr_field->value_len,
+										 params->validcode, &validcode_len, sizeof(params->validcode) - 1);
+				if (result != ERROR)
+				{
+					params->validcode[validcode_len] = 0;
+				}
+				else
+				{
+					params->validcode[0] = 0;
+				}
+			}
+			else if ((curr_field->name_len == 9) &&
+					 !strncasecmp(curr_field->name, "logintype", curr_field->name_len))
+			{
+				/* Found logintype, so user login from Webui */
+				salted_base64 = TRUE;
+			}
+			else if (username_len <= 0 &&
+					 (((vsite == NULL || vsite->uname_field == NULL) &&
+					   !strncasecmp(curr_field->name, "uname",
+									curr_field->name_len)) ||
+					  (vsite != NULL && vsite->uname_field != NULL &&
+					   !strncasecmp(curr_field->name, vsite->uname_field,
+									curr_field->name_len))))
+			{
+				/* We found the username */
+				if (salted_base64)
+				{
+					result = unescape_string(curr_field->value,
+											 curr_field->value_len, encuname, &encuname_len,
+											 sizeof(encuname) - 1);
+					if (result < 0)
+					{
+						post_field_list_dtor();
+						return USER_PASS_USER_UNESCAPE_FAIL;
+					}
+					encuname[encuname_len] = '\0';
+					uproxy_sec_log("(%s): encuname : %s", __FUNCTION__, encuname);
+					username_len = sizeof(params->uname) - 1;
+					if (base64_decode(params->uname, &username_len, encuname, encuname_len) != 0)
+					{
+						return USER_PASS_USER_UNESCAPE_FAIL;
+					}
+					xor_with_salt(params->uname, salt, username_len, sizeof(salt));
+				}
+				else
+				{
+					result = unescape_string(curr_field->value,
+											 curr_field->value_len, params->uname, &username_len,
+											 sizeof(params->uname) - 1);
+					if (result < 0)
+					{
+						post_field_list_dtor();
+						return USER_PASS_USER_UNESCAPE_FAIL;
+					}
+				}
+				params->uname[username_len] = '\0';
+				uproxy_sec_log("(%s): uname : %s", __FUNCTION__, params->uname);
+				if (post_check && libinjection_sqli(params->uname, username_len, fingerprint))
+				{
+					ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->uname);
+					post_field_list_dtor();
+					return USER_PASS_SQL_INJECTION;
+				}
+				if (params->uname[0] == ' ')
+				{ /* space prefix */
+					strip_space_prefix(params->uname);
+				}
+			}
+			else if (!strncasecmp(curr_field->name, "redirect_url", curr_field->name_len))
+			{
+				/* We found the redirect_url */
+				if (curr_field->value_len < SEC_MAX_URL_LEN)
+				{
+					if (sec_data->bookmark_cookie != NULL)
+					{
+						free(sec_data->bookmark_cookie);
+						sec_data->bookmark_cookie = NULL;
+						sec_data->bookmark_cookie_len = 0;
+					}
+
+					sec_data->bookmark_cookie = (uint8_t *)malloc(curr_field->value_len + 1);
+
+					if (NULL == sec_data->bookmark_cookie)
+					{
+						ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "malloc failed");
+					}
+					else
+					{
+						result = unescape_string(curr_field->value,
+												 curr_field->value_len, sec_data->bookmark_cookie, &sec_data->bookmark_cookie_len,
+												 SEC_MAX_URL_LEN);
+						if (result < 0)
+						{
+							post_field_list_dtor();
+							return USER_PASS_PASS_UNESCAPE_FAIL;
+						}
+					}
+				}
+			}
+			else if ((curr_field->name_len == 7) &&
+					 !strncasecmp(curr_field->name, "pwdtype", curr_field->name_len))
+			{
+				/* We found the password type. 0: base64 */
+				if (curr_field->value_len > 0 && curr_field->value_len < 8)
+				{
+					strncpy(str_pwdtype, curr_field->value, curr_field->value_len);
+					str_pwdtype[curr_field->value_len] = '\0';
+					pwdtype = atoi(str_pwdtype);
+				}
+			}
+			else if (password_len <= 0 &&
+					 (((vsite == NULL || vsite->pass_field == NULL) &&
+					   !strncasecmp(curr_field->name, "pwd",
+									curr_field->name_len)) ||
+					  (vsite != NULL && vsite->pass_field != NULL &&
+					   !strncasecmp(curr_field->name, vsite->pass_field,
+									curr_field->name_len))))
+			{
+				/* We found the password */
+				if (pwdtype > 0)
+				{
+					result = unescape_string(curr_field->value,
+											 curr_field->value_len, encpass, &encpass_len,
+											 sizeof(encpass) - 1);
+					if (result < 0)
+					{
+						post_field_list_dtor();
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+					encpass[encpass_len] = '\0';
+					password_len = sizeof(params->passwd) - 1;
+					if (base64_decode(params->passwd, &password_len, encpass, encpass_len) != 0)
+					{
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+				}
+				else if (salted_base64)
+				{
+					result = unescape_string(curr_field->value,
+											 curr_field->value_len, encpass, &encpass_len,
+											 sizeof(encpass) - 1);
+					if (result < 0)
+					{
+						post_field_list_dtor();
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+					encpass[encpass_len] = '\0';
+					uproxy_sec_log("(%s): encpass : %s", __FUNCTION__, encpass);
+					password_len = sizeof(params->passwd) - 1;
+					if (base64_decode(params->passwd, &password_len, encpass, encpass_len) != 0)
+					{
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+					xor_with_salt(params->passwd, salt, password_len, sizeof(salt));
+				}
+				else
+				{
+					result = unescape_string(curr_field->value,
+											 curr_field->value_len, params->passwd, &password_len,
+											 sizeof(params->passwd) - 1);
+					if (result < 0)
+					{
+						post_field_list_dtor();
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+				}
+				params->passwd[password_len] = '\0';
 				// uproxy_sec_log("(%s):  password : %s", __FUNCTION__,  params->passwd);
-                if (post_check && libinjection_sqli(params->passwd, password_len, fingerprint)) {
-                    ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->passwd);
-                    post_field_list_dtor();
-                    return USER_PASS_SQL_INJECTION;
-                }
-            } else if (password1_len <= 0 && 
-                   (((vsite == NULL || vsite->pass1_field == NULL) &&
-                    !strncasecmp(curr_field->name, "pwd1",
-                                 curr_field->name_len))
-                   ||
-                    (vsite != NULL && vsite->pass1_field != NULL &&
-                    !strncasecmp(curr_field->name, vsite->pass1_field,
-                                 curr_field->name_len))))
-               {
-                /* We found password1 */
-                if (pwdtype > 0) {
-                    result = unescape_string(curr_field->value,
-                             curr_field->value_len, encpass, &encpass_len,
-                             sizeof(encpass)-1);
-                    if (result < 0) {
-                        post_field_list_dtor();
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                    encpass[encpass_len] = '\0';
-                    password1_len = sizeof(params->passwd1) - 1;
-                    if (base64_decode(params->passwd1, &password1_len, encpass, encpass_len) != 0) {
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                } else {
-                    result = unescape_string(curr_field->value,
-                             curr_field->value_len, params->passwd1, &password1_len,
-                             sizeof(params->passwd1)-1);
-                    if (result < 0) {
-                        post_field_list_dtor();
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                }
-
-                params->passwd1[password1_len] = '\0';
-                if (post_check && libinjection_sqli(params->passwd1, password1_len, fingerprint)) {
-                    ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->passwd1);
-                    post_field_list_dtor();
-                    return USER_PASS_SQL_INJECTION;
-                }
-            } else if (password2_len <= 0 && 
-                   (((vsite == NULL || vsite->pass2_field == NULL) &&
-                    !strncasecmp(curr_field->name, "pwd2",
-                                 curr_field->name_len))
-                   ||
-                    (vsite != NULL && vsite->pass2_field != NULL &&
-                    !strncasecmp(curr_field->name, vsite->pass2_field,
-                                 curr_field->name_len))))
-            {
-                /* We found password2 */
-                if (pwdtype > 0) {
-                    result = unescape_string(curr_field->value,
-                             curr_field->value_len, encpass, &encpass_len,
-                             sizeof(encpass)-1);
-                    if (result < 0) {
-                        post_field_list_dtor();
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                    encpass[encpass_len] = '\0';
-                    password2_len = sizeof(params->passwd2) - 1;
-                    if (base64_decode(params->passwd2, &password2_len, encpass, encpass_len) != 0) {
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                } else {
-                    result = unescape_string(curr_field->value,
-                             curr_field->value_len, params->passwd2, &password2_len,
-                             sizeof(params->passwd2)-1);
-                    if (result < 0) {
-                        post_field_list_dtor();
-                        return USER_PASS_PASS_UNESCAPE_FAIL;
-                    }
-                }
-
-                params->passwd2[password2_len] = '\0';
-                if (post_check && libinjection_sqli(params->passwd2, password2_len, fingerprint)) {
-                    ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->passwd2);
-                    post_field_list_dtor();
-                    return USER_PASS_SQL_INJECTION;
-                }
-            } else if (auth_method_len <= 0 && 
-                   (((vsite == NULL || vsite->auth_method_field == NULL) &&
-                    !strncasecmp(curr_field->name, "method",
-                                 curr_field->name_len))
-                   ||
-                    (vsite != NULL && vsite->auth_method_field != NULL &&
-                    !strncasecmp(curr_field->name, vsite->auth_method_field,
-                                 curr_field->name_len))))
-            {
-                /* We found password2 */
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, params->authmethod, &auth_method_len,
-                             sizeof(params->authmethod)-1);
-                if (result < 0) {
-                    post_field_list_dtor();
-                    return USER_AUTHMEHTOD_UNESCAPE_FAIL;
-                }
-                params->authmethod[auth_method_len] = '\0';
-                if (post_check && libinjection_sqli(params->authmethod, auth_method_len, fingerprint)) {
-                    ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->authmethod);
-                    post_field_list_dtor();
-                    return USER_PASS_SQL_INJECTION;
-                }
-            } else if (strncasecmp(curr_field->name, "uniqueid", curr_field->name_len) == 0) {
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, sec_data->log_id, &uniq_log_id_len,
-                             sizeof(sec_data->log_id)-1);
-                if (result < 0) {
-                    /* Copy so we can log. */
-                    strncpy(sec_data->log_id, curr_field->value, sizeof(sec_data->log_id)-1);
-                    post_field_list_dtor();
-                    return USER_PASS_LOGID_UNESCAPE_FAIL;
-                }
-                sec_data->log_id[uniq_log_id_len] = '\0';
-			} else if (params->pin == SID_PIN_INVALID && 
-                   (((vsite == NULL || vsite->pin_field == NULL) &&
-                     !strncasecmp(curr_field->name, "token",
-                                  curr_field->name_len))
-                    ||
-                     (vsite != NULL && vsite->pin_field != NULL &&
-                      !strncasecmp(curr_field->name, vsite->pin_field,
-                                   curr_field->name_len))))
-            {
-                char *pin_error;
-
-                /* We found the SecurID PIN */
-                if (SEC_ISSET(vsite->common_flags, SEC_SECURID)) {
-                    params->pin = strtoul(curr_field->value, &pin_error, 10);
-                    if (*pin_error != '\0') {
-                        post_field_list_dtor();
-                        return USER_PASS_PIN_READ_FAIL;
-                    }
-                }
-            } else if (cid_len <= 0 &&
-                (!strncasecmp(curr_field->name, "hardwareid",
-                              curr_field->name_len)))
-            {
-                /* We found the clientid */
-                if (curr_field->value_len >= sizeof(params->clientid)) {
-                    post_field_list_dtor();
-                    return USER_PASS_CID_TOO_LONG;
-                }
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, params->clientid, &cid_len,
-                             sizeof(params->clientid)-1);
-                if (result < 0) {
-                    /* Copy so we can log. */
-                    strncpy(params->clientid, curr_field->value, sizeof(params->clientid)-1);
-                    post_field_list_dtor();
-                    return USER_PASS_CID_UNESCAPE_FAIL;
-                }
-                params->clientid[cid_len] = '\0';
-                
-                if (post_check && libinjection_sqli(params->clientid, cid_len, fingerprint)) {
-                    ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->clientid);
-                    post_field_list_dtor();
-                    return USER_PASS_SQL_INJECTION;
-                }
-            } else if ((vsite != NULL && vsite->login_return_url_field != NULL &&
-                    !strncasecmp(curr_field->name, vsite->login_return_url_field,
-                                 curr_field->name_len)))
-            {
-                /* We found the original url */
-                int out_len;
-                result = n_unescape(curr_field->value, sec_data->login_return_url,
-                             curr_field->value_len, SEC_MAX_COMMON_URL_LEN - 1,
-                             &out_len);
-                if (!result) {
-                    post_field_list_dtor();
-                    return EXT_PARAM_UNESCAPE_FAIL;
-                }
-                sec_data->login_return_url[out_len] = '\0';
-            } else if (!strcasecmp(curr_field->name, "cancel"))
-            {
-                params->cancel = 1;
-            } else if (strncasecmp(curr_field->name, "ext", 3) == 0)
-            {
-                /* We found an extra parameter fields */
-                if (curr_field->value_len >= AAA_EXT_AUTH_PARAM_MAX_SIZE) {
-                    post_field_list_dtor();
-                    return EXT_PARAM_TOO_LONG;
-                }
-
-                /* Extract the number of the parameter */
-                i = (int)strtol(&curr_field->name[3], (char **)NULL, 10);
-                if ((i > 0) && (i <= AAA_EXT_AUTH_PARAM_MAX_COUNT)) {
-                    i--;
-                    extra_param_len = 0;
-                    result = unescape_string(curr_field->value,
-                          curr_field->value_len, params->extra_params[i],
-                          &extra_param_len, sizeof(params->extra_params[i])-1);
-                    if (result < 0) {
-                        /* Copy so we can log. */
-                        strncpy(params->extra_params[i], curr_field->value, sizeof(params->extra_params[i])-1);
-                        post_field_list_dtor();
-                        return EXT_PARAM_UNESCAPE_FAIL;
-                    }
-                    params->extra_params[i][extra_param_len] = '\0';
-                }
-            } else if (deviceid_len <= 0 && (strncasecmp(curr_field->name, "deviceid", curr_field->name_len) == 0)) {
-                if (curr_field->value_len >= SEC_DEVICEID_LEN) {
-                    post_field_list_dtor();
-                    return USER_PASS_DEVICEID_TOO_LONG;
-                }
-
-                result = unescape_string(curr_field->value, curr_field->value_len, params->deviceid, &deviceid_len,
-                                         sizeof(params->deviceid)-1);
-                if (result < 0) {
-                    /* just for log. */
-                    strncpy(params->deviceid, curr_field->value, sizeof(params->deviceid));
-
-                    post_field_list_dtor();
-                    return USER_PASS_DEVICEID_UNESCAPE_FAIL;
-                }
-
-                params->deviceid[deviceid_len] = '\0';
-                
-                if (post_check && libinjection_sqli(params->deviceid, deviceid_len, fingerprint)) {
-                    ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->deviceid);
-                    post_field_list_dtor();
-                    return USER_PASS_SQL_INJECTION;
-                }
-            } else if (device_name_len <= 0 &&
-                       (strncasecmp(curr_field->name, "device_name", curr_field->name_len) == 0)) {
-                if (curr_field->value_len >= SEC_DEVICE_NAME_LEN) {
-                    post_field_list_dtor();
-                    return USER_PASS_DEVICEID_TOO_LONG;
-                }
-
-                result = unescape_string(curr_field->value, curr_field->value_len, params->device_name, &device_name_len,
-                                         sizeof(params->device_name)-1);
-                if (result < 0) {
-                    /* just for log. */
-                    strncpy(params->device_name, curr_field->value, sizeof(params->device_name)-1);
-
-                    post_field_list_dtor();
-                    return USER_PASS_DEVICE_NAME_UNESCAPE_FAIL;
-                }
-
-                params->device_name[device_name_len] = '\0';
-                
-                if (post_check && libinjection_sqli(params->device_name, device_name_len, fingerprint)) {
-                    ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->device_name);
-                    post_field_list_dtor();
-                    return USER_PASS_SQL_INJECTION;
-                }
-            } else if (curr_field->name_len == (sizeof("changepassbutton")-1) && 
-			    strncasecmp(curr_field->name, "changepassbutton", curr_field->name_len) == 0)
-            {
-            	SEC_SET(sec_data->flags, SDAT_SMX_CHANGEPASS);
-            } else if (secret_len <= 0 &&
-                (!strncasecmp(curr_field->name, "sm", curr_field->name_len)))
-            {
-                if (curr_field->value_len != SEC_ENCODED_SECRET_LEN) {
-                    post_field_list_dtor();
-                    return USER_PASS_SECRET_LEN_INVALID;
-                }
-                result = unescape_string(curr_field->value, curr_field->value_len,
-                    params->secret, &secret_len, SEC_ENCODED_SECRET_LEN);
-                if (result < 0) {
-                    strncpy(params->secret, curr_field->value, SEC_ENCODED_SECRET_LEN);
-                    post_field_list_dtor();
-                    return USER_PASS_SECRET_UNESCAPE_FAIL;
-                }
-                params->secret[secret_len] = '\0';
-            }
-        }
-    }
+				if (post_check && libinjection_sqli(params->passwd, password_len, fingerprint))
+				{
+					ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->passwd);
+					post_field_list_dtor();
+					return USER_PASS_SQL_INJECTION;
+				}
+			}
+			else if (password1_len <= 0 &&
+					 (((vsite == NULL || vsite->pass1_field == NULL) &&
+					   !strncasecmp(curr_field->name, "pwd1",
+									curr_field->name_len)) ||
+					  (vsite != NULL && vsite->pass1_field != NULL &&
+					   !strncasecmp(curr_field->name, vsite->pass1_field,
+									curr_field->name_len))))
+			{
+				/* We found password1 */
+				if (pwdtype > 0)
+				{
+					result = unescape_string(curr_field->value,
+											 curr_field->value_len, encpass, &encpass_len,
+											 sizeof(encpass) - 1);
+					if (result < 0)
+					{
+						post_field_list_dtor();
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+					encpass[encpass_len] = '\0';
+					password1_len = sizeof(params->passwd1) - 1;
+					if (base64_decode(params->passwd1, &password1_len, encpass, encpass_len) != 0)
+					{
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+				}
+				else
+				{
+					result = unescape_string(curr_field->value,
+											 curr_field->value_len, params->passwd1, &password1_len,
+											 sizeof(params->passwd1) - 1);
+					if (result < 0)
+					{
+						post_field_list_dtor();
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+				}
+
+				params->passwd1[password1_len] = '\0';
+				if (post_check && libinjection_sqli(params->passwd1, password1_len, fingerprint))
+				{
+					ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->passwd1);
+					post_field_list_dtor();
+					return USER_PASS_SQL_INJECTION;
+				}
+			}
+			else if (password2_len <= 0 &&
+					 (((vsite == NULL || vsite->pass2_field == NULL) &&
+					   !strncasecmp(curr_field->name, "pwd2",
+									curr_field->name_len)) ||
+					  (vsite != NULL && vsite->pass2_field != NULL &&
+					   !strncasecmp(curr_field->name, vsite->pass2_field,
+									curr_field->name_len))))
+			{
+				/* We found password2 */
+				if (pwdtype > 0)
+				{
+					result = unescape_string(curr_field->value,
+											 curr_field->value_len, encpass, &encpass_len,
+											 sizeof(encpass) - 1);
+					if (result < 0)
+					{
+						post_field_list_dtor();
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+					encpass[encpass_len] = '\0';
+					password2_len = sizeof(params->passwd2) - 1;
+					if (base64_decode(params->passwd2, &password2_len, encpass, encpass_len) != 0)
+					{
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+				}
+				else
+				{
+					result = unescape_string(curr_field->value,
+											 curr_field->value_len, params->passwd2, &password2_len,
+											 sizeof(params->passwd2) - 1);
+					if (result < 0)
+					{
+						post_field_list_dtor();
+						return USER_PASS_PASS_UNESCAPE_FAIL;
+					}
+				}
+
+				params->passwd2[password2_len] = '\0';
+				if (post_check && libinjection_sqli(params->passwd2, password2_len, fingerprint))
+				{
+					ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->passwd2);
+					post_field_list_dtor();
+					return USER_PASS_SQL_INJECTION;
+				}
+			}
+			else if (auth_method_len <= 0 &&
+					 (((vsite == NULL || vsite->auth_method_field == NULL) &&
+					   !strncasecmp(curr_field->name, "method",
+									curr_field->name_len)) ||
+					  (vsite != NULL && vsite->auth_method_field != NULL &&
+					   !strncasecmp(curr_field->name, vsite->auth_method_field,
+									curr_field->name_len))))
+			{
+				/* We found password2 */
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, params->authmethod, &auth_method_len,
+										 sizeof(params->authmethod) - 1);
+				if (result < 0)
+				{
+					post_field_list_dtor();
+					return USER_AUTHMEHTOD_UNESCAPE_FAIL;
+				}
+				params->authmethod[auth_method_len] = '\0';
+				if (post_check && libinjection_sqli(params->authmethod, auth_method_len, fingerprint))
+				{
+					ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->authmethod);
+					post_field_list_dtor();
+					return USER_PASS_SQL_INJECTION;
+				}
+			}
+			else if (strncasecmp(curr_field->name, "uniqueid", curr_field->name_len) == 0)
+			{
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, sec_data->log_id, &uniq_log_id_len,
+										 sizeof(sec_data->log_id) - 1);
+				if (result < 0)
+				{
+					/* Copy so we can log. */
+					strncpy(sec_data->log_id, curr_field->value, sizeof(sec_data->log_id) - 1);
+					post_field_list_dtor();
+					return USER_PASS_LOGID_UNESCAPE_FAIL;
+				}
+				sec_data->log_id[uniq_log_id_len] = '\0';
+			}
+			else if (params->pin == SID_PIN_INVALID &&
+					 (((vsite == NULL || vsite->pin_field == NULL) &&
+					   !strncasecmp(curr_field->name, "token",
+									curr_field->name_len)) ||
+					  (vsite != NULL && vsite->pin_field != NULL &&
+					   !strncasecmp(curr_field->name, vsite->pin_field,
+									curr_field->name_len))))
+			{
+				char *pin_error;
+
+				/* We found the SecurID PIN */
+				if (SEC_ISSET(vsite->common_flags, SEC_SECURID))
+				{
+					params->pin = strtoul(curr_field->value, &pin_error, 10);
+					if (*pin_error != '\0')
+					{
+						post_field_list_dtor();
+						return USER_PASS_PIN_READ_FAIL;
+					}
+				}
+			}
+			else if (cid_len <= 0 &&
+					 (!strncasecmp(curr_field->name, "hardwareid",
+								   curr_field->name_len)))
+			{
+				/* We found the clientid */
+				if (curr_field->value_len >= sizeof(params->clientid))
+				{
+					post_field_list_dtor();
+					return USER_PASS_CID_TOO_LONG;
+				}
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, params->clientid, &cid_len,
+										 sizeof(params->clientid) - 1);
+				if (result < 0)
+				{
+					/* Copy so we can log. */
+					strncpy(params->clientid, curr_field->value, sizeof(params->clientid) - 1);
+					post_field_list_dtor();
+					return USER_PASS_CID_UNESCAPE_FAIL;
+				}
+				params->clientid[cid_len] = '\0';
+
+				if (post_check && libinjection_sqli(params->clientid, cid_len, fingerprint))
+				{
+					ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->clientid);
+					post_field_list_dtor();
+					return USER_PASS_SQL_INJECTION;
+				}
+			}
+			else if ((vsite != NULL && vsite->login_return_url_field != NULL &&
+					  !strncasecmp(curr_field->name, vsite->login_return_url_field,
+								   curr_field->name_len)))
+			{
+				/* We found the original url */
+				int out_len;
+				result = n_unescape(curr_field->value, sec_data->login_return_url,
+									curr_field->value_len, SEC_MAX_COMMON_URL_LEN - 1,
+									&out_len);
+				if (!result)
+				{
+					post_field_list_dtor();
+					return EXT_PARAM_UNESCAPE_FAIL;
+				}
+				sec_data->login_return_url[out_len] = '\0';
+			}
+			else if (!strcasecmp(curr_field->name, "cancel"))
+			{
+				params->cancel = 1;
+			}
+			else if (strncasecmp(curr_field->name, "ext", 3) == 0)
+			{
+				/* We found an extra parameter fields */
+				if (curr_field->value_len >= AAA_EXT_AUTH_PARAM_MAX_SIZE)
+				{
+					post_field_list_dtor();
+					return EXT_PARAM_TOO_LONG;
+				}
 
-	if (params->extra_params[1][0] != '\0') {
+				/* Extract the number of the parameter */
+				i = (int)strtol(&curr_field->name[3], (char **)NULL, 10);
+				if ((i > 0) && (i <= AAA_EXT_AUTH_PARAM_MAX_COUNT))
+				{
+					i--;
+					extra_param_len = 0;
+					result = unescape_string(curr_field->value,
+											 curr_field->value_len, params->extra_params[i],
+											 &extra_param_len, sizeof(params->extra_params[i]) - 1);
+					if (result < 0)
+					{
+						/* Copy so we can log. */
+						strncpy(params->extra_params[i], curr_field->value, sizeof(params->extra_params[i]) - 1);
+						post_field_list_dtor();
+						return EXT_PARAM_UNESCAPE_FAIL;
+					}
+					params->extra_params[i][extra_param_len] = '\0';
+				}
+			}
+			else if (deviceid_len <= 0 && (strncasecmp(curr_field->name, "deviceid", curr_field->name_len) == 0))
+			{
+				if (curr_field->value_len >= SEC_DEVICEID_LEN)
+				{
+					post_field_list_dtor();
+					return USER_PASS_DEVICEID_TOO_LONG;
+				}
+
+				result = unescape_string(curr_field->value, curr_field->value_len, params->deviceid, &deviceid_len,
+										 sizeof(params->deviceid) - 1);
+				if (result < 0)
+				{
+					/* just for log. */
+					strncpy(params->deviceid, curr_field->value, sizeof(params->deviceid));
+
+					post_field_list_dtor();
+					return USER_PASS_DEVICEID_UNESCAPE_FAIL;
+				}
+
+				params->deviceid[deviceid_len] = '\0';
+
+				if (post_check && libinjection_sqli(params->deviceid, deviceid_len, fingerprint))
+				{
+					ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->deviceid);
+					post_field_list_dtor();
+					return USER_PASS_SQL_INJECTION;
+				}
+			}
+			else if (device_name_len <= 0 &&
+					 (strncasecmp(curr_field->name, "device_name", curr_field->name_len) == 0))
+			{
+				if (curr_field->value_len >= SEC_DEVICE_NAME_LEN)
+				{
+					post_field_list_dtor();
+					return USER_PASS_DEVICEID_TOO_LONG;
+				}
+
+				result = unescape_string(curr_field->value, curr_field->value_len, params->device_name, &device_name_len,
+										 sizeof(params->device_name) - 1);
+				if (result < 0)
+				{
+					/* just for log. */
+					strncpy(params->device_name, curr_field->value, sizeof(params->device_name) - 1);
+
+					post_field_list_dtor();
+					return USER_PASS_DEVICE_NAME_UNESCAPE_FAIL;
+				}
+
+				params->device_name[device_name_len] = '\0';
+
+				if (post_check && libinjection_sqli(params->device_name, device_name_len, fingerprint))
+				{
+					ulog_error_no_conn(AMP_ULOG_HTTP_PROXY, "sql injection: %s::%s\n", curr_field->name, params->device_name);
+					post_field_list_dtor();
+					return USER_PASS_SQL_INJECTION;
+				}
+			}
+			else if (curr_field->name_len == (sizeof("changepassbutton") - 1) &&
+					 strncasecmp(curr_field->name, "changepassbutton", curr_field->name_len) == 0)
+			{
+				SEC_SET(sec_data->flags, SDAT_SMX_CHANGEPASS);
+			}
+			else if (secret_len <= 0 &&
+					 (!strncasecmp(curr_field->name, "sm", curr_field->name_len)))
+			{
+				if (curr_field->value_len != SEC_ENCODED_SECRET_LEN)
+				{
+					post_field_list_dtor();
+					return USER_PASS_SECRET_LEN_INVALID;
+				}
+				result = unescape_string(curr_field->value, curr_field->value_len,
+										 params->secret, &secret_len, SEC_ENCODED_SECRET_LEN);
+				if (result < 0)
+				{
+					strncpy(params->secret, curr_field->value, SEC_ENCODED_SECRET_LEN);
+					post_field_list_dtor();
+					return USER_PASS_SECRET_UNESCAPE_FAIL;
+				}
+				params->secret[secret_len] = '\0';
+			}
+		}
+	}
+
+	if (params->extra_params[1][0] != '\0')
+	{
 		char *os = strstr(params->extra_params[i], "ostype=");
-		if (os != NULL) {
+		if (os != NULL)
+		{
 			os += strlen("ostype=");
 			osid = (uint8_t)strtol(os, (char **)NULL, 10);
 		}
 	}
 	strncpy(sec_data->client_ostype, get_ostype_by_id(osid),
-	        sizeof(sec_data->client_ostype)-1);
+			sizeof(sec_data->client_ostype) - 1);
 
-    post_field_list_dtor();
+	post_field_list_dtor();
 
-    parse_custom_variant(vsite, content, &all_value);
-    upload_custom_variant(&all_value, params);
-    release_custom_variant(&all_value);
-	
-    return USER_PASS_OK;
+	parse_custom_variant(vsite, content, &all_value);
+	upload_custom_variant(&all_value, params);
+	release_custom_variant(&all_value);
+
+	return USER_PASS_OK;
 }
 
 extern struct an_ipc_init_s an_ipc_init[];
 extern struct ipc_handler_s *hdl_to_aaa;
 
 int32_t issue_auth_request(void *client_conn_p, char *vsite_name, char *username,
-                                  char *passwd, char *passwd1, char *passwd2, char *auth_method, char *log_id,
-                                  struct cert_rdn_val *cert_field_val, char *hardwareid, char *deviceid,
-                                  char *device_name, char *extra_params, char *secret, char *cus_def_vars,
-                                  char *oauth_uid, char *oauth_server_id, int oauth_auto_reauth)
+						   char *passwd, char *passwd1, char *passwd2, char *auth_method, char *log_id,
+						   struct cert_rdn_val *cert_field_val, char *hardwareid, char *deviceid,
+						   char *device_name, char *extra_params, char *secret, char *cus_def_vars,
+						   char *oauth_uid, char *oauth_server_id, int oauth_auto_reauth)
 {
 	static struct sp_auth_request req;
 	int ret_val;
@@ -13412,105 +15305,130 @@
 
 	memset(&req, 0, sizeof(req));
 	req.request_type = SEC_MESSAGE_TYPE_AUTH;
-	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry*)client_conn_p);
-	if (req.transaction_id == (intptr_t)0) {
+	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry *)client_conn_p);
+	if (req.transaction_id == (intptr_t)0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "Failed to get IPC context, abort to issue auth request, ipc_errno %d", ipc_errno);
 		slog2_with_unique_id(log_id, SMANAGER_ISSUE_LOGIN_REQ_FAIL, vsite_name, username,
-		            NULL, AMP_REMOTE_IP_STR(client_conn_p), AMP_REMOTE_PORT(client_conn_p),
-		            AMP_LOCAL_IP_STR(client_conn_p), AMP_LOCAL_PORT(client_conn_p),
-		            NULL, NULL, NULL, 0, 0, -1, -1, WELF_TYPE_VPN, 1, 0);
+							 NULL, AMP_REMOTE_IP_STR(client_conn_p), AMP_REMOTE_PORT(client_conn_p),
+							 AMP_LOCAL_IP_STR(client_conn_p), AMP_LOCAL_PORT(client_conn_p),
+							 NULL, NULL, NULL, 0, 0, -1, -1, WELF_TYPE_VPN, 1, 0);
 		return SEC_FAIL;
 	}
-	if (vsite_name != NULL) {
-		strncpy(req.site_id, vsite_name, sizeof(req.site_id)-1);
+	if (vsite_name != NULL)
+	{
+		strncpy(req.site_id, vsite_name, sizeof(req.site_id) - 1);
 	}
-	if (username != NULL) {
+	if (username != NULL)
+	{
 		strncpy(req.username, username, sizeof(req.username) - 1);
 	}
-	if (hardwareid != NULL) {
+	if (hardwareid != NULL)
+	{
 		strncpy(req.hardwareid, hardwareid, sizeof(req.hardwareid) - 1);
 	}
-	if (deviceid != NULL) {
+	if (deviceid != NULL)
+	{
 		strncpy(req.deviceid, deviceid, sizeof(req.deviceid) - 1);
 	}
-	if (device_name != NULL) {
+	if (device_name != NULL)
+	{
 		strncpy(req.device_name, device_name, sizeof(req.device_name) - 1);
 	}
-	if (cus_def_vars != NULL) {
+	if (cus_def_vars != NULL)
+	{
 		memcpy(req.cus_def_vars, cus_def_vars, sizeof(req.cus_def_vars));
 	}
-	if (log_id != NULL) {
+	if (log_id != NULL)
+	{
 		strncpy(req.log_id, log_id, sizeof(req.log_id) - 1);
 	}
-	
-	if (passwd1[0] != 0) {
+
+	if (passwd1[0] != 0)
+	{
 		strncpy(req.pass[0], passwd1, sizeof(req.pass[0]) - 1);
-		if (passwd2[0]  != 0) {
+		if (passwd2[0] != 0)
+		{
 			strncpy(req.pass[1], passwd2, sizeof(req.pass[1]) - 1);
-			if (passwd[0]  != 0) {
+			if (passwd[0] != 0)
+			{
 				strncpy(req.pass[2], passwd, sizeof(req.pass[2]) - 1);
 			}
-		} else {
+		}
+		else
+		{
 			strncpy(req.pass[1], passwd, sizeof(req.pass[1]) - 1);
 		}
-	} else {
-		if (passwd[0]  != 0) {
+	}
+	else
+	{
+		if (passwd[0] != 0)
+		{
 			strncpy(req.pass[0], passwd, sizeof(req.pass[0]) - 1);
 		}
 	}
 
 	/* Copy extra parameters into the request */
-	if (extra_params != NULL) {
-		for (i = 0; i < AAA_EXT_AUTH_PARAM_MAX_COUNT; i++) {
-			if (extra_params[i*AAA_EXT_AUTH_PARAM_MAX_SIZE] != 0) {
-				strncpy(&req.extra_params[i][0], &extra_params[i*AAA_EXT_AUTH_PARAM_MAX_SIZE], AAA_EXT_AUTH_PARAM_MAX_SIZE-1);
+	if (extra_params != NULL)
+	{
+		for (i = 0; i < AAA_EXT_AUTH_PARAM_MAX_COUNT; i++)
+		{
+			if (extra_params[i * AAA_EXT_AUTH_PARAM_MAX_SIZE] != 0)
+			{
+				strncpy(&req.extra_params[i][0], &extra_params[i * AAA_EXT_AUTH_PARAM_MAX_SIZE], AAA_EXT_AUTH_PARAM_MAX_SIZE - 1);
 			}
 		}
 	}
 
-	if (secret) {
+	if (secret)
+	{
 		strncpy(req.secret, secret, sizeof(req.secret) - 1);
 	}
-	if (oauth_uid) {
+	if (oauth_uid)
+	{
 		strncpy(req.oauth_uid, oauth_uid, sizeof(req.oauth_uid) - 1);
 	}
 
-	if (oauth_server_id) {
+	if (oauth_server_id)
+	{
 		strncpy(req.oauth_server_id, oauth_server_id, sizeof(req.oauth_server_id) - 1);
 	}
 
 	req.oauth_auto_reauth = oauth_auto_reauth;
 
 	DBG_PRINTF("send request to aaa, password (%s,%s,%s)", req.pass[0], req.pass[1], req.pass[2]);
-	
-	if (auth_method != NULL) {
+
+	if (auth_method != NULL)
+	{
 		strncpy(req.med_id, auth_method, sizeof(req.med_id) - 1);
 	}
 	req.client_ip = AMP_REMOTE_IP(client_conn_p).s_addr;
 
 	req.cert_field = cert_field_val;
-	
-	if (hdl_to_aaa == NULL) {
+
+	if (hdl_to_aaa == NULL)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "handler to aaa is invalid");
 		return SEC_FAIL;
 	}
-	
+
 	req.ipc_tunnel_id = uproxy_ipc_tunnel_id;
-	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0) {
+	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER,
-		                "send request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
+						"send request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER,
-		                "the single size of channel is %d, the len of req is %d",
-		                hdl_to_aaa->wr_channel->single_size, sizeof(req));
-		REMOVE_IPC_TXN((void*)req.transaction_id);
+						"the single size of channel is %d, the len of req is %d",
+						hdl_to_aaa->wr_channel->single_size, sizeof(req));
+		REMOVE_IPC_TXN((void *)req.transaction_id);
 		slog2_with_unique_id(log_id, SMANAGER_ISSUE_LOGIN_REQ_FAIL, vsite_name, username,
-		                NULL, AMP_REMOTE_IP_STR(client_conn_p), AMP_REMOTE_PORT(client_conn_p),
-		                AMP_LOCAL_IP_STR(client_conn_p), AMP_LOCAL_PORT(client_conn_p),
-		                NULL, NULL, NULL, 0, 0, -1, -1, WELF_TYPE_VPN, 1, 1);
+							 NULL, AMP_REMOTE_IP_STR(client_conn_p), AMP_REMOTE_PORT(client_conn_p),
+							 AMP_LOCAL_IP_STR(client_conn_p), AMP_LOCAL_PORT(client_conn_p),
+							 NULL, NULL, NULL, 0, 0, -1, -1, WELF_TYPE_VPN, 1, 1);
 		return SEC_FAIL;
 	}
 	ulog_info_default(PROXY_CONN_LOGIDX(client_conn_p), AMP_ULOGF_MODULE_SMANAGER,
-	                  ULOG_NO662, 0,0,0,0,0,0,0);
+					  ULOG_NO662, 0, 0, 0, 0, 0, 0, 0);
 	return SEC_SUCCESS;
 }
 
@@ -13523,32 +15441,37 @@
 
 	memset(&req, 0, sizeof(req));
 	req.request_type = SEC_MESSAGE_TYPE_HWID_VERCODE;
-	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry*)client_conn_p);
-	if (req.transaction_id == (intptr_t)0) {
+	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry *)client_conn_p);
+	if (req.transaction_id == (intptr_t)0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "Failed to get IPC context to send hwid vericode");
 
 		return SEC_FAIL;
 	}
-	if (vsite_name != NULL) {
-		strncpy(req.site_id, vsite_name, sizeof(req.site_id)-1);
+	if (vsite_name != NULL)
+	{
+		strncpy(req.site_id, vsite_name, sizeof(req.site_id) - 1);
 	}
-	if (verify_code != NULL) {
+	if (verify_code != NULL)
+	{
 		strncpy(req.hardwareid, verify_code, sizeof(req.hardwareid) - 1);
 	}
 
-	if (hdl_to_aaa == NULL) {
+	if (hdl_to_aaa == NULL)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "handler to aaa is invalid");
 		return SEC_FAIL;
 	}
-	
+
 	req.ipc_tunnel_id = uproxy_ipc_tunnel_id;
-	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0) {
+	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER,
 						"send request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER,
 						"the single size of channel is %d, the len of req is %d",
 						hdl_to_aaa->wr_channel->single_size, sizeof(req));
-		REMOVE_IPC_TXN((void*)req.transaction_id);
+		REMOVE_IPC_TXN((void *)req.transaction_id);
 		return SEC_FAIL;
 	}
 
@@ -13564,30 +15487,34 @@
 
 	memset(&req, 0, sizeof(req));
 	req.request_type = SEC_MESSAGE_TYPE_HWID_LIST;
-	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry*)sec_data->client_conn);
-	if (req.transaction_id == (intptr_t)0) {
+	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry *)sec_data->client_conn);
+	if (req.transaction_id == (intptr_t)0)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to get IPC context to send hwid list");
 
 		return SEC_FAIL;
 	}
-	if (sec_data->vsite_p->name != NULL) {
-		strncpy(req.site_id, sec_data->vsite_p->name, sizeof(req.site_id)-1);
+	if (sec_data->vsite_p->name != NULL)
+	{
+		strncpy(req.site_id, sec_data->vsite_p->name, sizeof(req.site_id) - 1);
 	}
-	strncpy(req.username, sec_data->session->username, sizeof(req.username)-1);
+	strncpy(req.username, sec_data->session->username, sizeof(req.username) - 1);
 
-	if (hdl_to_aaa == NULL) {
+	if (hdl_to_aaa == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "handler to aaa is invalid");
 		return SEC_FAIL;
 	}
-	
+
 	req.ipc_tunnel_id = uproxy_ipc_tunnel_id;
-	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0) {
+	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
 						"send hwid list request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
 						"the single size of channel is %d, the len of req is %d",
 						hdl_to_aaa->wr_channel->single_size, sizeof(req));
-		REMOVE_IPC_TXN((void*)req.transaction_id);
+		REMOVE_IPC_TXN((void *)req.transaction_id);
 		return SEC_FAIL;
 	}
 
@@ -13603,54 +15530,60 @@
 
 	memset(&req, 0, sizeof(req));
 	req.request_type = SEC_MESSAGE_TYPE_HWID_DEL;
-	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry*)sec_data->client_conn);
-	if (req.transaction_id == (intptr_t)0) {
+	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry *)sec_data->client_conn);
+	if (req.transaction_id == (intptr_t)0)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Failed to get IPC context to send hwid list");
 
 		return SEC_FAIL;
 	}
-	if (sec_data->vsite_p->name != NULL) {
-		strncpy(req.site_id, sec_data->vsite_p->name, sizeof(req.site_id)-1);
+	if (sec_data->vsite_p->name != NULL)
+	{
+		strncpy(req.site_id, sec_data->vsite_p->name, sizeof(req.site_id) - 1);
 	}
-	strncpy(req.username, sec_data->session->username, sizeof(req.username)-1);
-	strncpy(req.hardwareid, hwid, sizeof(req.hardwareid)-1);
+	strncpy(req.username, sec_data->session->username, sizeof(req.username) - 1);
+	strncpy(req.hardwareid, hwid, sizeof(req.hardwareid) - 1);
 
-	if (hdl_to_aaa == NULL) {
+	if (hdl_to_aaa == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "handler to aaa is invalid");
 		return SEC_FAIL;
 	}
 
 	req.ipc_tunnel_id = uproxy_ipc_tunnel_id;
-	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0) {
+	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
 						"send hwid delete request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
 						"the single size of channel is %d, the len of req is %d",
 						hdl_to_aaa->wr_channel->single_size, sizeof(req));
-		REMOVE_IPC_TXN((void*)req.transaction_id);
+		REMOVE_IPC_TXN((void *)req.transaction_id);
 		return SEC_FAIL;
 	}
 
 	return SEC_SUCCESS;
 }
 
-int
-aaa_need_cert_renego(struct aaa_method *method)
+int aaa_need_cert_renego(struct aaa_method *method)
 {
 	int i = 0;
 	if (method->authenticateServer.type == TYPE_CERTIFICATION ||
-	    method->authorizeServer.type == TYPE_CERTIFICATION) {
+		method->authorizeServer.type == TYPE_CERTIFICATION)
+	{
 		return 1;
 	}
-	for (i = 0; i < method->multistep_step; i++) {
-		if (method->multistepServer[i].type == TYPE_CERTIFICATION) {
+	for (i = 0; i < method->multistep_step; i++)
+	{
+		if (method->multistepServer[i].type == TYPE_CERTIFICATION)
+		{
 			return 1;
 		}
 	}
 	return 0;
 }
 
-/* 
+/*
  * 0: it does not need any cert fields value, this case happens for real anonymous certificate;
  * otherwise 1 indicates it needs cert fields value, and these fields should have been set in aaa
  */
@@ -13659,39 +15592,48 @@
 {
 	int i = 0;
 	struct server_cert *cert_server = NULL;
-	
- 	if (method->authenticateServer.type == TYPE_CERTIFICATION) {
+
+	if (method->authenticateServer.type == TYPE_CERTIFICATION)
+	{
 		cert_server = (struct server_cert *)method->authenticateServer.pointer;
 		if (method->authenticateServer.action == CERT_REAL_ANONYMOUS_AUTHENTICATE_AUTHORIZE &&
-		      cert_server && cert_server->external_group[0] != 0)
+			cert_server && cert_server->external_group[0] != 0)
+		{
+			return 1;
+		}
+		else if (method->authenticateServer.action < CERT_REAL_ANONYMOUS_AUTHENTICATE_ONLY)
 		{
 			return 1;
-		} else if (method->authenticateServer.action < CERT_REAL_ANONYMOUS_AUTHENTICATE_ONLY) {
-	 		return 1;
-	 	}
- 	}
-	
- 	if (method->authorizeServer.type == TYPE_CERTIFICATION) {
+		}
+	}
+
+	if (method->authorizeServer.type == TYPE_CERTIFICATION)
+	{
 		cert_server = (struct server_cert *)method->authorizeServer.pointer;
 		if (method->authorizeServer.action == CERT_REAL_ANONYMOUS_AUTHORIZE_ONLY &&
-		      cert_server && cert_server->external_group[0] != 0)
+			cert_server && cert_server->external_group[0] != 0)
+		{
+			return 1;
+		}
+		else if (method->authorizeServer.action < CERT_REAL_ANONYMOUS_AUTHENTICATE_ONLY)
 		{
 			return 1;
-		} else if (method->authorizeServer.action < CERT_REAL_ANONYMOUS_AUTHENTICATE_ONLY) {
-	 		return 1;
-	 	}
- 	}
+		}
+	}
 
-	for (i = 0; i < method->multistep_step; i++) {
+	for (i = 0; i < method->multistep_step; i++)
+	{
 		if (method->multistepServer[i].type == TYPE_CERTIFICATION)
 		{
 			cert_server = (struct server_cert *)method->multistepServer[i].pointer;
 			if (((method->multistepServer[i].action == CERT_REAL_ANONYMOUS_AUTHENTICATE_AUTHORIZE) ||
-			     (method->multistepServer[i].action == CERT_REAL_ANONYMOUS_AUTHORIZE_ONLY))
-			     && cert_server && cert_server->external_group[0] != 0)
+				 (method->multistepServer[i].action == CERT_REAL_ANONYMOUS_AUTHORIZE_ONLY)) &&
+				cert_server && cert_server->external_group[0] != 0)
 			{
 				return 1;
-			} else if (method->multistepServer[i].action < CERT_REAL_ANONYMOUS_AUTHENTICATE_ONLY) {
+			}
+			else if (method->multistepServer[i].action < CERT_REAL_ANONYMOUS_AUTHENTICATE_ONLY)
+			{
 				return 1;
 			}
 		}
@@ -13701,7 +15643,7 @@
 
 static int32_t
 sec_process_hwid_del_post(smanager_data_t *sec_data, struct frame *cur_request_p,
-                                   length_t content_len, length_t headers_len)
+						  length_t content_len, length_t headers_len)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	sec_session_t *session = sec_data->session;
@@ -13709,31 +15651,36 @@
 	int ret;
 
 	/* check session */
-	if (session == NULL || !SEC_ISSET(session->flags, SESS_AUTHENTICATED)) {
+	if (session == NULL || !SEC_ISSET(session->flags, SESS_AUTHENTICATED))
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "no authenticated session");
 		sec_generate_error_response(sec_data, FALSE, OK,
-				    	SEC_CUSTOM_ERR_NOACCESS,
-				    	"no invalid session");
+									SEC_CUSTOM_ERR_NOACCESS,
+									"no invalid session");
 		return SEC_REQ_LOGIN;
 	}
 	/* extract the verification code */
 	memset(&params, 0, sizeof(params));
 	ret = extract_username_password(sec_data, vsite, cur_request_p, headers_len,
-				       content_len, &params);
-	if (params.clientid[0] == '\0') {
+									content_len, &params);
+	if (params.clientid[0] == '\0')
+	{
 		sec_generate_error_response(sec_data, FALSE, OK,
-				    	SEC_CUSTOM_ERR_REQ,
-				    	"the hardwareid to be deleted");
+									SEC_CUSTOM_ERR_REQ,
+									"the hardwareid to be deleted");
 		return SEC_REQ_LOGIN;
-	} else {
-		strncpy(sec_data->hardware_id, params.clientid, sizeof(sec_data->hardware_id)-1);
 	}
-	
+	else
+	{
+		strncpy(sec_data->hardware_id, params.clientid, sizeof(sec_data->hardware_id) - 1);
+	}
+
 	ret = issue_hwid_device_del(sec_data, params.clientid);
-	if (ret != SEC_SUCCESS) {
+	if (ret != SEC_SUCCESS)
+	{
 		sec_generate_error_response(sec_data, FALSE, OK,
-				    	SEC_CUSTOM_ERR_INTERNAL,
-				    	"system is busy.");
+									SEC_CUSTOM_ERR_INTERNAL,
+									"system is busy.");
 		return SEC_REQ_LOGIN;
 	}
 
@@ -13743,335 +15690,359 @@
 
 int32_t
 sec_process_login_post(smanager_data_t *sec_data, sec_session_t *session,
-    sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-    length_t headers_len)
+					   sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+					   length_t headers_len)
 {
-    sec_vsite_t *vsite = sec_data->vsite_p;
-    uint32_t pin = SID_PIN_INVALID;
-    int32_t pin_len = 0;
-    int32_t result;
-    time_t exp_time;
-    int fl_user_locked_out = 0;
+	sec_vsite_t *vsite = sec_data->vsite_p;
+	uint32_t pin = SID_PIN_INVALID;
+	int32_t pin_len = 0;
+	int32_t result;
+	time_t exp_time;
+	int fl_user_locked_out = 0;
 	int cid_str_len;
 	int i;
 	char ipstr[INET6_ADDRSTRLEN];
- 	struct in_addr ip4;
+	struct in_addr ip4;
 	static auth_params_t *params = NULL;
 
-    if (params == NULL) {
-        params = (auth_params_t *)malloc(sizeof(*params));
-        if (params == NULL) {			
+	if (params == NULL)
+	{
+		params = (auth_params_t *)malloc(sizeof(*params));
+		if (params == NULL)
+		{
 			ip4.s_addr = sec_data->serverip;
 			inet_ntop(AF_INET, &ip4, ipstr, INET6_ADDRSTRLEN);
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, 
-                      "sec_process_login_post: out of memory for params");
-            slog1(SMANAGER_OUT_OF_MEMORY, vsite->name, NULL,
-                      NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
-                      ipstr, sec_data->port, sec_data->servername,
-                      sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
-                      -1, -1, WELF_TYPE_VPN, 0);
-            sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 768);
-            return SEC_REQ_LOGIN;
-        }
-    }
-    memset(params, 0, sizeof(*params));
-    params->pin = SID_PIN_INVALID;
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+							"sec_process_login_post: out of memory for params");
+			slog1(SMANAGER_OUT_OF_MEMORY, vsite->name, NULL,
+				  NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
+				  ipstr, sec_data->port, sec_data->servername,
+				  sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
+				  -1, -1, WELF_TYPE_VPN, 0);
+			sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 768);
+			return SEC_REQ_LOGIN;
+		}
+	}
+	memset(params, 0, sizeof(*params));
+	params->pin = SID_PIN_INVALID;
 
 	/* Let the present session timeout, then user click 'Go Backward' button to login again will generate a new session */
-	if( sec_data->session_id != INVALID_SESSION_ID && sec_data->session != NULL ) {
+	if (sec_data->session_id != INVALID_SESSION_ID && sec_data->session != NULL)
+	{
 		sec_data->session_id = INVALID_SESSION_ID;
 		sec_data->session = NULL;
 
 		/* redirect to login page if now administrator set 'aaa off' */
-		if( vsite->aaa_configure != NULL && vsite->aaa_configure->aaa_on == AAA_IS_OFF ) {
+		if (vsite->aaa_configure != NULL && vsite->aaa_configure->aaa_on == AAA_IS_OFF)
+		{
 			sec_generate_login_redirect(sec_data, vsite);
 			return SEC_REQ_LOGIN;
 		}
 	}
 
-    result = extract_username_password(sec_data, site, cur_request_p, headers_len,
-				       content_len, params);
+	result = extract_username_password(sec_data, site, cur_request_p, headers_len,
+									   content_len, params);
 
-    if (params->secret[0]) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "secret: %s.", params->secret);
-    }
-
-    ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-                      ULOG_NO663, result, 0,0,0,0,0,0);
-                      
-    if (result != USER_PASS_OK) { 
-   	    switch(result) {
-            case USER_PASS_USER_FAIL:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_FAILLOGIN, 202);
-/*
-                slog(LOG_NOTICE,
-		     site->site_id, NULL, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1,
-		     WELF_TYPE_VPN,
-                     "Authentication failed - failed to extract username from login (sm001)");
-                SP_DEBUG1("Failed to extract the username from a login "
-                    "request sent from %s", CLIENT_IP(client_conn));
-*/
-                break;
-            case USER_PASS_PASSWORD_FAIL:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_LOGIN, 203);
-/*
-                slog(LOG_NOTICE,
-		     site->site_id, escaped_uname, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1,
-		     WELF_TYPE_VPN,
-                     "Authentication failed - failed to extract password from login (sm002)");
-                SP_DEBUG2("Failed to extract the password from a login "
-                   "request sent by user %s from %s", escaped_uname,
-                    CLIENT_IP(client_conn));
-*/
-                break;
-            case USER_PASS_PASSWORD2_FAIL:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_LOGIN, 556);
-/*
-                slog(LOG_NOTICE,
-		     site->site_id, escaped_uname, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1,
-		     WELF_TYPE_VPN,
-                     "Authentication failed - failed to extract password2 from login (sm018)");
-                SP_DEBUG2("Failed to extract the password2 from a login "
-                   "request sent by user %s from %s", escaped_uname,
-                    CLIENT_IP(client_conn));
-*/
-                break;
-            case USER_PASS_PIN_TOO_LONG:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_LOGIN, 204);
-/*
-                slog(LOG_NOTICE,
-		     site->site_id, escaped_uname, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1,
-		     WELF_TYPE_VPN,
-                     "Authentication failed - internal error (sm003)");
-                SP_DEBUG2("Received a SecurID PIN that is too long from "
-                   "user %s from %s", escaped_uname,
-                   CLIENT_IP(client_conn));
-*/
-                break;
-            case USER_PASS_USER_UNESCAPE_FAIL:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_LOGIN, 205);
-/*
-                slog(LOG_NOTICE,
-		     site->site_id, escaped_uname, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1,
-		     WELF_TYPE_VPN,
-                     "Authentication failed - internal error (sm004)");
-                SP_DEBUG2("Failed to unescape the username from a login "
-                   "request sent by user %s from %s", escaped_uname,
-                   CLIENT_IP(client_conn));
-*/
-                break;
-            case USER_PASS_PASS_UNESCAPE_FAIL:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_LOGIN, 206);
-/*
-                slog(LOG_NOTICE,
-		     site->site_id, escaped_uname, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1,
-		     WELF_TYPE_VPN,
-                     "Authentication failed - internal error (sm005)");
-                SP_DEBUG2("Failed to unescape the password from a login "
-                   "request sent by user %s from %s", escaped_uname,
-                   CLIENT_IP(client_conn));
-*/
-                break;
-            case USER_PASS_CRED_TOO_LONG:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_LOGIN, 207);
-/*
-                slog(LOG_NOTICE,
-		     site->site_id, escaped_uname, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1,
-		     WELF_TYPE_VPN,
-                     "Authentication failed - internal error (sm006)");
-                SP_DEBUG2("Received a username/pasword that are too long "
-                          "from %s at %s", escaped_uname,
-                          CLIENT_IP(client_conn));
-*/
-                break;
-            case USER_PASS_PIN_READ_FAIL:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_LOGIN, 208);
-/*
-                slog(LOG_NOTICE,
-		     site->site_id, escaped_uname, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1,
-		     WELF_TYPE_VPN,
-                     "Authentication failed - internal error (sm007)");
-                SP_DEBUG2("SecurID PIN is not a number for a login request "
-                   "sent by user %s from %s", escaped_uname,
-                   CLIENT_IP(client_conn));
-*/
-                break;
-            case USER_PASS_CID_TOO_LONG:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_LOGIN, 583);
-/*
-				slog(LOG_NOTICE, site->site_id, escaped_uname, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1, WELF_TYPE_VPN,
-                     "Authentication failed - clientid too long");
-                SP_DEBUG2("Received a clientid that is too long from "
-                   "user %s from %s", escaped_uname,
-                   CLIENT_IP(client_conn));
-*/
-                break;
-            case USER_PASS_CID_UNESCAPE_FAIL:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_LOGIN, 584);
-/*
-                slog(LOG_NOTICE, site->site_id, escaped_uname, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1, WELF_TYPE_VPN,
-                     "Authentication failed - clientid unescape failed");
-                SP_DEBUG3("Failed to unescape the clientid (%s) from a login "
-                   "request sent by user %s from %s", escaped_clientid,
-                   escaped_uname, CLIENT_IP(client_conn));
-*/
-                break;
-            case USER_PASS_DEVICEID_TOO_LONG:
-                sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 642);
-                break;
-            case USER_PASS_DEVICEID_UNESCAPE_FAIL:
-                sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 643);
-                break;
-            case USER_PASS_DEVICE_NAME_UNESCAPE_FAIL:
-                sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 647);
-                break;
-            case USER_PASS_SECRET_LEN_INVALID:
-                sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 755);
-                break;
-            case USER_PASS_SECRET_UNESCAPE_FAIL:
-                sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 756);
-                break;
-            case USER_PASS_LOGID_TOO_LONG:
-            case USER_PASS_LOGID_UNESCAPE_FAIL:
-                sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 215);
-                slog1_with_unique_id(sec_data->log_id, SMANAGER_PARSE_LOGID_FAIL, vsite->name, NULL,
-                      NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
-                      sec_data->serverip, sec_data->port, sec_data->servername,
-                      sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
-                      -1, -1, WELF_TYPE_VPN, 0);
-                break;
-            case USER_PASS_SQL_INJECTION:
-                sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-               SEC_CUSTOM_ERR_INTERNAL,
-               sec_language_get_msg_ex(sec_data, 4)); /*Illegal request<*/
-                break;
-            default:
-                sec_generate_login_response(sec_data,
-                    NULL, SEC_CUSTOM_ERR_LOGIN, 209);
-/*
-				slog(LOG_NOTICE,
-		     site->site_id, NULL, NULL,
-                     SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
-                     -1, -1, WELF_TYPE_VPN,
-                     "Authentication failed - internal error (sm008)");
-*/
-                break;
-        } /* switch */
+	if (params->secret[0])
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "secret: %s.", params->secret);
+	}
+
+	ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
+					  ULOG_NO663, result, 0, 0, 0, 0, 0, 0);
+
+	if (result != USER_PASS_OK)
+	{
+		switch (result)
+		{
+		case USER_PASS_USER_FAIL:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_FAILLOGIN, 202);
+			/*
+							slog(LOG_NOTICE,
+						 site->site_id, NULL, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1,
+						 WELF_TYPE_VPN,
+								 "Authentication failed - failed to extract username from login (sm001)");
+							SP_DEBUG1("Failed to extract the username from a login "
+								"request sent from %s", CLIENT_IP(client_conn));
+			*/
+			break;
+		case USER_PASS_PASSWORD_FAIL:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_LOGIN, 203);
+			/*
+							slog(LOG_NOTICE,
+						 site->site_id, escaped_uname, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1,
+						 WELF_TYPE_VPN,
+								 "Authentication failed - failed to extract password from login (sm002)");
+							SP_DEBUG2("Failed to extract the password from a login "
+							   "request sent by user %s from %s", escaped_uname,
+								CLIENT_IP(client_conn));
+			*/
+			break;
+		case USER_PASS_PASSWORD2_FAIL:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_LOGIN, 556);
+			/*
+							slog(LOG_NOTICE,
+						 site->site_id, escaped_uname, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1,
+						 WELF_TYPE_VPN,
+								 "Authentication failed - failed to extract password2 from login (sm018)");
+							SP_DEBUG2("Failed to extract the password2 from a login "
+							   "request sent by user %s from %s", escaped_uname,
+								CLIENT_IP(client_conn));
+			*/
+			break;
+		case USER_PASS_PIN_TOO_LONG:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_LOGIN, 204);
+			/*
+							slog(LOG_NOTICE,
+						 site->site_id, escaped_uname, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1,
+						 WELF_TYPE_VPN,
+								 "Authentication failed - internal error (sm003)");
+							SP_DEBUG2("Received a SecurID PIN that is too long from "
+							   "user %s from %s", escaped_uname,
+							   CLIENT_IP(client_conn));
+			*/
+			break;
+		case USER_PASS_USER_UNESCAPE_FAIL:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_LOGIN, 205);
+			/*
+							slog(LOG_NOTICE,
+						 site->site_id, escaped_uname, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1,
+						 WELF_TYPE_VPN,
+								 "Authentication failed - internal error (sm004)");
+							SP_DEBUG2("Failed to unescape the username from a login "
+							   "request sent by user %s from %s", escaped_uname,
+							   CLIENT_IP(client_conn));
+			*/
+			break;
+		case USER_PASS_PASS_UNESCAPE_FAIL:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_LOGIN, 206);
+			/*
+							slog(LOG_NOTICE,
+						 site->site_id, escaped_uname, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1,
+						 WELF_TYPE_VPN,
+								 "Authentication failed - internal error (sm005)");
+							SP_DEBUG2("Failed to unescape the password from a login "
+							   "request sent by user %s from %s", escaped_uname,
+							   CLIENT_IP(client_conn));
+			*/
+			break;
+		case USER_PASS_CRED_TOO_LONG:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_LOGIN, 207);
+			/*
+							slog(LOG_NOTICE,
+						 site->site_id, escaped_uname, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1,
+						 WELF_TYPE_VPN,
+								 "Authentication failed - internal error (sm006)");
+							SP_DEBUG2("Received a username/pasword that are too long "
+									  "from %s at %s", escaped_uname,
+									  CLIENT_IP(client_conn));
+			*/
+			break;
+		case USER_PASS_PIN_READ_FAIL:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_LOGIN, 208);
+			/*
+							slog(LOG_NOTICE,
+						 site->site_id, escaped_uname, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1,
+						 WELF_TYPE_VPN,
+								 "Authentication failed - internal error (sm007)");
+							SP_DEBUG2("SecurID PIN is not a number for a login request "
+							   "sent by user %s from %s", escaped_uname,
+							   CLIENT_IP(client_conn));
+			*/
+			break;
+		case USER_PASS_CID_TOO_LONG:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_LOGIN, 583);
+			/*
+							slog(LOG_NOTICE, site->site_id, escaped_uname, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1, WELF_TYPE_VPN,
+								 "Authentication failed - clientid too long");
+							SP_DEBUG2("Received a clientid that is too long from "
+							   "user %s from %s", escaped_uname,
+							   CLIENT_IP(client_conn));
+			*/
+			break;
+		case USER_PASS_CID_UNESCAPE_FAIL:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_LOGIN, 584);
+			/*
+							slog(LOG_NOTICE, site->site_id, escaped_uname, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1, WELF_TYPE_VPN,
+								 "Authentication failed - clientid unescape failed");
+							SP_DEBUG3("Failed to unescape the clientid (%s) from a login "
+							   "request sent by user %s from %s", escaped_clientid,
+							   escaped_uname, CLIENT_IP(client_conn));
+			*/
+			break;
+		case USER_PASS_DEVICEID_TOO_LONG:
+			sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 642);
+			break;
+		case USER_PASS_DEVICEID_UNESCAPE_FAIL:
+			sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 643);
+			break;
+		case USER_PASS_DEVICE_NAME_UNESCAPE_FAIL:
+			sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 647);
+			break;
+		case USER_PASS_SECRET_LEN_INVALID:
+			sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 755);
+			break;
+		case USER_PASS_SECRET_UNESCAPE_FAIL:
+			sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 756);
+			break;
+		case USER_PASS_LOGID_TOO_LONG:
+		case USER_PASS_LOGID_UNESCAPE_FAIL:
+			sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 215);
+			slog1_with_unique_id(sec_data->log_id, SMANAGER_PARSE_LOGID_FAIL, vsite->name, NULL,
+								 NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
+								 sec_data->serverip, sec_data->port, sec_data->servername,
+								 sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
+								 -1, -1, WELF_TYPE_VPN, 0);
+			break;
+		case USER_PASS_SQL_INJECTION:
+			sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
+										SEC_CUSTOM_ERR_INTERNAL,
+										sec_language_get_msg_ex(sec_data, 4)); /*Illegal request<*/
+			break;
+		default:
+			sec_generate_login_response(sec_data,
+										NULL, SEC_CUSTOM_ERR_LOGIN, 209);
+			/*
+							slog(LOG_NOTICE,
+						 site->site_id, NULL, NULL,
+								 SEC_SIP(client_conn), SEC_SPORT(client_conn), NULL, 0, NULL, NULL, NULL, 0, -1,
+								 -1, -1, WELF_TYPE_VPN,
+								 "Authentication failed - internal error (sm008)");
+			*/
+			break;
+		} /* switch */
 		return SEC_REQ_LOGIN;
-    }
+	}
 
-    if (params->authmethod[0] != '\0') {
-        /* Has auth method, should be rank off */
-        for (i = 0; i < METHOD_MAX; i++) {
-            if (strncmp(vsite->aaa_configure->loginmethod[i].id,
-                params->authmethod, AAA_MED_ID_LEN) == 0)
-            {
-		ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-		                  ULOG_NO664, vsite->aaa_configure->loginmethod[i].authenticateServer.type, 0,0,0,0,0,0);
+	if (params->authmethod[0] != '\0')
+	{
+		/* Has auth method, should be rank off */
+		for (i = 0; i < METHOD_MAX; i++)
+		{
+			if (strncmp(vsite->aaa_configure->loginmethod[i].id,
+						params->authmethod, AAA_MED_ID_LEN) == 0)
+			{
+				ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
+								  ULOG_NO664, vsite->aaa_configure->loginmethod[i].authenticateServer.type, 0, 0, 0, 0, 0, 0);
 
-                if (aaa_need_cert_renego(&(vsite->aaa_configure->loginmethod[i]))) {
-                    struct cert_rdn_val *rdn_val = sec_data->auth_cert_val;
+				if (aaa_need_cert_renego(&(vsite->aaa_configure->loginmethod[i])))
+				{
+					struct cert_rdn_val *rdn_val = sec_data->auth_cert_val;
 
-		  if (!need_cert_fields(&vsite->aaa_configure->loginmethod[i])) {
-			if (!has_cert(PROXY_UDATA(sec_data->client_conn))) {
-				if (CONN_EVENT_SSL_RENEGO(sec_data->client_conn)) {
-					ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-					                          "Has been renegotiated, but got null cert fields.");
-					sec_generate_error_response(sec_data, FALSE, UNAUTHORIZED,
-					                          SEC_CUSTOM_ERR_FAILLOGIN,
-					sec_language_get_msg_ex(sec_data, 213));
+					if (!need_cert_fields(&vsite->aaa_configure->loginmethod[i]))
+					{
+						if (!has_cert(PROXY_UDATA(sec_data->client_conn)))
+						{
+							if (CONN_EVENT_SSL_RENEGO(sec_data->client_conn))
+							{
+								ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+												"Has been renegotiated, but got null cert fields.");
+								sec_generate_error_response(sec_data, FALSE, UNAUTHORIZED,
+															SEC_CUSTOM_ERR_FAILLOGIN,
+															sec_language_get_msg_ex(sec_data, 213));
+								return SEC_REQ_LOGIN;
+							}
+							return SEC_REQ_CCERT_AUTH;
+						}
+						break;
+					}
+
+					if (TAILQ_EMPTY(&vsite->auth_cert_fields))
+					{
+						ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+										"The request is client cert auth, but haven't set any cert fields.");
+						sec_generate_error_response(sec_data, FALSE, SERVICE_UNAVAIL,
+													SEC_CUSTOM_ERR_FAILLOGIN,
+													sec_language_get_msg_ex(sec_data, 213));
+						return SEC_REQ_LOGIN;
+					}
+					else if (sec_data->auth_cert_val == NULL)
+					{
+						if (CONN_EVENT_SSL_RENEGO(sec_data->client_conn))
+						{
+							ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+											"Has been renegotiated, but got null cert fields.");
+							sec_generate_error_response(sec_data, FALSE, UNAUTHORIZED,
+														SEC_CUSTOM_ERR_FAILLOGIN,
+														sec_language_get_msg_ex(sec_data, 213));
+							return SEC_REQ_LOGIN;
+						}
+						return SEC_REQ_CCERT_AUTH;
+					}
+					else if (vsite->aaa_configure->loginmethod[i].authenticateServer.action >=
+								 CERT_CHALLENGE_LDAP_AUTHENTICATE_AUTHORIZE &&
+							 vsite->aaa_configure->loginmethod[i].authenticateServer.action <=
+								 CERT_CHALLENGE_LDB_AUTHENTICATE_ONLY)
+					{
+						DBG_PRINTF("Has cert value, and auth method is cert challenge.");
+						if (params->passwd[0] == '\0')
+						{
+							DBG_PRINTF("Cert challenge mode without password.");
+							sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 203);
+							return SEC_REQ_LOGIN;
+						}
+					}
+
+					DBG_PRINTF("Got Client Cert auth and cert value");
+					while (rdn_val != NULL)
+					{
+						DBG_PRINTF("The cert field is (%s), value len (%d), value (%s)",
+								   rdn_val->name, rdn_val->val_len, rdn_val->val);
+						rdn_val = rdn_val->next;
+					}
+					break;
+				}
+				else if (vsite->aaa_configure->loginmethod[i].authenticateServer.type == TYPE_DEVICEID)
+				{
+					/* no username needed. */
+					ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "deviceID[1]");
+				}
+				else if (params->uname[0] == '\0')
+				{
+					ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "non-cert auth method, but no user name provided.");
+					sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 202);
 					return SEC_REQ_LOGIN;
 				}
-				return SEC_REQ_CCERT_AUTH;
+				break;
 			}
-			break;
-		  }
-		  
-                    if (TAILQ_EMPTY(&vsite->auth_cert_fields))
-                    {
-                        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-                                             "The request is client cert auth, but haven't set any cert fields.");
-                        sec_generate_error_response(sec_data, FALSE, SERVICE_UNAVAIL,
-                                     SEC_CUSTOM_ERR_FAILLOGIN,
-                                     sec_language_get_msg_ex(sec_data, 213));
-                        return SEC_REQ_LOGIN;
-                    } else if (sec_data->auth_cert_val == NULL) {
-                        if (CONN_EVENT_SSL_RENEGO(sec_data->client_conn)) {
-                               ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-                                                  "Has been renegotiated, but got null cert fields.");
-                               sec_generate_error_response(sec_data, FALSE, UNAUTHORIZED,
-                                                                        SEC_CUSTOM_ERR_FAILLOGIN,
-                                                                        sec_language_get_msg_ex(sec_data, 213));
-                               return SEC_REQ_LOGIN;
-                        }
-                        return SEC_REQ_CCERT_AUTH;
-                    } else if (vsite->aaa_configure->loginmethod[i].authenticateServer.action >= 
-                                    CERT_CHALLENGE_LDAP_AUTHENTICATE_AUTHORIZE &&
-                               vsite->aaa_configure->loginmethod[i].authenticateServer.action <= 
-                                   CERT_CHALLENGE_LDB_AUTHENTICATE_ONLY) 
-                    {
-                        DBG_PRINTF("Has cert value, and auth method is cert challenge.");
-                        if (params->passwd[0] == '\0') {
-                            DBG_PRINTF("Cert challenge mode without password.");
-                            sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 203);
-                            return SEC_REQ_LOGIN;
-                        }
-                    }
-
-                    DBG_PRINTF("Got Client Cert auth and cert value");
-                    while (rdn_val != NULL) {
-                        DBG_PRINTF("The cert field is (%s), value len (%d), value (%s)",
-                            rdn_val->name, rdn_val->val_len, rdn_val->val);
-                        rdn_val = rdn_val->next;
-                    }
-                    break;
-                } else if (vsite->aaa_configure->loginmethod[i].authenticateServer.type == TYPE_DEVICEID) {
-                    /* no username needed. */
-                    ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "deviceID[1]");
-                } else if (params->uname[0] == '\0'){
-                    ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "non-cert auth method, but no user name provided.");
-                    sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 202);
-                    return SEC_REQ_LOGIN;
-                }
-                break;
-            }
-        }
-        if (i == METHOD_MAX) { 
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Haven't found auth method - (%s)", params->authmethod);
-            return SEC_REQ_ERR;
-        }
-    }
-	
+		}
+		if (i == METHOD_MAX)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Haven't found auth method - (%s)", params->authmethod);
+			return SEC_REQ_ERR;
+		}
+	}
+
 	cid_str_len = strlen(params->clientid);
 	DBG_PRINTF("hwid %d, %s\n", cid_str_len, params->clientid);
 #if 0
@@ -14091,13 +16062,14 @@
         DBG_PRINTF("the cid str is not empty.");
 	}
 #endif
-    /* 
-     * At this point, we should have the username and password stored
-     * as NULL-terminated strings in escaped_uname and escaped_password,
-     * respectively. 
-     */
+	/*
+	 * At this point, we should have the username and password stored
+	 * as NULL-terminated strings in escaped_uname and escaped_password,
+	 * respectively.
+	 */
 
-	if (vsite->validcode[0] != 0) {
+	if (vsite->validcode[0] != 0)
+	{
 		uint8_t enccode[MAX_VALIDCODE_LEN] = {0};
 		char validcode[MAX_VALIDCODE_LEN * 2 + 1] = {0};
 		char v[MAX_VALIDCODE_LEN * 2 + 1] = {0};
@@ -14108,36 +16080,40 @@
 		vpn_bin2hex(enccode, validcode, validcode_len);
 		validcode[validcode_len * 2] = 0;
 		strcpy(v, vsite->validcode);
-		
-		if (strcmp(vsite->validcode, validcode) != 0) {
-			sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 592); 
+
+		if (strcmp(vsite->validcode, validcode) != 0)
+		{
+			sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 592);
 			slog_with_unique_id(sec_data->log_id, LOG_NOTICE, vsite->name, params->uname, NULL,
-				AMP_REMOTE_IP(sec_data->client_conn).s_addr,
-				0, 0, 0, NULL, NULL, NULL, 0, -1, -1, -1, WELF_TYPE_VPN, 0,
-				"Authentication failed - failed to verify validcode from login");
+								AMP_REMOTE_IP(sec_data->client_conn).s_addr,
+								0, 0, 0, NULL, NULL, NULL, 0, -1, -1, -1, WELF_TYPE_VPN, 0,
+								"Authentication failed - failed to verify validcode from login");
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-					,"Failed to verify validcode from a login request sent by user %s "
-					"from %s", params->uname, inet_ntoa(AMP_REMOTE_IP(sec_data->client_conn)));
-			return SEC_REQ_LOGIN;			
+							, "Failed to verify validcode from a login request sent by user %s "
+							  "from %s",
+							params->uname, inet_ntoa(AMP_REMOTE_IP(sec_data->client_conn)));
+			return SEC_REQ_LOGIN;
 		}
 	}
 
-    /* Send an auth request to the AAA daemon */
-	DBG_PRINTF("Begin issue auth_request, escaped_uname is %s, pass is %s, auth method is %s, hwid is %s", 
-		params->uname, params->passwd, params->authmethod, params->clientid);
+	/* Send an auth request to the AAA daemon */
+	DBG_PRINTF("Begin issue auth_request, escaped_uname is %s, pass is %s, auth method is %s, hwid is %s",
+			   params->uname, params->passwd, params->authmethod, params->clientid);
 
-	if (params->deviceid[0]) {
+	if (params->deviceid[0])
+	{
 		strncpy(sec_data->device_id, params->deviceid, SEC_DEVICEID_LEN);
 	}
 
-	if (params->clientid[0]) {
-		strncpy(sec_data->hardware_id, params->clientid, sizeof(sec_data->hardware_id)-1);
+	if (params->clientid[0])
+	{
+		strncpy(sec_data->hardware_id, params->clientid, sizeof(sec_data->hardware_id) - 1);
 	}
 
 	if (issue_auth_request(sec_data->client_conn, sec_data->vsite_p->name,
-		params->uname, params->passwd, params->passwd1, params->passwd2, params->authmethod, sec_data->log_id,
-		sec_data->auth_cert_val, params->clientid, params->deviceid, params->device_name,
-		&params->extra_params[0][0], params->secret, params->cus_def_vars, sec_data->oauth_uid, NULL, 0) != 0 ) 
+						   params->uname, params->passwd, params->passwd1, params->passwd2, params->authmethod, sec_data->log_id,
+						   sec_data->auth_cert_val, params->clientid, params->deviceid, params->device_name,
+						   &params->extra_params[0][0], params->secret, params->cus_def_vars, sec_data->oauth_uid, NULL, 0) != 0)
 	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "issue auth request failed");
 		return SEC_REQ_ERR;
@@ -14148,40 +16124,49 @@
 
 uint8_t
 issue_radius_chalresp(void *client_conn_p, sec_session_t *session, char *vsite_name, char *username,
-                      char *passwd, uint64_t aaa_request_id, uint8_t cancel,
-                      char *cus_vars, char *log_id)
+					  char *passwd, uint64_t aaa_request_id, uint8_t cancel,
+					  char *cus_vars, char *log_id)
 {
 	static struct sp_auth_request req;
 	int ret_val;
 
 	memset(&req, 0, sizeof(req));
-	if (SEC_ISSET(session->flags, SESS_UA_HTTP_CHALLENGE)) {
+	if (SEC_ISSET(session->flags, SESS_UA_HTTP_CHALLENGE))
+	{
 		req.request_type = SEC_MESSAGE_TYPE_HTTP_CHAL;
-	} else{
+	}
+	else
+	{
 		req.request_type = SEC_MESSAGE_TYPE_RADIUS_RESP;
 	}
 	req.transaction_id = (intptr_t)INSERT_IPC_TXN(client_conn_p);
-	if (req.transaction_id == (intptr_t)0) {
+	if (req.transaction_id == (intptr_t)0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "Create ipc context for radius challenge failed ipc_errno %d", ipc_errno);
 		return SEC_FAIL;
 	}
-	
+
 	/* send back aaa request id for aaa to find out request entry before */
 	req.aaa_request_id = aaa_request_id;
-	
-	if (vsite_name != NULL) {
-		strncpy(req.site_id, vsite_name, sizeof(req.site_id)-1);
+
+	if (vsite_name != NULL)
+	{
+		strncpy(req.site_id, vsite_name, sizeof(req.site_id) - 1);
 	}
-	if (username != NULL) {
+	if (username != NULL)
+	{
 		strncpy(req.username, username, sizeof(req.username) - 1);
 	}
-	if (passwd != NULL) {
+	if (passwd != NULL)
+	{
 		strncpy(req.pass[0], passwd, sizeof(req.pass[0]) - 1);
 	}
-	if (cus_vars != NULL && cus_vars[0] != '\0') {
+	if (cus_vars != NULL && cus_vars[0] != '\0')
+	{
 		memcpy(req.cus_def_vars, cus_vars, sizeof(req.cus_def_vars));
 	}
-	if (log_id != NULL && log_id[0] != '\0') {
+	if (log_id != NULL && log_id[0] != '\0')
+	{
 		strncpy(req.log_id, log_id, sizeof(req.log_id) - 1);
 	}
 
@@ -14189,19 +16174,21 @@
 
 	req.client_ip = AMP_REMOTE_IP(client_conn_p).s_addr;
 
-	if (hdl_to_aaa == NULL) {
+	if (hdl_to_aaa == NULL)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "handler to aaa is invalid");
 		return SEC_FAIL;
 	}
 
 	req.ipc_tunnel_id = uproxy_ipc_tunnel_id;
-	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0) {
+	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER,
-		                "send request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
+						"send request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER,
-		                "the single size of channel is %d, the len of req is %d",
-		                hdl_to_aaa->wr_channel->single_size, sizeof(req));
-		REMOVE_IPC_TXN((void*)req.transaction_id);
+						"the single size of channel is %d, the len of req is %d",
+						hdl_to_aaa->wr_channel->single_size, sizeof(req));
+		REMOVE_IPC_TXN((void *)req.transaction_id);
 		return SEC_FAIL;
 	}
 	DBG_PRINTF("send request to aaa success!");
@@ -14209,26 +16196,28 @@
 }
 int32_t
 sec_process_radius_chal_post(smanager_data_t *sec_data, sec_session_t *session, sec_vsite_t *site,
-    struct frame *cur_request_p, int32_t content_len, int32_t headers_len)
+							 struct frame *cur_request_p, int32_t content_len, int32_t headers_len)
 {
 	post_field_t *curr_field = NULL;
 	int32_t result;
 	int32_t pin_len = 0;
 	char ipstr[INET6_ADDRSTRLEN];
- 	struct in_addr ip4;
+	struct in_addr ip4;
 	static auth_params_t *params = NULL;
-	if (params == NULL) {
+	if (params == NULL)
+	{
 		params = (auth_params_t *)malloc(sizeof(*params));
-		if (params == NULL) {
+		if (params == NULL)
+		{
 			ip4.s_addr = sec_data->serverip;
 			inet_ntop(AF_INET, &ip4, ipstr, INET6_ADDRSTRLEN);
-			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, 
-			                 "sec_process_radius_chal_post: out of memory for params");
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+							"sec_process_radius_chal_post: out of memory for params");
 			slog1(SMANAGER_OUT_OF_MEMORY, sec_data->vsite_p->name, NULL,
-			     NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
-			     ipstr, sec_data->port, sec_data->servername,
-			     sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
-			     -1, -1, WELF_TYPE_VPN, 0);
+				  NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
+				  ipstr, sec_data->port, sec_data->servername,
+				  sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
+				  -1, -1, WELF_TYPE_VPN, 0);
 			sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 768);
 			return SEC_REQ_LOGIN;
 		}
@@ -14236,38 +16225,43 @@
 	memset(params, 0, sizeof(*params));
 	params->pin = SID_PIN_INVALID;
 
-	if (session == NULL) {
+	if (session == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-		                "Session is invalid on processing radius challenge");
+						"Session is invalid on processing radius challenge");
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 252);
 		return SEC_REQ_LOGIN;
 	}
 
 	result = extract_username_password(sec_data, site, cur_request_p, headers_len,
-				       content_len, params);
+									   content_len, params);
 
 	DBG_PRINTF("extract the passwd (%s) the result code %d", params->passwd, result);
 	ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-	                  ULOG_NO665, result, params->cancel,0,0,0,0,0);
+					  ULOG_NO665, result, params->cancel, 0, 0, 0, 0, 0);
 
-	if (issue_radius_chalresp(sec_data->client_conn, session, sec_data->vsite_p->name, 
-	                      session->username, params->passwd, session->aaa_request_id,
-	                      params->cancel, params->cus_def_vars, session->unique_id) != 0)
+	if (issue_radius_chalresp(sec_data->client_conn, session, sec_data->vsite_p->name,
+							  session->username, params->passwd, session->aaa_request_id,
+							  params->cancel, params->cus_def_vars, session->unique_id) != 0)
 	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "issue radius chalresp failed");
 		return SEC_REQ_ERR;
 	}
 
-	if (params->cancel) {
+	if (params->cancel)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "AAA challenge request cancelled: %d.",
-			sec_data->session->oauth_vendor);
+						sec_data->session->oauth_vendor);
 
 		if (SEC_ISSET(site->common_flags, SEC_AAA_OAUTH_ENABLED) &&
-			sec_data->session->oauth_vendor == GOOGLE) {
+			sec_data->session->oauth_vendor == GOOGLE)
+		{
 			ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-				ULOG_NO658, 0, 5, 0, 0, 0, 0, 0);
+							  ULOG_NO658, 0, 5, 0, 0, 0, 0, 0);
 			sec_redirect_oauth_logout(sec_data, -1);
-		} else {
+		}
+		else
+		{
 			sec_generate_login_redirect(sec_data, site);
 		}
 
@@ -14283,118 +16277,141 @@
 
 int32_t
 sec_process_choosesite_post(smanager_data_t *sec_data, sec_vsite_t *site, struct frame *cur_request_p,
-    int32_t content_len, int32_t headers_len)
+							int32_t content_len, int32_t headers_len)
 {
-    post_field_t *curr_field = NULL, *site_field = NULL;
-    sec_vsite_t *found_vsite = NULL;
-    int32_t len = 0, cookie_len = 0, alias_len = 0;
-
-    if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL)) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "extract_post_fields failed.");
-        sec_generate_choose_site_response(sec_data, site);
-        return SEC_REQ_ERR;
-    }
-
-    STAILQ_FOREACH(curr_field, &post_field_list, next_field) {
-        if (curr_field->value_len > 0 && curr_field->name_len > 0) {
-            if (!strcmp(curr_field->name, "site_id")) {
-                site_field = curr_field;
-            }
-        }
-    }
-
-    if (!site_field) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "no site name found in POST.");
-        sec_generate_choose_site_response(sec_data, site);
-        post_field_list_dtor();
-        return SEC_REQ_ERR;
-    }
-
-    unescape_string(site_field->value, site_field->value_len, session_error_buffer, &alias_len, 256);
-    session_error_buffer[site_field->value_len] = '\0';
-
-    found_vsite = find_vsite_by_name(session_error_buffer);
-    if (!found_vsite) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "site not exist.");
-        sec_generate_choose_site_response(sec_data, site);
-        post_field_list_dtor();
-        return SEC_REQ_ERR;
-    }
-
-    if (found_vsite->vsite_type != SITE_ALIAS) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "site is not alias.");
-        sec_generate_choose_site_response(sec_data, site);
-        post_field_list_dtor();
-        return SEC_REQ_ERR;
-    }
-	
-    if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-        len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "https://%s%s/", sec_data->req_domain, "/prx/000/http/localh");
-    } else {
-        len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "https://%s%s/", sec_data->req_domain, SEC_REWRITTEN_PREFIX);
-    }
-
-    if (*aa_clustered == 0) {
-    	cookie_len = sprintf(session_cookie_buffer, "%s=%s; path=/; secure;samesite=None", sec_cookie_session_name, found_vsite->name);
-    } else {
-	cookie_len = sprintf(session_cookie_buffer, "%s=%s; path=/; secure;samesite=None", ha_cookie_session_name, found_vsite->name);
-    }
+	post_field_t *curr_field = NULL, *site_field = NULL;
+	sec_vsite_t *found_vsite = NULL;
+	int32_t len = 0, cookie_len = 0, alias_len = 0;
+
+	if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL))
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "extract_post_fields failed.");
+		sec_generate_choose_site_response(sec_data, site);
+		return SEC_REQ_ERR;
+	}
+
+	STAILQ_FOREACH(curr_field, &post_field_list, next_field)
+	{
+		if (curr_field->value_len > 0 && curr_field->name_len > 0)
+		{
+			if (!strcmp(curr_field->name, "site_id"))
+			{
+				site_field = curr_field;
+			}
+		}
+	}
+
+	if (!site_field)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "no site name found in POST.");
+		sec_generate_choose_site_response(sec_data, site);
+		post_field_list_dtor();
+		return SEC_REQ_ERR;
+	}
+
+	unescape_string(site_field->value, site_field->value_len, session_error_buffer, &alias_len, 256);
+	session_error_buffer[site_field->value_len] = '\0';
+
+	found_vsite = find_vsite_by_name(session_error_buffer);
+	if (!found_vsite)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "site not exist.");
+		sec_generate_choose_site_response(sec_data, site);
+		post_field_list_dtor();
+		return SEC_REQ_ERR;
+	}
+
+	if (found_vsite->vsite_type != SITE_ALIAS)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "site is not alias.");
+		sec_generate_choose_site_response(sec_data, site);
+		post_field_list_dtor();
+		return SEC_REQ_ERR;
+	}
 
-    sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"), portal_temp_string, len,
-                          session_cookie_buffer, cookie_len, NULL, 0, NULL, 0, 0, 0);
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
+		len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "https://%s%s/", sec_data->req_domain, "/prx/000/http/localh");
+	}
+	else
+	{
+		len = snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "https://%s%s/", sec_data->req_domain, SEC_REWRITTEN_PREFIX);
+	}
 
-    post_field_list_dtor();
+	if (*aa_clustered == 0)
+	{
+		cookie_len = sprintf(session_cookie_buffer, "%s=%s; path=/; secure;samesite=None", sec_cookie_session_name, found_vsite->name);
+	}
+	else
+	{
+		cookie_len = sprintf(session_cookie_buffer, "%s=%s; path=/; secure;samesite=None", ha_cookie_session_name, found_vsite->name);
+	}
+
+	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"), portal_temp_string, len,
+						  session_cookie_buffer, cookie_len, NULL, 0, NULL, 0, 0, 0);
 
-    return SEC_REQ_LOGIN;
+	post_field_list_dtor();
+
+	return SEC_REQ_LOGIN;
 }
 
 int32_t
 sec_process_client_log_post(smanager_data_t *sec_data, struct frame *cur_request_p, int32_t content_len,
-    int32_t headers_len)
+							int32_t headers_len)
 {
-    post_field_t *curr_field = NULL, *level = NULL, *eid = NULL, *msg = NULL;
+	post_field_t *curr_field = NULL, *level = NULL, *eid = NULL, *msg = NULL;
 
-    if (!sec_data->session || !sec_data->session->used_flag) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "invalid session.");
-        return SEC_REQ_ERR;
-    }
+	if (!sec_data->session || !sec_data->session->used_flag)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "invalid session.");
+		return SEC_REQ_ERR;
+	}
 
-    if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL)) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "extract_post_fields failed.");
-        return SEC_REQ_ERR;
-    }
+	if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL))
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "extract_post_fields failed.");
+		return SEC_REQ_ERR;
+	}
 
-    STAILQ_FOREACH(curr_field, &post_field_list, next_field) {
-        if (curr_field->value_len > 0 && curr_field->name_len > 0) {
-            if (!strcmp(curr_field->name, "level")) {
-                level = curr_field;
-            } else if (!strcmp(curr_field->name, "eid")) {
-                eid = curr_field;
-            } else if (!strcmp(curr_field->name, "msg")) {
-                msg = curr_field;
-            }
-        }
-    }
+	STAILQ_FOREACH(curr_field, &post_field_list, next_field)
+	{
+		if (curr_field->value_len > 0 && curr_field->name_len > 0)
+		{
+			if (!strcmp(curr_field->name, "level"))
+			{
+				level = curr_field;
+			}
+			else if (!strcmp(curr_field->name, "eid"))
+			{
+				eid = curr_field;
+			}
+			else if (!strcmp(curr_field->name, "msg"))
+			{
+				msg = curr_field;
+			}
+		}
+	}
 
-    if (!level || !eid || !msg) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "no level or eid or msg found in POST.");
-        post_field_list_dtor();
-        return SEC_REQ_ERR;
-    }
+	if (!level || !eid || !msg)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "no level or eid or msg found in POST.");
+		post_field_list_dtor();
+		return SEC_REQ_ERR;
+	}
 
-    mn_client_syslog(atoi(level->value), atoi(eid->value), sec_data->session->username, sec_data->session->device_id,
-        AMP_REMOTE_IP(sec_data->client_conn).s_addr, AMP_REMOTE_PORT(sec_data->client_conn), msg->value);
+	mn_client_syslog(atoi(level->value), atoi(eid->value), sec_data->session->username, sec_data->session->device_id,
+					 AMP_REMOTE_IP(sec_data->client_conn).s_addr, AMP_REMOTE_PORT(sec_data->client_conn), msg->value);
 
-    sec_generate_empty_response(sec_data);
+	sec_generate_empty_response(sec_data);
 
-    post_field_list_dtor();
+	post_field_list_dtor();
 
-    return SEC_REQ_LOGIN;
+	return SEC_REQ_LOGIN;
 }
 
-int32_t 
+int32_t
 sec_process_app_login_post(smanager_data_t *sec_data, sec_vsite_t *site, struct frame *cur_request_p,
-	length_t content_len, length_t headers_len)
+						   length_t content_len, length_t headers_len)
 {
 	struct conn_entry *client_conn = (struct conn_entry *)sec_data->client_conn;
 	char device_id[(SEC_DEVICEID_LEN * ESCAPE_EXFACTOR) + 1] = {0};
@@ -14402,28 +16419,33 @@
 	int32_t result = 0, deviceid_len = 0;
 	void *ipc_txn = NULL;
 
-	if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL)) {
+	if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL))
+	{
 		ulog_error_conn(client_conn, AMP_ULOG_SMANAGER, "%s: extract_post_fields failed.", __FUNCTION__);
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_FAILLOGIN, 202);
 		return SEC_REQ_LOGIN;
 	}
 
-	STAILQ_FOREACH(field, &post_field_list, next_field) {
+	STAILQ_FOREACH(field, &post_field_list, next_field)
+	{
 		if (field->name_len > 0 && field->value_len > 0 &&
-			!strncasecmp(field->name, "deviceid", field->name_len)) {
-			if (field->value_len >= SEC_DEVICEID_LEN) {
+			!strncasecmp(field->name, "deviceid", field->name_len))
+		{
+			if (field->value_len >= SEC_DEVICEID_LEN)
+			{
 				ulog_error_conn(client_conn, AMP_ULOG_SMANAGER, "%s: Device ID is too long.",
-					__FUNCTION__);
+								__FUNCTION__);
 				post_field_list_dtor();
 				sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 642);
 				return SEC_REQ_LOGIN;
 			}
 
 			result = unescape_string(field->value, field->value_len, device_id, &deviceid_len,
-				SEC_DEVICEID_LEN);
-			if (result < 0) {
+									 SEC_DEVICEID_LEN);
+			if (result < 0)
+			{
 				ulog_error_conn(client_conn, AMP_ULOG_SMANAGER, "%s: unescape Device ID failed.",
-					__FUNCTION__);
+								__FUNCTION__);
 				strncpy(device_id, field->value, SEC_DEVICEID_LEN);
 				post_field_list_dtor();
 				sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 643);
@@ -14438,21 +16460,24 @@
 
 	post_field_list_dtor();
 
-	if (!device_id[0]) {
+	if (!device_id[0])
+	{
 		ulog_error_conn(client_conn, AMP_ULOG_SMANAGER, "%s: no Device ID in request.", __FUNCTION__);
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 643);
 		return SEC_REQ_LOGIN;
 	}
 
 	ipc_txn = INSERT_IPC_TXN(client_conn);
-	if (!ipc_txn) {
+	if (!ipc_txn)
+	{
 		ulog_error_conn(client_conn, AMP_ULOG_SMANAGER, "%s: INSERT_IPC_TXN failed.", __FUNCTION__);
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 210);
 		return SEC_REQ_LOGIN;
 	}
 
 	result = sessmgr_session_create_child(ipc_txn, uproxy_ipc_tunnel_id, site->name, device_id);
-	if (result != SESS_SUCCESS) {
+	if (result != SESS_SUCCESS)
+	{
 		REMOVE_IPC_TXN(ipc_txn);
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 210);
 		return SEC_REQ_LOGIN;
@@ -14461,9 +16486,9 @@
 	return SEC_REQ_CREATE_CHILD_SESSION;
 }
 
-int32_t 
+int32_t
 sec_process_device_logout_post(smanager_data_t *sec_data, sec_vsite_t *site, struct frame *cur_request_p,
-	length_t content_len, length_t headers_len)
+							   length_t content_len, length_t headers_len)
 {
 	struct conn_entry *client_conn = (struct conn_entry *)sec_data->client_conn;
 	char device_id[(SEC_DEVICEID_LEN * ESCAPE_EXFACTOR) + 1] = {0};
@@ -14471,28 +16496,33 @@
 	int32_t result = 0, deviceid_len = 0;
 	void *ipc_txn = NULL;
 
-	if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL)) {
+	if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL))
+	{
 		ulog_error_conn(client_conn, AMP_ULOG_SMANAGER, "%s: extract_post_fields failed.", __FUNCTION__);
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_FAILLOGIN, 202);
 		return SEC_REQ_LOGIN;
 	}
 
-	STAILQ_FOREACH(field, &post_field_list, next_field) {
+	STAILQ_FOREACH(field, &post_field_list, next_field)
+	{
 		if (field->name_len > 0 && field->value_len > 0 &&
-			!strncasecmp(field->name, "deviceid", field->name_len)) {
-			if (field->value_len >= SEC_DEVICEID_LEN) {
+			!strncasecmp(field->name, "deviceid", field->name_len))
+		{
+			if (field->value_len >= SEC_DEVICEID_LEN)
+			{
 				ulog_error_conn(client_conn, AMP_ULOG_SMANAGER, "%s: Device ID is too long.",
-					__FUNCTION__);
+								__FUNCTION__);
 				post_field_list_dtor();
 				sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 642);
 				return SEC_REQ_LOGIN;
 			}
 
 			result = unescape_string(field->value, field->value_len, device_id, &deviceid_len,
-				SEC_DEVICEID_LEN);
-			if (result < 0) {
+									 SEC_DEVICEID_LEN);
+			if (result < 0)
+			{
 				ulog_error_conn(client_conn, AMP_ULOG_SMANAGER, "%s: unescape Device ID failed.",
-					__FUNCTION__);
+								__FUNCTION__);
 				strncpy(device_id, field->value, SEC_DEVICEID_LEN);
 				post_field_list_dtor();
 				sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 643);
@@ -14507,24 +16537,27 @@
 
 	post_field_list_dtor();
 
-	if (!device_id[0]) {
+	if (!device_id[0])
+	{
 		ulog_error_conn(client_conn, AMP_ULOG_SMANAGER, "%s: no Device ID in request.", __FUNCTION__);
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 643);
 		return SEC_REQ_LOGIN;
 	}
 
 	ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-		ULOG_NO670, 0, 0, 0, 0, 0, 0, 0);
+					  ULOG_NO670, 0, 0, 0, 0, 0, 0, 0);
 
 	ipc_txn = INSERT_IPC_TXN(client_conn);
-	if (!ipc_txn) {
+	if (!ipc_txn)
+	{
 		ulog_error_conn(client_conn, AMP_ULOG_SMANAGER, "%s: INSERT_IPC_TXN failed.", __FUNCTION__);
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 210);
 		return SEC_REQ_LOGIN;
 	}
 
 	result = sessmgr_device_logout(ipc_txn, uproxy_ipc_tunnel_id, site->name, device_id);
-	if (result != SESS_SUCCESS) {
+	if (result != SESS_SUCCESS)
+	{
 		REMOVE_IPC_TXN(ipc_txn);
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 210);
 		return SEC_REQ_LOGIN;
@@ -14536,272 +16569,296 @@
 #define MAX_LOGIN_POST_DATA_LEN 4112
 int32_t
 sec_post_request(smanager_data_t *sec_data, sec_session_t *session,
-    sec_vsite_t *site, int content_id,proxy_t *proxy_p, 
-    struct frame *cur_request_p, length_t content_len, length_t headers_len)
+				 sec_vsite_t *site, int content_id, proxy_t *proxy_p,
+				 struct frame *cur_request_p, length_t content_len, length_t headers_len)
 {
-    int32_t chain_len;
+	int32_t chain_len;
 	int32_t ret_val = 0;
 
 	DBG_PRINTF("entry...");
 
-    if (proxy_p == NULL) {
-	ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "proxy_p = %p, cur_request_p=%p", proxy_p, cur_request_p);
-        return SEC_REQ_ERR;
-    }
-
-    /* Check the sanity of the request body*/
-    if (content_len > MAX_LOGIN_POST_DATA_LEN) {
-        /* the login POST has too much data, just drop this request */
+	if (proxy_p == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "proxy_p = %p, cur_request_p=%p", proxy_p, cur_request_p);
+		return SEC_REQ_ERR;
+	}
+
+	/* Check the sanity of the request body*/
+	if (content_len > MAX_LOGIN_POST_DATA_LEN)
+	{
+		/* the login POST has too much data, just drop this request */
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Post request payload is too much, %d Bytes", content_len);
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-               SEC_CUSTOM_ERR_INTERNAL,
-               sec_language_get_msg_ex(sec_data, 242));
-        return SEC_REQ_LOGIN;
-    } else if (content_len <= 0) {
-               ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-	                       "Post request has no payload given, content len %d",
-                               content_len);
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 242));
+		return SEC_REQ_LOGIN;
+	}
+	else if (content_len <= 0)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
+						"Post request has no payload given, content len %d",
+						content_len);
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-               SEC_CUSTOM_ERR_INTERNAL,
-               sec_language_get_msg_ex(sec_data, 243));
-        return SEC_REQ_LOGIN;
-    }
-
-    /* Check to see if we have all of the POST data yet */
-    chain_len = parser_frame_chain_length(cur_request_p);
-    if (chain_len < headers_len + content_len) {
-        /* 
-         * We are still missing some of the request. This means that we need
-         * to follow the normal "incomplete request" proxy process.
-         * Proxy will handle this case exactly like case of incomplete http
-         * headers; i.e original request will be strored in the next_request_p
-         * and when more data arrives proxy will reparse the whole request
-         */
-	ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-	                  ULOG_NO666, headers_len, content_len, chain_len, 0,0,0,0);
-        return SEC_REQ_LOGIN_POST_INCOMPLETE;
-    }
-
-    if (site && site->vsite_type == SITE_SHARED && content_id != CHOOSESITE_ID) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Non-choosesite could not be accessed for shared site.");
-        sec_generate_choose_site_redirect(sec_data, site);
-
-        return SEC_REQ_LOGIN;
-    }
-
-    switch (content_id) {
-        case LOGIN_ID:
-        case REGISTER_ID:
-            return sec_process_login_post(sec_data, session, site,
-                                          cur_request_p, content_len,
-                                          headers_len);
-			break;
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 243));
+		return SEC_REQ_LOGIN;
+	}
+
+	/* Check to see if we have all of the POST data yet */
+	chain_len = parser_frame_chain_length(cur_request_p);
+	if (chain_len < headers_len + content_len)
+	{
+		/*
+		 * We are still missing some of the request. This means that we need
+		 * to follow the normal "incomplete request" proxy process.
+		 * Proxy will handle this case exactly like case of incomplete http
+		 * headers; i.e original request will be strored in the next_request_p
+		 * and when more data arrives proxy will reparse the whole request
+		 */
+		ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
+						  ULOG_NO666, headers_len, content_len, chain_len, 0, 0, 0, 0);
+		return SEC_REQ_LOGIN_POST_INCOMPLETE;
+	}
+
+	if (site && site->vsite_type == SITE_SHARED && content_id != CHOOSESITE_ID)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Non-choosesite could not be accessed for shared site.");
+		sec_generate_choose_site_redirect(sec_data, site);
+
+		return SEC_REQ_LOGIN;
+	}
+
+	switch (content_id)
+	{
+	case LOGIN_ID:
+	case REGISTER_ID:
+		return sec_process_login_post(sec_data, session, site,
+									  cur_request_p, content_len,
+									  headers_len);
+		break;
 	case RADIUS_CHAL_ID:
 		return sec_process_radius_chal_post(sec_data, session, site,
+											cur_request_p, content_len,
+											headers_len);
+#ifdef SM_ISREADY
+	case NEXTOKEN_ID:
+		return sec_process_nextoken_post(client_conn, site,
 										 cur_request_p, content_len,
 										 headers_len);
-#ifdef SM_ISREADY
-        case NEXTOKEN_ID:
-            return sec_process_nextoken_post(client_conn, site,
-                                             cur_request_p, content_len,
-                                             headers_len);
-        case NEWPIN_ID:
-        case AI_NEWPIN_ID:
-            return sec_process_new_pin_post(client_conn, site,
-                                            cur_request_p, content_len,
-                                            headers_len);
-            break;
-        case HTTPAUTH_ID:
-            return sec_process_http_auth_post(client_conn, site,
-                                              cur_request_p, content_len,
-                                              headers_len);
-            break;
+	case NEWPIN_ID:
+	case AI_NEWPIN_ID:
+		return sec_process_new_pin_post(client_conn, site,
+										cur_request_p, content_len,
+										headers_len);
+		break;
+	case HTTPAUTH_ID:
+		return sec_process_http_auth_post(client_conn, site,
+										  cur_request_p, content_len,
+										  headers_len);
+		break;
 #endif
-        case NAVIGATE_ID:
-            return sec_process_navigate_post(sec_data, site,
-                                             cur_request_p, content_len,
-                                             headers_len);
-        case PASSCHANGE_ID:
-            return sec_process_passchange_post(sec_data, session, site,
-                                               cur_request_p, content_len,
-                                               headers_len);
-            break;
-		case PASSCHANGE_LDAP_ID:
-			return sec_process_passchange_ldap_post(sec_data, session, site,
-                                               cur_request_p, content_len,
-                                               headers_len);
-            break;
-        case SMS_ID:
-            return sec_process_sms_post(sec_data, session, site,
-                                               cur_request_p, content_len,
-                                               headers_len);
-            break;
-        case SMX_ID:
-            return sec_process_smx_post(sec_data, session, site,
-                                               cur_request_p, content_len,
-                                               headers_len);
-            break;
-        case FSHARE_AUTH_ID:
-            return sec_process_fshare_auth_post(sec_data, session, site,
-                                                cur_request_p, content_len,
-                                                headers_len);
-            break;
-        case CHOOSESITE_ID:
-            return sec_process_choosesite_post(sec_data, site,
-                                               cur_request_p, content_len,
-                                               headers_len);
-            break;
-        case CLIENT_LOG_ID:
-            return sec_process_client_log_post(sec_data, cur_request_p, content_len, headers_len);
-	    break;
-        case APP_LOGIN_ID:
-            return sec_process_app_login_post(sec_data, site, cur_request_p, content_len, headers_len);
-        case DEVICE_LOGOUT_ID:
-            return sec_process_device_logout_post(sec_data, site, cur_request_p, content_len, headers_len);
-		case HWID_DEVICE_DEL_ID:
-			return sec_process_hwid_del_post(sec_data, cur_request_p, content_len, headers_len);
-        default: 
-            return SEC_REQ_PROXY;
-    }
-	
-
-    return SEC_REQ_PROXY;
-}
-
-#define SEC_URL_FIELD_NAME      "url"
-int32_t 
-sec_process_navigate_post(smanager_data_t *sec_data, 
-		sec_vsite_t *site, struct frame *cur_request_p, 
-		length_t content_len, length_t headers_len)
-{
-    sec_session_t *session = sec_data->session;
-    post_field_t *curr_field = NULL, *url_field = NULL;
-    uint8_t *absolute_url = NULL;
-    int32_t abs_url_len = 0, unescape_len;
-    int32_t i;
-
-    if (session == NULL) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "no session available");
-        sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_SESSEXP, 200);
-        return SEC_REQ_LOGIN;
-    }
-
-    if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL)) {
-        ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "failed to extract the post fields");
-
-        return SEC_REQ_ERR;
-    }
-
-    STAILQ_FOREACH(curr_field, &post_field_list, next_field) {
-        if (curr_field->value_len > 0 && curr_field->name_len > 0) {
-            if (!strcmp(curr_field->name, SEC_URL_FIELD_NAME)) {
-                url_field = curr_field;
-            } 
-        }
-    }
+	case NAVIGATE_ID:
+		return sec_process_navigate_post(sec_data, site,
+										 cur_request_p, content_len,
+										 headers_len);
+	case PASSCHANGE_ID:
+		return sec_process_passchange_post(sec_data, session, site,
+										   cur_request_p, content_len,
+										   headers_len);
+		break;
+	case PASSCHANGE_LDAP_ID:
+		return sec_process_passchange_ldap_post(sec_data, session, site,
+												cur_request_p, content_len,
+												headers_len);
+		break;
+	case SMS_ID:
+		return sec_process_sms_post(sec_data, session, site,
+									cur_request_p, content_len,
+									headers_len);
+		break;
+	case SMX_ID:
+		return sec_process_smx_post(sec_data, session, site,
+									cur_request_p, content_len,
+									headers_len);
+		break;
+	case FSHARE_AUTH_ID:
+		return sec_process_fshare_auth_post(sec_data, session, site,
+											cur_request_p, content_len,
+											headers_len);
+		break;
+	case CHOOSESITE_ID:
+		return sec_process_choosesite_post(sec_data, site,
+										   cur_request_p, content_len,
+										   headers_len);
+		break;
+	case CLIENT_LOG_ID:
+		return sec_process_client_log_post(sec_data, cur_request_p, content_len, headers_len);
+		break;
+	case APP_LOGIN_ID:
+		return sec_process_app_login_post(sec_data, site, cur_request_p, content_len, headers_len);
+	case DEVICE_LOGOUT_ID:
+		return sec_process_device_logout_post(sec_data, site, cur_request_p, content_len, headers_len);
+	case HWID_DEVICE_DEL_ID:
+		return sec_process_hwid_del_post(sec_data, cur_request_p, content_len, headers_len);
+	default:
+		return SEC_REQ_PROXY;
+	}
+
+	return SEC_REQ_PROXY;
+}
+
+#define SEC_URL_FIELD_NAME "url"
+int32_t
+sec_process_navigate_post(smanager_data_t *sec_data,
+						  sec_vsite_t *site, struct frame *cur_request_p,
+						  length_t content_len, length_t headers_len)
+{
+	sec_session_t *session = sec_data->session;
+	post_field_t *curr_field = NULL, *url_field = NULL;
+	uint8_t *absolute_url = NULL;
+	int32_t abs_url_len = 0, unescape_len;
+	int32_t i;
+
+	if (session == NULL)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "no session available");
+		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_SESSEXP, 200);
+		return SEC_REQ_LOGIN;
+	}
+
+	if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL))
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "failed to extract the post fields");
+
+		return SEC_REQ_ERR;
+	}
+
+	STAILQ_FOREACH(curr_field, &post_field_list, next_field)
+	{
+		if (curr_field->value_len > 0 && curr_field->name_len > 0)
+		{
+			if (!strcmp(curr_field->name, SEC_URL_FIELD_NAME))
+			{
+				url_field = curr_field;
+			}
+		}
+	}
 
-    if (url_field == NULL) {
+	if (url_field == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "url_field is NULL");
-        post_field_list_dtor();
-        return SEC_REQ_WELCOME_REDIRECT;
-    }
-
-    if (url_field->value_len < SLEN(SEC_SCHEME_HTTP_STR) ||
-        strncmp(url_field->value, SEC_SCHEME_HTTP_STR,
-                SLEN(SEC_SCHEME_HTTP_STR))) 
-    {
-        /* + 3 for "://" */
-        abs_url_len = url_field->value_len + SLEN(SEC_SCHEME_HTTP_STR) + 3;
-        absolute_url = (uint8_t *)malloc(abs_url_len);
-        if (absolute_url == NULL) {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_navigate_post: ran out of memory");
-            post_field_list_dtor();
-            return SEC_REQ_WELCOME_REDIRECT;
-        }
-        bcopy(SEC_SCHEME_HTTP_STR, absolute_url, SLEN(SEC_SCHEME_HTTP_STR));
-        bcopy("://", absolute_url + SLEN(SEC_SCHEME_HTTP_STR), 3);
-
-        if (unescape_string(url_field->value, url_field->value_len,
-                     absolute_url + SLEN(SEC_SCHEME_HTTP_STR) + 3,
-                     &unescape_len, url_field->value_len) < 0)
-        {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "failed to unescape %s", url_field->value);
-            post_field_list_dtor();
-            free(absolute_url);
-            return SEC_REQ_WELCOME_REDIRECT;
-        }
-
-        if (unescape_len > SEC_MAX_NAVIGATE_URL_LEN) {
-            free(absolute_url);
-            post_field_list_dtor();
-            return SEC_REQ_ERR;
-        }
-
-        for (i = SLEN(SEC_SCHEME_HTTP_STR) + 3; i < unescape_len; i++) {
-            if (absolute_url[i] == '/') {
-                break;
-            } else if (!strncmp(absolute_url + i, "://", 3)) {
-                url_field->value[i - (SLEN(SEC_SCHEME_HTTP_STR) + 3)] = '\0';
-                free(absolute_url);
-                post_field_list_dtor();
-                return SEC_REQ_ERR;
-            }
-        }
-        abs_url_len = unescape_len + SLEN(SEC_SCHEME_HTTP_STR) + 3;
-    } else {
-        absolute_url = (uint8_t *)malloc(url_field->value_len);
-        if (absolute_url == NULL) {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "ran out of memory");
-            post_field_list_dtor();
+		post_field_list_dtor();
+		return SEC_REQ_WELCOME_REDIRECT;
+	}
+
+	if (url_field->value_len < SLEN(SEC_SCHEME_HTTP_STR) ||
+		strncmp(url_field->value, SEC_SCHEME_HTTP_STR,
+				SLEN(SEC_SCHEME_HTTP_STR)))
+	{
+		/* + 3 for "://" */
+		abs_url_len = url_field->value_len + SLEN(SEC_SCHEME_HTTP_STR) + 3;
+		absolute_url = (uint8_t *)malloc(abs_url_len);
+		if (absolute_url == NULL)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_navigate_post: ran out of memory");
+			post_field_list_dtor();
+			return SEC_REQ_WELCOME_REDIRECT;
+		}
+		bcopy(SEC_SCHEME_HTTP_STR, absolute_url, SLEN(SEC_SCHEME_HTTP_STR));
+		bcopy("://", absolute_url + SLEN(SEC_SCHEME_HTTP_STR), 3);
+
+		if (unescape_string(url_field->value, url_field->value_len,
+							absolute_url + SLEN(SEC_SCHEME_HTTP_STR) + 3,
+							&unescape_len, url_field->value_len) < 0)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "failed to unescape %s", url_field->value);
+			post_field_list_dtor();
+			free(absolute_url);
+			return SEC_REQ_WELCOME_REDIRECT;
+		}
+
+		if (unescape_len > SEC_MAX_NAVIGATE_URL_LEN)
+		{
+			free(absolute_url);
+			post_field_list_dtor();
+			return SEC_REQ_ERR;
+		}
+
+		for (i = SLEN(SEC_SCHEME_HTTP_STR) + 3; i < unescape_len; i++)
+		{
+			if (absolute_url[i] == '/')
+			{
+				break;
+			}
+			else if (!strncmp(absolute_url + i, "://", 3))
+			{
+				url_field->value[i - (SLEN(SEC_SCHEME_HTTP_STR) + 3)] = '\0';
+				free(absolute_url);
+				post_field_list_dtor();
+				return SEC_REQ_ERR;
+			}
+		}
+		abs_url_len = unescape_len + SLEN(SEC_SCHEME_HTTP_STR) + 3;
+	}
+	else
+	{
+		absolute_url = (uint8_t *)malloc(url_field->value_len);
+		if (absolute_url == NULL)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "ran out of memory");
+			post_field_list_dtor();
 			free(absolute_url);
-            return SEC_REQ_WELCOME_REDIRECT;
-        }
+			return SEC_REQ_WELCOME_REDIRECT;
+		}
 
-        if (unescape_string(url_field->value, url_field->value_len,
-                     absolute_url, &abs_url_len, url_field->value_len) < 0)
-        {
-            ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "failed to unescape %s", url_field->value);
-            post_field_list_dtor();
-            free(absolute_url);
-            return SEC_REQ_WELCOME_REDIRECT;
-        }
-
-        if (abs_url_len > SEC_MAX_NAVIGATE_URL_LEN) {
-            free(absolute_url);
-            post_field_list_dtor();
-            return SEC_REQ_ERR;
-        }
-    } 
+		if (unescape_string(url_field->value, url_field->value_len,
+							absolute_url, &abs_url_len, url_field->value_len) < 0)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "failed to unescape %s", url_field->value);
+			post_field_list_dtor();
+			free(absolute_url);
+			return SEC_REQ_WELCOME_REDIRECT;
+		}
+
+		if (abs_url_len > SEC_MAX_NAVIGATE_URL_LEN)
+		{
+			free(absolute_url);
+			post_field_list_dtor();
+			return SEC_REQ_ERR;
+		}
+	}
 
 	absolute_url[abs_url_len] = '\0';
 	DBG_PRINTF("redirect to absolute url: %s", absolute_url);
 	ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-	                  ULOG_NO667, 0,0,0,0,0,0,0);
+					  ULOG_NO667, 0, 0, 0, 0, 0, 0, 0);
 	strncpy(sec_data->redirect_url, absolute_url, SEC_MAX_NAVIGATE_URL_LEN);
-    free(absolute_url);
+	free(absolute_url);
 
-    post_field_list_dtor();
+	post_field_list_dtor();
 
-    return SEC_REQ_EXT_REDIRECT; /* XXX should come up with a new value */
+	return SEC_REQ_EXT_REDIRECT; /* XXX should come up with a new value */
 }
 
-void
-set_sec_req_has_test_cookie(smanager_data_t *sec_data, uint8_t val)
+void set_sec_req_has_test_cookie(smanager_data_t *sec_data, uint8_t val)
 {
-    if (val) {
-        SEC_SET(sec_data->flags, SDAT_REQ_TEST_COOKIE);
-    } else {
-        SEC_UNSET(sec_data->flags, SDAT_REQ_TEST_COOKIE);
-    }
+	if (val)
+	{
+		SEC_SET(sec_data->flags, SDAT_REQ_TEST_COOKIE);
+	}
+	else
+	{
+		SEC_UNSET(sec_data->flags, SDAT_REQ_TEST_COOKIE);
+	}
 }
 
 uint8_t
 get_sec_req_has_test_cookie(smanager_data_t *sec_data)
 {
-    return SEC_ISSET(sec_data->flags, SDAT_REQ_TEST_COOKIE);
+	return SEC_ISSET(sec_data->flags, SDAT_REQ_TEST_COOKIE);
 }
 
-int32_t 
+int32_t
 url_classify(url_policy_tree_t *tree, char *url, int32_t url_len)
 {
 	int32_t i, j;
@@ -14809,50 +16866,61 @@
 	patricia_node_t *found_node;
 	int32_t policies_matched = 0;
 
-	if (tree->policy_count == 0) {
+	if (tree->policy_count == 0)
+	{
 		return tree->default_policy;
 	}
 
-	for (i = 0; i < url_len; i++) {
+	for (i = 0; i < url_len; i++)
+	{
 		url[i] = tolower(url[i]);
 	}
 
-	for (i = 0; i < url_len; i++) {
+	for (i = 0; i < url_len; i++)
+	{
 
 		/* bug 15980 Michael Chin
-		 * we never need to compare the parameter 
+		 * we never need to compare the parameter
 		 * part in a url with url policy tree
 		 */
-		if (url[i] == '?' || url[i] == '#' || url[i] == '&') {
-			if (best_policy != NULL) {
+		if (url[i] == '?' || url[i] == '#' || url[i] == '&')
+		{
+			if (best_policy != NULL)
+			{
 				return best_policy->type;
 			}
 			return tree->default_policy;
 		}
-	
-		found_node = patricia_insearch(tree->policy_tree, url + i, url_len - i, 
+
+		found_node = patricia_insearch(tree->policy_tree, url + i, url_len - i,
 									   PATRICIA_MATCH_PREFIX);
-		if (found_node != NULL) {
-			
-			for (j = found_node->len; j > 0; j--) {
-				found_node = patricia_insearch(tree->policy_tree, 
-				                               url + i, j, 0);
+		if (found_node != NULL)
+		{
+
+			for (j = found_node->len; j > 0; j--)
+			{
+				found_node = patricia_insearch(tree->policy_tree,
+											   url + i, j, 0);
 
-				if (found_node != NULL) {
+				if (found_node != NULL)
+				{
 					curr_policy = (url_policy_t *)found_node->data;
 					policies_matched++;
 
-					if (best_policy == NULL || 
+					if (best_policy == NULL ||
 						best_policy->priority > curr_policy->priority)
 					{
 						best_policy = curr_policy;
-						if (best_policy->priority == 0) {
+						if (best_policy->priority == 0)
+						{
 							return best_policy->type;
 						}
-					} 
+					}
 
-					if (policies_matched == tree->policy_count) {
-						if (best_policy != NULL) {
+					if (policies_matched == tree->policy_count)
+					{
+						if (best_policy != NULL)
+						{
 							return best_policy->type;
 						}
 
@@ -14863,7 +16931,8 @@
 		}
 	}
 
-	if (best_policy == NULL) {
+	if (best_policy == NULL)
+	{
 		return tree->default_policy;
 	}
 
@@ -14872,8 +16941,8 @@
 
 static int32_t
 sec_process_passchange_post(smanager_data_t *sec_data, sec_session_t *session,
-        sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-        length_t headers_len)
+							sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+							length_t headers_len)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	int32_t result;
@@ -14882,162 +16951,180 @@
 
 	static char escaped_newpasswd[(LONG_PASSWORD_LEN * ESCAPE_EXFACTOR) + 1];
 	static char escaped_newpasswd2[(LONG_PASSWORD_LEN * ESCAPE_EXFACTOR) + 1];
-	
+
 	escaped_newpasswd[0] = '\0';
 	escaped_newpasswd2[0] = '\0';
-	
+
 	DBG_PRINTF("entry...");
 	/* check session */
-	if (session == NULL) {
+	if (session == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "no session available");
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_SESSEXP, 200);
 		return SEC_REQ_LOGIN;
 	}
 	/* extract the new password */
 	result = extract_new_password(site, cur_request_p, headers_len,
-				       content_len, escaped_newpasswd,
-				       escaped_newpasswd2, &cancel);
-	if (cancel) {
+								  content_len, escaped_newpasswd,
+								  escaped_newpasswd2, &cancel);
+	if (cancel)
+	{
 		sec_generate_welcome_redirect(sec_data,
-             sec_data->session, sec_data->vsite_p,
-             WELCOME_PATH, FALSE);
+									  sec_data->session, sec_data->vsite_p,
+									  WELCOME_PATH, FALSE);
 
 		return SEC_REQ_WELCOME_REDIRECT;
-	}			       
-    if (result != CHANGE_PASS_OK) {
-	    ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "extract the uname/passwd failed, the result code %d", result);
-	    /* TODO: set the error msg
-	     *
-	     * return this so that sm action will be set 
-	     * "SMGR_CHANGEPASS_REDIRECT" at stage_handle_post_req
-	     */
-		if (result == CHANGE_PASS_EMPTYPASS) {
+	}
+	if (result != CHANGE_PASS_OK)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "extract the uname/passwd failed, the result code %d", result);
+		/* TODO: set the error msg
+		 *
+		 * return this so that sm action will be set
+		 * "SMGR_CHANGEPASS_REDIRECT" at stage_handle_post_req
+		 */
+		if (result == CHANGE_PASS_EMPTYPASS)
+		{
 			error_id = 391;
-		} else if (result == CHANGE_PASS_INCONSISTENT) {
+		}
+		else if (result == CHANGE_PASS_INCONSISTENT)
+		{
 			error_id = 393;
-		} else if (result == USER_PASS_PASS_UNESCAPE_FAIL) {
+		}
+		else if (result == USER_PASS_PASS_UNESCAPE_FAIL)
+		{
 			error_id = 614;
-		} else if (result == USER_PASS_USER_FAIL) {
+		}
+		else if (result == USER_PASS_USER_FAIL)
+		{
 			error_id = 263;
-		} 
+		}
 
 		/* error page */
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-		    	SEC_CUSTOM_ERR_NEWPASSCHECKFAIL,
-		    	sec_language_get_msg_ex(sec_data, error_id), 
-				sec_data->servername);
+									SEC_CUSTOM_ERR_NEWPASSCHECKFAIL,
+									sec_language_get_msg_ex(sec_data, error_id),
+									sec_data->servername);
 
-	    return SEC_REQ_PASSCHANGE_REDIRECT;
+		return SEC_REQ_PASSCHANGE_REDIRECT;
 	}
-	
+
 	if (issue_changepass_request(sec_data->client_conn, sec_data->vsite_p->name,
-	                      session->username, escaped_newpasswd, session->aaa_request_id, session->unique_id) != SEC_SUCCESS)
+								 session->username, escaped_newpasswd, session->aaa_request_id, session->unique_id) != SEC_SUCCESS)
 	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "issue change password failed");
 
 		/* redirect to error page */
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-		    	SEC_CUSTOM_ERR_PASSWORDCHANGEFAIL,
-		    	sec_language_get_msg_ex(sec_data, 263), 
-			sec_data->servername);			
-			
-		return SEC_REQ_PASSCHANGE_REDIRECT;
+									SEC_CUSTOM_ERR_PASSWORDCHANGEFAIL,
+									sec_language_get_msg_ex(sec_data, 263),
+									sec_data->servername);
 
+		return SEC_REQ_PASSCHANGE_REDIRECT;
 	}
 
 	DBG_PRINTF("successfully sent change passwd request to aaa %s, %s", session->username, escaped_newpasswd);
-	
+
 	/* sucess */
 	return SEC_REQ_PASSCHANGE_SENT;
 }
 
 static int32_t
 sec_process_passchange_ldap_post(smanager_data_t *sec_data, sec_session_t *session,
-        sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-        length_t headers_len)
+								 sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+								 length_t headers_len)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	int32_t result;
 	int32_t error_id;
 	int32_t cancel = 0;
-	
+
 	static char escaped_newpasswd[(LONG_PASSWORD_LEN * ESCAPE_EXFACTOR) + 1];
 	static char escaped_newpasswd2[(LONG_PASSWORD_LEN * ESCAPE_EXFACTOR) + 1];
 
 	escaped_newpasswd[0] = '\0';
 	escaped_newpasswd2[0] = '\0';
-	
+
 	DBG_PRINTF("entry...");
 	/* check session */
-	if (session == NULL) {
+	if (session == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "no session available");
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_SESSEXP, 200);
 		return SEC_REQ_LOGIN;
-	}	
+	}
 
 	/* extract the new password */
 	result = extract_new_password(site, cur_request_p, headers_len,
-				       content_len, escaped_newpasswd,
-				       escaped_newpasswd2, &cancel);
-	if (cancel) {
+								  content_len, escaped_newpasswd,
+								  escaped_newpasswd2, &cancel);
+	if (cancel)
+	{
 		sec_generate_welcome_redirect(sec_data,
-             sec_data->session, sec_data->vsite_p,
-             WELCOME_PATH, FALSE);
+									  sec_data->session, sec_data->vsite_p,
+									  WELCOME_PATH, FALSE);
 
 		return SEC_REQ_WELCOME_REDIRECT;
-	}			       
-    if (result != CHANGE_PASS_OK) {
-	    ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "extract the uname/passwd for ldap failed, the result code %d", result);
-	    /* TODO: set the error msg
-	     *
-	     * return this so that sm action will be set 
-	     * "SMGR_CHANGEPASS_REDIRECT" at stage_handle_post_req
-	     */
-		if (result == CHANGE_PASS_EMPTYPASS) {
+	}
+	if (result != CHANGE_PASS_OK)
+	{
+		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "extract the uname/passwd for ldap failed, the result code %d", result);
+		/* TODO: set the error msg
+		 *
+		 * return this so that sm action will be set
+		 * "SMGR_CHANGEPASS_REDIRECT" at stage_handle_post_req
+		 */
+		if (result == CHANGE_PASS_EMPTYPASS)
+		{
 			error_id = 391;
-		} else if (result == CHANGE_PASS_INCONSISTENT) {
+		}
+		else if (result == CHANGE_PASS_INCONSISTENT)
+		{
 			error_id = 393;
-		} else if (result == USER_PASS_PASS_UNESCAPE_FAIL) {
+		}
+		else if (result == USER_PASS_PASS_UNESCAPE_FAIL)
+		{
 			error_id = 614;
-		} else if (result == USER_PASS_USER_FAIL) {
+		}
+		else if (result == USER_PASS_USER_FAIL)
+		{
 			error_id = 263;
-		} 
+		}
 
 		/* error page */
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-		    	SEC_CUSTOM_ERR_NEWPASSCHECKFAIL,
-		    	sec_language_get_msg_ex(sec_data, error_id), 
-				sec_data->servername);
+									SEC_CUSTOM_ERR_NEWPASSCHECKFAIL,
+									sec_language_get_msg_ex(sec_data, error_id),
+									sec_data->servername);
 
-	    return SEC_REQ_PASSCHANGE_LDAP_REDIRECT;
+		return SEC_REQ_PASSCHANGE_LDAP_REDIRECT;
 	}
-	
+
 	if (issue_changepass_ldap_request(sec_data->client_conn, sec_data->vsite_p->name,
-	                      session->username, escaped_newpasswd, session->aaa_request_id,
-					session->ldap_pwd_policy, session->current_ldap_server, session->unique_id) != SEC_SUCCESS)
+									  session->username, escaped_newpasswd, session->aaa_request_id,
+									  session->ldap_pwd_policy, session->current_ldap_server, session->unique_id) != SEC_SUCCESS)
 	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "issue change ldap password failed");
 
 		/* redirect to error page */
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-		    	SEC_CUSTOM_ERR_PASSWORDCHANGEFAIL,
-		    	sec_language_get_msg_ex(sec_data, 263), 
-			sec_data->servername);			
-			
-		return SEC_REQ_PASSCHANGE_LDAP_REDIRECT;
+									SEC_CUSTOM_ERR_PASSWORDCHANGEFAIL,
+									sec_language_get_msg_ex(sec_data, 263),
+									sec_data->servername);
 
+		return SEC_REQ_PASSCHANGE_LDAP_REDIRECT;
 	}
 
 	DBG_PRINTF("successfully sent change ldap passwd request to aaa %s, %s", session->username, escaped_newpasswd);
-	
+
 	/* sucess */
 	return SEC_REQ_PASSCHANGE_LDAP_SENT;
 }
 
 static int32_t
 sec_process_sms_post(smanager_data_t *sec_data, sec_session_t *session,
-        sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-        length_t headers_len)
+					 sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+					 length_t headers_len)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	int32_t result, result1;
@@ -15051,19 +17138,21 @@
 	struct in_addr ip4;
 	ip4.s_addr = sec_data->serverip;
 	inet_ntop(AF_INET, &ip4, ipstr, INET6_ADDRSTRLEN);
-	
+
 	sms_verification_code[0] = '\0';
-	
+
 	/* check session */
-	if (session == NULL) {
+	if (session == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "no session available");
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_SESSEXP, 200);
 		return SEC_REQ_LOGIN;
 	}
 	/* extract the verification code */
 	result = extract_sms_verification_code(site, cur_request_p, headers_len,
-				       content_len, sms_verification_code, &resend, &cancel);
-	if (cancel) {
+										   content_len, sms_verification_code, &resend, &cancel);
+	if (cancel)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "AAA challenge request cancelled.");
 
 		sessmgr_session_delete(session->session_id, uproxy_ipc_tunnel_id);
@@ -15074,12 +17163,14 @@
 
 		return SEC_REQ_LOGIN;
 	}
-	if (resend == 0) {
-		if (session->sms_resend_times++ < SMS_RESNED_VCODE_MAX) {
+	if (resend == 0)
+	{
+		if (session->sms_resend_times++ < SMS_RESNED_VCODE_MAX)
+		{
 			/* need to send resend sms vcode request to AAA */
 			if (issue_sms_resend_request(sec_data->client_conn, sec_data->vsite_p->name,
-		                      session->username, session->method_id, session->sms_phone,
-		                      session->sms_email) != SEC_SUCCESS)
+										 session->username, session->method_id, session->sms_phone,
+										 session->sms_email) != SEC_SUCCESS)
 			{
 				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "issue verification code resend failed");
 				sessmgr_session_delete(session->session_id, uproxy_ipc_tunnel_id);
@@ -15087,73 +17178,88 @@
 				sec_data->session_id = INVALID_SESSION_ID;
 				/* redirect to error page */
 				sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-				    	SEC_CUSTOM_ERR_FAILLOGIN,
-				    	sec_language_get_msg_ex(sec_data, 210));			
-					
-				return SEC_REQ_OTP_REDIRECT;
+											SEC_CUSTOM_ERR_FAILLOGIN,
+											sec_language_get_msg_ex(sec_data, 210));
 
+				return SEC_REQ_OTP_REDIRECT;
 			}
 			session->sms_check_fail_times = 0;
 			return SEC_REQ_OTP_RESEND;
-		} else {
+		}
+		else
+		{
 			sec_generate_sms_auth_redirect(sec_data, session, site);
 			return SEC_REQ_OTP_REDIRECT;
 		}
-	} else {	       
-	    if (result < 0) {
-		    ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "extract the verification code failed");
+	}
+	else
+	{
+		if (result < 0)
+		{
+			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "extract the verification code failed");
 
-	 		sessmgr_session_delete(session->session_id, uproxy_ipc_tunnel_id);
+			sessmgr_session_delete(session->session_id, uproxy_ipc_tunnel_id);
 			sec_data->session = NULL;
 			sec_data->session_id = INVALID_SESSION_ID;
 
 			error_id = 209;
 			sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-			    	SEC_CUSTOM_ERR_FAILLOGIN,
-			    	sec_language_get_msg_ex(sec_data, error_id));
+										SEC_CUSTOM_ERR_FAILLOGIN,
+										sec_language_get_msg_ex(sec_data, error_id));
 
-		    return SEC_REQ_OTP_REDIRECT;
+			return SEC_REQ_OTP_REDIRECT;
 		}
-		
-		if (result == 0 || strcasecmp(sms_verification_code, session->sms_vcode) != 0) {
+
+		if (result == 0 || strcasecmp(sms_verification_code, session->sms_vcode) != 0)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "wrong verification code");
 			/* verification code is not correct */
-			if (session->sms_check_fail_times++ >= SMS_CHECK_FAIL_MAX - 1) {
+			if (session->sms_check_fail_times++ >= SMS_CHECK_FAIL_MAX - 1)
+			{
 				/* redirect to login */
 				slog1(SMANAGER_VCODE_FAIL, vsite->name, session->username,
-				             NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
-				             ipstr, sec_data->port, sec_data->servername,
-				             sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
-				             -1, -1, WELF_TYPE_VPN, 0);
+					  NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
+					  ipstr, sec_data->port, sec_data->servername,
+					  sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
+					  -1, -1, WELF_TYPE_VPN, 0);
 				sessmgr_session_delete(session->session_id, uproxy_ipc_tunnel_id);
 				sec_data->session = NULL;
 				sec_data->session_id = INVALID_SESSION_ID;
 				sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_FAILLOGIN, 640);
 				return SEC_REQ_LOGIN;
-			} else {
+			}
+			else
+			{
 				/* stay on SMS auth page */
 				sec_generate_sms_auth_redirect(sec_data, session, site);
 				return SEC_REQ_OTP_REDIRECT;
 			}
-		} else {
+		}
+		else
+		{
 			/* verification code correct */
 			/* modify session */
-			
+
 			SEC_UNSET(sec_data->flags, SDAT_OTP_AUTHENTICATE);
 			SEC_UNSET(session->flags, SESS_OTP_AUTH);
-			if (SEC_ISSET(session->flags, SESS_UA_CHPASSWD) || 
-				SEC_ISSET(session->flags, SESS_UA_CHPASSWD_LDAP)) {
-				if (SEC_ISSET(session->flags, SESS_UA_CHPASSWD)){
+			if (SEC_ISSET(session->flags, SESS_UA_CHPASSWD) ||
+				SEC_ISSET(session->flags, SESS_UA_CHPASSWD_LDAP))
+			{
+				if (SEC_ISSET(session->flags, SESS_UA_CHPASSWD))
+				{
 					SEC_SET(sec_data->flags, SDAT_FORCE_CHANGEPASS);
 					sec_data->action = SMGR_CHANGEPASS_REDIRECT;
 				}
-				if (SEC_ISSET(session->flags, SESS_UA_CHPASSWD_LDAP)){
+				if (SEC_ISSET(session->flags, SESS_UA_CHPASSWD_LDAP))
+				{
 					SEC_SET(sec_data->flags, SDAT_FORCE_CHANGEPASS_LDAP);
 					sec_data->action = SMGR_CHANGEPASS_LDAP_REDIRECT;
 				}
-			} else {
+			}
+			else
+			{
 				SEC_SET(session->flags, SESS_AUTHENTICATED);
-				sec_data->action= SMGR_WELCOME_REDIRECT;
+				sec_data->action = SMGR_WELCOME_REDIRECT;
 			}
 			return SEC_REQ_OTP_PASS;
 		}
@@ -15164,7 +17270,7 @@
 
 uint8_t
 issue_smx_auth_resp(struct smanager_data *sec_data, char *vsite_name, char *username,
-                                  char *passwd, char *passwd1, char *passwd2, uint8_t request_type, unsigned long step)
+					char *passwd, char *passwd1, char *passwd2, uint8_t request_type, unsigned long step)
 {
 	static struct sp_auth_request req;
 	int ret_val;
@@ -15174,44 +17280,55 @@
 	req.request_type = request_type;
 	req.transaction_id = (intptr_t)INSERT_IPC_TXN(sec_data->client_conn);
 	req.step = step;
-	if (req.transaction_id == (intptr_t)0) {
+	if (req.transaction_id == (intptr_t)0)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Create ipc context for smx failed ipc_errno %d", ipc_errno);
 		return SEC_FAIL;
 	}
-	
+
 	/* send back aaa request id for aaa to find out request entry before */
-	if (sec_data->session != NULL) {
+	if (sec_data->session != NULL)
+	{
 		aaa_request_id = sec_data->session->aaa_request_id;
 	}
 	req.aaa_request_id = aaa_request_id;
-	
-	if (vsite_name != NULL) {
-		strncpy(req.site_id, vsite_name, sizeof(req.site_id)-1);
+
+	if (vsite_name != NULL)
+	{
+		strncpy(req.site_id, vsite_name, sizeof(req.site_id) - 1);
 	}
-	if (username != NULL) {
+	if (username != NULL)
+	{
 		strncpy(req.username, username, sizeof(req.username) - 1);
 	}
-	if (passwd != NULL) {
+	if (passwd != NULL)
+	{
 		strncpy(req.pass[0], passwd, sizeof(req.pass[0]) - 1);
 	}
-	if (passwd1 != NULL) {
+	if (passwd1 != NULL)
+	{
 		strncpy(req.pass[1], passwd1, sizeof(req.pass[1]) - 1);
 	}
-	if (passwd2 != NULL) {
+	if (passwd2 != NULL)
+	{
 		strncpy(req.pass[2], passwd2, sizeof(req.pass[2]) - 1);
 	}
 	req.client_ip = AMP_REMOTE_IP(sec_data->client_conn).s_addr;
 
-	if (sec_data->session != NULL) {
+	if (sec_data->session != NULL)
+	{
 		strncpy(req.med_id, sec_data->session->method_id, sizeof(req.med_id));
 		/* use req.extra_params[0] to save smx server name */
 		strncpy(req.extra_params[0], sec_data->session->smx_server_name, sizeof(sec_data->session->smx_server_name));
 		/* different step need different params */
 		/* these follow comment should be same in aaa_smx.c smx_send_request_pkt() */
-		if (step == GET_MATRIX_RESOURCE) {
+		if (step == GET_MATRIX_RESOURCE)
+		{
 			/* step 1 just need username*/
-		} else if (step == CONFIRM_PASSWORD) {
-			/* use req.extra_params[1] to save matrixResource 
+		}
+		else if (step == CONFIRM_PASSWORD)
+		{
+			/* use req.extra_params[1] to save matrixResource
 			 * use req.extra_params[2] to save boxCount
 			 * use req.extra_params[3] to save receiptNo
 			 * use req.extra_params[4] to save charcheck
@@ -15220,16 +17337,20 @@
 			strncpy(req.extra_params[2], sec_data->session->smx_result.boxCount, sizeof(sec_data->session->smx_result.boxCount));
 			strncpy(req.extra_params[3], sec_data->session->smx_result.receiptNo, sizeof(sec_data->session->smx_result.receiptNo));
 			strncpy(req.extra_params[4], sec_data->session->smx_result.charcheck, sizeof(sec_data->session->smx_result.charcheck));
-		} else if (step == GET_MATRIX_RESOURCE_C) {
-			/* use req.extra_params[1] to save charcheck 
+		}
+		else if (step == GET_MATRIX_RESOURCE_C)
+		{
+			/* use req.extra_params[1] to save charcheck
 			 * use req.extra_params[2] to save matrixResource
 			 * use req.extra_params[3] to save boxCount
 			 */
 			strncpy(req.extra_params[1], sec_data->session->smx_result.charcheck, sizeof(sec_data->session->smx_result.charcheck));
 			strncpy(req.extra_params[2], sec_data->session->smx_result.matrixResource, sizeof(sec_data->session->smx_result.matrixResource));
 			strncpy(req.extra_params[3], sec_data->session->smx_result.boxCount, sizeof(sec_data->session->smx_result.boxCount));
-		} else if (step == COMMIT_PASSWORD) {
-			/* use req.extra_params[1] to save receiptNo 
+		}
+		else if (step == COMMIT_PASSWORD)
+		{
+			/* use req.extra_params[1] to save receiptNo
 			 * use req.extra_params[2] to save matrixResource
 			 * use req.extra_params[3] to save boxCount
 			 * use req.extra_params[4] to save charcheck
@@ -15239,162 +17360,174 @@
 			strncpy(req.extra_params[3], sec_data->session->smx_result.boxCount, sizeof(sec_data->session->smx_result.boxCount));
 			strncpy(req.extra_params[4], sec_data->session->smx_result.charcheck, sizeof(sec_data->session->smx_result.charcheck));
 		}
-		if (step == DECIDE_PASSWORD) {
-			/* use req.extra_params[1] to save receiptNo 
+		if (step == DECIDE_PASSWORD)
+		{
+			/* use req.extra_params[1] to save receiptNo
 			 * use req.extra_params[2] to save posPassword
-		 	 * use req.extra_params[3] to save func
+			 * use req.extra_params[3] to save func
 			 */
 			strncpy(req.extra_params[1], sec_data->session->smx_result.receiptNo, sizeof(sec_data->session->smx_result.receiptNo));
 			strncpy(req.extra_params[2], sec_data->session->smx_result.posPassword, sizeof(sec_data->session->smx_result.posPassword));
 			strncpy(req.extra_params[3], SMX_FUNC_OK, strlen(SMX_FUNC_OK));
-		}		
+		}
 	}
-	
-	if (hdl_to_aaa == NULL) {
+
+	if (hdl_to_aaa == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "handler to aaa is invalid");
 		return SEC_FAIL;
 	}
 
 	req.ipc_tunnel_id = uproxy_ipc_tunnel_id;
-	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0) {
+	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-		                "send request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
+						"send request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-		                "the single size of channel is %d, the len of req is %d",
-		                hdl_to_aaa->wr_channel->single_size, sizeof(req));
-		REMOVE_IPC_TXN((void*)req.transaction_id);
+						"the single size of channel is %d, the len of req is %d",
+						hdl_to_aaa->wr_channel->single_size, sizeof(req));
+		REMOVE_IPC_TXN((void *)req.transaction_id);
 		return SEC_FAIL;
 	}
 	DBG_PRINTF("send request to aaa success!");
 	return SEC_SUCCESS;
 }
 
-/* 
+/*
  * Need to normalize the username and password,
  * e.g., "abc&def" is transmitted as "abc%26def". What about trailing spaces?
  */
 static int32_t
 extract_smx_post(smanager_data_t *sec_data, sec_vsite_t *vsite, struct frame *frame_p,
-    length_t header_len, length_t content_len, uint8_t *username,
-    uint8_t *password, uint8_t *password1,  uint8_t *password2, uint8_t *action, uint8_t *cancel) 
+				 length_t header_len, length_t content_len, uint8_t *username,
+				 uint8_t *password, uint8_t *password1, uint8_t *password2, uint8_t *action, uint8_t *cancel)
 {
-    int32_t username_len = 0, password_len = 0, password1_len = 0, password2_len = 0, action_len = 0;
-    int32_t result, i;
-    post_field_t *curr_field;
-
-    username[0] = '\0';
-    password[0] = '\0';
-    password1[0] = '\0';
-    password2[0] = '\0';
-    action[0] = '\0';
-
-    if (!extract_post_fields(frame_p, header_len, content_len, NULL)) {
-        return USER_PASS_USER_FAIL;
-    }
-
-    STAILQ_FOREACH(curr_field, &post_field_list, next_field) {
-        if (curr_field->name_len > 0 && curr_field->value_len > 0) {
-            if (username_len <= 0 &&
-                (((vsite == NULL || vsite->uname_field == NULL) && 
-                 !strncasecmp(curr_field->name, "username",
-                              curr_field->name_len))
-                ||
-                (vsite != NULL && vsite->uname_field != NULL &&
-                 !strncasecmp(curr_field->name, vsite->uname_field,
-                              curr_field->name_len))))
-            {
-                /* We found the username */
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, username, &username_len,
-                             SEC_UNAME_LEN);
-                if (result < 0) {
-                    post_field_list_dtor();
-                    return USER_PASS_USER_UNESCAPE_FAIL;
-                }
-                username[username_len] = '\0';
-            } else if (password_len <= 0 && 
-                   (((vsite == NULL || vsite->pass_field == NULL) &&
-                    !strncasecmp(curr_field->name, "pwd",
-                                 curr_field->name_len))
-                   ||
-                    (vsite != NULL && vsite->pass_field != NULL &&
-                    !strncasecmp(curr_field->name, vsite->pass_field,
-                                 curr_field->name_len))))
-            {
-                /* We found the password */
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, password, &password_len,
-                             LONG_PASSWORD_LEN);
-                if (result < 0) {
-                    post_field_list_dtor();
-                    return USER_PASS_PASS_UNESCAPE_FAIL;
-                }
-                password[password_len] = '\0';
-            } else if (password1_len <= 0 && 
-                   (((vsite == NULL || vsite->pass1_field == NULL) &&
-                    !strncasecmp(curr_field->name, "pwd1",
-                                 curr_field->name_len))
-                   ||
-                    (vsite != NULL && vsite->pass1_field != NULL &&
-                    !strncasecmp(curr_field->name, vsite->pass1_field,
-                                 curr_field->name_len))))
-            {
-                /* We found password1 */
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, password1, &password1_len,
-                             LONG_PASSWORD_LEN);
-                if (result < 0) {
-                    post_field_list_dtor();
-                    return USER_PASS_PASS_UNESCAPE_FAIL;
-                }
-                password1[password1_len] = '\0';
-            } else if (password2_len <= 0 && 
-                   (((vsite == NULL || vsite->pass2_field == NULL) &&
-                    !strncasecmp(curr_field->name, "pwd2",
-                                 curr_field->name_len))
-                   ||
-                    (vsite != NULL && vsite->pass1_field != NULL &&
-                    !strncasecmp(curr_field->name, vsite->pass2_field,
-                                 curr_field->name_len))))
-            {
-                /* We found password1 */
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, password2, &password2_len,
-                             LONG_PASSWORD_LEN);
-                if (result < 0) {
-                    post_field_list_dtor();
-                    return USER_PASS_PASS_UNESCAPE_FAIL;
-                }
-                password2[password2_len] = '\0';
-            } else if (cancel && !strcasecmp(curr_field->name, "cancel")) {
-                *cancel = 1;
-            } else if (password1_len <= 0 && 
-                   (((vsite == NULL || vsite->pass1_field == NULL) &&
-                    !strncasecmp(curr_field->name, "option",
-                                 curr_field->name_len))))
-            {
-                /* We found action */
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, action, &action_len,
-                             AAA_SMX_ACTION_LEN);
-                if (result < 0) {
-                    post_field_list_dtor();
-                    return -1;
-                }
-                action[action_len] = '\0';
-            } 
-        }
-    }
-    post_field_list_dtor();
+	int32_t username_len = 0, password_len = 0, password1_len = 0, password2_len = 0, action_len = 0;
+	int32_t result, i;
+	post_field_t *curr_field;
+
+	username[0] = '\0';
+	password[0] = '\0';
+	password1[0] = '\0';
+	password2[0] = '\0';
+	action[0] = '\0';
 
-    return USER_PASS_OK;
-}
+	if (!extract_post_fields(frame_p, header_len, content_len, NULL))
+	{
+		return USER_PASS_USER_FAIL;
+	}
+
+	STAILQ_FOREACH(curr_field, &post_field_list, next_field)
+	{
+		if (curr_field->name_len > 0 && curr_field->value_len > 0)
+		{
+			if (username_len <= 0 &&
+				(((vsite == NULL || vsite->uname_field == NULL) &&
+				  !strncasecmp(curr_field->name, "username",
+							   curr_field->name_len)) ||
+				 (vsite != NULL && vsite->uname_field != NULL &&
+				  !strncasecmp(curr_field->name, vsite->uname_field,
+							   curr_field->name_len))))
+			{
+				/* We found the username */
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, username, &username_len,
+										 SEC_UNAME_LEN);
+				if (result < 0)
+				{
+					post_field_list_dtor();
+					return USER_PASS_USER_UNESCAPE_FAIL;
+				}
+				username[username_len] = '\0';
+			}
+			else if (password_len <= 0 &&
+					 (((vsite == NULL || vsite->pass_field == NULL) &&
+					   !strncasecmp(curr_field->name, "pwd",
+									curr_field->name_len)) ||
+					  (vsite != NULL && vsite->pass_field != NULL &&
+					   !strncasecmp(curr_field->name, vsite->pass_field,
+									curr_field->name_len))))
+			{
+				/* We found the password */
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, password, &password_len,
+										 LONG_PASSWORD_LEN);
+				if (result < 0)
+				{
+					post_field_list_dtor();
+					return USER_PASS_PASS_UNESCAPE_FAIL;
+				}
+				password[password_len] = '\0';
+			}
+			else if (password1_len <= 0 &&
+					 (((vsite == NULL || vsite->pass1_field == NULL) &&
+					   !strncasecmp(curr_field->name, "pwd1",
+									curr_field->name_len)) ||
+					  (vsite != NULL && vsite->pass1_field != NULL &&
+					   !strncasecmp(curr_field->name, vsite->pass1_field,
+									curr_field->name_len))))
+			{
+				/* We found password1 */
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, password1, &password1_len,
+										 LONG_PASSWORD_LEN);
+				if (result < 0)
+				{
+					post_field_list_dtor();
+					return USER_PASS_PASS_UNESCAPE_FAIL;
+				}
+				password1[password1_len] = '\0';
+			}
+			else if (password2_len <= 0 &&
+					 (((vsite == NULL || vsite->pass2_field == NULL) &&
+					   !strncasecmp(curr_field->name, "pwd2",
+									curr_field->name_len)) ||
+					  (vsite != NULL && vsite->pass1_field != NULL &&
+					   !strncasecmp(curr_field->name, vsite->pass2_field,
+									curr_field->name_len))))
+			{
+				/* We found password1 */
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, password2, &password2_len,
+										 LONG_PASSWORD_LEN);
+				if (result < 0)
+				{
+					post_field_list_dtor();
+					return USER_PASS_PASS_UNESCAPE_FAIL;
+				}
+				password2[password2_len] = '\0';
+			}
+			else if (cancel && !strcasecmp(curr_field->name, "cancel"))
+			{
+				*cancel = 1;
+			}
+			else if (password1_len <= 0 &&
+					 (((vsite == NULL || vsite->pass1_field == NULL) &&
+					   !strncasecmp(curr_field->name, "option",
+									curr_field->name_len))))
+			{
+				/* We found action */
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, action, &action_len,
+										 AAA_SMX_ACTION_LEN);
+				if (result < 0)
+				{
+					post_field_list_dtor();
+					return -1;
+				}
+				action[action_len] = '\0';
+			}
+		}
+	}
+	post_field_list_dtor();
 
+	return USER_PASS_OK;
+}
 
 static int32_t
 sec_process_smx_post(smanager_data_t *sec_data, sec_session_t *session,
-        sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-        length_t headers_len)
+					 sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+					 length_t headers_len)
 {
 	post_field_t *curr_field = NULL;
 	int32_t result;
@@ -15402,7 +17535,7 @@
 	struct in_addr ip4;
 	ip4.s_addr = sec_data->serverip;
 	inet_ntop(AF_INET, &ip4, ipstr, INET6_ADDRSTRLEN);
-	
+
 	static char escaped_uname[(USERNAME_LEN * ESCAPE_EXFACTOR) + 1];
 	static char escaped_passwd[(LONG_PASSWORD_LEN * ESCAPE_EXFACTOR) + 1];
 	static char escaped_passwd1[(LONG_PASSWORD_LEN * ESCAPE_EXFACTOR) + 1];
@@ -15411,39 +17544,46 @@
 
 	uint8_t cancel = 0;
 
-	if (session == NULL) {
+	if (session == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-		                "Session is invalid on processing smx psot");
+						"Session is invalid on processing smx psot");
 		sec_generate_login_response(sec_data, NULL, SEC_CUSTOM_ERR_LOGIN, 252);
 		return SEC_REQ_LOGIN;
 	}
 
 	result = extract_smx_post(sec_data, site, cur_request_p, headers_len,
-				       content_len, escaped_uname, escaped_passwd, escaped_passwd1, escaped_passwd2, escaped_action, &cancel);
+							  content_len, escaped_uname, escaped_passwd, escaped_passwd1, escaped_passwd2, escaped_action, &cancel);
 
-	if (session->smx_action != SEC_MESSAGE_TYPE_SMX_AUTH && session->smx_action != SEC_MESSAGE_TYPE_SMX_PASSWDCHANGE) {
+	if (session->smx_action != SEC_MESSAGE_TYPE_SMX_AUTH && session->smx_action != SEC_MESSAGE_TYPE_SMX_PASSWDCHANGE)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "smx action is not valid");
 		return SEC_REQ_ERR;
 	}
-	
-	if (!cancel) {
-		if (issue_smx_auth_resp(sec_data, sec_data->vsite_p->name, 
-	                      session->username, escaped_passwd, escaped_passwd1, escaped_passwd2, session->smx_action, session->smx_result.step) != 0)
+
+	if (!cancel)
+	{
+		if (issue_smx_auth_resp(sec_data, sec_data->vsite_p->name,
+								session->username, escaped_passwd, escaped_passwd1, escaped_passwd2, session->smx_action, session->smx_result.step) != 0)
 		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "issue smx auth resp failed");
 			return SEC_REQ_ERR;
 		}
-	} else {
+	}
+	else
+	{
 		if (session->smx_result.step == CONFIRM_PASSWORD ||
-		    SEC_ISSET(session->flags, SESS_SMX_CHANGEPASS)) {
+			SEC_ISSET(session->flags, SESS_SMX_CHANGEPASS))
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "AAA smx request cancelled.");
 
-			if (SEC_ISSET(session->flags, SESS_SMX_CHANGEPASS)) {
+			if (SEC_ISSET(session->flags, SESS_SMX_CHANGEPASS))
+			{
 				slog1(SMANAGER_SMX_CHANGEPASS_CANCEL, sec_data->vsite_p->name, session->username,
-				    NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
-				    ipstr, sec_data->port, sec_data->servername,
-				    sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
-				    -1, -1, WELF_TYPE_VPN, 2, session->username, session->method_id);
+					  NULL, AMP_REMOTE_IP_STR(sec_data->client_conn), AMP_REMOTE_PORT(sec_data->client_conn),
+					  ipstr, sec_data->port, sec_data->servername,
+					  sec_data->orig_uri_p, NULL, 0, sec_data->req_parser_info.header_len,
+					  -1, -1, WELF_TYPE_VPN, 2, session->username, session->method_id);
 			}
 			sessmgr_session_delete(session->session_id, uproxy_ipc_tunnel_id);
 			sec_data->session = NULL;
@@ -15452,7 +17592,9 @@
 			sec_generate_login_redirect(sec_data, site);
 
 			return SEC_REQ_LOGIN;
-		} else {
+		}
+		else
+		{
 			/*clear data saved in session*/
 			sec_data->session->smx_server_name[0] = '\0';
 			sec_data->session->smx_action = 0;
@@ -15464,67 +17606,74 @@
 	return SEC_REQ_SMX_AUTH_PATH;
 }
 
-
-/* 
+/*
  * similar with "extract_username_password"
  */
 static int32_t
 extract_new_password(sec_vsite_t *vsite, struct frame *frame_p,
-    length_t header_len, length_t content_len, uint8_t *password,
-    uint8_t *password2, uint32_t *cancel)
+					 length_t header_len, length_t content_len, uint8_t *password,
+					 uint8_t *password2, uint32_t *cancel)
 {
-    int32_t password_len = 0, password2_len = 0, option_len = 0;
-    int32_t result, i;
-    post_field_t *curr_field;
+	int32_t password_len = 0, password2_len = 0, option_len = 0;
+	int32_t result, i;
+	post_field_t *curr_field;
 	char option[20]; /* "Change Password" or "Cancel" */
-	char msg; /*get language translation*/
+	char msg;		 /*get language translation*/
 
-    password[0] = '\0';
-    password2[0] = '\0';
+	password[0] = '\0';
+	password2[0] = '\0';
 
 	DBG_PRINTF("entry...");
-	
-    if (!extract_post_fields(frame_p, header_len, content_len, NULL)) {
-        return USER_PASS_USER_FAIL;
-    }
-
-    STAILQ_FOREACH(curr_field, &post_field_list, next_field) {
-        if (curr_field->name_len > 0 && curr_field->value_len > 0) {
-			if (password_len <= 0 && 
-					!strncasecmp(curr_field->name, "new_pass", curr_field->name_len))
-            {
-                /* We found the new password */
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, password, &password_len,
-                             LONG_PASSWORD_LEN);
-                if (result < 0) {
-                    post_field_list_dtor();
-                    return USER_PASS_PASS_UNESCAPE_FAIL;
-                }
-                password[password_len] = '\0';
-            } else if (password2_len <= 0 && 
-					!strncasecmp(curr_field->name, "confirm", curr_field->name_len))
-            {
-                /* We found confirming password */
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, password2, &password2_len,
-                             LONG_PASSWORD_LEN);
-                if (result < 0) {
-                    post_field_list_dtor();
-                    return USER_PASS_PASS_UNESCAPE_FAIL;
-                }
-                password2[password2_len] = '\0';
-            } else if (cancel && !strcasecmp(curr_field->name, "cancel"))
-            {
-                *cancel = 1;
-            }         
-		}
-    }
-    post_field_list_dtor();
-
-    if (password_len == 0) {
-        return CHANGE_PASS_EMPTYPASS;
-    }
+
+	if (!extract_post_fields(frame_p, header_len, content_len, NULL))
+	{
+		return USER_PASS_USER_FAIL;
+	}
+
+	STAILQ_FOREACH(curr_field, &post_field_list, next_field)
+	{
+		if (curr_field->name_len > 0 && curr_field->value_len > 0)
+		{
+			if (password_len <= 0 &&
+				!strncasecmp(curr_field->name, "new_pass", curr_field->name_len))
+			{
+				/* We found the new password */
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, password, &password_len,
+										 LONG_PASSWORD_LEN);
+				if (result < 0)
+				{
+					post_field_list_dtor();
+					return USER_PASS_PASS_UNESCAPE_FAIL;
+				}
+				password[password_len] = '\0';
+			}
+			else if (password2_len <= 0 &&
+					 !strncasecmp(curr_field->name, "confirm", curr_field->name_len))
+			{
+				/* We found confirming password */
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, password2, &password2_len,
+										 LONG_PASSWORD_LEN);
+				if (result < 0)
+				{
+					post_field_list_dtor();
+					return USER_PASS_PASS_UNESCAPE_FAIL;
+				}
+				password2[password2_len] = '\0';
+			}
+			else if (cancel && !strcasecmp(curr_field->name, "cancel"))
+			{
+				*cancel = 1;
+			}
+		}
+	}
+	post_field_list_dtor();
+
+	if (password_len == 0)
+	{
+		return CHANGE_PASS_EMPTYPASS;
+	}
 
 	if (password_len != password2_len ||
 		strncmp(password, password2, password_len) != 0)
@@ -15532,111 +17681,126 @@
 		return CHANGE_PASS_INCONSISTENT;
 	}
 
-	for(i = 0; i < strlen(password); i++) {
-		if(!isascii(*(password+i))) {
+	for (i = 0; i < strlen(password); i++)
+	{
+		if (!isascii(*(password + i)))
+		{
 			return USER_PASS_PASS_UNESCAPE_FAIL;
 		}
 	}
-    return CHANGE_PASS_OK;
+	return CHANGE_PASS_OK;
 }
 
 /* return -1 error; 0 wrong or empty vcode; 1 success */
 static int32_t
 extract_sms_verification_code(sec_vsite_t *vsite, struct frame *frame_p,
-    length_t header_len, length_t content_len, uint8_t *vcode, int *resend, int *cancel)
+							  length_t header_len, length_t content_len, uint8_t *vcode, int *resend, int *cancel)
 {
-    int32_t vcode_len = 0, option_len = 0;
-    int32_t result, i;
+	int32_t vcode_len = 0, option_len = 0;
+	int32_t result, i;
 	char tmp[16];
-    post_field_t *curr_field;
+	post_field_t *curr_field;
+
+	vcode[0] = '\0';
+
+	if (!extract_post_fields(frame_p, header_len, content_len, NULL))
+	{
+		return -1;
+	}
 
-    vcode[0] = '\0';
-	
-    if (!extract_post_fields(frame_p, header_len, content_len, NULL)) {
-        return -1;
-    }
-
-    STAILQ_FOREACH(curr_field, &post_field_list, next_field) {
-        if (curr_field->name_len > 0 && curr_field->value_len > 0) {
-			if (vcode_len <= 0 && 
-					!strncasecmp(curr_field->name, "vcode", curr_field->name_len))
-            {
-                /* We found the verification code */
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, vcode, &vcode_len,
-                             AAA_SMS_VCODE_LEN);
-                if (result < 0) {
-                    post_field_list_dtor();
-                    return -1;
-                }
-                vcode[vcode_len] = '\0';
-            } else if (option_len <= 0 && 
-					!strncasecmp(curr_field->name, "resend", curr_field->name_len))
-            {
-                /* We found the resend value */
-                result = unescape_string(curr_field->value,
-                             curr_field->value_len, tmp, &option_len,
-                             16);
-                if (result < 0) {
-                    post_field_list_dtor();
-                    return -1;
-                }
-                tmp[option_len] = '\0';
+	STAILQ_FOREACH(curr_field, &post_field_list, next_field)
+	{
+		if (curr_field->name_len > 0 && curr_field->value_len > 0)
+		{
+			if (vcode_len <= 0 &&
+				!strncasecmp(curr_field->name, "vcode", curr_field->name_len))
+			{
+				/* We found the verification code */
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, vcode, &vcode_len,
+										 AAA_SMS_VCODE_LEN);
+				if (result < 0)
+				{
+					post_field_list_dtor();
+					return -1;
+				}
+				vcode[vcode_len] = '\0';
+			}
+			else if (option_len <= 0 &&
+					 !strncasecmp(curr_field->name, "resend", curr_field->name_len))
+			{
+				/* We found the resend value */
+				result = unescape_string(curr_field->value,
+										 curr_field->value_len, tmp, &option_len,
+										 16);
+				if (result < 0)
+				{
+					post_field_list_dtor();
+					return -1;
+				}
+				tmp[option_len] = '\0';
 				*resend = strcmp(tmp, "true");
-            } else if (cancel && !strcasecmp(curr_field->name, "cancel")) {
-                *cancel = 1;
-            }
+			}
+			else if (cancel && !strcasecmp(curr_field->name, "cancel"))
+			{
+				*cancel = 1;
+			}
 		}
-    }
-    post_field_list_dtor();
+	}
+	post_field_list_dtor();
 
-	for(i = 0; i < strlen(vcode); i++) {
-		if(!isascii(*(vcode+i))) {
+	for (i = 0; i < strlen(vcode); i++)
+	{
+		if (!isascii(*(vcode + i)))
+		{
 			return 0;
 		}
 	}
-    return 1;
+	return 1;
 }
 
-
 int32_t
 redirect_customized_error_page_realize(sec_vsite_t *vsite, smanager_data_t *sec_data_p,
-		int32_t error_id, const char *file_name, int32_t line_no)
+									   int32_t error_id, const char *file_name, int32_t line_no)
 {
 	ai_theme_t *theme = NULL;
 
-	if( vsite == NULL || sec_data_p == NULL )
+	if (vsite == NULL || sec_data_p == NULL)
 		return 0;
 
 	theme = vsite->ai_active_theme;
 	/* 'portal error' pages must have higher priority than 'portal theme error' pages */
-	if( vsite->err_contents[error_id] != NULL ) {
+	if (vsite->err_contents[error_id] != NULL)
+	{
 		strncpy(sec_data_p->redirect_url, vsite->err_contents[error_id]->content_url,
-		    SEC_MAX_NAVIGATE_URL_LEN - 1);
+				SEC_MAX_NAVIGATE_URL_LEN - 1);
 		DBG_PRINTF("redirect to portal error page(%s:%d, %d): %s",
-				file_name, line_no, error_id, sec_data_p->redirect_url);
+				   file_name, line_no, error_id, sec_data_p->redirect_url);
 		ulog_info_default(PROXY_CONN_LOGIDX(sec_data_p->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-		                  ULOG_NO668, line_no, error_id, 0,0,0,0,0);
+						  ULOG_NO668, line_no, error_id, 0, 0, 0, 0, 0);
 		return 1;
 
-	/* portal theme error pages */
-	} else if(!SEC_ISSET(sec_data_p->flags, SDAT_URL_STANDALONE_REQ) && theme != NULL && theme->err_contents[error_id] != NULL ) {
+		/* portal theme error pages */
+	}
+	else if (!SEC_ISSET(sec_data_p->flags, SDAT_URL_STANDALONE_REQ) && theme != NULL && theme->err_contents[error_id] != NULL)
+	{
 		/* The max length of error URL is PORTAL_MAX_URL_LEN */
-		if (SEC_ISSET(sec_data_p->flags, SDAT_REQ_FROM_WCHAT)) {
+		if (SEC_ISSET(sec_data_p->flags, SDAT_REQ_FROM_WCHAT))
+		{
 			snprintf(sec_data_p->redirect_url, SEC_MAX_NAVIGATE_URL_LEN - 1,
-			    "http://localh/%s/%s/%s", AI_THEME_ERROR_NAME,
-			    err_id_to_string(error_id), theme->err_contents[error_id]->content_url +
-			    theme->err_contents[error_id]->path_offset);
-		} else {
+					 "http://localh/%s/%s/%s", AI_THEME_ERROR_NAME,
+					 err_id_to_string(error_id), theme->err_contents[error_id]->content_url + theme->err_contents[error_id]->path_offset);
+		}
+		else
+		{
 			snprintf(sec_data_p->redirect_url, SEC_MAX_NAVIGATE_URL_LEN - 1,
-			    "http://localhost/%s/%s/%s", AI_THEME_ERROR_NAME,
-			    err_id_to_string(error_id), theme->err_contents[error_id]->content_url +
-			    theme->err_contents[error_id]->path_offset);
+					 "http://localhost/%s/%s/%s", AI_THEME_ERROR_NAME,
+					 err_id_to_string(error_id), theme->err_contents[error_id]->content_url + theme->err_contents[error_id]->path_offset);
 		}
-		DBG_PRINTF("redirect to portal theme error page(%s:%d, %d): %s", 
-				file_name, line_no, error_id, sec_data_p->redirect_url);
+		DBG_PRINTF("redirect to portal theme error page(%s:%d, %d): %s",
+				   file_name, line_no, error_id, sec_data_p->redirect_url);
 		ulog_info_default(PROXY_CONN_LOGIDX(sec_data_p->client_conn), AMP_ULOGF_MODULE_SMANAGER,
-		                  ULOG_NO669, line_no, error_id, 0,0,0,0,0);
+						  ULOG_NO669, line_no, error_id, 0, 0, 0, 0, 0);
 		return 1;
 	}
 
@@ -15645,49 +17809,56 @@
 
 static int32_t
 issue_changepass_request(void *client_conn_p, char *vsite_name, char *username,
-                         char *newpasswd, uint64_t aaa_request_id, char *log_id)
+						 char *newpasswd, uint64_t aaa_request_id, char *log_id)
 {
 	static struct sp_auth_request req;
 	int ret_val;
 
 	DBG_PRINTF("entry...");
-	
+
 	memset(&req, 0, sizeof(req));
 	req.request_type = SEC_MESSAGE_TYPE_PASS_CHANGE;
-	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry*)client_conn_p);
-	if (req.transaction_id == (intptr_t)0) {
+	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry *)client_conn_p);
+	if (req.transaction_id == (intptr_t)0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "Create ipc context for change password failed, ipc_errno %d", ipc_errno);
 		return SEC_FAIL;
 	}
 	/* send back aaa request id for aaa to find out request entry before */
 	req.aaa_request_id = aaa_request_id;
-	
-	if (vsite_name != NULL) {
-		strncpy(req.site_id, vsite_name, sizeof(req.site_id)-1);
+
+	if (vsite_name != NULL)
+	{
+		strncpy(req.site_id, vsite_name, sizeof(req.site_id) - 1);
 	}
-	if (username != NULL) {
+	if (username != NULL)
+	{
 		strncpy(req.username, username, sizeof(req.username) - 1);
 	}
-	if (newpasswd != NULL) {
+	if (newpasswd != NULL)
+	{
 		strncpy(req.pass[0], newpasswd, sizeof(req.pass[0]) - 1);
 	}
-	if (log_id != NULL) {
+	if (log_id != NULL)
+	{
 		strncpy(req.log_id, log_id, sizeof(req.log_id) - 1);
 	}
 
 	req.client_ip = AMP_REMOTE_IP(client_conn_p).s_addr;
 
-	if (hdl_to_aaa == NULL) {
+	if (hdl_to_aaa == NULL)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "handler to aaa is invalid");
 		return SEC_FAIL;
 	}
 
 	req.ipc_tunnel_id = uproxy_ipc_tunnel_id;
-	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0) {
+	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "send request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "the single size of channel is %d, the len of req is %d",
-			hdl_to_aaa->wr_channel->single_size, sizeof(req));
-		REMOVE_IPC_TXN((void*)req.transaction_id);
+						hdl_to_aaa->wr_channel->single_size, sizeof(req));
+		REMOVE_IPC_TXN((void *)req.transaction_id);
 		return SEC_FAIL;
 	}
 	DBG_PRINTF("send request to aaa success!");
@@ -15696,49 +17867,57 @@
 
 static int32_t
 issue_changepass_ldap_request(void *client_conn_p, char *vsite_name, char *username,
-                         char *newpasswd, uint64_t aaa_request_id,
-						struct sesssion_ldap_pwd_policy_info *ldap_pwd_policy,
-						char *current_ldap_server, char *log_id)
+							  char *newpasswd, uint64_t aaa_request_id,
+							  struct sesssion_ldap_pwd_policy_info *ldap_pwd_policy,
+							  char *current_ldap_server, char *log_id)
 {
 	static struct sp_auth_request req;
 	int ret_val;
 	int k;
 
 	DBG_PRINTF("entry...");
-	
+
 	memset(&req, 0, sizeof(req));
 	req.request_type = SEC_MESSAGE_TYPE_PASS_CHANGE_LDAP;
-	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry*)client_conn_p);
-	if (req.transaction_id == (intptr_t)0) {
+	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry *)client_conn_p);
+	if (req.transaction_id == (intptr_t)0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "Create ipc context for change ldap password failed, ipc_errno %d", ipc_errno);
 		return SEC_FAIL;
 	}
 	/* send back aaa request id for aaa to find out request entry before */
 	req.aaa_request_id = aaa_request_id;
-	
-	if (vsite_name != NULL) {
-		strncpy(req.site_id, vsite_name, sizeof(req.site_id)-1);
+
+	if (vsite_name != NULL)
+	{
+		strncpy(req.site_id, vsite_name, sizeof(req.site_id) - 1);
 	}
-	if (username != NULL) {
+	if (username != NULL)
+	{
 		strncpy(req.username, username, sizeof(req.username) - 1);
 	}
-	if (newpasswd != NULL) {
+	if (newpasswd != NULL)
+	{
 		strncpy(req.pass[0], newpasswd, sizeof(req.pass[0]) - 1);
 	}
-	if (log_id != NULL) {
+	if (log_id != NULL)
+	{
 		strncpy(req.log_id, log_id, sizeof(req.log_id) - 1);
 	}
 
-	if (current_ldap_server != NULL) {
+	if (current_ldap_server != NULL)
+	{
 		strncpy(req.current_ldap_server, current_ldap_server, sizeof(req.current_ldap_server) - 1);
 	}
-	for (k = 0; k < SESSION_MAX_LDAP_HOST; k++) {
-		if (ldap_pwd_policy != NULL) {
+	for (k = 0; k < SESSION_MAX_LDAP_HOST; k++)
+	{
+		if (ldap_pwd_policy != NULL)
+		{
 			strncpy(req.ldap_pwd_policy[k].server_id, ldap_pwd_policy->server_id, sizeof(req.ldap_pwd_policy[k].server_id) - 1);
 			strncpy(req.ldap_pwd_policy[k].server_description, ldap_pwd_policy->server_description, sizeof(req.ldap_pwd_policy[k].server_description) - 1);
 			strncpy(req.ldap_pwd_policy[k].ldap_user_dn, ldap_pwd_policy->ldap_user_dn, sizeof(req.ldap_pwd_policy[k].ldap_user_dn) - 1);
 			strncpy(req.ldap_pwd_policy[k].ldap_user_old_pwd, ldap_pwd_policy->ldap_user_old_pwd, sizeof(req.ldap_pwd_policy[k].ldap_user_old_pwd) - 1);
-			strncpy(req.ldap_pwd_policy[k].maxPwdAge, ldap_pwd_policy->maxPwdAge, sizeof(req.ldap_pwd_policy[k].maxPwdAge) - 1);	
+			strncpy(req.ldap_pwd_policy[k].maxPwdAge, ldap_pwd_policy->maxPwdAge, sizeof(req.ldap_pwd_policy[k].maxPwdAge) - 1);
 			req.ldap_pwd_policy[k].ldap_host_id = ldap_pwd_policy->ldap_host_id;
 			req.ldap_pwd_policy[k].time_to_expire_day = ldap_pwd_policy->time_to_expire_day;
 			req.ldap_pwd_policy[k].time_to_expire_hour = ldap_pwd_policy->time_to_expire_hour;
@@ -15752,17 +17931,19 @@
 
 	req.client_ip = AMP_REMOTE_IP(client_conn_p).s_addr;
 
-	if (hdl_to_aaa == NULL) {
+	if (hdl_to_aaa == NULL)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "handler to aaa is invalid");
 		return SEC_FAIL;
 	}
 
 	req.ipc_tunnel_id = uproxy_ipc_tunnel_id;
-	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0) {
+	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "send request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "the single size of channel is %d, the len of req is %d",
-			hdl_to_aaa->wr_channel->single_size, sizeof(req));
-		REMOVE_IPC_TXN((void*)req.transaction_id);
+						hdl_to_aaa->wr_channel->single_size, sizeof(req));
+		REMOVE_IPC_TXN((void *)req.transaction_id);
 		return SEC_FAIL;
 	}
 	DBG_PRINTF("send request to aaa success!");
@@ -15770,49 +17951,57 @@
 }
 
 static int32_t
-issue_sms_resend_request(void *client_conn_p, char *vsite_name, char *username, char *med_id, 
-                         char *phone, char *email)
+issue_sms_resend_request(void *client_conn_p, char *vsite_name, char *username, char *med_id,
+						 char *phone, char *email)
 {
 	static struct sp_auth_request req;
 	int ret_val;
-	
+
 	memset(&req, 0, sizeof(req));
 	req.request_type = SEC_MESSAGE_TYPE_SMS_RESEND;
-	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry*)client_conn_p);
-	if (req.transaction_id == (intptr_t)0) {
+	req.transaction_id = (intptr_t)INSERT_IPC_TXN((struct conn_entry *)client_conn_p);
+	if (req.transaction_id == (intptr_t)0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "Create ipc context for change password failed, ipc_errno %d", ipc_errno);
 		return SEC_FAIL;
 	}
-	
-	if (vsite_name != NULL) {
-		strncpy(req.site_id, vsite_name, sizeof(req.site_id)-1);
+
+	if (vsite_name != NULL)
+	{
+		strncpy(req.site_id, vsite_name, sizeof(req.site_id) - 1);
 	}
-	if (username != NULL) {
+	if (username != NULL)
+	{
 		strncpy(req.username, username, sizeof(req.username) - 1);
 	}
-	if (med_id != NULL) {
+	if (med_id != NULL)
+	{
 		strncpy(req.med_id, med_id, sizeof(req.med_id) - 1);
 	}
-	if (phone != NULL) {
+	if (phone != NULL)
+	{
 		strncpy(req.phone, phone, sizeof(req.phone) - 1);
 	}
-	if (email != NULL) {
+	if (email != NULL)
+	{
 		strncpy(req.email, email, sizeof(req.email) - 1);
 	}
 
 	req.client_ip = AMP_REMOTE_IP(client_conn_p).s_addr;
 
-	if (hdl_to_aaa == NULL) {
+	if (hdl_to_aaa == NULL)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "handler to aaa is invalid");
 		return SEC_FAIL;
 	}
 
 	req.ipc_tunnel_id = uproxy_ipc_tunnel_id;
-	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0) {
+	if ((ret_val = ipc_write(hdl_to_aaa, &req, sizeof(req))) <= 0)
+	{
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "send request to aaa failed, return %d, ipc_errno %d", ret_val, ipc_errno);
 		ulog_error_conn(client_conn_p, AMP_ULOG_SMANAGER, "the single size of channel is %d, the len of req is %d",
-			hdl_to_aaa->wr_channel->single_size, sizeof(req));
-		REMOVE_IPC_TXN((void*)req.transaction_id);
+						hdl_to_aaa->wr_channel->single_size, sizeof(req));
+		REMOVE_IPC_TXN((void *)req.transaction_id);
 		return SEC_FAIL;
 	}
 
@@ -15820,9 +18009,9 @@
 }
 
 /*
- * here we check whether we need the client security redirection 
+ * here we check whether we need the client security redirection
  * filter out the most cases.
- * 
+ *
  * return value:
  *   0: -- Redirect success
  *   -1: -- Memory allocate error
@@ -15830,30 +18019,31 @@
  */
 int32_t
 sec_redirect_client_security(
-    smanager_data_t *sec_data,
-    uint8_t *cookie_p, 
-    length_t cookie_len)
+	smanager_data_t *sec_data,
+	uint8_t *cookie_p,
+	length_t cookie_len)
 {
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	proxy_t *proxy_p = sec_data->proxy_p;
 	char *redirect_url = NULL, *log_msg = NULL;
-	char *l_cookie_p = NULL, 
-	*url_alias = NULL,
-	*url_site = NULL;
-	int  slen = 0, ret = 1;
+	char *l_cookie_p = NULL,
+		 *url_alias = NULL,
+		 *url_site = NULL;
+	int slen = 0, ret = 1;
 	char cookie_buffer[SESSION_COOKIE_SIZE];
 
-	l_cookie_p = (char*)malloc(cookie_len + 1);
-	if (!l_cookie_p) {
+	l_cookie_p = (char *)malloc(cookie_len + 1);
+	if (!l_cookie_p)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "cannot allocate memory to l_cookie_p");
 		return -1;
 	}
-	memset(l_cookie_p, 0, sizeof(char) * (cookie_len+1));
+	memset(l_cookie_p, 0, sizeof(char) * (cookie_len + 1));
 	memcpy(l_cookie_p, cookie_p, cookie_len);
-	   
 
-	redirect_url = (char*)malloc(cookie_len + 1);
-	if (!redirect_url) {
+	redirect_url = (char *)malloc(cookie_len + 1);
+	if (!redirect_url)
+	{
 		ret = -1;
 		goto redirect_ret;
 	}
@@ -15861,70 +18051,85 @@
 
 	/* if this host name in url is not the same as the name of the virtual site, we need to redirect */
 	ret = sec_get_redirect_url(
-			 (char *)l_cookie_p, 
-			 (char **)&redirect_url, 
-			 (char **)&log_msg, 
-			 (char **)&url_alias);
-	switch (ret) {
-	   case -1:
-			/* memory allocation error */
-	   case 1:
-			/* nothing needs to redirect at this point */
-			break;
-	   case 0:
-			/* if a redirect url is found, then we are happy to redirect to this url */ 
-			if (proxy_p != NULL) {
-				FLAG_UNSET(proxy_p->flags, HTTP_PF_KEEP_ALIVE_CLIENT);
-			}
-
-			/* log the message */
-			if (log_msg) {
-				if (strstr(log_msg, "success")) {
-
-				} else {
+		(char *)l_cookie_p,
+		(char **)&redirect_url,
+		(char **)&log_msg,
+		(char **)&url_alias);
+	switch (ret)
+	{
+	case -1:
+		/* memory allocation error */
+	case 1:
+		/* nothing needs to redirect at this point */
+		break;
+	case 0:
+		/* if a redirect url is found, then we are happy to redirect to this url */
+		if (proxy_p != NULL)
+		{
+			FLAG_UNSET(proxy_p->flags, HTTP_PF_KEEP_ALIVE_CLIENT);
+		}
 
-				}
+		/* log the message */
+		if (log_msg)
+		{
+			if (strstr(log_msg, "success"))
+			{
 			}
+			else
+			{
+			}
+		}
 
-			/* set the bookmark cookie and session cookie */
-			memset(cookie_buffer, 0, sizeof(cookie_buffer));
-			if (url_alias) {
-				if (*aa_clustered == 0) {
-					snprintf(cookie_buffer, sizeof(cookie_buffer)-1, "%s=%s", sec_cookie_session_name, url_alias);
-				} else {
-					snprintf(cookie_buffer, sizeof(cookie_buffer)-1, "%s=%s", ha_cookie_session_name, url_alias);
-				}
-				slen = strlen(cookie_buffer); 
-			} else {
-				slen = 0;
-			}
-			sec_generate_redirect(
-				sec_data, 
-			   "302 Redirect", SLEN("302 Redirect"),
-				redirect_url, strlen(redirect_url),
-				cookie_buffer, slen, 
-				NULL, 0, 
-				NULL, 0, 
-				IGNORE_CLIENTSEC_COOKIE,
-				SEC_GENERATE_REDIR_NOFLAGS);
-			ret = 0;
+		/* set the bookmark cookie and session cookie */
+		memset(cookie_buffer, 0, sizeof(cookie_buffer));
+		if (url_alias)
+		{
+			if (*aa_clustered == 0)
+			{
+				snprintf(cookie_buffer, sizeof(cookie_buffer) - 1, "%s=%s", sec_cookie_session_name, url_alias);
+			}
+			else
+			{
+				snprintf(cookie_buffer, sizeof(cookie_buffer) - 1, "%s=%s", ha_cookie_session_name, url_alias);
+			}
+			slen = strlen(cookie_buffer);
+		}
+		else
+		{
+			slen = 0;
+		}
+		sec_generate_redirect(
+			sec_data,
+			"302 Redirect", SLEN("302 Redirect"),
+			redirect_url, strlen(redirect_url),
+			cookie_buffer, slen,
+			NULL, 0,
+			NULL, 0,
+			IGNORE_CLIENTSEC_COOKIE,
+			SEC_GENERATE_REDIR_NOFLAGS);
+		ret = 0;
 	} /* end of the switch */
 
 redirect_ret:
-	if (l_cookie_p) {
+	if (l_cookie_p)
+	{
 		free(l_cookie_p);
 	}
-	if (redirect_url) {
+	if (redirect_url)
+	{
 		free(redirect_url);
 	}
-	if (url_site) {
+	if (url_site)
+	{
 		free(url_site);
 	}
-	if (url_alias) {
+	if (url_alias)
+	{
 		free(url_alias);
 	}
-	if (log_msg) {
-	   free(log_msg);
+	if (log_msg)
+	{
+		free(log_msg);
 	}
 
 	return ret;
@@ -15933,58 +18138,62 @@
 char *
 sec_language_get_msg_ex(smanager_data_t *sec_data, int32_t msg_id)
 {
-    char *msg;
-    sec_vsite_t *vsite = sec_data->vsite_p;
+	char *msg;
+	sec_vsite_t *vsite = sec_data->vsite_p;
 
-    if (vsite == NULL) {
-        msg = sec_language_get_msg(SEC_DEFAULT_LANGUAGE, msg_id);
-    } else {
-        msg = sec_language_get_msg(vsite->language, msg_id);
-    }
+	if (vsite == NULL)
+	{
+		msg = sec_language_get_msg(SEC_DEFAULT_LANGUAGE, msg_id);
+	}
+	else
+	{
+		msg = sec_language_get_msg(vsite->language, msg_id);
+	}
 
-    return msg;
+	return msg;
 }
 
-int 
-sec_generate_error_response(smanager_data_t *sec_data, uint8_t with_home_button,
-    int32_t http_code, int32_t type_code, char *fmt, ...)
+int sec_generate_error_response(smanager_data_t *sec_data, uint8_t with_home_button,
+								int32_t http_code, int32_t type_code, char *fmt, ...)
 {
-    int rc;
-    va_list ap;
-    sec_vsite_t *vsite = sec_data->vsite_p;
-    int32_t lang_id = SEC_DEFAULT_LANGUAGE;
-    static char error_title[100];
+	int rc;
+	va_list ap;
+	sec_vsite_t *vsite = sec_data->vsite_p;
+	int32_t lang_id = SEC_DEFAULT_LANGUAGE;
+	static char error_title[100];
 
-    if (vsite != NULL) {
-        lang_id = vsite->language;
-    }
+	if (vsite != NULL)
+	{
+		lang_id = vsite->language;
+	}
 
-	if(redirect_customized_error_page(vsite, sec_data, type_code)) {
+	if (redirect_customized_error_page(vsite, sec_data, type_code))
+	{
 		sec_generate_rewrite_redirect(sec_data, sec_data->redirect_url,
-				strlen(sec_data->redirect_url));
+									  strlen(sec_data->redirect_url));
 		return SEC_SUCCESS;
 	}
 
-    snprintf(error_title, 100, "%s - %s",
-             sec_language_get_msg(lang_id, 6),
-             http_code_to_str(http_code));
+	snprintf(error_title, 100, "%s - %s",
+			 sec_language_get_msg(lang_id, 6),
+			 http_code_to_str(http_code));
 
 	va_start(ap, fmt);
-    rc = vgen_html_message(sec_data, http_code, with_home_button,
-                      sec_language_get_msg(lang_id, 5),
-                      error_title, fmt, ap);
-    va_end(ap);
+	rc = vgen_html_message(sec_data, http_code, with_home_button,
+						   sec_language_get_msg(lang_id, 5),
+						   error_title, fmt, ap);
+	va_end(ap);
 	return rc;
 }
 
-void
-sec_generate_changepass_redirect(struct smanager_data *sec_data,
-				 sec_session_t *sec_session, sec_vsite_t *site)
+void sec_generate_changepass_redirect(struct smanager_data *sec_data,
+									  sec_session_t *sec_session, sec_vsite_t *site)
 {
 	char *tmp_session_cookie, *tmp_nav_cookie;
 	length_t tmp_session_cookie_len, tmp_nav_cookie_len;
-	
-	if (SEC_ISSET(sec_data->flags, SDAT_FORCE_CHANGEPASS)) {
+
+	if (SEC_ISSET(sec_data->flags, SDAT_FORCE_CHANGEPASS))
+	{
 		/* forced to redirect here, should set the cookie for unauth session */
 		snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
 		sprint_nav_cookie(nav_cookie_buffer, sec_data);
@@ -15992,43 +18201,48 @@
 		tmp_nav_cookie = nav_cookie_buffer;
 		tmp_session_cookie_len = strlen(tmp_session_cookie);
 		tmp_nav_cookie_len = strlen(tmp_nav_cookie);
-	} else {
+	}
+	else
+	{
 		tmp_session_cookie = NULL;
 		tmp_nav_cookie = NULL;
 		tmp_session_cookie_len = 0;
 		tmp_nav_cookie_len = 0;
 	}
 
-	if( sec_data->redirect_url[0] == '\0' )
+	if (sec_data->redirect_url[0] == '\0')
 	{
-		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "/prx/000/http/localh%s",
-				 PASSCHANGE_PATH);
-		} else {
+					 PASSCHANGE_PATH);
+		}
+		else
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s", SEC_REWRITTEN_PREFIX,
-				 PASSCHANGE_PATH);
+					 PASSCHANGE_PATH);
 		}
 		sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-				portal_temp_string, strlen(portal_temp_string),
-				tmp_session_cookie, tmp_session_cookie_len,
-				tmp_nav_cookie, tmp_nav_cookie_len,
-				NULL, 0, 0, 0);
+							  portal_temp_string, strlen(portal_temp_string),
+							  tmp_session_cookie, tmp_session_cookie_len,
+							  tmp_nav_cookie, tmp_nav_cookie_len,
+							  NULL, 0, 0, 0);
 		return;
 	}
 
 	/* redirect to sec_data->redirect_url */
 	sec_generate_rewrite_redirect(sec_data, sec_data->redirect_url,
-			strlen(sec_data->redirect_url));
+								  strlen(sec_data->redirect_url));
 }
 
-void
-sec_generate_changepass_redirect_ldap(struct smanager_data *sec_data,
-				 sec_session_t *sec_session, sec_vsite_t *site)
+void sec_generate_changepass_redirect_ldap(struct smanager_data *sec_data,
+										   sec_session_t *sec_session, sec_vsite_t *site)
 {
 	char *tmp_session_cookie, *tmp_nav_cookie;
 	length_t tmp_session_cookie_len, tmp_nav_cookie_len;
 
-	if (SEC_ISSET(sec_data->flags, SDAT_FORCE_CHANGEPASS_LDAP)) {
+	if (SEC_ISSET(sec_data->flags, SDAT_FORCE_CHANGEPASS_LDAP))
+	{
 		/* forced to redirect here, should set the cookie for unauth session */
 		snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
 		sprint_nav_cookie(nav_cookie_buffer, sec_data);
@@ -16036,43 +18250,48 @@
 		tmp_nav_cookie = nav_cookie_buffer;
 		tmp_session_cookie_len = strlen(tmp_session_cookie);
 		tmp_nav_cookie_len = strlen(tmp_nav_cookie);
-	} else {
+	}
+	else
+	{
 		tmp_session_cookie = NULL;
 		tmp_nav_cookie = NULL;
 		tmp_session_cookie_len = 0;
 		tmp_nav_cookie_len = 0;
 	}
 
-	if( sec_data->redirect_url[0] == '\0' )
+	if (sec_data->redirect_url[0] == '\0')
 	{
-		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s?server=%s", "/prx/000/http/localh",
-				PASSCHANGE_LDAP_PATH, sec_session->current_ldap_server);
-		} else {
+					 PASSCHANGE_LDAP_PATH, sec_session->current_ldap_server);
+		}
+		else
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s?server=%s", SEC_REWRITTEN_PREFIX,
-				PASSCHANGE_LDAP_PATH, sec_session->current_ldap_server);
+					 PASSCHANGE_LDAP_PATH, sec_session->current_ldap_server);
 		}
 		sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-				portal_temp_string, strlen(portal_temp_string),
-				tmp_session_cookie, tmp_session_cookie_len,
-				tmp_nav_cookie, tmp_nav_cookie_len,
-				NULL, 0, 0, 0);
+							  portal_temp_string, strlen(portal_temp_string),
+							  tmp_session_cookie, tmp_session_cookie_len,
+							  tmp_nav_cookie, tmp_nav_cookie_len,
+							  NULL, 0, 0, 0);
 		return;
 	}
 
 	/* redirect to sec_data->redirect_url */
 	sec_generate_rewrite_redirect(sec_data, sec_data->redirect_url,
-			strlen(sec_data->redirect_url));
+								  strlen(sec_data->redirect_url));
 }
 
-void
-sec_generate_sms_auth_redirect(struct smanager_data *sec_data,
-				 sec_session_t *sec_session, sec_vsite_t *site)
+void sec_generate_sms_auth_redirect(struct smanager_data *sec_data,
+									sec_session_t *sec_session, sec_vsite_t *site)
 {
 	char *tmp_session_cookie, *tmp_nav_cookie;
 	length_t tmp_session_cookie_len, tmp_nav_cookie_len;
-	
-	if (SEC_ISSET(sec_data->flags, SDAT_OTP_AUTHENTICATE)) {
+
+	if (SEC_ISSET(sec_data->flags, SDAT_OTP_AUTHENTICATE))
+	{
 		/* forced to redirect here, should set the cookie for unauth session */
 		snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
 		sprint_nav_cookie(nav_cookie_buffer, sec_data);
@@ -16080,43 +18299,48 @@
 		tmp_nav_cookie = nav_cookie_buffer;
 		tmp_session_cookie_len = strlen(tmp_session_cookie);
 		tmp_nav_cookie_len = strlen(tmp_nav_cookie);
-	} else {
+	}
+	else
+	{
 		tmp_session_cookie = NULL;
 		tmp_nav_cookie = NULL;
 		tmp_session_cookie_len = 0;
 		tmp_nav_cookie_len = 0;
 	}
 
-	if( sec_data->redirect_url[0] == '\0' )
+	if (sec_data->redirect_url[0] == '\0')
 	{
-		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "/prx/000/http/localh%s",
 					 SMS_PATH);
-		} else {
+		}
+		else
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s", SEC_REWRITTEN_PREFIX,
 					 SMS_PATH);
 		}
 		sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-				portal_temp_string, strlen(portal_temp_string),
-				tmp_session_cookie, tmp_session_cookie_len,
-				tmp_nav_cookie, tmp_nav_cookie_len,
-				NULL, 0, 0, 0);
+							  portal_temp_string, strlen(portal_temp_string),
+							  tmp_session_cookie, tmp_session_cookie_len,
+							  tmp_nav_cookie, tmp_nav_cookie_len,
+							  NULL, 0, 0, 0);
 		return;
 	}
 
 	/* redirect to sec_data->redirect_url */
 	sec_generate_rewrite_redirect(sec_data, sec_data->redirect_url,
-			strlen(sec_data->redirect_url));
+								  strlen(sec_data->redirect_url));
 }
 
-void
-sec_generate_smx_auth_redirect(struct smanager_data *sec_data,
-				 sec_session_t *sec_session, sec_vsite_t *site)
+void sec_generate_smx_auth_redirect(struct smanager_data *sec_data,
+									sec_session_t *sec_session, sec_vsite_t *site)
 {
 	char *tmp_session_cookie, *tmp_nav_cookie;
 	length_t tmp_session_cookie_len, tmp_nav_cookie_len;
-	
-	if (SEC_ISSET(sec_data->flags, SDAT_SMX_AUTHENTICATE)) {
+
+	if (SEC_ISSET(sec_data->flags, SDAT_SMX_AUTHENTICATE))
+	{
 		/* forced to redirect here, should set the cookie for unauth session */
 		snprint_session_cookie(session_cookie_buffer, sec_data, sizeof(session_cookie_buffer));
 		sprint_nav_cookie(nav_cookie_buffer, sec_data);
@@ -16124,34 +18348,38 @@
 		tmp_nav_cookie = nav_cookie_buffer;
 		tmp_session_cookie_len = strlen(tmp_session_cookie);
 		tmp_nav_cookie_len = strlen(tmp_nav_cookie);
-	} else {
+	}
+	else
+	{
 		tmp_session_cookie = NULL;
 		tmp_nav_cookie = NULL;
 		tmp_session_cookie_len = 0;
 		tmp_nav_cookie_len = 0;
 	}
 
-	if( sec_data->redirect_url[0] == '\0' )
+	if (sec_data->redirect_url[0] == '\0')
 	{
-		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+		if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "/prx/000/http/localh%s", SMX_PATH);
-		} else {
+		}
+		else
+		{
 			snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s", SEC_REWRITTEN_PREFIX, SMX_PATH);
 		}
 		sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"),
-				portal_temp_string, strlen(portal_temp_string),
-				tmp_session_cookie, tmp_session_cookie_len,
-				tmp_nav_cookie, tmp_nav_cookie_len,
-				NULL, 0, 0, 0);
+							  portal_temp_string, strlen(portal_temp_string),
+							  tmp_session_cookie, tmp_session_cookie_len,
+							  tmp_nav_cookie, tmp_nav_cookie_len,
+							  NULL, 0, 0, 0);
 		return;
 	}
 
 	/* redirect to sec_data->redirect_url */
 	sec_generate_rewrite_redirect(sec_data, sec_data->redirect_url,
-			strlen(sec_data->redirect_url));
+								  strlen(sec_data->redirect_url));
 }
 
-
 /*
  * Check the vpn_sessions in app session to see if the vpn tunnel is created.
  */
@@ -16160,12 +18388,15 @@
 {
 	int i;
 
-	if (sec_data == NULL || sec_data->session == NULL) {
+	if (sec_data == NULL || sec_data->session == NULL)
+	{
 		return FALSE;
 	}
 
-	for (i = 0; i < MPOOL_MAX_CORES; i++) {
-		if (sec_data->session->vpn_session[i] != NULL) {
+	for (i = 0; i < MPOOL_MAX_CORES; i++)
+	{
+		if (sec_data->session->vpn_session[i] != NULL)
+		{
 			return TRUE;
 		}
 	}
@@ -16174,7 +18405,7 @@
 
 static void
 sec_generate_fshare_auth_response(struct smanager_data *sec_data, uint8_t *req_url,
-	       	int32_t req_url_len, char *message)
+								  int32_t req_url_len, char *message)
 {
 	struct frame *final_page, *out_frame = NULL, *in_frame;
 	uint8_t *cursor = NULL;
@@ -16183,29 +18414,32 @@
 	uint8_t *host = NULL;
 	int32_t host_len = -1;
 	int32_t lang_str_len, unescape_len;
-	char *p=NULL;
+	char *p = NULL;
 	static char portal_temp_string_hostname[MAX_APP_PRINT_SIZE];
 
 	memset(portal_temp_string, 0, sizeof(portal_temp_string));
 
 	if (unescape_string(req_url, req_url_len, portal_temp_string,
-				&unescape_len, MAX_APP_PRINT_SIZE) < 0) {
+						&unescape_len, MAX_APP_PRINT_SIZE) < 0)
+	{
 		sec_generate_error_response(sec_data, TRUE, SERVER_ERROR,
-				SEC_CUSTOM_ERR_INTERNAL,
-				sec_language_get_msg_ex(sec_data, 228));
-		return ;
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 228));
+		return;
 	}
 	portal_temp_string[req_url_len] = '\0';
 	p = strstr(portal_temp_string, "service=");
-	if (p == NULL) {
+	if (p == NULL)
+	{
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-				SEC_CUSTOM_ERR_INTERNAL,
-				sec_language_get_msg_ex(sec_data, 228));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 228));
 		return;
 	}
-	strcpy(portal_temp_string_hostname, p+strlen("service="));
+	strcpy(portal_temp_string_hostname, p + strlen("service="));
 	p = strstr(portal_temp_string_hostname, "&workgroup");
-	if (p != NULL) {
+	if (p != NULL)
+	{
 		*p = '\0';
 	}
 	host_len = strlen(portal_temp_string_hostname);
@@ -16213,17 +18447,19 @@
 
 	portal_temp_string[unescape_len] = '\0';
 
-	if (host == NULL) {
+	if (host == NULL)
+	{
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-				SEC_CUSTOM_ERR_INTERNAL,
-				sec_language_get_msg_ex(sec_data, 228));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 228));
 		return;
 	}
 
 	in_frame = id_to_frame_chain(FSHARE_AUTH_ID, 0);
-	if (in_frame == NULL) {
+	if (in_frame == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing fshare_auth page, alloc fail");
-		return ;
+		return;
 	}
 	final_page = write_frame_chunk(&out_frame, &cursor, &in_frame);
 
@@ -16231,12 +18467,15 @@
 
 	write_data(lang_string, &cursor, lang_str_len, &out_frame);
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
-	
-	if (need_logout_link(sec_data->session, sec_data->vsite_p) == TRUE) {
+
+	if (need_logout_link(sec_data->session, sec_data->vsite_p) == TRUE)
+	{
 		write_frame_chunk(&out_frame, &cursor, &in_frame);
 		lang_string = sec_language_get_and_unescape_msg(sec_data->vsite_p->language, 330, &lang_str_len);
 		write_data(lang_string, &cursor, lang_str_len, &out_frame);
-	} else {
+	}
+	else
+	{
 		in_frame = skip_frame_chunk(in_frame);
 	}
 
@@ -16245,13 +18484,16 @@
 	write_data(lang_string, &cursor, lang_str_len, &out_frame);
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-	if (message != NULL) {
+	if (message != NULL)
+	{
 		write_frame_chunk(&out_frame, &cursor, &in_frame);
-		bcopy(message, portal_lang_buffer, strlen(message)+1);
+		bcopy(message, portal_lang_buffer, strlen(message) + 1);
 		lang_str_len = language_unescape(portal_lang_buffer);
 		write_data(portal_lang_buffer, &cursor, lang_str_len, &out_frame);
 		write_frame_chunk(&out_frame, &cursor, &in_frame);
-	} else {
+	}
+	else
+	{
 		in_frame = skip_frame_chunk(in_frame);
 		in_frame = skip_frame_chunk(in_frame);
 	}
@@ -16283,40 +18525,44 @@
 	result = write_data(portal_temp_string, &cursor, strlen(portal_temp_string), &out_frame);
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-	if (result != HTTP_SUCCESS || final_page == NULL) {
+	if (result != HTTP_SUCCESS || final_page == NULL)
+	{
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-				SEC_CUSTOM_ERR_INTERNAL,
-				sec_language_get_msg_ex(sec_data, 228));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 228));
 		parser_frame_chain_free(final_page);
 		return;
 	}
 
 	sec_data->response = create_http_response_with_bookmark(OK, final_page,
-			0, NULL, NULL,
-			"text/html", NULL, sec_data,
-			NULL, 0, 0);
-	
-	if (sec_data->response == NULL){
+															0, NULL, NULL,
+															"text/html", NULL, sec_data,
+															NULL, 0, 0);
+
+	if (sec_data->response == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Writing fshare_auth page fail");
 		parser_frame_chain_free(final_page);
-		return ;
-	} else {
+		return;
+	}
+	else
+	{
 		HTTP_FLAG_SET(sec_data->response->f_flags, HTTP_PFRAME_FREE_IN_CALLBACK);
 	}
 
-	return ;
+	return;
 }
 
-static int 
+static int
 sec_process_fshare_auth_post(smanager_data_t *sec_data, sec_session_t *session,
-		sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
-		length_t headers_len)
+							 sec_vsite_t *site, struct frame *cur_request_p, length_t content_len,
+							 length_t headers_len)
 {
-	post_field_t	*curr_field = NULL,
-			*pass_field = NULL,
-			*user_field = NULL,
-			*domain_field = NULL,
-			*back_info_field = NULL;
+	post_field_t *curr_field = NULL,
+				 *pass_field = NULL,
+				 *user_field = NULL,
+				 *domain_field = NULL,
+				 *back_info_field = NULL;
 	uint8_t cancel = FALSE;
 	int32_t url_len, user_len, pass_len, len = 0, domain_len = 0;
 	uint8_t *unescaped_url = NULL;
@@ -16325,93 +18571,115 @@
 	uint8_t pass_buff[LONG_PASSWORD_LEN + 1];
 	uint8_t domain_buff[SEC_DOMAIN_LEN + 1];
 
-	if (session == NULL) {
+	if (session == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_http_auth_post:"
-				"no session available");
+																  "no session available");
 		sec_generate_login_redirect(sec_data, sec_data->vsite_p);
 		return SEC_REQ_LOGIN;
 	}
 
-	if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL)) {
+	if (!extract_post_fields(cur_request_p, headers_len, content_len, NULL))
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_http_auth_post:"
-				"failed to extract the post fields");
+																  "failed to extract the post fields");
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-				SEC_CUSTOM_ERR_INTERNAL,
-				sec_language_get_msg_ex(sec_data, 244));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 244));
 		return SEC_REQ_ERR;
 	}
 
-	STAILQ_FOREACH(curr_field, &post_field_list, next_field) {
-		if (curr_field->value_len > 0 && curr_field->name_len > 0) {
-			if (!strcmp(curr_field->name, PASSWORD_FIELD_NAME)) {
+	STAILQ_FOREACH(curr_field, &post_field_list, next_field)
+	{
+		if (curr_field->value_len > 0 && curr_field->name_len > 0)
+		{
+			if (!strcmp(curr_field->name, PASSWORD_FIELD_NAME))
+			{
 				pass_field = curr_field;
-			} else if (!strcmp(curr_field->name, OPTION_FIELD_NAME)) {
+			}
+			else if (!strcmp(curr_field->name, OPTION_FIELD_NAME))
+			{
 				cancel = language_compare(curr_field->value,
-						curr_field->value_len, sec_data->vsite_p, 12);
-			} else if (!strcmp(curr_field->name, USERNAME_FIELD_NAME)) {
+										  curr_field->value_len, sec_data->vsite_p, 12);
+			}
+			else if (!strcmp(curr_field->name, USERNAME_FIELD_NAME))
+			{
 				user_field = curr_field;
-			} else if (!strcmp(curr_field->name, BACKEND_INFO_FIELD_NAME)) {
+			}
+			else if (!strcmp(curr_field->name, BACKEND_INFO_FIELD_NAME))
+			{
 				back_info_field = curr_field;
-			} else if (!strcmp(curr_field->name, DOMAIN_FIELD_NAME)) {
+			}
+			else if (!strcmp(curr_field->name, DOMAIN_FIELD_NAME))
+			{
 				domain_field = curr_field;
 			}
 		}
 	}
 
-	if (cancel) {
+	if (cancel)
+	{
 		sec_generate_welcome_redirect(sec_data, session, sec_data->vsite_p,
-						FILESHARE_PATH, FALSE);
+									  FILESHARE_PATH, FALSE);
 		post_field_list_dtor();
 		return SEC_REQ_WELCOME_REDIRECT;
 	}
 
-	if (!back_info_field) {
+	if (!back_info_field)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_http_auth_post:"
-				"the hidden backend field was not provided");
+																  "the hidden backend field was not provided");
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-				SEC_CUSTOM_ERR_INTERNAL,
-				sec_language_get_msg_ex(sec_data, 244));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 244));
 		post_field_list_dtor();
 		return SEC_REQ_ERR;
 	}
 
 	url_len = strlen(back_info_field->value);
 	unescaped_url = (uint8_t *)malloc(url_len + 1);
-	if (unescaped_url == NULL) {
+	if (unescaped_url == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_http_auth_post:"
-				"malloc failed while trying to get %d bytes", url_len);
+																  "malloc failed while trying to get %d bytes",
+						url_len);
 		sec_generate_error_response(sec_data, TRUE, BAD_REQUEST,
-				SEC_CUSTOM_ERR_INTERNAL,
-				sec_language_get_msg_ex(sec_data, 244));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 244));
 		post_field_list_dtor();
 		return SEC_REQ_ERR;
 	}
 
 	if (unescape_string(back_info_field->value, url_len, unescaped_url,
-				&url_len, url_len + 1) < 0){
+						&url_len, url_len + 1) < 0)
+	{
 		sec_generate_error_response(sec_data, FALSE, SERVER_ERROR,
-				SEC_CUSTOM_ERR_INTERNAL,
-				sec_language_get_msg_ex(sec_data, 244));
+									SEC_CUSTOM_ERR_INTERNAL,
+									sec_language_get_msg_ex(sec_data, 244));
 		return SEC_REQ_ERR;
 	}
 	unescaped_url[url_len] = '\0';
 
-	if (!pass_field || !user_field) {
+	if (!pass_field || !user_field)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_http_auth_post:"
-				"password (%p) or username (%p) missing", pass_field, user_field);
-		sec_generate_fshare_auth_response(sec_data, unescaped_url, url_len, 
-				sec_language_get_msg_ex(sec_data, 373));
+																  "password (%p) or username (%p) missing",
+						pass_field, user_field);
+		sec_generate_fshare_auth_response(sec_data, unescaped_url, url_len,
+										  sec_language_get_msg_ex(sec_data, 373));
 		post_field_list_dtor();
 		free(unescaped_url);
 		return SEC_REQ_FSHARE_AUTH_REDIRECT;
 	}
 
 	if (unescape_string(pass_field->value, strlen(pass_field->value),
-				pass_buff, &pass_len, LONG_PASSWORD_LEN+1) < 0) {
+						pass_buff, &pass_len, LONG_PASSWORD_LEN + 1) < 0)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_http_auth_post:"
-				"failed to unescape %s", pass_field->value);
+																  "failed to unescape %s",
+						pass_field->value);
 		sec_generate_fshare_auth_response(sec_data, unescaped_url, url_len,
-				sec_language_get_msg_ex(sec_data, 374));
+										  sec_language_get_msg_ex(sec_data, 374));
 		post_field_list_dtor();
 		free(unescaped_url);
 		return SEC_REQ_FSHARE_AUTH_REDIRECT;
@@ -16419,53 +18687,61 @@
 	pass_buff[pass_len] = '\0';
 
 	if (unescape_string(user_field->value, strlen(user_field->value),
-				uname_buff, &user_len, SEC_UNAME_LEN+1) < 0) {
+						uname_buff, &user_len, SEC_UNAME_LEN + 1) < 0)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_http_auth_post:"
-				"failed to unescape %s", user_field->value);
+																  "failed to unescape %s",
+						user_field->value);
 		sec_generate_fshare_auth_response(sec_data, unescaped_url, url_len,
-				sec_language_get_msg_ex(sec_data, 375));
+										  sec_language_get_msg_ex(sec_data, 375));
 		post_field_list_dtor();
 		free(unescaped_url);
 		return SEC_REQ_FSHARE_AUTH_REDIRECT;
 	}
 	uname_buff[user_len] = '\0';
 
-	if (domain_field != NULL) {
+	if (domain_field != NULL)
+	{
 		if (unescape_string(domain_field->value, strlen(domain_field->value),
-					domain_buff, &domain_len, SEC_DOMAIN_LEN+1) < 0)
+							domain_buff, &domain_len, SEC_DOMAIN_LEN + 1) < 0)
 		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_http_auth_post:"
-					"failed to unescape %s", domain_field->value);
+																	  "failed to unescape %s",
+							domain_field->value);
 			sec_generate_fshare_auth_response(sec_data, unescaped_url, url_len,
-					sec_language_get_msg_ex(sec_data, 376));
+											  sec_language_get_msg_ex(sec_data, 376));
 			post_field_list_dtor();
 			free(unescaped_url);
 			return SEC_REQ_FSHARE_AUTH_REDIRECT;
 		}
 		domain_buff[domain_len] = '\0';
-	} else {
+	}
+	else
+	{
 		domain_buff[0] = '\0';
 	}
 
-	if (session->fshare_hdr != NULL) {
-		if (session->fileshare_uproxy_id != cpuid) {
-			/*This case should hardly happen, but NOT never. Only in the following case and all the conditions should be TRUE 
-			  * at the same time:
-			  * 1, session reuse on;
-			  * 2, two user(A&B) try to log in the system at the same time from two different PC(IPs) with same Uname&pass;
-			  * 3, these two IPs will run into two different uproxies with current dispatch algorithm;
-			  * 4, the default fileshare SSO user&pass(used to login AG) failed to login the backend;
-			  * 5, the sequence of these two user to login must be:
-			  *     5.1: A login AG success, but failed to login the backend fileshare system, wait input new uname&passw;
-			  *     5.2: B login AG success, but failed to login the backend fileshare system, wait input new uname&passw;
-			  *     5.3: B input new uname&passw;
-			  *     5.4: A input new uname&passw;
-			  * we will run into the following code in step 5.3. this should be a VERY corner case, currently we make some protection
-			  * here and simply refuse it*/
+	if (session->fshare_hdr != NULL)
+	{
+		if (session->fileshare_uproxy_id != cpuid)
+		{
+			/*This case should hardly happen, but NOT never. Only in the following case and all the conditions should be TRUE
+			 * at the same time:
+			 * 1, session reuse on;
+			 * 2, two user(A&B) try to log in the system at the same time from two different PC(IPs) with same Uname&pass;
+			 * 3, these two IPs will run into two different uproxies with current dispatch algorithm;
+			 * 4, the default fileshare SSO user&pass(used to login AG) failed to login the backend;
+			 * 5, the sequence of these two user to login must be:
+			 *     5.1: A login AG success, but failed to login the backend fileshare system, wait input new uname&passw;
+			 *     5.2: B login AG success, but failed to login the backend fileshare system, wait input new uname&passw;
+			 *     5.3: B input new uname&passw;
+			 *     5.4: A input new uname&passw;
+			 * we will run into the following code in step 5.3. this should be a VERY corner case, currently we make some protection
+			 * here and simply refuse it*/
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_http_auth_post:"
-					"different core");
+																	  "different core");
 			sec_generate_fshare_auth_response(sec_data, unescaped_url, url_len,
-					sec_language_get_msg_ex(sec_data, 377));
+											  sec_language_get_msg_ex(sec_data, 377));
 			post_field_list_dtor();
 			free(unescaped_url);
 			return SEC_REQ_FSHARE_AUTH_REDIRECT;
@@ -16474,22 +18750,24 @@
 	}
 
 	session->fshare_hdr = sec_create_fileshare_header(sec_data,
-			uname_buff, pass_buff,
-			(domain_len > 0 ? domain_buff : NULL));
+													  uname_buff, pass_buff,
+													  (domain_len > 0 ? domain_buff : NULL));
 	session->fileshare_uproxy_id = cpuid;
 
 	redirect_url = (uint8_t *)malloc(url_len + 6);
-	if (redirect_url == NULL) {
+	if (redirect_url == NULL)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "sec_process_http_auth_post:"
-				"failed to allocate %d bytes", url_len + 4);
+																  "failed to allocate %d bytes",
+						url_len + 4);
 		sec_generate_fshare_auth_response(sec_data, unescaped_url, url_len,
-				sec_language_get_msg_ex(sec_data, 377));
+										  sec_language_get_msg_ex(sec_data, 377));
 		post_field_list_dtor();
 		free(unescaped_url);
 		return SEC_REQ_FSHARE_AUTH_REDIRECT;
 	}
 
-	/* 
+	/*
 	 * XXX Can't assume HTTP scheme if we ever do filesharing over SSL.
 	 * Unlikely, since the communication is over localhost.
 	 */
@@ -16497,16 +18775,21 @@
 	len += SLEN(SEC_SCHEME_HTTP_STR);
 	bcopy("://", redirect_url + len, SLEN("://"));
 	len += SLEN("://");
-	if (strstr(unescaped_url, DNS_LOCAL_HOST) != NULL) {
+	if (strstr(unescaped_url, DNS_LOCAL_HOST) != NULL)
+	{
 		bcopy(strstr(unescaped_url, DNS_LOCAL_HOST), redirect_url + len,
-				url_len - SLEN(SEC_SCHEME_HTTP_STR));
+			  url_len - SLEN(SEC_SCHEME_HTTP_STR));
 		len += strlen(strstr(unescaped_url, DNS_LOCAL_HOST));
-	} else if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT) &&
-	           strstr(unescaped_url, DNS_LOCAL_HOST_ALIAS) != NULL) {
+	}
+	else if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT) &&
+			 strstr(unescaped_url, DNS_LOCAL_HOST_ALIAS) != NULL)
+	{
 		bcopy(strstr(unescaped_url, DNS_LOCAL_HOST_ALIAS), redirect_url + len,
-				url_len - SLEN(SEC_SCHEME_HTTP_STR));
+			  url_len - SLEN(SEC_SCHEME_HTTP_STR));
 		len += strlen(strstr(unescaped_url, DNS_LOCAL_HOST_ALIAS));
-	} else {
+	}
+	else
+	{
 		bcopy(unescaped_url, redirect_url + len, url_len - SLEN(SEC_SCHEME_HTTP_STR));
 		len += url_len;
 	}
@@ -16518,7 +18801,7 @@
 	return SEC_REQ_CIFS_REDIRECT;
 }
 
-static uint8_t 
+static uint8_t
 language_compare(uint8_t *str, int32_t len, sec_vsite_t *site, int32_t option)
 {
 	int32_t lang_str_len;
@@ -16526,27 +18809,27 @@
 
 	unescape_string(str, len, portal_temp_string, &len, MAX_APP_PRINT_SIZE);
 
-        lang_string = sec_language_get_and_unescape_msg(site->language, option,
-                                                    &lang_str_len);
-	if (len == lang_str_len && !memcmp(portal_temp_string, lang_string, lang_str_len)) 
-	{
-	       return TRUE;
-	}    
-
-        return FALSE;
-}
-
-struct frame * sec_create_fileshare_header(struct smanager_data *sec_data,
-		uint8_t *username, uint8_t *password, uint8_t *workgroup)
-{
-#define FSHARE_HDR_UNAME		"X-AN-fileshare: uname="
-#define FSHARE_HDR_PWD			"; password="
-#define FSHARE_HDR_UGROUP		"; user_workgroup="
-#define FSHARE_HDR_GROUP		"; workgroup="
-#define FSHARE_HDR_LAN			"; language="
-#define FSHARE_HDR_ACL			"; res_group_acls="
-#define FSHARE_HDR_ACL_DEFAULT	"file%3a%2a%2f%2a%20PERMIT"
-#define MAX_ESCAPE_SIZE			256
+	lang_string = sec_language_get_and_unescape_msg(site->language, option,
+													&lang_str_len);
+	if (len == lang_str_len && !memcmp(portal_temp_string, lang_string, lang_str_len))
+	{
+		return TRUE;
+	}
+
+	return FALSE;
+}
+
+struct frame *sec_create_fileshare_header(struct smanager_data *sec_data,
+										  uint8_t *username, uint8_t *password, uint8_t *workgroup)
+{
+#define FSHARE_HDR_UNAME "X-AN-fileshare: uname="
+#define FSHARE_HDR_PWD "; password="
+#define FSHARE_HDR_UGROUP "; user_workgroup="
+#define FSHARE_HDR_GROUP "; workgroup="
+#define FSHARE_HDR_LAN "; language="
+#define FSHARE_HDR_ACL "; res_group_acls="
+#define FSHARE_HDR_ACL_DEFAULT "file%3a%2a%2f%2a%20PERMIT"
+#define MAX_ESCAPE_SIZE 256
 	struct frame *header_frame = NULL;
 	struct frame *header_chain = NULL;
 	char *res_group_acl_string;
@@ -16558,21 +18841,25 @@
 	char group_escape[MAX_ESCAPE_SIZE] = {0};
 
 	header_chain = parser_frame_alloc();
-	if (header_chain == NULL) {
+	if (header_chain == NULL)
+	{
 		return NULL;
 	}
 	header_frame = header_chain;
 	header_frame->f_datalen = 0;
 	data_p = header_frame->f_data;
 
-	if ((sec_data->session->external_acls[OLD_ACL_SCHEME_FILE] != NULL) && 
-			(!STAILQ_EMPTY(sec_data->session->external_acls[OLD_ACL_SCHEME_FILE]))) { 
+	if ((sec_data->session->external_acls[OLD_ACL_SCHEME_FILE] != NULL) &&
+		(!STAILQ_EMPTY(sec_data->session->external_acls[OLD_ACL_SCHEME_FILE])))
+	{
 		/* External ACL */
-		res_group_acl_len = external_acl_fileshare_get_string(&res_group_acl_string, 
-				sec_data->session->external_acls[OLD_ACL_SCHEME_FILE]);
-	} else {
+		res_group_acl_len = external_acl_fileshare_get_string(&res_group_acl_string,
+															  sec_data->session->external_acls[OLD_ACL_SCHEME_FILE]);
+	}
+	else
+	{
 		res_group_acl_len = acl_res_group_fileshare_get_string(&res_group_acl_string,
-				sec_data->session->acl_rules);
+															   sec_data->session->acl_rules);
 	}
 
 	write_data(FSHARE_HDR_UNAME, &data_p, SLEN(FSHARE_HDR_UNAME), &header_frame);
@@ -16585,19 +18872,20 @@
 	snprintf(portal_temp_string, MAX_ESCAPE_SIZE, "%s", pwd_escape);
 	write_data(portal_temp_string, &data_p, strlen(portal_temp_string), &header_frame);
 
-	if (workgroup != NULL) {
+	if (workgroup != NULL)
+	{
 		write_data(FSHARE_HDR_UGROUP, &data_p, SLEN(FSHARE_HDR_UGROUP), &header_frame);
 		escape_string(workgroup, ugroup_escape, 3 * strlen(workgroup) + 1);
 		snprintf(portal_temp_string, MAX_ESCAPE_SIZE, "%s", ugroup_escape);
 		write_data(portal_temp_string, &data_p, strlen(portal_temp_string), &header_frame);
 	}
 
-	if (sec_data->vsite_p->default_smb_workgroup != NULL) 
+	if (sec_data->vsite_p->default_smb_workgroup != NULL)
 	{
 		write_data(FSHARE_HDR_GROUP, &data_p, SLEN(FSHARE_HDR_GROUP), &header_frame);
 		escape_string(sec_data->vsite_p->default_smb_workgroup,
-				group_escape,
-				3 * strlen(sec_data->vsite_p->default_smb_workgroup) + 1);
+					  group_escape,
+					  3 * strlen(sec_data->vsite_p->default_smb_workgroup) + 1);
 		snprintf(portal_temp_string, MAX_ESCAPE_SIZE, "%s", group_escape);
 		write_data(portal_temp_string, &data_p, strlen(portal_temp_string), &header_frame);
 	}
@@ -16607,9 +18895,12 @@
 	write_data(portal_temp_string, &data_p, strlen(portal_temp_string), &header_frame);
 
 	write_data(FSHARE_HDR_ACL, &data_p, SLEN(FSHARE_HDR_ACL), &header_frame);
-	if (res_group_acl_len != 0) {
+	if (res_group_acl_len != 0)
+	{
 		write_data(res_group_acl_string, &data_p, strlen(res_group_acl_string), &header_frame);
-	} else {
+	}
+	else
+	{
 		write_data(FSHARE_HDR_ACL_DEFAULT, &data_p, SLEN(FSHARE_HDR_ACL_DEFAULT), &header_frame);
 	}
 
@@ -16617,80 +18908,87 @@
 	write_data(portal_temp_string, &data_p, strlen(portal_temp_string), &header_frame);
 
 	return header_chain;
-
 }
 
-void 
-fileshare_sec_session_dtor_reg(sec_session_t *session_p)
+void fileshare_sec_session_dtor_reg(sec_session_t *session_p)
 {
 	if (session_p != NULL && session_p->fshare_hdr != NULL &&
-		session_p->fileshare_uproxy_id == cpuid) {
+		session_p->fileshare_uproxy_id == cpuid)
+	{
 		parser_frame_chain_free(session_p->fshare_hdr);
 		session_p->fshare_hdr = NULL;
 		session_p->fileshare_uproxy_id = -1;
 	}
 }
 
-
-void
-sec_generate_register_redirect(struct smanager_data *sec_data)
+void sec_generate_register_redirect(struct smanager_data *sec_data)
 {
 	char url_prefix[128] = {0};
 
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
-		strncpy(url_prefix, "/prx/000/http/localh", sizeof(url_prefix)-1);
-	} else {
-		strncpy(url_prefix, SEC_REWRITTEN_PREFIX, sizeof(url_prefix)-1);
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
+		strncpy(url_prefix, "/prx/000/http/localh", sizeof(url_prefix) - 1);
+	}
+	else
+	{
+		strncpy(url_prefix, SEC_REWRITTEN_PREFIX, sizeof(url_prefix) - 1);
 	}
 
-	if(sec_data->quicklink_conn && sec_data->sp_host && sec_data->sp_host[0]) {
+	if (sec_data->quicklink_conn && sec_data->sp_host && sec_data->sp_host[0])
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s", HTTPS_SCHEME, sec_data->sp_host,
-			url_prefix, REGISTER_PATH);
-	}else {
+				 url_prefix, REGISTER_PATH);
+	}
+	else
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s", HTTPS_SCHEME, sec_data->req_domain,
-			url_prefix, REGISTER_PATH);
+				 url_prefix, REGISTER_PATH);
 	}
 
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"), portal_temp_string,
-		strlen(portal_temp_string), NULL, 0, NULL, 0, NULL, 0, 0, 0);
+						  strlen(portal_temp_string), NULL, 0, NULL, 0, NULL, 0, 0, 0);
 
 	return;
 }
 
-int
-port_is_reserved(uint16_t port)
+int port_is_reserved(uint16_t port)
 {
 	return ((port == HTTP_DEFAULT_PORT) ||
-		(port == ART_SERVER_DEFAULT_PORT) ||
-		(port == MOTIONPRO_DEFAULT_PORT));
+			(port == ART_SERVER_DEFAULT_PORT) ||
+			(port == MOTIONPRO_DEFAULT_PORT));
 }
 
-void
-sec_generate_oauth_bind_redirect(struct smanager_data *sec_data, char *oauth_uid, int oauth_auto_reauth)
+void sec_generate_oauth_bind_redirect(struct smanager_data *sec_data, char *oauth_uid, int oauth_auto_reauth)
 {
 	char cookie[512] = {0};
 	char *p = cookie;
 	int remain = sizeof(cookie);
 	int ret = 0;
 
-	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT)) {
+	if (SEC_ISSET(sec_data->flags, SDAT_REQ_FROM_WCHAT))
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s", HTTPS_SCHEME, sec_data->req_domain,
-			"/prx/000/http/localh", OAUTH_BIND_PATH);
-	} else {
+				 "/prx/000/http/localh", OAUTH_BIND_PATH);
+	}
+	else
+	{
 		snprintf(portal_temp_string, MAX_APP_PRINT_SIZE, "%s%s%s%s", HTTPS_SCHEME, sec_data->req_domain,
-			SEC_REWRITTEN_PREFIX, OAUTH_BIND_PATH);
+				 SEC_REWRITTEN_PREFIX, OAUTH_BIND_PATH);
 	}
 
 	ret = snprintf(p, remain, "%s=%s;path=/prx/000/http/;secure;samesite=None;", SEC_AN_OAUTH_UID, oauth_uid);
-	if (ret >= remain) {
+	if (ret >= remain)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "OAuth oid is too long: %d", strlen(oauth_uid));
 		return;
 	}
 	p += ret;
 	remain -= ret;
-	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
+	if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+	{
 		ret = snprintf(p, remain, "HttpOnly");
-		if (ret >= remain) {
+		if (ret >= remain)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Cookie is too long to include keyword.");
 			return;
 		}
@@ -16698,17 +18996,21 @@
 		remain -= ret;
 	}
 
-	if (sec_data->oauth_vendor) {
+	if (sec_data->oauth_vendor)
+	{
 		ret = snprintf(p, remain, "\r\nSet-Cookie:%s=%d;path=/prx/000/http/;secure;samesite=None;", SEC_AN_OAUTH_VENDOR_ID, sec_data->oauth_vendor);
-		if (ret >= remain) {
+		if (ret >= remain)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "OAuth vendor is too long.");
 			return;
 		}
 		p += ret;
 		remain -= ret;
-		if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
+		if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
 			ret = snprintf(p, remain, "HttpOnly");
-			if (ret >= remain) {
+			if (ret >= remain)
+			{
 				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Cookie is too long to include keyword.");
 				return;
 			}
@@ -16717,19 +19019,23 @@
 		}
 	}
 
-	if (oauth_auto_reauth) {
-		ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER, ULOG_NO666, 85206,1,0,0,0,0,6);
+	if (oauth_auto_reauth)
+	{
+		ulog_info_default(PROXY_CONN_LOGIDX(sec_data->client_conn), AMP_ULOGF_MODULE_SMANAGER, ULOG_NO666, 85206, 1, 0, 0, 0, 0, 6);
 
 		ret = snprintf(p, remain, "\r\nSet-Cookie:%s=%d;path=/prx/000/http/;secure;samesite=None;", SEC_AN_OAUTH_AUTO_REAUTH, oauth_auto_reauth);
-		if (ret >= remain) {
+		if (ret >= remain)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "OAuth auto re-authentication flag is too long.");
 			return;
 		}
 		p += ret;
 		remain -= ret;
-		if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY)) {
+		if (SEC_ISSET(sec_data->vsite_p->common_flags, SEC_SETCOOKIE_HTTPONLY))
+		{
 			ret = snprintf(p, remain, "HttpOnly");
-			if (ret >= remain) {
+			if (ret >= remain)
+			{
 				ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "Cookie is too long to include keyword.");
 				return;
 			}
@@ -16739,22 +19045,22 @@
 	}
 
 	sec_generate_redirect(sec_data, "302 Redirect", SLEN("302 Redirect"), portal_temp_string,
-		strlen(portal_temp_string), NULL, 0, cookie, strlen(cookie), NULL, 0, 0, 0);
+						  strlen(portal_temp_string), NULL, 0, cookie, strlen(cookie), NULL, 0, 0, 0);
 
 	return;
 }
 
-int
-sec_generate_oauth_bind_response(smanager_data_t *sec_data)
+int sec_generate_oauth_bind_response(smanager_data_t *sec_data)
 {
 	struct frame *final_page = NULL, *out_frame = NULL, *in_frame = NULL;
 	sec_vsite_t *vsite = sec_data->vsite_p;
 	uint8_t *cursor = NULL;
 
 	in_frame = id_to_frame_chain(OAUTH_BIND_ID, vsite->default_theme);
-	if (!in_frame) {
+	if (!in_frame)
+	{
 		ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER, "%s: id_to_frame_chain failed.",
-			__FUNCTION__);
+						__FUNCTION__);
 		redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
 		return SEC_FAIL;
 	}
@@ -16765,12 +19071,14 @@
 
 	write_frame_chunk(&out_frame, &cursor, &in_frame);
 
-	if (final_page) {
+	if (final_page)
+	{
 		sec_data->response = create_http_response_with_bookmark(OK, final_page, 0, NULL, NULL, "text/html",
-			NULL, sec_data, NULL, 0, 0);
-		if (!sec_data->response) {
+																NULL, sec_data, NULL, 0, 0);
+		if (!sec_data->response)
+		{
 			ulog_error_conn(sec_data->client_conn, AMP_ULOG_SMANAGER,
-				"%s: create_http_response_with_bookmark failed.", __FUNCTION__);
+							"%s: create_http_response_with_bookmark failed.", __FUNCTION__);
 			parser_frame_chain_free(final_page);
 			redirect_customized_error_page(vsite, sec_data, SEC_CUSTOM_ERR_REQ);
 			return SEC_FAIL;
@@ -16779,4 +19087,3 @@
 
 	return SEC_SUCCESS;
 }
-
