Index: /branches/rel_apv_10_7/usr/click/bin/openssh/build.sh
===================================================================
--- /branches/rel_apv_10_7/usr/click/bin/openssh/build.sh	(revision 38582)
+++ /branches/rel_apv_10_7/usr/click/bin/openssh/build.sh	(working copy)
@@ -15,12 +15,13 @@
 fi
 
 if [ Makefile -nt configure ]
-then
+then 
 	echo "Configure have been done!"
 else
 	patch -p1 < ../array_patch
 	patch -p0 < ../weak_mac.patch
 	patch -p0 < ../CVE-2023-48795-mitigation.patch
+	patch -p0 < ../log_user_login_failure.patch
 	if [ $? -ne 0 ]
 	then
 		echo "array_patch failed!"
Index: /branches/rel_apv_10_7/usr/click/bin/openssh/log_user_login_failure.patch
===================================================================
--- /branches/rel_apv_10_7/usr/click/bin/openssh/log_user_login_failure.patch	(revision 0)
+++ /branches/rel_apv_10_7/usr/click/bin/openssh/log_user_login_failure.patch	(working copy)
@@ -0,0 +1,57 @@
+--- auth2.c	2024-09-17 23:13:42.913486717 -0400
++++ auth2-patch.c	2024-09-17 23:15:44.157798683 -0400
+@@ -68,6 +68,8 @@
+ #include "../../ui/exauth/auth_ext_ipc.h"
+ #endif
+ 
++#include "click/app/fastlog/fastlog_var.h"
++
+ #include <sys/ipc.h>
+ #include <sys/shm.h>
+ #include <sys/time.h>
+@@ -487,6 +489,8 @@
+ 			bzero(&tv, sizeof(tv));
+ 			gettimeofday(&tv, NULL);
+ 
++			fastlog_logex(AUTH_USER_LOCK, 3, p->user[index].name, user_login_p->max_login_retry, (uint32_t)(p->user[index].next_login_time - tv.tv_sec));
++
+ 			/* packet_disconnect will exit the process, so need free memory before it */
+ 			ssh_packet_disconnect(ssh, "\nThe user \"%s\" has failed to log in more than %d consecutive times and has been locked.\n"
+ 					"Please retry after %d seconds or change to another user.\n",
+@@ -547,6 +551,7 @@
+ 	const char *method = packet_method;
+ 	char *methods;
+ 	int r, partial = 0;
++	char info[256] = {0};
+ 
+ 	if (authenticated) {
+ 		if (!authctxt->valid) {
+@@ -653,7 +658,8 @@
+ 						methods = authmethods_get(authctxt);
+ 						debug3("%s: failure partial=%d next methods=\"%s\"", __func__,
+ 							partial, methods);
+-						array_auth_log(ssh, authenticated, method, " failed");
++						snprintf(info, sizeof(info), " failed, incorrect %s login", method);
++						array_auth_log(ssh, authenticated, method, info);
+ 						array_send_addr_info(ssh);
+ 						free(methods);
+ 
+@@ -686,7 +692,8 @@
+ 		    (r = sshpkt_send(ssh)) != 0 ||
+ 		    (r = ssh_packet_write_wait(ssh)) != 0)
+ 			fatal_fr(r, "send failure packet");
+-		array_auth_log(ssh, authenticated, method, " failed");
++		snprintf(info, sizeof(info), " failed, incorrect %s login", method);
++		array_auth_log(ssh, authenticated, method, info);
+ 		array_send_addr_info(ssh);
+ 		free(methods);
+ 	}
+@@ -1233,6 +1240,8 @@
+ 	p->user[index].next_login_time = tv.tv_sec + user_login_p->lock_user_time; /* lock the user login 300 seconds */
+ 	p->user[index].locked = 1;
+ 
++	fastlog_logex(AUTH_USER_LOCK, 3, p->user[index].name, user_login_p->max_login_retry, (uint32_t)(p->user[index].next_login_time - tv.tv_sec));
++
+ 	ssh_packet_disconnect(ssh, "\nThe user \"%s\" has failed to log in more than %d consecutive times and has been locked.\n"
+ 			"Please retry after %d seconds or change to another user.\n",
+ 			p->user[index].name, user_login_p->max_login_retry, (uint32_t)(p->user[index].next_login_time - tv.tv_sec));
