Skip to content

Commit 69b4b7e

Browse files
committed
- Added additional logging
- Fixed bug that prevented clients using an older login system from connecting
1 parent 64386a8 commit 69b4b7e

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

src/bnetd/connection.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ namespace pvpgn
451451

452452
list_prepend_data(conn_head, temp);
453453

454-
eventlog(eventlog_level_info, __FUNCTION__, "[{}][{}] sessionkey=0x{:08} sessionnum=0x{:08}", temp->socket.tcp_sock, temp->socket.udp_sock, temp->protocol.sessionkey, temp->protocol.sessionnum);
454+
eventlog(eventlog_level_debug, __FUNCTION__, "[{}][{}] sessionkey=0x{:08} sessionnum=0x{:08}", temp->socket.tcp_sock, temp->socket.udp_sock, temp->protocol.sessionkey, temp->protocol.sessionnum);
455455

456456
return temp;
457457
}

src/bnetd/handle_bnet.cpp

+10-4
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,7 @@ namespace pvpgn
642642

643643
conn_set_archtag(c, bn_int_get(packet->u.client_progident.archtag));
644644
conn_set_clienttag(c, bn_int_get(packet->u.client_progident.clienttag));
645+
conn_set_versionid(c, bn_int_get(packet->u.client_progident.versionid));
645646

646647
if ((rpacket = packet_create(packet_class_bnet)))
647648
{
@@ -651,7 +652,7 @@ namespace pvpgn
651652

652653
// CheckRevision
653654
std::tuple<std::string, std::string> checkrevision = select_checkrevision(bn_int_get(packet->u.client_progident.archtag), bn_int_get(packet->u.client_progident.clienttag), bn_int_get(packet->u.client_progident.versionid));
654-
file_to_mod_time(c, std::get<0>(checkrevision).c_str(), &rpacket->u.server_authreq_109.timestamp); // Checkrevision file timestamp
655+
file_to_mod_time(c, std::get<0>(checkrevision).c_str(), &rpacket->u.server_authreq1.timestamp); // Checkrevision file timestamp
655656
packet_append_string(rpacket, std::get<0>(checkrevision).c_str()); // CheckRevision filename
656657
packet_append_string(rpacket, std::get<1>(checkrevision).c_str()); // CheckRevision equation
657658
eventlog(eventlog_level_debug, __FUNCTION__, "[{}] selected \"{}\" \"{}\"", conn_get_socket(c), std::get<0>(checkrevision), std::get<1>(checkrevision));
@@ -997,6 +998,8 @@ namespace pvpgn
997998

998999
static int _client_authreq1(t_connection * c, t_packet const *const packet)
9991000
{
1001+
eventlog(eventlog_level_trace, __FUNCTION__, "[{}] received AUTHREQ1(0x07) packet", conn_get_socket(c));
1002+
10001003
if (packet_get_size(packet) < sizeof(t_client_authreq1))
10011004
{
10021005
eventlog(eventlog_level_error, __FUNCTION__, "[{}] got bad AUTHREQ1 packet (expected {} bytes, got {})", conn_get_socket(c), sizeof(t_client_authreq1), packet_get_size(packet));
@@ -1026,20 +1029,23 @@ namespace pvpgn
10261029
// The client should have already sent this information in a previous packet and is resending it again in this packet
10271030
if (bn_int_get(packet->u.client_authreq1.archtag) != conn_get_archtag(c))
10281031
{
1032+
eventlog(eventlog_level_error, __FUNCTION__, "[{}] got bad AUTHREQ1 (mismatch architecture)", conn_get_socket(c));
10291033
send_failed_packet(c);
1030-
return 0;
1034+
return -1;
10311035
}
10321036

10331037
if (bn_int_get(packet->u.client_authreq1.clienttag) != conn_get_clienttag(c))
10341038
{
1039+
eventlog(eventlog_level_error, __FUNCTION__, "[{}] got bad AUTHREQ1 (mismatch client tag)", conn_get_socket(c));
10351040
send_failed_packet(c);
1036-
return 0;
1041+
return -1;
10371042
}
10381043

10391044
if (bn_int_get(packet->u.client_authreq1.versionid) != conn_get_versionid(c))
10401045
{
1046+
eventlog(eventlog_level_error, __FUNCTION__, "[{}] got bad AUTHREQ1 (mismatch version ID)", conn_get_socket(c));
10411047
send_failed_packet(c);
1042-
return 0;
1048+
return -1;
10431049
}
10441050

10451051

0 commit comments

Comments
 (0)