diff options
Diffstat (limited to 'src/map/pc.c')
-rw-r--r-- | src/map/pc.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/map/pc.c b/src/map/pc.c index 869d479..2b5dc3e 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -761,6 +761,8 @@ int pc_authok (int id, int login_id2, time_t connect_until_time, struct guild *g; int i; unsigned long tick = gettick (); + struct sockaddr_in sai; + socklen_t sa_len = sizeof(struct sockaddr); sd = map_id2sd (id); if (sd == NULL) @@ -963,6 +965,10 @@ int pc_authok (int id, int login_id2, time_t connect_until_time, memset(sd->flood_rates, 0, sizeof(sd->flood_rates)); sd->packet_flood_reset_due = sd->packet_flood_in = 0; + // Obtain IP address (if they are still connected) + if (!getpeername(sd->fd, (struct sockaddr *)&sai, &sa_len)) + sd->ip = sai.sin_addr.s_addr; + // message of the limited time of the account if (connect_until_time != 0) { // don't display if it's unlimited or unknow value |