|
|
@ -226,7 +226,7 @@ do_playerid (struct pkg_playerid *p_id, _net_addr * addr)
|
|
|
|
strncpy (pl->name, p_id->name, LEN_PLAYERNAME);
|
|
|
|
strncpy (pl->name, p_id->name, LEN_PLAYERNAME);
|
|
|
|
pl->net.timestamp = timestamp;
|
|
|
|
pl->net.timestamp = timestamp;
|
|
|
|
pl->net.pingreq = pl->net.pingack + 5;
|
|
|
|
pl->net.pingreq = pl->net.pingack + 5;
|
|
|
|
|
|
|
|
pl->net.flags = p_id->netflags;
|
|
|
|
if (p_id->host[0] != 0) {
|
|
|
|
if (p_id->host[0] != 0) {
|
|
|
|
pl->net.addr.pl_nr = addr->pl_nr;
|
|
|
|
pl->net.addr.pl_nr = addr->pl_nr;
|
|
|
|
strncpy (pl->net.addr.host, p_id->host, LEN_SERVERNAME);
|
|
|
|
strncpy (pl->net.addr.host, p_id->host, LEN_SERVERNAME);
|
|
|
@ -290,6 +290,7 @@ send_playerid (_net_addr * addr, char *name, char *pladdr, char *plport,
|
|
|
|
strncpy (p_id.port, plport, LEN_PORT);
|
|
|
|
strncpy (p_id.port, plport, LEN_PORT);
|
|
|
|
|
|
|
|
|
|
|
|
p_id.pl_nr = pl_nr;
|
|
|
|
p_id.pl_nr = pl_nr;
|
|
|
|
|
|
|
|
p_id.netflags = netflags;
|
|
|
|
p_id.gfx_nr = gfx_nr;
|
|
|
|
p_id.gfx_nr = gfx_nr;
|
|
|
|
if (pl_nr != -1) {
|
|
|
|
if (pl_nr != -1) {
|
|
|
|
p_id.points = HTON16 (players[pl_nr].points);
|
|
|
|
p_id.points = HTON16 (players[pl_nr].points);
|
|
|
@ -1443,12 +1444,17 @@ fwd_pkg (struct pkg *packet, _net_addr * addr)
|
|
|
|
if (GT_MP_PTPS) /* clients don't forward anything */
|
|
|
|
if (GT_MP_PTPS) /* clients don't forward anything */
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
if (packet->h.typ <= PKG_quit)
|
|
|
|
if (packet->h.typ <= PKG_quit) {
|
|
|
|
for (pl = 0; pl < MAX_PLAYERS; pl++)
|
|
|
|
for (pl = 0; pl < MAX_PLAYERS; pl++)
|
|
|
|
if ((!PS_IS_aiplayer (players[pl].state)) && PS_IS_netplayer (players[pl].state)
|
|
|
|
if ((!PS_IS_aiplayer (players[pl].state)) && PS_IS_netplayer (players[pl].state)
|
|
|
|
&& (players[addr->pl_nr].net.flags & NETF_firewall) == NETF_firewall
|
|
|
|
&& ((players[addr->pl_nr].net.flags & NETF_firewall) == NETF_firewall
|
|
|
|
|
|
|
|
|| (players[pl].net.flags & NETF_firewall) == NETF_firewall)
|
|
|
|
&& pl != addr->pl_nr)
|
|
|
|
&& pl != addr->pl_nr)
|
|
|
|
send_pkg (packet, &players[pl].net.addr);
|
|
|
|
send_pkg (packet, &players[pl].net.addr);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
d_fatal ("fwd_pkg: not forwarding unknown packet From Player:%d (%s) Typ:%d Len:%d\n",
|
|
|
|
|
|
|
|
addr->pl_nr, players[addr->pl_nr].name, packet->h.typ, NTOH16 (packet->h.len));
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|