mod_halflife: use parsed ip
This commit is contained in:
parent
68fea83c6f
commit
49b9cf7135
|
@ -24,11 +24,10 @@
|
||||||
|
|
||||||
#include "gameentry.h"
|
#include "gameentry.h"
|
||||||
|
|
||||||
GameEntry::GameEntry(int gameid, NetPkt* pkt, int port2)
|
GameEntry::GameEntry(int gameid, struct in_addr *addr, int port1, int port2)
|
||||||
: port2(port2), gameid(gameid)
|
: port1(port1), port2(port2), gameid(gameid)
|
||||||
{
|
{
|
||||||
memcpy(&addr, &pkt->getAddress()->sin_addr, sizeof(addr));
|
memcpy(&this->addr, addr, sizeof(this->addr));
|
||||||
this->port1 = pkt->getPort();
|
|
||||||
|
|
||||||
if (port2 != 0) {
|
if (port2 != 0) {
|
||||||
this->port2 = this->port1;
|
this->port2 = this->port1;
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
|
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
|
||||||
#include "netpkt.h"
|
#include "list.h"
|
||||||
|
|
||||||
class GameEntry : private ListEntry<GameEntry> {
|
class GameEntry : private ListEntry<GameEntry> {
|
||||||
public:
|
public:
|
||||||
GameEntry(int gameid, NetPkt* pkt, int port2);
|
GameEntry(int gameid, struct in_addr *addr, int port1, int port2);
|
||||||
~GameEntry() {}
|
~GameEntry() {}
|
||||||
|
|
||||||
int compare(const GameEntry* ge);
|
int compare(const GameEntry* ge);
|
||||||
|
|
|
@ -59,7 +59,12 @@ void GameList::cleanup()
|
||||||
|
|
||||||
void GameList::addGame(int gameid, NetPkt* pkt, int port2)
|
void GameList::addGame(int gameid, NetPkt* pkt, int port2)
|
||||||
{
|
{
|
||||||
GameEntry* ge = new GameEntry(gameid, pkt, port2);
|
addGame(gameid, &pkt->getAddress()->sin_addr, pkt->getPort(), port2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameList::addGame(int gameid, struct in_addr *addr, int port1, int port2)
|
||||||
|
{
|
||||||
|
GameEntry* ge = new GameEntry(gameid, addr, port1, port2);
|
||||||
int hash = ge->hash(MAX_BUCKETS);
|
int hash = ge->hash(MAX_BUCKETS);
|
||||||
bool found = false;
|
bool found = false;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
#ifndef _GAMELIST_H_
|
#ifndef _GAMELIST_H_
|
||||||
#define _GAMELIST_H_
|
#define _GAMELIST_H_
|
||||||
|
|
||||||
|
#include <netinet/in.h>
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "netpkt.h"
|
#include "netpkt.h"
|
||||||
#include "gameentry.h"
|
#include "gameentry.h"
|
||||||
|
@ -18,6 +20,7 @@ public:
|
||||||
|
|
||||||
void cleanup();
|
void cleanup();
|
||||||
void addGame(int gameid, NetPkt* pkt, int port2 = 0);
|
void addGame(int gameid, NetPkt* pkt, int port2 = 0);
|
||||||
|
void addGame(int gameid, struct in_addr *addr, int port1, int port2 = 0);
|
||||||
Iterator<GameEntry>* createIterator();
|
Iterator<GameEntry>* createIterator();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
@ -83,9 +83,7 @@ int ModHalfLife::parse(NetPkt* pkt, GameList* glist)
|
||||||
glist->addGame(ID_HL, pkt);
|
glist->addGame(ID_HL, pkt);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// TODO: implement
|
glist->addGame(ID_HL, &tmp, port);
|
||||||
glist->addGame(ID_HL, pkt);
|
|
||||||
//glist->add(ID_HL, &tmp, port, false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return PARSE_ACCEPT;
|
return PARSE_ACCEPT;
|
||||||
|
|
Loading…
Reference in New Issue