Version 0.64

- added Quake4 support (d3engine)
- added CoD2 support (q3engine)
- added Rune support (gamespy1)
This commit is contained in:
Olaf Rempel 2006-02-02 16:52:26 +01:00
parent 5c2fc7d1a6
commit 464d0b352d
16 changed files with 1872 additions and 1142 deletions

View File

@ -1,10 +1,18 @@
* Thu 22 Dec 2005 Olaf Rempel <razzor@kopf-tisch.de> 0.64
(after Northern LAN Convention Winter 2005, www.northcon.de)
- added Quake4 support (d3engine)
- added CoD2 support (q3engine)
- added Rune support (gamespy1)
* Thu 08 Sep 2005 Olaf Rempel <razzor@kopf-tisch.de> 0.63 * Thu 08 Sep 2005 Olaf Rempel <razzor@kopf-tisch.de> 0.63
(after The Summit 5, www.the-summit.de)
- added ut2k4 plugin (native scan) - added ut2k4 plugin (native scan)
- added Battlefield2 support (gs2 query/host ports) - added Battlefield2 support (gs2 query/host ports)
- added Swat4 Support (gs2) - added Swat4 Support (gs2)
- fix quake2 plugin - fix quake2 plugin
* Thu 25 Aug 2005 Olaf Rempel <razzor@kopf-tisch.de> 0.62 * Thu 25 Aug 2005 Olaf Rempel <razzor@kopf-tisch.de> 0.62
(after Multimadness Summer 2005, www.multimadness.de)
- use c99 inttypes - use c99 inttypes
- added new Halflife scan (halflife) - added new Halflife scan (halflife)
- added Battlefield2 support (gamespy2) - added Battlefield2 support (gamespy2)

View File

@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.9.4 from Makefile.am. # Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc. # 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -247,7 +247,13 @@ uninstall-info-am:
# (which will cause the Makefiles to be regenerated when you run `make'); # (which will cause the Makefiles to be regenerated when you run `make');
# (2) otherwise, pass the desired values on the `make' command line. # (2) otherwise, pass the desired values on the `make' command line.
$(RECURSIVE_TARGETS): $(RECURSIVE_TARGETS):
@set fnord $$MAKEFLAGS; amf=$$2; \ @failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \ dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \ target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \ list='$(SUBDIRS)'; for subdir in $$list; do \
@ -259,7 +265,7 @@ $(RECURSIVE_TARGETS):
local_target="$$target"; \ local_target="$$target"; \
fi; \ fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ || eval $$failcom; \
done; \ done; \
if test "$$dot_seen" = "no"; then \ if test "$$dot_seen" = "no"; then \
$(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@ -267,7 +273,13 @@ $(RECURSIVE_TARGETS):
mostlyclean-recursive clean-recursive distclean-recursive \ mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive: maintainer-clean-recursive:
@set fnord $$MAKEFLAGS; amf=$$2; \ @failcom='exit 1'; \
for f in x $$MAKEFLAGS; do \
case $$f in \
*=* | --[!k]*);; \
*k*) failcom='fail=yes';; \
esac; \
done; \
dot_seen=no; \ dot_seen=no; \
case "$@" in \ case "$@" in \
distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@ -288,7 +300,7 @@ maintainer-clean-recursive:
local_target="$$target"; \ local_target="$$target"; \
fi; \ fi; \
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|| case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ || eval $$failcom; \
done && test -z "$$fail" done && test -z "$$fail"
tags-recursive: tags-recursive:
list='$(SUBDIRS)'; for subdir in $$list; do \ list='$(SUBDIRS)'; for subdir in $$list; do \

1047
aclocal.m4 vendored

File diff suppressed because it is too large Load Diff

1348
configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +1,8 @@
dnl projekname, version, bugsto dnl projekname, version, bugsto
AC_INIT(hlswmaster, 0.63, [Olaf Rempel <razzor@kopf-tisch.de>]) AC_INIT(hlswmaster, 0.64, [Olaf Rempel <razzor@kopf-tisch.de>])
dnl same for automake dnl same for automake
AM_INIT_AUTOMAKE(hlswmaster, 0.63) AM_INIT_AUTOMAKE(hlswmaster, 0.64)
dnl do not rebuild configure dnl do not rebuild configure
AM_MAINTAINER_MODE AM_MAINTAINER_MODE

View File

@ -10,10 +10,10 @@ scan_interval 60
serverlist_interval 5 serverlist_interval 5
# server timeout after X seconds # server timeout after X seconds
serverlist_timeout 120 serverlist_timeout 180
# plugin data timeout every X seconds # plugin data timeout every X seconds
plugin_timeout 60 plugin_timeout 90
# master answers with this source IP # master answers with this source IP
master_ip 0.0.0.0 master_ip 0.0.0.0
@ -25,7 +25,7 @@ plugin plugins/.libs/q3engine.so
plugin plugins/.libs/quake2.so plugin plugins/.libs/quake2.so
plugin plugins/.libs/gamespy1.so plugin plugins/.libs/gamespy1.so
plugin plugins/.libs/gamespy2.so plugin plugins/.libs/gamespy2.so
plugin plugins/.libs/doom3.so plugin plugins/.libs/d3engine.so
plugin plugins/.libs/ut2k4.so plugin plugins/.libs/ut2k4.so
# logging # logging

505
ltmain.sh

File diff suppressed because it is too large Load Diff

View File

@ -4,10 +4,10 @@ EXTRA_DIST = skel.c
INCLUDES = -I../include INCLUDES = -I../include
pkgdata_LTLIBRARIES = doom3.la gamespy1.la gamespy2.la halflife.la hlswproxy.la q3engine.la quake2.la ut2k4.la pkgdata_LTLIBRARIES = d3engine.la gamespy1.la gamespy2.la halflife.la hlswproxy.la q3engine.la quake2.la ut2k4.la
doom3_la_SOURCES = doom3.c d3engine_la_SOURCES = d3engine.c
doom3_la_LDFLAGS = -module -avoid-version d3engine_la_LDFLAGS = -module -avoid-version
gamespy1_la_SOURCES = gamespy1.c gamespy1_la_SOURCES = gamespy1.c
gamespy1_la_LDFLAGS = -module -avoid-version gamespy1_la_LDFLAGS = -module -avoid-version

View File

@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.9.4 from Makefile.am. # Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc. # 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -14,8 +14,6 @@
@SET_MAKE@ @SET_MAKE@
SOURCES = $(doom3_la_SOURCES) $(gamespy1_la_SOURCES) $(gamespy2_la_SOURCES) $(halflife_la_SOURCES) $(hlswproxy_la_SOURCES) $(q3engine_la_SOURCES) $(quake2_la_SOURCES) $(ut2k4_la_SOURCES)
srcdir = @srcdir@ srcdir = @srcdir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
@ -56,9 +54,9 @@ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(pkgdatadir)" am__installdirs = "$(DESTDIR)$(pkgdatadir)"
pkgdataLTLIBRARIES_INSTALL = $(INSTALL) pkgdataLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(pkgdata_LTLIBRARIES) LTLIBRARIES = $(pkgdata_LTLIBRARIES)
doom3_la_LIBADD = d3engine_la_LIBADD =
am_doom3_la_OBJECTS = doom3.lo am_d3engine_la_OBJECTS = d3engine.lo
doom3_la_OBJECTS = $(am_doom3_la_OBJECTS) d3engine_la_OBJECTS = $(am_d3engine_la_OBJECTS)
gamespy1_la_LIBADD = gamespy1_la_LIBADD =
am_gamespy1_la_OBJECTS = gamespy1.lo am_gamespy1_la_OBJECTS = gamespy1.lo
gamespy1_la_OBJECTS = $(am_gamespy1_la_OBJECTS) gamespy1_la_OBJECTS = $(am_gamespy1_la_OBJECTS)
@ -91,11 +89,11 @@ LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
CCLD = $(CC) CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@ $(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(doom3_la_SOURCES) $(gamespy1_la_SOURCES) \ SOURCES = $(d3engine_la_SOURCES) $(gamespy1_la_SOURCES) \
$(gamespy2_la_SOURCES) $(halflife_la_SOURCES) \ $(gamespy2_la_SOURCES) $(halflife_la_SOURCES) \
$(hlswproxy_la_SOURCES) $(q3engine_la_SOURCES) \ $(hlswproxy_la_SOURCES) $(q3engine_la_SOURCES) \
$(quake2_la_SOURCES) $(ut2k4_la_SOURCES) $(quake2_la_SOURCES) $(ut2k4_la_SOURCES)
DIST_SOURCES = $(doom3_la_SOURCES) $(gamespy1_la_SOURCES) \ DIST_SOURCES = $(d3engine_la_SOURCES) $(gamespy1_la_SOURCES) \
$(gamespy2_la_SOURCES) $(halflife_la_SOURCES) \ $(gamespy2_la_SOURCES) $(halflife_la_SOURCES) \
$(hlswproxy_la_SOURCES) $(q3engine_la_SOURCES) \ $(hlswproxy_la_SOURCES) $(q3engine_la_SOURCES) \
$(quake2_la_SOURCES) $(ut2k4_la_SOURCES) $(quake2_la_SOURCES) $(ut2k4_la_SOURCES)
@ -204,9 +202,9 @@ target_alias = @target_alias@
AUTOMAKE_OPTIONS = foreign no-dependencies AUTOMAKE_OPTIONS = foreign no-dependencies
EXTRA_DIST = skel.c EXTRA_DIST = skel.c
INCLUDES = -I../include INCLUDES = -I../include
pkgdata_LTLIBRARIES = doom3.la gamespy1.la gamespy2.la halflife.la hlswproxy.la q3engine.la quake2.la ut2k4.la pkgdata_LTLIBRARIES = d3engine.la gamespy1.la gamespy2.la halflife.la hlswproxy.la q3engine.la quake2.la ut2k4.la
doom3_la_SOURCES = doom3.c d3engine_la_SOURCES = d3engine.c
doom3_la_LDFLAGS = -module -avoid-version d3engine_la_LDFLAGS = -module -avoid-version
gamespy1_la_SOURCES = gamespy1.c gamespy1_la_SOURCES = gamespy1.c
gamespy1_la_LDFLAGS = -module -avoid-version gamespy1_la_LDFLAGS = -module -avoid-version
gamespy2_la_SOURCES = gamespy2.c gamespy2_la_SOURCES = gamespy2.c
@ -281,8 +279,8 @@ clean-pkgdataLTLIBRARIES:
echo "rm -f \"$${dir}/so_locations\""; \ echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \ rm -f "$${dir}/so_locations"; \
done done
doom3.la: $(doom3_la_OBJECTS) $(doom3_la_DEPENDENCIES) d3engine.la: $(d3engine_la_OBJECTS) $(d3engine_la_DEPENDENCIES)
$(LINK) -rpath $(pkgdatadir) $(doom3_la_LDFLAGS) $(doom3_la_OBJECTS) $(doom3_la_LIBADD) $(LIBS) $(LINK) -rpath $(pkgdatadir) $(d3engine_la_LDFLAGS) $(d3engine_la_OBJECTS) $(d3engine_la_LIBADD) $(LIBS)
gamespy1.la: $(gamespy1_la_OBJECTS) $(gamespy1_la_DEPENDENCIES) gamespy1.la: $(gamespy1_la_OBJECTS) $(gamespy1_la_DEPENDENCIES)
$(LINK) -rpath $(pkgdatadir) $(gamespy1_la_LDFLAGS) $(gamespy1_la_OBJECTS) $(gamespy1_la_LIBADD) $(LIBS) $(LINK) -rpath $(pkgdatadir) $(gamespy1_la_LDFLAGS) $(gamespy1_la_OBJECTS) $(gamespy1_la_LIBADD) $(LIBS)
gamespy2.la: $(gamespy2_la_OBJECTS) $(gamespy2_la_DEPENDENCIES) gamespy2.la: $(gamespy2_la_OBJECTS) $(gamespy2_la_DEPENDENCIES)

View File

@ -1,5 +1,5 @@
/*************************************************************************** /***************************************************************************
* Copyright (C) 03/2005 by Olaf Rempel * * Copyright (C) 12/2005 by Olaf Rempel *
* razzor@kopf-tisch.de * * razzor@kopf-tisch.de *
* * * *
* This program is free software; you can redistribute it and/or modify * * This program is free software; you can redistribute it and/or modify *
@ -22,6 +22,7 @@
static struct scan_ports port_arr[] = { static struct scan_ports port_arr[] = {
{ 27666, 27673, 38 }, /* Doom 3 */ { 27666, 27673, 38 }, /* Doom 3 */
{ 28004, 28008, 47 }, /* Quake 4 */
{ 0,0,0 } { 0,0,0 }
}; };
@ -49,7 +50,7 @@ static int parse(struct net_pkt *pkt)
} }
struct hlswmaster_plugin plugin = { struct hlswmaster_plugin plugin = {
.name = "doom3", .name = "d3engine",
.scan = &scan, .scan = &scan,
.parse = &parse, .parse = &parse,
}; };

View File

@ -21,7 +21,7 @@
#include "plugin_helper.h" #include "plugin_helper.h"
static struct scan_ports port_arr[] = { static struct scan_ports port_arr[] = {
{ 7777, 7788, 5 }, /* ut(5), ut2k3(14), ut2k4(33), aao(15) */ { 7777, 7788, 5 }, /* ut(5), ut2k3(14), rune(18), ut2k4(33), aao(15) */
{ 22000, 22010, 16 }, /* bf1942(16) */ { 22000, 22010, 16 }, /* bf1942(16) */
{ 23000, 23010, 35 }, /* bfv(35) */ { 23000, 23010, 35 }, /* bfv(35) */
{ 26001, 26011, 19 }, /* igi2(19) */ { 26001, 26011, 19 }, /* igi2(19) */
@ -58,6 +58,7 @@ static char reply_opk[] = "opk\\";
static char reply_avp2[] = "avp2\\"; static char reply_avp2[] = "avp2\\";
static char reply_igi2[] = "projectigi2r\\"; static char reply_igi2[] = "projectigi2r\\";
static char reply_aao[] = "armygame\\"; static char reply_aao[] = "armygame\\";
static char reply_rune[] = "rune\\";
static int scan(void) static int scan(void)
{ {
@ -175,6 +176,13 @@ static int parse_real(struct net_pkt *pkt, int gameid)
return PARSE_REJECT; return PARSE_REJECT;
break; break;
case 18:/* rune */
if (!pkt_memcmp(pkt, pos1, reply_rune, strlen(reply_rune)))
gameid = 18;
else
return PARSE_REJECT;
break;
case 19:/* project igi2 covert strike */ case 19:/* project igi2 covert strike */
if (!pkt_memcmp(pkt, pos1, reply_igi2, strlen(reply_igi2))) if (!pkt_memcmp(pkt, pos1, reply_igi2, strlen(reply_igi2)))
gameid = 19; gameid = 19;

View File

@ -23,7 +23,7 @@
static struct scan_ports port_arr[] = { static struct scan_ports port_arr[] = {
{ 27960, 27969, 6 }, /* q3(6), ef(7), et25), rtcw(8) */ { 27960, 27969, 6 }, /* q3(6), ef(7), et25), rtcw(8) */
{ 28070, 28070, 12 }, /* jk2(12) */ { 28070, 28070, 12 }, /* jk2(12) */
{ 28960, 28963, 31 }, /* cod(31), cod:uo(42) */ { 28960, 28963, 31 }, /* cod(31), cod:uo(42), cod2(48) */
{ 29070, 29070, 27 }, /* jk3(27) */ { 29070, 29070, 27 }, /* jk3(27) */
{ 0,0,0 } { 0,0,0 }
}; };
@ -40,6 +40,7 @@ static char reply_jk2[] = "JK2MP";
static char reply_jk3[] = "JAmp"; static char reply_jk3[] = "JAmp";
static char reply_cod[] = "Call of Duty\\"; static char reply_cod[] = "Call of Duty\\";
static char reply_coduo[] = "CoD:United Offensive\\"; static char reply_coduo[] = "CoD:United Offensive\\";
static char reply_cod2[] = "Call of Duty 2\\";
static int scan(void) static int scan(void)
{ {
@ -88,6 +89,9 @@ static int parse(struct net_pkt *pkt)
else if (!pkt_memcmp(pkt, pos2, reply_coduo, strlen(reply_coduo))) else if (!pkt_memcmp(pkt, pos2, reply_coduo, strlen(reply_coduo)))
gameid = 42; gameid = 42;
else if (!pkt_memcmp(pkt, pos2, reply_cod2, strlen(reply_cod2)))
gameid = 48;
} }
if (gameid == 0) if (gameid == 0)

View File

@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.9.4 from Makefile.am. # Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc. # 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -14,8 +14,6 @@
@SET_MAKE@ @SET_MAKE@
SOURCES = $(hlswmaster_SOURCES)
srcdir = @srcdir@ srcdir = @srcdir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
VPATH = @srcdir@ VPATH = @srcdir@

View File

@ -219,7 +219,7 @@ void scan_receive_real(void)
inet_ntoa(pkt->addr.sin_addr), inet_ntoa(pkt->addr.sin_addr),
ntohs(pkt->addr.sin_port), ntohs(pkt->addr.sin_port),
pkt->size); pkt->size);
#if 0 #if 0
{ {
char *p = pkt_print(pkt); char *p = pkt_print(pkt);
log_print("%s", p); log_print("%s", p);

View File

@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.9.4 from Makefile.am. # Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc. # 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -14,8 +14,6 @@
@SET_MAKE@ @SET_MAKE@
SOURCES = $(masterquery_SOURCES)
srcdir = @srcdir@ srcdir = @srcdir@
top_srcdir = @top_srcdir@ top_srcdir = @top_srcdir@
VPATH = @srcdir@ VPATH = @srcdir@

View File

@ -67,7 +67,10 @@ static char *id2name[] = {
"Call of Duty: United Offensive", "Call of Duty: United Offensive",
"Starwars: Battlefront (?)", "Starwars: Battlefront (?)",
"SWAT 4", "SWAT 4",
"Battlefield 2" // 45 "Battlefield 2", // 45
"???",
"Quake 4 (???)",
"Call of Duty 2"
}; };
static int sock, verbose = 0; static int sock, verbose = 0;