Skip to content

Commit ce30f93

Browse files
committed
Log local addr / port after connect remote host in BBSNET
1 parent 2b61b74 commit ce30f93

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/bbs_net.c

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,9 @@ int bbsnet_connect(int n)
293293
int tos;
294294
char remote_addr[IP_ADDR_LEN];
295295
int remote_port;
296+
char local_addr[IP_ADDR_LEN];
297+
int local_port;
298+
socklen_t sock_len;
296299
time_t t_used = time(NULL);
297300
struct tm *tm_used;
298301
int ch;
@@ -472,9 +475,21 @@ int bbsnet_connect(int n)
472475
log_error("setsockopt IP_TOS=%d error (%d)\n", tos, errno);
473476
}
474477

478+
sock_len = sizeof(sin);
479+
if (getsockname(sock, (struct sockaddr *)&sin, &sock_len) < 0)
480+
{
481+
log_error("getsockname() error: %d", errno);
482+
goto cleanup;
483+
}
484+
485+
strncpy(local_addr, inet_ntoa(sin.sin_addr), sizeof(local_addr) - 1);
486+
local_addr[sizeof(local_addr) - 1] = '\0';
487+
local_port = ntohs(sin.sin_port);
488+
475489
prints("\033[1;31m连接成功!\033[m\r\n");
476490
iflush();
477-
log_common("BBSNET connect to %s:%d\n", remote_addr, remote_port);
491+
log_common("BBSNET connect to %s:%d from %s:%d by [%s]\n",
492+
remote_addr, remote_port, local_addr, local_port, BBS_username);
478493

479494
input_cd = iconv_open(bbsnet_conf[n].charset, BBS_NET_DEFAULT_CHARSET);
480495
if (input_cd == (iconv_t)(-1))

0 commit comments

Comments
 (0)