Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/dcn/company.inc
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/dcn/company.inc	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/dcn/company.inc	(working copy)
@@ -1,7 +1,7 @@
 <?php
-	$_TAG_COMPANY_COPYRIGHT_ = '2020 Digital China Networks (Beijing) Limited. All rights reserved.';
-	$_TAG_COMPANY_COPYRIGHT_CN = '2020 神州数码网络（北京）有限公司. 版权所有.';
-	$_TAG_COMPANY_COPYRIGHT_TW = '2020 神州數碼網絡（北京）有限公司. 版權所有.';
+	$_TAG_COMPANY_COPYRIGHT_ = '2024 Digital China Networks (Beijing) Limited. All rights reserved.';
+	$_TAG_COMPANY_COPYRIGHT_CN = '2024 神州数码网络（北京）有限公司. 版权所有.';
+	$_TAG_COMPANY_COPYRIGHT_TW = '2024 神州數碼網絡（北京）有限公司. 版權所有.';
 	$_TAG_COMPANY_TRADEMASK = '';
 	$_TAG_COMPANY_NAME_ = 'Digital China Networks (Beijing) Limited';
 	$_TAG_PRODUCT_NAME_ = 'DCAD';
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/dcn/sed_brand
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/dcn/sed_brand	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/dcn/sed_brand	(working copy)
@@ -1,7 +1,7 @@
 #for dcn tag replacement
 _TAG_COMPANY_UNAME_$DCN
 _TAG_COMPANY_LNAME_$DCN
-_TAG_COMPANY_COPYRIGHT_$Copyright (c) 2020 Digital China Networks (Beijing) Limited. All rights reserved.
+_TAG_COMPANY_COPYRIGHT_$Copyright (c) 2024 Digital China Networks (Beijing) Limited. All rights reserved.
 _TAG_COMPANY_WEB_$www.dcnetworks.com.cn
 _TAG_COMPANY_TEL_$400-810-9119
 _TAG_COMPANY_EMAIL_$dcn_support@digitalchina.com
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/fortinet/company.inc
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/fortinet/company.inc	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/fortinet/company.inc	(working copy)
@@ -1,7 +1,7 @@
 <?php
-	$_TAG_COMPANY_COPYRIGHT_ = '2000-2020 Fortinet, Inc. All rights reserved.';
-	$_TAG_COMPANY_COPYRIGHT_CN = '2000-2020 飞塔信息科技有限公司. 版权所有.';
-	$_TAG_COMPANY_COPYRIGHT_TW = '2000-2020 飛塔信息科技有限公司. 版權所有.';
+	$_TAG_COMPANY_COPYRIGHT_ = '2000-2024 Fortinet, Inc. All rights reserved.';
+	$_TAG_COMPANY_COPYRIGHT_CN = '2000-2024 飞塔信息科技有限公司. 版权所有.';
+	$_TAG_COMPANY_COPYRIGHT_TW = '2000-2024 飛塔信息科技有限公司. 版權所有.';
 	$_TAG_COMPANY_TRADEMASK = '';
 	$_TAG_COMPANY_NAME_ = 'FORTINET';
 	$_TAG_COMPANY_NAME_FULL_ = 'FORTINET';
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/fortinet/company.py
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/fortinet/company.py	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/fortinet/company.py	(working copy)
@@ -1,7 +1,7 @@
 # encoding: utf-8
 
-COMPANY_COPYRIGHT = {'en':'2000-2020 Fortinet, Inc. All rights reserved.','zh-cn':'2000-2020 飞塔信息科技有限公司. 版权所有.','zh-tw':'2000-2020 飛塔信息科技有限公司. 版權所有.','ja':'2000-2020 Fortinet, Inc. All rights reserved.'}
-COMPANY_COPYRIGHT_CN = {'en':'2000-2020 Fortinet, Inc. All rights reserved.','zh-cn':'2000-2020 飞塔信息科技有限公司. 版权所有.','zh-tw':'2000-2020 飛塔信息科技有限公司. 版權所有.','ja':'2000-2020 Fortinet, Inc. All rights reserved.'}
+COMPANY_COPYRIGHT = {'en':'2000-2024 Fortinet, Inc. All rights reserved.','zh-cn':'2000-2024 飞塔信息科技有限公司. 版权所有.','zh-tw':'2000-2024 飛塔信息科技有限公司. 版權所有.','ja':'2000-2024 Fortinet, Inc. All rights reserved.'}
+COMPANY_COPYRIGHT_CN = {'en':'2000-2024 Fortinet, Inc. All rights reserved.','zh-cn':'2000-2024 飞塔信息科技有限公司. 版权所有.','zh-tw':'2000-2024 飛塔信息科技有限公司. 版權所有.','ja':'2000-2024 Fortinet, Inc. All rights reserved.'}
 COMPANY_COPYRIGHT_LOGIN = {'en':'©2021 Fortinet, Inc.','zh-cn':'©2021 飞塔信息科技有限公司.','zh-tw':'©2021 飛塔信息科技有限公司.','ja':'©2021 Fortinet, Inc.'}
 COMPANY_TRADEMASK = '&nbsp;'
 COMPANY_NAME = 'FORTINET'
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/fortinet/sed_brand
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/fortinet/sed_brand	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/fortinet/sed_brand	(working copy)
@@ -1,7 +1,7 @@
 #for fortinet tag replacement
 _TAG_COMPANY_UNAME_$FORTINET
 _TAG_COMPANY_LNAME_$Fortinet
-_TAG_COMPANY_COPYRIGHT_$Copyright (c) 2000-2020 Fortinet,Inc. All rights reserved.
+_TAG_COMPANY_COPYRIGHT_$Copyright (c) 2000-2024 Fortinet,Inc. All rights reserved.
 _TAG_COMPANY_WEB_$www.fortinet.com
 _TAG_COMPANY_TEL_$86-10-62965255
 _TAG_COMPANY_EMAIL_$support_cn@fortinet.com
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/hillstone/company.py
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/hillstone/company.py	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/hillstone/company.py	(working copy)
@@ -1,9 +1,9 @@
 # encoding: utf-8
 
-COMPANY_COPYRIGHT = {'en':'Copyright © 2009-2020 Hillstone Networks. All rights reserved.','zh-cn':'© 2009-2020 Hillstone网科版权所有.','zh-tw':'© 2009-2020 Hillstone网科版權所有','ja':'Copyright © 2009-2020 Hillstone Networks. All rights reserved.'}
-COMPANY_COPYRIGHT_CN = {'en':'Copyright © 2009-2020 Hillstone Networks. All rights reserved.','zh-cn':'© 2009-2020 Hillstone网科版权所有.','zh-tw':'© 2009-2020 Hillstone网科版權所有','ja':'Copyright © 2009-2020 Hillstone Networks. All rights reserved.'}
-COMPANY_COPYRIGHT_LOGIN = {'en':'©2021 Hillstone Networks.','zh-cn':'©2021 Hillstone网科.','zh-tw':'©2021 Hillstone网科.','ja':'©2021 Hillstone Networks.'}
-COMPANY_COPYRIGHT_CN_LOGIN = {'en':'©2021 Hillstone Networks.','zh-cn':'©2021 Hillstone网科.','zh-tw':'©2021 Hillstone网科.','ja':'©2021 Hillstone Networks.'}
+COMPANY_COPYRIGHT = {'en':'Copyright © 2009-2024 Hillstone Networks. All rights reserved.','zh-cn':'© 2009-2024 Hillstone网科版权所有.','zh-tw':'© 2009-2024 Hillstone网科版權所有','ja':'Copyright © 2009-2024 Hillstone Networks. All rights reserved.'}
+COMPANY_COPYRIGHT_CN = {'en':'Copyright © 2009-2024 Hillstone Networks. All rights reserved.','zh-cn':'© 2009-2024 Hillstone网科版权所有.','zh-tw':'© 2009-2024 Hillstone网科版權所有','ja':'Copyright © 2009-2024 Hillstone Networks. All rights reserved.'}
+COMPANY_COPYRIGHT_LOGIN = {'en':'©2024 Hillstone Networks.','zh-cn':'©2024 Hillstone网科.','zh-tw':'©2024 Hillstone网科.','ja':'©2024 Hillstone Networks.'}
+COMPANY_COPYRIGHT_CN_LOGIN = {'en':'©2024 Hillstone Networks.','zh-cn':'©2024 Hillstone网科.','zh-tw':'©2024 Hillstone网科.','ja':'©2024 Hillstone Networks.'}
 COMPANY_TRADEMASK = '&nbsp;'
 COMPANY_NAME = 'HILLSTONE NETWORKS'
 COMPANY_NAME_CN = 'Hillstone网科'
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/hillstone/sed_brand
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/hillstone/sed_brand	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/hillstone/sed_brand	(working copy)
@@ -1,7 +1,7 @@
 #for hillstone tag replacement
 _TAG_COMPANY_UNAME_$HILLSTONE NETWORKS
 _TAG_COMPANY_LNAME_$HillstoneNetworks
-_TAG_COMPANY_COPYRIGHT_$Copyright (c) 2009-2020 Hillstone Networks. All rights reserved.
+_TAG_COMPANY_COPYRIGHT_$Copyright (c) 2009-2024 Hillstone Networks. All rights reserved.
 _TAG_COMPANY_WEB_$www.hillstonenet.com.cn
 _TAG_COMPANY_TEL_$400-828-6655-1
 _TAG_COMPANY_EMAIL_$tac@hillstonenet.com
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/infosec/company.inc
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/infosec/company.inc	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/infosec/company.inc	(working copy)
@@ -1,5 +1,5 @@
 <?php
-	$_TAG_COMPANY_COPYRIGHT_ = '2020 Infosec Technologies Co.,Ltd. All rights reserved.';
+	$_TAG_COMPANY_COPYRIGHT_ = '2024 Infosec Technologies Co.,Ltd. All rights reserved.';
 	$_TAG_COMPANY_COPYRIGHT_CN = '信安世纪公司版权所有';
 	$_TAG_COMPANY_COPYRIGHT_TW = '信安世紀公司版權所有';
 	$_TAG_COMPANY_TRADEMASK = '';
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/infosec/company.py
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/infosec/company.py	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/infosec/company.py	(working copy)
@@ -1,9 +1,9 @@
 # encoding: utf-8
 
-COMPANY_COPYRIGHT = {'en':'2021 Infosec Technologies Co.,Ltd. All rights reserved.','zh-cn':'信安世纪公司版权所有','zh-tw':'信安世紀公司版權所有','ja':'2021 Infosec Technologies Co.,Ltd. All rights reserved.'}
-COMPANY_COPYRIGHT_CN = {'en':'2021 Infosec Technologies Co.,Ltd. All rights reserved.','zh-cn':'2021信安世纪公司.版权所有.','zh-tw':'2021信安世紀公司.版權所有.','ja':'2021 Infosec Technologies Co.,Ltd. All rights reserved.'}
-COMPANY_COPYRIGHT_LOGIN = {'en':'©2021 Infosec Technologies Co.,Ltd.','zh-cn':'©2021信安世纪公司.','zh-tw':'©2021信安世紀公司.','ja':'©2021 Infosec Technologies Co.,Ltd.'}
-COMPANY_COPYRIGHT_CN_LOGIN = {'en':'©2021 Infosec Technologies Co.,Ltd.','zh-cn':'©2021信安世纪公司.','zh-tw':'©2021信安世紀公司.','ja':'©2021 Infosec Technologies Co.,Ltd.'}
+COMPANY_COPYRIGHT = {'en':'2024 Infosec Technologies Co.,Ltd. All rights reserved.','zh-cn':'信安世纪公司版权所有','zh-tw':'信安世紀公司版權所有','ja':'2024 Infosec Technologies Co.,Ltd. All rights reserved.'}
+COMPANY_COPYRIGHT_CN = {'en':'2024 Infosec Technologies Co.,Ltd. All rights reserved.','zh-cn':'2021信安世纪公司.版权所有.','zh-tw':'2021信安世紀公司.版權所有.','ja':'2024 Infosec Technologies Co.,Ltd. All rights reserved.'}
+COMPANY_COPYRIGHT_LOGIN = {'en':'©2024 Infosec Technologies Co.,Ltd.','zh-cn':'©2021信安世纪公司.','zh-tw':'©2021信安世紀公司.','ja':'©2024 Infosec Technologies Co.,Ltd.'}
+COMPANY_COPYRIGHT_CN_LOGIN = {'en':'©2024 Infosec Technologies Co.,Ltd.','zh-cn':'©2021信安世纪公司.','zh-tw':'©2021信安世紀公司.','ja':'©2024 Infosec Technologies Co.,Ltd.'}
 COMPANY_TRADEMASK = '&nbsp;'
 COMPANY_NAME = 'INFOSEC'
 COMPANY_NAME_LOCAL = 'INFOSEC'
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/infosec/sed_brand
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/infosec/sed_brand	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/infosec/sed_brand	(working copy)
@@ -1,7 +1,7 @@
 #for infosec tag replacement
 _TAG_COMPANY_UNAME_$INFOSEC
 _TAG_COMPANY_LNAME_$Infosec
-_TAG_COMPANY_COPYRIGHT_$Copyright (c) 2000-2020 Infosec Technologies Co.,Ltd. All rights reserved.
+_TAG_COMPANY_COPYRIGHT_$Copyright (c) 2000-2024 Infosec Technologies Co.,Ltd. All rights reserved.
 _TAG_COMPANY_WEB_$www.infosec.com.cn
 _TAG_COMPANY_TEL_$86-10-68025518, 86-10-68025528
 _TAG_COMPANY_EMAIL_$support@infosec.com.cn
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/netopti/company.inc
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/netopti/company.inc	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/netopti/company.inc	(working copy)
@@ -1,5 +1,5 @@
 <?php
-	$_TAG_COMPANY_COPYRIGHT_ = '2020 Infosec Technologies Co.,Ltd. All rights reserved.';
+	$_TAG_COMPANY_COPYRIGHT_ = '2024 Infosec Technologies Co.,Ltd. All rights reserved.';
 	$_TAG_COMPANY_COPYRIGHT_CN = '信安世纪公司版权所有';
 	$_TAG_COMPANY_COPYRIGHT_TW = '信安世紀公司版權所有';
 	$_TAG_COMPANY_TRADEMASK = '';
Index: /branches/rel_apv_10_4_0_112_sbi/tools/company/netopti/sed_brand
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/tools/company/netopti/sed_brand	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/tools/company/netopti/sed_brand	(working copy)
@@ -1,7 +1,7 @@
 #for infosec tag replacement
 _TAG_COMPANY_UNAME_$INFOSEC
 _TAG_COMPANY_LNAME_$Infosec
-_TAG_COMPANY_COPYRIGHT_$Copyright (c) 2000-2020 Infosec Technologies Co.,Ltd. All rights reserved.
+_TAG_COMPANY_COPYRIGHT_$Copyright (c) 2000-2024 Infosec Technologies Co.,Ltd. All rights reserved.
 _TAG_COMPANY_WEB_$www.infosec.com.cn
 _TAG_COMPANY_TEL_$86-10-68025518, 86-10-68025528
 _TAG_COMPANY_EMAIL_$support@infosec.com.cn
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/bin/proxDetector/companyinfo.h
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/bin/proxDetector/companyinfo.h	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/bin/proxDetector/companyinfo.h	(working copy)
@@ -1,7 +1,7 @@
 #ifndef _COMPANY_INFO_H_
 #define _COMPANY_INFO_H_
 
-#define ARRAY_COMPINFO_COPYRIGHT "Copyright (c) 2000-2021 Array Networks Inc. All rights reserved."
+#define ARRAY_COMPINFO_COPYRIGHT "Copyright (c) 2000-2024 Array Networks Inc. All rights reserved."
 #define ARRAY_CN_COMPINFO_COPYRIGHT "Copyright (c) 2019 Beijing Array Networks Co., Ltd. All rights reserved."
 
 
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/etc/named.conf
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/etc/named.conf	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/etc/named.conf	(working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2021 Array Networks Inc.  All rights reserved.
+// Copyright (C) 2024 Array Networks Inc.  All rights reserved.
 
 // Refer to the manual for details.  
 // If you are ever going to setup a primary server, make sure you've
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/etc/sample.rev
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/etc/sample.rev	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/etc/sample.rev	(working copy)
@@ -1,4 +1,4 @@
-; Copyright (C) 2021 Array Networks Inc.  All rights reserved.
+; Copyright (C) 2024 Array Networks Inc.  All rights reserved.
 ; Note:
 ;    This is a sample that indicates how to config zone for LocalDNS,
 ;    please don't use it for your product system, and don't remove it 
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/lib/libexauth/auth_ext_cli.h
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/lib/libexauth/auth_ext_cli.h	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/lib/libexauth/auth_ext_cli.h	(working copy)
@@ -19,11 +19,12 @@
 #ifndef _AUTH_EXT_CLI_H_
 #define _AUTH_EXT_CLI_H_
 
+#define ID_LEN 5
 #define LINE_LEN 255
 #define HOST_LEN 256
 #define SECRET_LEN 129
 #define EXAUTH_DEF_METHOD		"RADIUS"
-#define MAX_EXAU_SERVER_NUM		2
+#define MAX_EXAU_SERVER_NUM		3
 #define IP_PRESENTATION_LEN		100	/*ip presentation length*/
 
 #define CLI_EXAUTH_ON				"admin aaa on"
@@ -38,9 +39,11 @@
 
 #define EXAUTH_SERVER_ID1			"es01"
 #define EXAUTH_SERVER_ID2			"es02"
+#define EXAUTH_SERVER_ID2                       "es03"
 
 #define EXAUTH_METHOD_STRING_RADIUS		"RADIUS"
 #define EXAUTH_METHOD_STRING_TAC_X		"TAC_X"
+#define EXAUTH_METHOD_STRING_TAC_X              "LDAP"
 #define EXAUTH_METHOD_STRING_UNKONWN	"UNKONWN METHOD"
 
 #define EXAUTH_PRIORITY_HIGH		1
@@ -49,12 +52,13 @@
 /*authentication method table*/
 typedef enum exau_method {
 	METHOD_RADIUS,
-	METHOD_TAC_X
+	METHOD_TAC_X,
+        METHOD_LDAP
 } enum_exau_method;
 
 /*the structure for radius server*/
 typedef struct exauth_server {
-	char id[5];
+	char id[ID_LEN];
 	char host[HOST_LEN];
 	unsigned short port;
 	char secret[SECRET_LEN];
@@ -68,7 +72,7 @@
 	int external_authorize_on;
 	int ext_auth_priority;
 	enum_exau_method exau_method;
-	exauth_server_t exauth_servers[2];
+	exauth_server_t exauth_servers[3];
 } exauth_conf_t;
 
 /*turn on external authentication*/
@@ -83,6 +87,9 @@
 /*configure radius server*/
 int exauth_server(char *id, char *host, unsigned short port, char *secret, char *cipher_flag);
 
+/*configure ldap server*/
+int exauth_ldap_server(char *id, char *ldap_host, unsigned short ldap_port);
+
 /*delete a radius server*/
 int no_exauth_server(char *id);
 
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/lib/libexauth/auth_ext_cli.c
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/lib/libexauth/auth_ext_cli.c	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/lib/libexauth/auth_ext_cli.c	(working copy)
@@ -148,10 +148,14 @@
 	else if (strcasecmp(method, EXAUTH_METHOD_STRING_TAC_X) == 0)
 	{
 		g_exauth_conf.exau_method = METHOD_TAC_X;
-	}
+        }
+        else if (strcasecmp(method, EXAUTH_METHOD_STRING_LDAP) == 0)
+        {
+                g_exauth_conf.exau_method = METHOD_LDAP;
+        }
 	else
 	{
-		printf ("%s | %s\n",EXAUTH_METHOD_STRING_RADIUS, EXAUTH_METHOD_STRING_TAC_X);
+		printf ("%s | %s |%s\n",EXAUTH_METHOD_STRING_RADIUS, EXAUTH_METHOD_STRING_TAC_X, EXAUTH_METHOD_STRING_LDAP);
 	}
 
 	/*update conf to shared mem*/
@@ -236,6 +240,46 @@
 	return 0;
 }
 
+int
+exauth_ldap_server(char *id, char *host, uint16_t port)
+{
+        int id_num = -1;
+        char *str_num = NULL, *ep = NULL;
+
+
+        if (id == NULL || host == NULL)
+        {
+                printf ("%s failed\n",CLI_EXAUTH_SERVER);
+                return -1;
+        }
+
+        get_auth_conf(&shm_p, &g_exauth_conf);
+
+        /*invalid server id, should be "es03"*/
+        if (strcmp(id, EXAUTH_SERVER_ID3))
+        {
+                printf ("%s\n", EXAUTH_SERVER_ID3);
+                return 0;
+        }
+
+        /*assign id*/
+        str_num = id + 3;
+        id_num = (int)strtol(str_num, &ep,10) - 1;
+
+        if (id_num == 2)
+        {
+                strcpy(g_exauth_conf.exauth_servers[id_num].id, EXAUTH_SERVER_ID3);
+        }
+
+	strncpy(g_exauth_conf.exauth_servers[id_num].host, host, HOST_LEN);
+
+        /*assign port*/
+        g_exauth_conf.exauth_servers[id_num].port = port;
+
+	set_auth_conf(&shm_p, &g_exauth_conf);
+
+	return 0;
+}
 
 /*delete an exauth server*/
 int 
@@ -252,9 +296,9 @@
 		return -1;
 	}
 
-	if (strcmp(id, EXAUTH_SERVER_ID1) && strcmp(id, EXAUTH_SERVER_ID2))
+	if (strcmp(id, EXAUTH_SERVER_ID1) && strcmp(id, EXAUTH_SERVER_ID2) && strcmp(id, EXAUTH_SERVER_ID3))
 	{
-		printf ("%s | %s\n",EXAUTH_SERVER_ID1, EXAUTH_SERVER_ID2);
+		printf ("%s | %s |%s\n",EXAUTH_SERVER_ID1, EXAUTH_SERVER_ID2, EXAUTH_SERVER_ID3);
 		return 0;
 	}
 
@@ -312,6 +356,10 @@
 			printf("%s %s\n", CLI_EXAUTH_METHOD, EXAUTH_METHOD_STRING_TAC_X);
 			break;
 
+		case METHOD_LDAP:
+			printf("%s %s\n", CLI_EXAUTH_METHOD, EXAUTH_METHOD_STRING_LDAP);
+			break;
+
 		default:
 			printf ("show %s faild\n", CLI_EXAUTH_METHOD);
 			return -1;
@@ -322,16 +370,25 @@
 	{
 		if (g_exauth_conf.exauth_servers[i].id && g_exauth_conf.exauth_servers[i].id[0] != '\0')
 		{
-			printf ("%s %s \"%s\" %d \"%s\"\n", 
+		    if (g_exauth_conf.exau_method == METHOD_LDAP)
+		    {
+			printf ("%s %s \"%s\" %d\n", 
+				    CLI_EXAUTH_SERVER,
+				    g_exauth_conf.exauth_servers[i].id,
+					g_exauth_conf.exauth_servers[i].host,
+					g_exauth_conf.exauth_servers[i].port);
+		    }
+		    else
+		    {
+			printf ("%s %s \"%s\" %d \"%s\"\n",
 				    CLI_EXAUTH_SERVER,
 				    g_exauth_conf.exauth_servers[i].id,
 					g_exauth_conf.exauth_servers[i].host,
 					g_exauth_conf.exauth_servers[i].port,
-					"*****"
-					);
+					"*****");
+		    }
 		}
 	}
-
 	return 0;
 }
 
@@ -413,6 +470,10 @@
 			buf_offset += sprintf(conf_buf + buf_offset, "%s %s\n", CLI_EXAUTH_METHOD, EXAUTH_METHOD_STRING_TAC_X);
 			break;
 
+		case METHOD_LDAP:
+			buf_offset += sprintf(conf_buf + buf_offset, "%s %s\n", CLI_EXAUTH_METHOD, EXAUTH_METHOD_STRING_LDAP);
+			break;
+
 		default:
 			printf ("show %s faild\n", CLI_EXAUTH_METHOD);
 			return NULL;
@@ -421,7 +482,17 @@
 	/*show admin aaa server*/
 	for (i = 0; i < MAX_EXAU_SERVER_NUM; i++)
 	{
-		if (g_exauth_conf.exauth_servers[i].id && g_exauth_conf.exauth_servers[i].id[0] != '\0')
+	    if (g_exauth_conf.exauth_servers[i].id && g_exauth_conf.exauth_servers[i].id[0] != '\0')
+	    {
+		if (g_exauth_conf.exau_method == METHOD_LDAP)
+		{
+			buf_offset += sprintf (conf_buf + buf_offset, "%s %s \"%s\" %d\n",
+                                    CLI_EXAUTH_SERVER,
+                                    g_exauth_conf.exauth_servers[i].id,
+                                        g_exauth_conf.exauth_servers[i].host,
+                                        g_exauth_conf.exauth_servers[i].port);
+		}
+		else
 		{
 			encrypt_secret((unsigned char *)(g_exauth_conf.exauth_servers[i].secret), encrypted_secret);
 			buf_offset += sprintf (conf_buf + buf_offset, "%s %s \"%s\" %d \"%s\" \"%s\"\n", 
@@ -433,6 +504,7 @@
 					AAA_SECRET_ENCRYPTED
 					);
 		}
+	    }
 	}
 	}
 	return conf_buf;
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/lib/libparser/commands.pm
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/lib/libparser/commands.pm	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/lib/libparser/commands.pm	(working copy)
@@ -45498,15 +45498,24 @@
 		function_name => "exauth_method",
 		function_args => [{
 								type => "STRING",
-								help_string => "method name(RADIUS or TAC_X, default is RADIUS)",
+								help_string => "method name(RADIUS or TAC_X or LDAP, default is RADIUS)",
 								optional => "YES",
 								default_value => "\"RADIUS\"",
 		},],
 	},
+        {
+                obj_type => "MENU",
+                name => "server",
+                parent_menu => "root_admin_aaa",
+                uniq_name => "root_admin_aaa",
+                cmd_attribute => "CMD_ARRAYOS|CMD_NORMAL",
+                user_level => "CLI_LEVEL_CONFIG",
+                help_string => "External authentication server configuration",
+        },
 	{
 		obj_type => "ITEM",
-		name => "server",
-		menu => "root_admin_aaa",
+		name => "rad_server",
+		menu => "root_admin_aaa_server",
 		help_string => "Configure external authentication server",
 		cmd_attribute => "CMD_ARRAYOS|CMD_NORMAL|CMD_GLOBAL|CMD_SPECIAL_LOG",
 		user_level => "CLI_LEVEL_CONFIG",
@@ -45540,6 +45549,31 @@
 							},
 						 ],
 	},
+        {
+                obj_type => "ITEM",
+                name => "ldap_server",
+                menu => "root_admin_aaa_server",
+                help_string => "Configure external authentication server",
+                cmd_attribute => "CMD_ARRAYOS|CMD_NORMAL|CMD_GLOBAL|CMD_SPECIAL_LOG",
+                user_level => "CLI_LEVEL_CONFIG",
+                function_name => "exauth_ldap_server",
+                function_args => [{
+                                                                type => "STRING",
+                                                                help_string => "id, es03",
+                                                                optional => "NO",
+                                                   },
+                                                   {
+                                                                type => "STRING",
+                                                                help_string => "LDAP Server ip",
+                                                                optional => "NO",
+                                                        },
+                                                        {
+                                                                type => "U16",
+                                                                help_string => "LDAP Server Port",
+                                                                optional => "NO",
+                                                        },
+                                                 ],
+        },
 	{
 		obj_type => "MENU",
 		name => "authorize",
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/apv/company.py
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/apv/company.py	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/apv/company.py	(working copy)
@@ -1,9 +1,9 @@
 # encoding: utf-8
 
-COMPANY_COPYRIGHT = {'en':'2021 Array Networks, Inc. All Rights reserved.','zh-cn':'2021 Array Networks公司. 版权所有.','zh-tw':'2021 Array Networks公司. 版權所有.','ja':'2021 Array Networks, Inc. All Rights reserved.'}
-COMPANY_COPYRIGHT_CN = {'en':'2021 Beijing Array Networks Co., Ltd. All rights reserved.','zh-cn':'2021 北京华耀科技有限公司. 版权所有.','zh-tw':'2021 北京华耀科技有限公司. 版权所有.','ja':'2021 Beijing Array Networks Co., Ltd. All Rights reserved.'}
-COMPANY_COPYRIGHT_LOGIN = {'en':'©2021 Array Networks, Inc.','zh-cn':'©2021 Array Networks公司.','zh-tw':'©2021 Array Networks公司.','ja':'©2021 Array Networks, Inc.'}
-COMPANY_COPYRIGHT_CN_LOGIN = {'en':'©2021 Beijing Array Networks Co., Ltd.','zh-cn':'©2021 北京华耀科技有限公司.','zh-tw':'©2021 北京华耀科技有限公司.','ja':'©2021 Beijing Array Networks Co., Ltd.'}
+COMPANY_COPYRIGHT = {'en':'2024 Array Networks, Inc. All Rights reserved.','zh-cn':'2024 Array Networks公司. 版权所有.','zh-tw':'2024 Array Networks公司. 版權所有.','ja':'2024 Array Networks, Inc. All Rights reserved.'}
+COMPANY_COPYRIGHT_CN = {'en':'2024 Beijing Array Networks Co., Ltd. All rights reserved.','zh-cn':'2024 北京华耀科技有限公司. 版权所有.','zh-tw':'2024 北京华耀科技有限公司. 版权所有.','ja':'2024 Beijing Array Networks Co., Ltd. All Rights reserved.'}
+COMPANY_COPYRIGHT_LOGIN = {'en':'©2024 Array Networks, Inc.','zh-cn':'©2024 Array Networks公司.','zh-tw':'©2024 Array Networks公司.','ja':'©2024 Array Networks, Inc.'}
+COMPANY_COPYRIGHT_CN_LOGIN = {'en':'©2024 Beijing Array Networks Co., Ltd.','zh-cn':'©2024 北京华耀科技有限公司.','zh-tw':'©2024 北京华耀科技有限公司.','ja':'©2024 Beijing Array Networks Co., Ltd.'}
 COMPANY_TRADEMASK = 'SpeedCore<sup>TM</sup>'
 COMPANY_NAME = 'Array Networks'
 COMPANY_NAME_LOCAL = 'Beijing Array Networks'
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/en/LC_MESSAGES/django.po
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/en/LC_MESSAGES/django.po	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/en/LC_MESSAGES/django.po	(working copy)
@@ -2869,7 +2869,7 @@
 #~ msgid "©2021 Beijing Array Networks, Inc."
 #~ msgstr ""
 
-#~ msgid "©2021 Array Networks, Inc."
+#~ msgid "©2024 Array Networks, Inc."
 #~ msgstr ""
 
 #~ msgid "Signin"
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/ja/LC_MESSAGES/django.po
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/ja/LC_MESSAGES/django.po	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/ja/LC_MESSAGES/django.po	(working copy)
@@ -2920,7 +2920,7 @@
 #~ msgid "©2021 Beijing Array Networks, Inc."
 #~ msgstr ""
 
-#~ msgid "©2021 Array Networks, Inc."
+#~ msgid "©2024 Array Networks, Inc."
 #~ msgstr ""
 
 #~ msgid "Signin"
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_CN/LC_MESSAGES/django.po
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_CN/LC_MESSAGES/django.po	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_CN/LC_MESSAGES/django.po	(working copy)
@@ -2864,8 +2864,8 @@
 #~ msgid "©2021 Beijing Array Networks, Inc."
 #~ msgstr "©2021 北京华耀科技有限公司"
 
-#~ msgid "©2021 Array Networks, Inc."
-#~ msgstr "©2021 Array Networks公司"
+#~ msgid "©2024 Array Networks, Inc."
+#~ msgstr "©2024 Array Networks公司"
 
 #~ msgid "Signin"
 #~ msgstr "登录"
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_CN/LC_MESSAGES/djangojs.po
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_CN/LC_MESSAGES/djangojs.po	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_CN/LC_MESSAGES/djangojs.po	(working copy)
@@ -1,5 +1,5 @@
 # Chinese (Simplified, China) translations for PROJECT.
-# Copyright (C) 2020 Array Networks Inc.
+# Copyright (C) 2024 Array Networks Inc.
 # This file is distributed under the same license as the AN Hive project.
 # Li Qian <qianli@arraynetworks.com.cn>, 2015.
 #
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_TW/LC_MESSAGES/django.po
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_TW/LC_MESSAGES/django.po	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_TW/LC_MESSAGES/django.po	(working copy)
@@ -1,5 +1,5 @@
 # Chinese (Simplified, China) translations for APV WebUI.
-# Copyright (C) 2020 Array Networks Inc.
+# Copyright (C) 2024 Array Networks Inc.
 # This file is distributed under the same license as the APV WebUI project.
 # Li Qian <qianli@arraynetworks.com.cn>, 2015.
 #
@@ -2886,7 +2886,7 @@
 #~ msgid "©2021 Beijing Array Networks, Inc."
 #~ msgstr ""
 
-#~ msgid "©2021 Array Networks, Inc."
+#~ msgid "©2024 Array Networks, Inc."
 #~ msgstr ""
 
 #~ msgid "Signin"
Index: /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_TW/LC_MESSAGES/djangojs.po
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_TW/LC_MESSAGES/djangojs.po	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/click/webui/htdocs/new/src/locale/zh_TW/LC_MESSAGES/djangojs.po	(working copy)
@@ -1,5 +1,5 @@
 # Chinese (Simplified, China) translations for PROJECT.
-# Copyright (C) 2020 Array Networks Inc.
+# Copyright (C) 2024 Array Networks Inc.
 # This file is distributed under the same license as the AN Hive project.
 # Li Qian <qianli@arraynetworks.com.cn>, 2015.
 #
Index: /branches/rel_apv_10_4_0_112_sbi/usr/src/sys/click/sys/clickarray.h
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/src/sys/click/sys/clickarray.h	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/src/sys/click/sys/clickarray.h	(working copy)
@@ -2,7 +2,7 @@
 #define _SYS_CLICKARRAY_H_
 
 /*domestic equipment*/
-#define ARRAY_CN_COMPINFO_COPYRIGHT "Copyright (c) 2021 Beijing Array Networks Co., Ltd. All rights reserved."
+#define ARRAY_CN_COMPINFO_COPYRIGHT "Copyright (c) 2024 Beijing Array Networks Co., Ltd. All rights reserved."
 #define ARRAY_CN_PHONE "400-600-7878"
 #define ARRAY_CN_COMPINFO_EMAIL "support@arraynetworks.com.cn"
 #define ARRAY_CN_COMPINFO_WEBSITE "www.arraynetworks.com.cn"
@@ -16,7 +16,7 @@
 #define ARRAY_COMPINFO_OS "ArrayOS"
 #define ARRAY_COMPINFO_KEYWORD "array"
 #define ARRAY_COMPINFO_OEM_FLAG
-#define ARRAY_COMPINFO_COPYRIGHT "Copyright (c) 2000-2021 Array Networks Inc. All rights reserved."
+#define ARRAY_COMPINFO_COPYRIGHT "Copyright (c) 2000-2024 Array Networks Inc. All rights reserved."
 #define ARRAY_COMPINFO_EMAIL "support@arraynetworks.com"
 #define ARRAY_COMPINFO_WEBSITE "www.arraynetworks.com"
 #define ARRAY_PRODINFO_vAPV "Array vAPV"
Index: /branches/rel_apv_10_4_0_112_sbi/usr/src/sys/sys/copyright.h
===================================================================
--- /branches/rel_apv_10_4_0_112_sbi/usr/src/sys/sys/copyright.h	(revision 37998)
+++ /branches/rel_apv_10_4_0_112_sbi/usr/src/sys/sys/copyright.h	(working copy)
@@ -29,7 +29,7 @@
 /* Copyrights macros  */
 
 #define COPYRIGHT_ArrayOS \
-	"Copyright (c) 2000-2021 Array Networks, Inc.\n"
+	"Copyright (c) 2000-2024 Array Networks, Inc.\n"
 
 /* FreeBSD */
 #define COPYRIGHT_FreeBSD \
