Added current pvpgn CVS to subversion repository (the fun begins!).

This commit is contained in:
dizzy 2005-12-06 20:45:13 +00:00
parent 9f7422f9bc
commit dff744012e
561 changed files with 158718 additions and 0 deletions

34
pvpgn/BUGS Normal file
View file

@ -0,0 +1,34 @@
You think you have found a bug ? Good, now read the list below and check if
its already known. If you dont find it in the list then follow the bug report
instructions.
Known Bugs:
- tournament support has only first round and it doesnt show the map after
25 minutes nor it stops the game after 30 minutes
- there are some reported issues with PG/quickgame (network errors plus people
getting lost game results when they shouldnt be, unfortunetly we havent been
able to reproduce those)
Bug report instructions:
- first read this webpage and only after you have read it come back:
http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
- logon to forums.pvpgn.org (create an account if necesarry)
- search the support forums (official support or open tech support) if your
problem was already reported, if it was reported then just add some comments
to the already opened forum thread if you feel its necesary
- if you got a new/unknown problem, open a new thread in the open tech support
forum
- give a usefull title to the thread, not like "it doesnt work" or "pvpgn sucks"
couse this messages will just get ignored; you need to describe your problem in
the tile in few words like "client disconnects in profile view" or "players get
loss in playgame disconnects" or something like that
- in the body of the post start with first saying which pvpgn version, on which
OS (operating system) you run pvpgn, configure command line you used if you
compiled your source on Unix/Linux
- after that describe in detail your problem; what exactly did you tried to do,
what did you expected from PvPGN and what happened wrong; also try before
reporting the problem to find a way to reproduce the problem, that is to find
the steps which if someone from the PvPGN team will do then they will get the
problem too, and describe exactly the reproduction steps
- thank you for the bug report!

340
pvpgn/COPYING Normal file
View file

@ -0,0 +1,340 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.

283
pvpgn/CREDITS Normal file
View file

@ -0,0 +1,283 @@
PvPGN CREDITS (also please see the original BNETD credits bellow):
--------------------------------------------------------------------
CREDITS
This file contains the names of people who have contributed to the
development of the PvPGN BNETD mod in some way. This file is not
complete and we would like to thank everyone who helped us in any way.
PROGRAMMING CONTRIBUTORS
AmAdEuS a.k.a. amadeo
WIN32GUI-mod, WIN32-Installer, WIN32 services code, initial IRC mods
Dizzy
Project release engineering, general code maintenance, storage
development, fdwatch development, some documentation and lots others.
Bryan Biedenkapp (gatekeep@gmail.com)
Westwood Online (WOL) support. Lot's of IRC fixes and enhancements.
WOL and IRC maintainer.
pandaemonium a.k.a. aaron
W3 ladders, binary ladders, commands aliases, channel topics,
channel tmp ops/voices, anongame infos language support, SQL db
creator, bnchat cleanup, WIN32 build files maintenance and lots others.
Soar
Clans, friends codes optimization, D2 stuff, w3 gameinfo etc.
TheUndying aka Undy (kainofchaos80@hotmail.com)
PvPGN project starter, initial code maintainance and management,
initial W3 support codes, etc.
Zzzoom (servers@3dgames.com.ar)
For persistent SQL connections patch, password brute force attacks
protection, various bug reports and very usefull profile dumps.
MISC
Eggy (eggy@neostats.net)
Win32 binary packager, QA testing/reporting, supporter (IRC, forums),
misc documentation.
U-238 (mark@darkterrorsdomain.cjb.net)
Webmaster, Mac binary packager, Mac versioncheck maintainer,
PvPGN fink package maintainer, supporter (IRC, forums), tester,
documentation writer.
David Wilson (dgwilson@paradise.net.nz)
Documentation writer, supporter (IRC, forums).
Lots of other people who do not wish to be mentioned here.
BINARY PACKAGES:
- Birzan George Cristian <gcbirzan@wolfheart.ro> (original Debian packager)
- Dorin Lazar <spooky_cbs@yahoo.com> (RPMs)
- Mihai Maties <mihai@xcyb.org> (RPMs & src.rpm snapshot script)
- Radu Radoveneanu <rakware@go.ro> (Slackware packages)
- Robert Millan <rmh at debian dot org> (official Debian package maintainer)
- Max E. Kuznecov <mek at mek.uz.ua> (FreeBSD port entry maintainer)
ORIGINAL BNETD CREDITS:
-------------------------------
CREDITS
This file contains the names of people who have contributed to the
development of the BNETD server in some way. This project has made an
enormous amount of progress since the development has become public,
and this is one place where members of the community can be thanked.
PROGRAMMING CONTRIBUTORS
The following people have contributed code, code ideas, bug fixes, and
debugging work:
Mark Baysinger (mbaysing@ucsd.edu)
For the original idea, original implementation, documentation of the
protocol, starhack.ml.org, the tracking server, etc.
Ross Combs (rocombs@cs.nmsu.edu)
Various cleanups, release coordination, / commands, config files, etc.
Rob Crittenden (rcrit@greyoak.com)
For many bug fixes, protocol work, file downloads, man pages, user
icons, better channel handling, autoconf, ladder, etc. as well as
working on the FAQ and user support.
Descolada (dyn1-tnt9-237.chicago.il.ameritech.net)
For the hashing algorithm complete with a sample C implementation.
Gediminas (gediminas_lt@mailexcite.com)
For work on the client command "readline" code, the initial help
system, and a better /conn command.
Oleg Drokin (green@ccssu.crimea.ua)
For patches to fix bnchat and bnstat.
Damien Clermonte (clermond@esiee.fr)
For portability (to cygnus B20.1 on win32) work, testing, and helpful
observations, and the TCP keepalive patch.
Denis Moreaux (vapula@endor.be)
For working out the correct ladder equations.
Philippe Dubois (pdubois@matrox.com)
For working on the Win32 port, UDP stuff, auto-update, and the
bnettime code.
Typhoon [Marco Ziech] (mmz@gmx.net)
For lots of good work on the BNI utilities, BITS (server inter-
connectivity) support, and his bnetmasq.sh script. He also
answers a lot of user questions and put together most of the
web site.
Dizzy
For help with NAT issues, a much improved help system, channel
flooding prevention, new /-commands, a mail system, and more.
Razvan Jianu (roger@hell.gameover.ro)
For many useful coredumps :) Also for the /addacct command.
Qlex (qlex@eoliss.com)
For kick starting the Diablo II stuff, testing thousands quick
changes, moral support, and digging up all the information.
Kenshin (kenshin_@hotmail.com)
For helping Qlex with the character stuff, fixing some major
bugs in the Diablo II code, and starting work on saving
characters.
Hakan Tandogan (hakan@gurkensalat.com)
For always making RPMs for bnetd and the tracker and some patches to
correct startup/shutdown issues. Also for continuing Diablo II work.
Jung-woo Sohn (logout@aeroguy.snu.ac.kr)
For /watch feedback, dobae flooding disconnect, better disconnect
game result handling, and generally for lots of good ideas. And
also for spotting the failed account creation crashing bug.
YobGuls (yobguls@yobguls.2ndmail.com)
Actually contributed to the DSBot code, but see next entry.
Eurijk! (wc2@zefga.net)
For pointing out how the new cdkey hashing works and also how
version checking is performed. This was some really ugly but
important stuff! He figured this out working on DSBot but
kindly explained it to us and showed us example code. He's
also working on the Prolix bot project and has provided lots
of useful bug reports and other commentary.
Fred Wittekind (rom@twister.dyndns.org)
For autoupdate version range support. For pointing out all the
update MPQ files we didn't know about. Also for the message
force-command patch.
Mathieu Legare (Mathieu_Legare@uqtr.uquebec.ca)
For picking up bnetdStats and making it report all kinds of
statistics.
Onlyer (onlyer@users.sourceforge.net)
For new commands, Diablo II protocol work, Diablo II closed server
work, FSGS account conversion, etc.
faster (lqx@cic.tsinghua.edu.cn)
For Diablo II closed communication (S2S) and for finding that
check_alloc bug.
sousou (liupeng.cs@263.net)
For Diablo II closed database server and ladder.
esper (esperpale@263.net)
Diablo II closed server gui and ladder.
sherpya (sherpya@netfarm.it)
For lots of help with adbanners, the d2close merge, reporting
bugs (like the 100% poll() CPU usage bug), and lots of good
suggestions. Also for work on channel list reloads.
Yoss (bartek@milc.com.pl)
For helpful suggestions for the mail code and for patching
the emote flooding hole. Also for the /admin command and for
the patch to fix the "operator can ban admins" bug. A big
thanks for much improved kill and ban commands and the new
dynamic ipban with better address matching and timeouts.
Roland Stahn (blue@cs.tu-berlin.de)
For all the work tracking down the versioncheck information
for revision of the STAR and SEXP clients. For information about
Blizzard's numbering scheme. For helpful packet information.
Also for the bug reports and simple patches which probably should
have been fixed a long time ago but he was the only person with
enough patience to figure out what was happening. Specifically,
the "all countries in one channel" feature, the empty game pass
bug, the multiple game with same name bug, and the memory
corruption after autoupdates. For updated version information.
For diagnosing the autoupdate crash (bug in server.c handling
closed sockets).
KWS (vizi@csucs.net)
For the nice bug reports on gameinfo parsing on game join, win32
socket and file portability problems. Also for patches to update
versioncheck info, implement IP storage, the patch for better
eventlogs, and Makefile improvements.
Jack (jack@takeovertheworld.org)
For Diablo II open game difficulty patch.
forester (laterk@inbox.lv)
Working on the Win32 port, bnetd GUI for Win32, small patches.
TESTING AND DEBUGGING CONTRIBUTORS
The following people have sent in ideas, bug reports, and minor
patches.
187 (187@infoceptor.com)
For bug reports and the idea for the /news command.
Shin DongJun (djshin@oslab.snu.ac.kr)
For some bug reports and patches.
Jeffery Jones (jeffery_jones@mtlusa.com)
For the game address translation idea.
Maxim Tereshenkov (max@ostin.ru)
For the stack trace which found the 8-bit account.c bug.
Yanoch (yanoch@loginnovation.com)
For suggesting the /kill improvement.
stacker (stacker@mail.ee.ntou.edu.tw)
For lots of bug reports and also the sbnetd front end.
Mike Hindman (mhindman@bnetd.nmsu.edu)
David Fitzpatrick (dfitzpat@bnetd.nmsu.edu)
For lots of ideas and all the help with Diablo.
Homer (homer@ogn.de)
For the helpful info on game info strings and ladder maps.
Alvin Sim (elflord@faerie.cx)
For lots of testing and figuring out that Diablo II open gameplay was
actually not too hard to implement.
AsmodeusB
For finding annoying the gameinfo bug in connection.c :)
forester (http://forester.yo.lv)
For pointing out what gameresult 5 means.
jerome (imeepmeep@mac.com)
For the MacOS X package.
acbcdde (acbcdde@hotmail.com)
For Win32 Makefile and config.h fixes.
mojohead ( Andrey Ilyin )
For d2dbs/d2ladder.c fixes.
OTHER CONTRIBUTORS
The following people have contributed their time, talent, and other
resources to the project:
Josh (josh@bnetd.org)
For a wonderful web site, quick mirroring of new releases, testing,
organization, documentation, and user support.
Tim Jung (tjung@igateway.net)
For kindly hosting our mailing lists, domain, web pages, etc. as well
as regular feedback and testing.
Allan Clark (allanc@sco.com)
For putting together some nice RPMs.
NOTE
This list is not complete. I have lost track of the names of some
people who have contributed, and likely forgotten about others. If you
think you should be listed here but aren't, please contact the
bnetd-dev mailing list and we will take care of it right away.

52
pvpgn/IGNOREME Normal file
View file

@ -0,0 +1,52 @@
NOTE: we believe that most people are more likely to read IGNOREME file than
the README file so we moved the actual contents of README into this file. We
hope that this will improve the quality of questions on support channels.
>>>>> IMPORTANT: THIS IS A BETA QUALITY RELEASE <<<<<<
Readme for Player vs. Player Gaming Network
---------------------------------------------
PvPGN is a BNETD mod which aims to provide support for all Blizzard
clients (thus it supports all BNETD supported clients plus the most recent
ones).
The list of supported clients and their minimum verion required is:
- Diablo 1 v1.09
- Starcraft v1.08
- BroodWar v1.08
- Warcraft II Battle.Net Edition v2.02
- Diablo 2 v1.10
- Diablo 2 LOD v1.10
- Warcraft III Reign Of Chaos v1.13
- Warcraft III Frozen Throne v1.13
-----
The documentation is located in the docs directory. Please read docs/INDEX
for a list of files and what they contain.
If you are updating from a previous PvPGN version check the file UPDATE
first.
-----
We're always looking for good coders (C coders) or
anyone who can contribute to our project in any way.
Project homepages/distribution sites:
- project home and main distribution site: http://pvpgn.berlios.de
- alternate project home: http://www.pvpgn.org
- alternate distribution site: http://www.pvpgn.de
Support channels:
1. BugTracker (preffered support method):
http://developer.berlios.de/bugs/?group_id=2291
2. Mailing List: pvpgn-users@lists.berlios.de ( to subscribe go here
https://lists.berlios.de/mailman/listinfo/pvpgn-users )
3. Forums: http://forums.pvpgn.org
4. IRC live support: #pvpgn on irc.pvpgn.org

113
pvpgn/NEWS Normal file
View file

@ -0,0 +1,113 @@
PvPGN 1.7.x Major Changes And New Features
==============================================
o Westwood Online (WOL) support
This is a historic moment in the life of the PvPGN project. For the first
time a different gaming network than Battle.net is supported with PvPGN.
Current supports includes almost complete support for Tiberian Sun (TS)
and basic support for Red Alert 2 (RA2) and Yuri's Revenge (YR).
o WIN32 GUI for d2cs and d2dbs
d2cs and d2bs now feature a new slick GUI if build under WIN32.
o Instant startup (partial)
PvPGN now can startup in a lot lesser time than before, this is due to
code changes which make it not load all accounts at startup. This
improvement should be mostly noticed on very high number of accounts
servers. Note that currently this happens only to SQL storage types
(the file based storage types still load all accounts at startup).
o Optimized account loading/saving codes
Account loading/saving codes have been rewritten allowing PvPGN to scale
a lot better with a high number of online users (ie lower CPU usage).
o Better game result calculation
Game result decision has been completly changed to use a democratic
ellection scheme (ie it bases the decision on the oppinions of the most
results). This should solve problems with game results beeing wrong under
some situations (like team games).
o New WIN32 compiler/enviroment support
Now you can compile PvPGN under WIN32 using complete GPL/free build tools
by using Dev-C++ project and additional tools (mingw, etc).
o Optimized handling of D2 clients
Replaced a O(n) search algorithm through the client connection list used
mostly by D2 handling functions with a O(1) algorithm.
o Optimized timers codes
Timers codes have been rewritten so the most used functions complete a
lot faster than before. This improves PvPGN CPU usage a lot because some
timers functions are used very often inside PvPGN.
o Memory management changes and optimizations
There has been added some memory management wrappers functions which
never fail and thus the calling codes were simplified a lot by removing
checks to memory allocation failures. If memory allocation fails PvPGN
tries to recover by programming an immediate shutdown and cleaning up
some safe memory.
o Changed codes to use logged in username instead of account username
This change makes PvPGN use the username introduced at login (with the
exact case as in login) instead of the account name. This solves some
bugs (like could not edit profile in D2 if logged in with different case)
and also gets us more close to Battle.Net.
o Switched from string based tags to integer based tags
Codes have been dramatically changed to use integers for storing of tags
(client tags, architecture tags, etc) and thus when comparing tags we use
plain integer comparation instead of string comparation. This should
reduce CPU usage a lot.
o Optimized list handling codes
The list API has been changed and the codes have been optimized so it
will remove elements from the list upon request and not later, thus
eliminating a O(n) search and thus making PvPGN a lot faster.
o Unified and extended address translation system
We have unified all address translation files and codes to use a single
address_translation.conf file for this job. Also the file syntax has
been completly changed to be more flexible and allow configuration of
almost any thinkable NAT setup.
o IRC support reworked
IRC client support has been bugfixed, optimized and made to work with a
lot more IRC clients.
o Unified file based storage
File based storage (plain and cdb) have been unified into a single storage
backend (called "file") and the mode (plain/cdb) is just a parameter.
o Rewritten low level socket multiplexing codes (fdwatch2)
The codes which deal with how PvPGN knows which sockets are available for
reading/writing have been rewritten with a new interface which does not
presume (like the old codes) that the underlying OS allocates socket
values "close" (ex. WIN32 systems do not while most Unix based systems do
so). The new codes eliminates this presumtion and thus allows WIN32 hosts
to support a large number of connections as PvPGN supported Unix based
platforms.
o Added more storage types: SQLite3 and ODBC
With 1.7.x PvPGN now supports besides the MySQL/PostgreSQL SQL backends
also SQLite3 (www.sqlite.org) and ... ODBC SQL engine !! This means that
theoretically now you should be able to use PvPGN with almost any SQL
engine as long as an ODBC driver exists for it.

12
pvpgn/README Normal file
View file

@ -0,0 +1,12 @@
CONGRATULATIONS!!!!
WHY ?? BECAUSE YOU ARE ONE OF THE VERY VERY VERY FEW WHO READ THE README FILE!!
But because the other, huge percentage do NOT, we moved the actual contents
of this file into IGNOREME file because the chances for most of the people to
read IGNOREME are at least the chances to read README (more than that, we
believe they are really much higher).
So now, go read IGNOREME with the actual contents what you would have
expected here.

7
pvpgn/README.ALPHA Normal file
View file

@ -0,0 +1,7 @@
ALPHA releases ONLY README
This release is only intended for profesionals and PvPGN team members. This
release has not beeing had any testing (it may not even compile). You are on
your own with this release.

372
pvpgn/README.DEV Normal file
View file

@ -0,0 +1,372 @@
PVPGN (wannabe) DEVELOPERS GUIDE
Please read this file before asking any questions !
0. About this document
=======================
This document is intended to be read by all of you out there wanting to do
development or testing for/on PvPGN.
ChangeLog:
29-07-2003: dizzy : Initial version
28-08-2004: dizzy : Run-time debugging : Appendix A
30-08-2004: dizzy : Updated (fdwatch, xalloc, goto, gdb)
1. Why ?
=========
You want to start coding for PvPGN ? Why ? What do you expect to get from it ?
Answer yourself this questions and then go to the next paragraph.
2. History
===========
PvPGN has started as a game server emulation project, taking the excelent's
bnetd project source and working on it. While initially it has started as
a War3 emulation patch over bnetd it become a lot more than that (lots of
new features, lots of code changes organizing). Because of the code roots
you will notice a lot of things still carrying the "bnetd" word (most notable
examples are the main servers program file called "bnetd" or the main server
configuration file called bnetd.conf). We considered that as a sign of respect
from us to the bnetd coders we keep their names on the code they written (but
on the new code of course we may name them different).
3. Objective
=============
PvPGN's main objective is to support all Battle.Net clients (games) but are
considering in the near future to extend it to support other game protocols
as well.
4. Layout of files
===================
Note: Starting here on you may find lots of terms and wors which may sound
"strange" to you and for this reason we have included a glossary of terms
in the end of this file.
The PvPGN project consists of a main server (called "bnetd") and various
other programs and (little) servers (ex. bnchat, d2cs, d2dbs etc...).
PvPGN follows the bnetd's layout of files:
./bin -> used to store binaries (after compilation)
./conf -> configuration files (many of them templates)
./files -> various files needed for clients connecting
./man -> outdated man pages :(
./sbin -> same as ./bin
./scripts -> various scripts for testing/managing pvpgn
./src -> the source main directory
./src/bnetd -> source files used only by the main server
./src/common -> source files used in common by different programs
./src/compat -> source files concerning portability of code
...
The build process takes place in the "src" dir.
5. Coding Style
================
a. General
PvPGN is mainly developed on and for UNIX/Linux. The reasons are because we
as coders work on this systems and because our users (at least the big ones)
use UNIX/Linux more than ex. Windows. But, even so we try to code in a portable
fashion and any release PvPGN had we made sure it compiles on win32 too (we
even release win32 binaries). We will never refuse a good win32 coder but we
prefer UNIX ones ;)
One thing which is overlooked by newbie coders is the "esthetical" side of the
code. It may not be so important to many people (which code on the idea "if it
works then its good") but for us, coding on PvPGN is VERY important. When you
are coding for PvPGN PLEASE try to make your code look similar to already
written code (this includes identing, identificator names, etc...). Keeping
the code look "the same" makes its reading a lot more easier so, finding
bugs easier so coding better.
One way to make sure your code sticks with the PvPGN coding style is to use
"indent" code indenting formating tool (http://www.gnu.org/software/indent/).
To use indent to get your code acording to PvPGN coding style use something
like this (it will format properly the file clan.c and save the new file to
clan.c.new):
$ indent -kr -bl -bli0 -l0 -br -ce -cli4 clan.c -o clan.c.new
Other overlooked aspect for newbie coders is code replication. Please DONT
copy and paste code arround !!! If you need to copy common functionality from
some place, think about making some API of that functionalilty, put it in
some functions and use it from both places. I repeat, DONT replicate code.
When allocating memory inside a function always free it in the same function
before its exit (exceptions: the function returns the allocated memory in
which case the calling function should take care of the allocated memory;
or the allocated memory is cached/stored somewhere to be used later, in which
case you must make sure it will be free()d when not needed anymore).
In the startup code of any "external" function (function which may be called
from other modules then the one containing it) please check ALL the input
parameters (you will notice how PvPGN already does that in such functions).
Traditionally this has been done with contructs like:
if (var==NULL) { eventlog(error); return <error-code>; }
We have recently changed our policy because of increasing code size and lots
of redundant checks, we now usually prefer using assert() for this type of
checks (check the manual page for assert).
A new addition is the xalloc memory allocation wrappers (for malloc,
calloc, realloc, strdup and free). We now do NOT allow memory allocation to
take place without this wrappers. They make the code smaller and easier to
read because they never fail so they eliminate the need for failure checks
and eventlogs in such cases.
Another thing recently adopted in the team is the usage of "goto" keyword.
Many people have argued (and continue to) that goto are inherently _evil_ and
they produce "spaghetti code". But that is true for pointers and lots of other
powerfull C features. We consider the programmer to be the cause of bad
written codes and not some keywords. So we are moving into using "goto"
mainly in the "error exit paths" cases. Let's say you have a function which
needs to allocate some stuff (in 3 variables), checks for each allocation,
exits with error for each specific failure (also free()ing the already
allocated space). You can do it the PvPGN traditional way like:
------- CODE ----------
a = malloc(X);
if (!a) {
eventlog(bla);
return -1;
}
b = malloc(Y);
if (!b) {
eventlog(bla);
free(a);
return -1;
}
c = malloc(Z);
if (!c) {
eventlog(bla);
free(b);
free(a);
return -1;
}
<do stuff>
return 0;
------ CODE -----------
Or you can do it the new, "goto" way:
--------- CODE --------------
a = malloc(X);
if (!a) {
eventlog(bla);
goto err_a;
}
b = malloc(Y);
if (!b) {
eventlog(bla);
goto err_b;
}
c = malloc(Z);
if (!c) {
eventlog(bla);
goto err_c;
}
<do stuff>
return 0;
err_c:
free(c);
err_b:
free(b);
err_a:
return -1;
-------- CODE ------------
The last version is a lot easier to read/debug. Because the reader is usually
interested by the main (non-error) code path not about the error code path.
Also the traditional way replicates codes (those replicated free()) which is
error prone (more badly, its prone to memory leaks, and believe me, I did
fixed a lot of this forgotten free() in error exit paths).
NOTE: however, with the xalloc wrappers that never fail the above examples
are obsolete, still there are many other similar situations where you need
a complex error exit path and goto comes in handy.
When developing code you should compile always with "all warnings" enabled
and try to fix them (some warnings uncover real bugs), like for gcc use
"-Wall". When running/testing the codes you should use a memory debugger like
valgrind and/or bounds checking compiler patches like bounds-checking-gcc.
For more details about how to run pvpgn check Appendix B.
b. Code Organizing
PvPGN (inhireted from bnetd) trys to group functions based on their data on
which they work on. Thus it somewhat resembles the principle of data
encapsulation used in OOP. For example connection.h defines structs necesarry
to work with connections (the main one beeing t_connection) and functions
which work with this structs and which do actions related to this connections.
Also notice that all this functions are named like conn_<name>(). In general
if you have a set of functions working on a set of structs, you define the
structs and the functions in a <module>.h file (thus defining the API) then
write the function implementations in <module>.c file. And the function names
should be something like <module>_<name>(). Separating and grouping functions
in their own modules, working on their own data structures helps isolating
functionality in the server and thus hunting bugs a lot easier.
c. Code Flow
Note: this chapter is more or less correct. Is intended to give a general
ideea about the code flow, it may contain flows and things which are not
in sync with the actual code, for a better understanding I recommend reading
the actual code
The server starts in main() found in bnetd/main.c file. There it parses
command line arguments then tries to initilize the modules by calling their
initilizing function (many of them called like <module>_init()). Some of this
modules depend on the initilizing of others so the order there may be important.
Also some of the modules if fail on initilizing may represent a general fail
thus PvPGN bails out. But should print out a explaining message (or write it
to the log configured file).
From there the server calls the main server loop function found in server.c.
Here the loop may be simplified to something like:
1. fdwatch() on the set of opened sockets
2. call fdwatch_handle() which reads (if any) network data and "handle" them
(by calling the handle function coresponding to the class of the connection
receiving the data)
3. write (if any) to the network from the output queue
4. do any periodic or time based events
5. go to 1
As seen on step 2. above we call the handling functions coresponding to the
class of the connection. The handle functions usualy are a big switch/case or
a for/if (which is equivalent) and they check for the packet type received, then
they act acordingly to the data received (many of them responing with packets
by adding them to the output packet queue of the connection).
Appendix A. Glossary of terms
===============================
* autoupdate: the feature of Battle.Net servers to send a (MPQ, see MPQ) file
to the client which after downloading it, it is used to update the client
* connection class: when a connection is established to a bnet listening
address the client sends an initial byte which tells the server of what class
of connection the following packets will be; classes of connections determine
what packets can go through that connection.
* MPQ: a format archive which is used by Blizzard clients and Battle.Net
servers. This files are used for containing verious files (sound/graphics in
clients, AI scripts, update patches etc...)
* versioncheck: also know as vcheck and sometimes just vc ; a client
verification system used by Battle.Net servers to identify client version and
"purity". Based on this the server may accept/refuse connection or ask for
upgrade (see autoupdate).
Appendix B. How to run PvPGN for debugging
===========================================
It is very helpfull in finding out memory coruption bugs as soon as possible
so while developing codes or just when running a server it is good that you
use some memory coruption run-time debuggers. I dont know about Win32 users
but on Unix/Linux there are some good options.
1. valgrind (http://valgrind.kde.org)
Valgrind is not very portable (only x86, Linux and very recently FreeBSD),
also it slows down the debugged codes (it acts like a CPU emulator so it
has to do that) but I have yet to find out a better debugging tool for what
he does. Valgrind is so cool that recently many OSS projects use it for
finding out bugs in their codes. For more information you can check out their
web page. I will focus on valgrind with PvPGN.
After you have compiled and installed valgrind (it's easy, ./configure, make,
make install) you will use it by running PvPGN like this:
$ valgrind --tool=memcheck --num-callers=10 /path/to/bnetd -f 2> valg.out
"num-callers" makes valgrind record backtraces with 10 entries and is usually
needed with PvPGN which has not very small backtrace path :)
Another option you might want to use is "--leak-check=yes" and probably
"--leak-resolution=high". This options make valgrind even slower but they
will give memory leak information when PvPGN exits.
I encourage EVERYONE to use it if available (that is if you run PvPGN on
a supported platform). Only very big servers won't be able to do it because
there is no hardware powerfull enough to run a big server with valgrind (but
big means over 500 users online). You should test it with your server and if
it does not make your bnetd go over 90% CPU then you should be fine. If you
cannot run valgrind for any reason or if you are hunting for some bugs
valgrind cannot find (yes, valgrind is superb but there is a class of bugs,
especially overflows which valgrind can't help you with) you should then try
the next debugging tool.
2. bounds-checking GCC (http://sourceforge.net/projects/boundschecking/)
This has the drawback of beeing just for GCC (as far as I know of) but has
the advantage over valgrind that is : more portable (virtually it should be
possible to use it anywhere you can use a recent GCC), a lot faster and can
detect bugs that valgrind cannot find. However it has the disadvantage that
it's error reports do not contain backtraces so they might be lesser usefull.
To use it basically it cuts down to:
- download a recent compiler (ex GCC 3.4.1)
- download the coresponding patch from the project's sf.net page
- apply the patch while beeing in the gcc source dir you unpacked with a
command like bunzip2 -c /path/to/patch.bz2 | patch -p1
- compile gcc and install gcc
- to make pvpgn compile with your new gcc do something like:
$ CC=/path/to/new/gcc CFLAGS="-O0 -Wall -fbounds-checking -g" ./configure
- then the usual make, make install
- to run PvPGN you will probably need to redirect stderr like:
$ /path/to/bnetd -f 2> debug.out
You will probably encounter some problems when configuring, building gcc, so
you should read the text in the beginning of the bounds-checking patch file.
Also the gcc install docs are usefull.
When starting up your new bounds checking enabled binary you will see some
usefull messages. By default the patch makes the debugged program exit on the
first error it encounters. For a production server this is not very nice so
you will want to set GCC_BOUNDS_OPTS shell variable to "-never-fatal" like:
$ GCC_BOUNDS_OPTS="-never-fatal" /path/to/bnetd -f 2> debug.out
Appendix C. How to generate and use "core" files
=================================================
This appendix is for Unix users. I dont know if other platforms have similar
features, that when the program crashes unexpectedly the OS would dump the
contents of the memory of the crashing process into a disk file for later
inspection.
First make sure that PvPGN has been compiled with debugging ("-g" parameter
to gcc) and with no optimizations ("-O0" parameter to gcc). PvPGN default
build process puts "-g -O2" so you need to edit Makefile file before compile
and change it to "-g -O0". Then something like "make clean; make".
On Unix/Linux to be able to get core dumps you first need to make sure your
core file size limit is set acordingly. Use "ulimit -c" for querying and
setting this limit (I recommend setting it to "unlimited"). After that when
you start PvPGN make sure you are in a directory where you have write access
(so the OS when it wants to do the core dump it will be allowed to do so).
The last thing to do is when starting PvPGN make sure it starts in FOREGROUND,
example : /path/to/bnetd -f . If you did all this then when PvPGN will crash
you will get a core dump. On linux this is a file called "core", on *BSD it's
called <processname>.core (for bnetd that means it's called bnetd.core).
Now that you got a core file it is time to use it to identify what happened
wrong in the crashing process. We use gdb (the GNU debugger, should be
available on all Unices) to do this. Run gdb like this:
$ gdb /path/to/bnetd /path/to/corefile
Then gdb should startup, print out a lot of messages and stop after printing
a file and line number and quoting some C code where the crash has happened.
You can find out a lot more information than this. Run gdb's command "bt full"
and it will display a full backtrace of the moment of the crash. The backtrace
will contain how the functions were called along the way (their parameters),
and also any local variables. If you do not know what to do next from here
contact a PvPGN developer and give him exactly that backtrace dump, he should
know more.

42
pvpgn/TODO Normal file
View file

@ -0,0 +1,42 @@
PvPGN TODO LIST AND WHATS BEING WORKED ON:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Release v1.7 ROADMAP:
1. DOCUMENTATION (client and server documentation; a FAQ, HOWTO and a file
describing all configuration options)
2. i18n or some sort to support different language messages to users
Stuff not programmed for any specific version release:
* admin protocol (design an admin protocol and implement the server side and
a client lib)
* w3route server and serverside game packets
* extend/redesign storage to be used by both bnetd and d2cs/d2dbs
* complete tournament support with crash recovery option
* anonagame stuff
a. the new W3 AMM introduced with 1.15 patch
c. move w3route functions to its own .c/.h file (for w3route server)
e. tournament stuff
1. determine how games are limited to 30 minutes & map reveled at 25
2. complete the process for finals selection
3. make struct to hold / match / advance / eleminate finals players
and functions to acomplish this task
4. add stats recording for tournament games (did race wins)
* changing data references from accountnames to UIDs ....
* design a plugins support and move in time all the code in plugins (except
the core code of course)
* add gamespy protocol support (gamespy master server does what we do in bnetd
keeping user accounts, records, stats, channels, publishing games to requestors)
very nice ideea from Mivabe
* add some way to be able to read/write specific "runtime changable" bnetd.conf
entries (like while server is online doing /config "allow_unknown_version" "false")
* optimize PvPGN using "inline" functions in all "small" functions

93
pvpgn/UPDATE Normal file
View file

@ -0,0 +1,93 @@
==========================
PVPGN UPDATE INFORMATION
==========================
This file contains a summary of all changes from previous version you need to
take care of when updating your server to the current version.
It should contain:
-- info's about all new/changed parameters in bnetd.conf
-- all new/changed config files in the conf/ subfolder
The path's specified are those of the default unix installation
NOTE: If updating through several versions (example if updating from 1.7.1 to
1.7.5) you HAVE to go through ALL the update information listed for every
version in between and including the last one (ex. you have to go through
1.7.1 to 1.7.2 update info, then 1.7.2 to 1.7.3, and so on until 1.7.4 to 1.7.5)
Updating from 1.7.8 to 1.7.9
==============================
Configuration files changed:
- conf/d2cs.conf : added pid entry
- conf/d2dbs.conf : added pid entry
- conf/bnetd.conf : added examples for sql2 usage
- conf/versioncheck.conf : added many SC/BW vchecks (yeah seems they have been
busy lately) and W3 vchecks
- conf/command_groups.conf : added entry for the new "/tos" command
Configuration files added:
- conf/sql_DB_layout2.conf : contains database structure initialization SQL
statements for sql2 mode
Updating from 1.7.7 to 1.7.8
==============================
Configuration files changed:
- conf/sql_DB_layout.conf : includes changes needed for the new "username" SQL
field used to fix a MAJOR bug that shows up with case sensitive SQL engines
(almost ALL non-MySQL engines); if you update to 1.7.8 YOU MUST update this
file too if you have your accounts on SQL
- conf/bnetd.conf : added Westwood Online (WOL) configuration options; woladdr
to specify the address to listen for WOL clients, woltimezone for the
server timezone to send to clients, wollong for the server longitute,
wollat for the server latitude
- conf/bnetd.conf : changed "servaddrs" directive to not be totally commented
and be as ":" by default in bnetd.conf (if "servaddrs" is commented this
means "bnetd" will not listen for b.net services at all)
- conf/channels.conf : added channels needed by WOL clients
- conf/versioncheck.conf : updated with latest client versions (War3 1.18a,
SC/BW 1.13 and 1.13b)
- conf/bnmaps.conf : updated with the maps used now on b.net
Updating from 1.7.5 to 1.7.6
==============================
Configuration files changed:
- conf/bnetd.conf : moved the old "servername" parameter to "hostname"
- conf/bnetd.conf : introduced "servername" parameter for server identification
Updating from 1.7.3 to 1.7.4
==============================
- conf/bnetd.conf : added "ladder_prefix" parameter to allow only games with
matching gamename to be counted as ladder (applies only to alternative
ladder game types as specified by "ladder_games" directive)
Updating from 1.7.1 to 1.7.2
==============================
Configuration files changed:
- conf/bnetd.conf : added "sync_on_logoff" parameter to have account data
saved to disk on user's logoff
- conf/d2cs.conf : added "bak_charsavedir" & "bak_charinfodir" parameter so
d2cs can delete the backup copy of charactars deleted by the client.
these settings need to be set the same as the d2dbs.conf parameters
of the same name
Updating from 1.7.0 to 1.7.1
==============================
Configuration files changed:
- conf/bnetd.conf : added "max_connections" parameter to set up the max
allowed number of connections to the bnetd daemon
- conf/d2cs.conf : added "max_connections" parameter to set up the max
allowed number of connections to the d2cs daemon
- conf/d2dbs.conf : added "difficulty_hack" parameter to activate the
Diablo II level 100 workaround
Updating from 1.6.x to 1.7.0
==============================
Because of the many changes in 1.7.0 we recommend to use a clean install
and update the configuration files as necesarry. Things to note:
1. you now need GNU make to build PvPGN on POSIX systems (on Linux this is
just "make" but on *BSD is "gmake")
2. d2trans,gametrans,w3trans have been unified under address_translation.conf
file which has a complete new syntax so take care with that

View file

@ -0,0 +1,770 @@
#
# Copyright (C) 2002 Erik Latoshek [forester] (laterk@inbox.lv)
# Copyright (C) 2001 _type_in_
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# Makefile.BORLAND -
# Makefile for Borland's/Inprise's free command-line win32 tools
# Tested with Version 5.5
# attention!
# on some win95 systems even if there are valid ilink32.cfg file,
# ilink32 does not find objects in lib dir! notice, that on NT all works fine
# so if you get a error that c0x32.obj cannot be found uncomment this macro
#LINK_LIBS_PATH = "c:\program files\bcc55\lib"
# -> ofcourse set path to your path
# -> this was detected in 5.5
srcdir = .
# prefix is the directory where the bnetd binary
# distribution will be installed
prefix = .
exec_prefix = .\bnetd
bindir = ${exec_prefix}\bin
sbindir = ${exec_prefix}\sbin
mandir = ${prefix}\man
confdir = ${prefix}\conf
sharedir = ${prefix}\var
filesdir = ${sharedir}\files
usersdir = ${sharedir}\users
clandir = ${sharedir}\clans
teamdir = ${sharedir}\teams
reportsdir = ${sharedir}\reports
chanlogsdir = ${sharedir}\chanlogs
TOPDIR = ${srcdir}\..
INSTALLDIR = ${prefix}
OBJDIR = ${srcdir}\..\obj\bcc\
SRC_SRCDIR = ${srcdir}
SRC_BINDIR = ${srcdir}\..\bin
SRC_SBINDIR = ${srcdir}\..\sbin
SRC_MANDIR = ${srcdir}\..\man
SRC_CONFDIR = ${SRCDIR}\..\conf
SRC_SHAREDIR = ${SRCDIR}\..\files
SRC_ACDIR = ${SRC_SRCDIR}\autoconf
SRC_BNETDDIR = ${SRC_SRCDIR}\bnetd
SRC_D2CSDIR = ${SRC_SRCDIR}\d2cs
SRC_D2DBSDIR = ${SRC_SRCDIR}\d2dbs
SRC_BNIUTILSDIR = ${SRC_SRCDIR}\bniutils
SRC_BNPASSDIR = ${SRC_SRCDIR}\bnpass
SRC_BNPROXYDIR = ${SRC_SRCDIR}\bnproxy
SRC_BNTRACKDDIR = ${SRC_SRCDIR}\bntrackd
SRC_CLIENTDIR = ${SRC_SRCDIR}\client
SRC_COMMONDIR = ${SRC_SRCDIR}\common
SRC_COMPATDIR = ${SRC_SRCDIR}\compat
SRC_DEBUGDIR = ${SRC_SRCDIR}\debug
SRC_WIN32DIR = ${SRC_SRCDIR}\win32
SRC_CDBDIR = ${SRC_SRCDIR}\tinycdb
SRC_ZLIBDIR = ${SRC_SRCDIR}\zlib
MKDIR = md
RMF = del
#del /q is better if available, as it works on a non-english OS
!if ${OS}==Windows_NT
RMFALL = del /Q
!else
RMFALL = echo y|del
!endif
RMDIR = rmdir
ECHO = echo
SED = notavailable
INSTALL = notavailable
INSTALL_PROGRAM = notavailable
INSTALL_DATA = notavailable
INSTALL_SCRIPT = notavailable
INSTALL_DIRS = mkdir
CC = bcc32
RC = brc32
# Grr... warning 8060 complains about if (!(var = create())) and the compiler stops
# working correctly after 20 or 30 warnings so we have to disable it.
# Warning 8057 is that a function parameter is unused... this is probably intentional so
# this only makes the compile noisy.
#Note on MYSQL support:
#libmySQL.lib has to be converted to work with borland, use this borland tool:
#COFF2OMF libmySQL.lib libmySQL_bc.lib
#Or create it from the dll file:
#IMPLIB libmysql_bc.lib libmysql.dll
#However the data alignment has to be set to "quad word", thus the -a8 in SQLFLAGS
#This might not work flawless, MYSQL suggests to use their static libs from http://www.mysql.com/downloads/os-win32.html
!ifdef WITH_GUI
bnetd_RESOURCES = ${SRC_WIN32DIR}\resource.res
d2cs_RESOURCES = ${SRC_WIN32DIR}\d2cs_resource.res
d2dbs_RESOURCES = ${SRC_WIN32DIR}\d2dbs_resource.res
GUIBCCFLAGS = -tWM -DWIN32_GUI
LINKPREFIX = /aa c0w32
LINKPOSTFIX = cw32mt import32 , ,
!else
LINKPREFIX = /ap c0x32
LINKPOSTFIX = cw32 import32
!endif
!ifdef WITH_SQL_MYSQL
SQLFLAGS = -DWITH_SQL_MYSQL -a8
!endif
!ifdef WITH_SQL_ODBC
SQLFLAGS = -DWITH_SQL_ODBC
!endif
!ifdef WITH_CDB
CDBFLAGS = -DWITH_CDB
!endif
CFLAGS = -v -y -O2 -d -j2 -w-8060 -w-8057
CPPFLAGS = -DWIN32 -I${SRC_SRCDIR} \
-DBNETD_DEFAULT_CONF_FILE=\"${bnetd_DEFCONFFILE:\=\\}\" \
-DD2CS_DEFAULT_CONF_FILE=\"${d2cs_DEFCONFFILE:\=\\}\" \
-DD2DBS_DEFAULT_CONF_FILE=\"${d2dbs_DEFCONFFILE:\=\\}\" \
${SQLFLAGS} ${CDBFLAGS} ${GUIBCCFLAGS}
COMPILE = ${CC} ${CFLAGS} ${CPPFLAGS} -c
LINK = ilink32 -v -L${LINK_LIBS_PATH} -I${OBJDIR}
!ifdef WITH_SQL_MYSQL
!ifdef WITH_SQL_ODBC
LINK_LIBS = libmySQL_bc.lib odbc32.lib
!else
LINK_LIBS = libmySQL_bc.lib
!endif
!else
!ifdef WITH_SQL_ODBC
LINK_LIBS = odbc32.lib
!else
LINK_LIBS =
!endif
!endif
bnetd_DEFCONFFILE = ${confdir}\bnetd.conf
bnetd_SBIN = ${SRC_SBINDIR}\bnetd.exe
bnetd_OBJECTS = \
${SRC_BNETDDIR}\main.obj \
${SRC_BNETDDIR}\server.obj \
${SRC_BNETDDIR}\connection.obj \
${SRC_BNETDDIR}\message.obj \
${SRC_BNETDDIR}\handle_init.obj \
${SRC_BNETDDIR}\handle_bnet.obj \
${SRC_BNETDDIR}\handle_file.obj \
${SRC_BNETDDIR}\handle_bot.obj \
${SRC_BNETDDIR}\handle_telnet.obj \
${SRC_BNETDDIR}\handle_irc.obj \
${SRC_BNETDDIR}\handle_udp.obj \
${SRC_BNETDDIR}\handle_anongame.obj \
${SRC_BNETDDIR}\channel.obj \
${SRC_BNETDDIR}\channel_conv.obj \
${SRC_BNETDDIR}\game.obj \
${SRC_BNETDDIR}\anongame.obj \
${SRC_BNETDDIR}\friends.obj \
${SRC_BNETDDIR}\command.obj \
${SRC_BNETDDIR}\account.obj \
${SRC_BNETDDIR}\account_wrap.obj \
${SRC_BNETDDIR}\prefs.obj \
${SRC_BNETDDIR}\tick.obj \
${SRC_BNETDDIR}\file.obj \
${SRC_BNETDDIR}\watch.obj \
${SRC_BNETDDIR}\ladder.obj \
${SRC_BNETDDIR}\ladder_calc.obj \
${SRC_BNETDDIR}\adbanner.obj \
${SRC_BNETDDIR}\timer.obj \
${SRC_BNETDDIR}\tracker.obj \
${SRC_BNETDDIR}\ipban.obj \
${SRC_BNETDDIR}\game_conv.obj \
${SRC_BNETDDIR}\autoupdate.obj \
${SRC_BNETDDIR}\helpfile.obj \
${SRC_BNETDDIR}\mail.obj \
${SRC_BNETDDIR}\anongame_infos.obj \
${SRC_BNETDDIR}\anongame_gameresult.obj \
${SRC_BNETDDIR}\storage.obj \
${SRC_BNETDDIR}\runprog.obj \
${SRC_BNETDDIR}\realm.obj \
${SRC_BNETDDIR}\character.obj \
${SRC_BNETDDIR}\udptest_send.obj \
${SRC_BNETDDIR}\versioncheck.obj \
${SRC_BNETDDIR}\handle_d2cs.obj \
${SRC_BNETDDIR}\news.obj \
${SRC_BNETDDIR}\irc.obj \
${SRC_BNETDDIR}\alias_command.obj \
${SRC_BNETDDIR}\storage_file.obj \
${SRC_BNETDDIR}\file_plain.obj \
${SRC_BNETDDIR}\file_cdb.obj \
${SRC_BNETDDIR}\storage_sql.obj \
${SRC_BNETDDIR}\sql_mysql.obj \
${SRC_BNETDDIR}\sql_odbc.obj \
${SRC_BNETDDIR}\sql_dbcreator.obj \
${SRC_BNETDDIR}\command_groups.obj \
${SRC_BNETDDIR}\output.obj \
${SRC_BNETDDIR}\tournament.obj \
${SRC_BNETDDIR}\anongame_maplists.obj \
${SRC_BNETDDIR}\clan.obj \
${SRC_BNETDDIR}\topic.obj \
${SRC_BNETDDIR}\ladder_binary.obj \
${SRC_BNETDDIR}\support.obj \
${SRC_BNETDDIR}\team.obj \
${SRC_BNETDDIR}\attrgroup.obj \
${SRC_BNETDDIR}\attrlayer.obj \
${SRC_BNETDDIR}\cmdline.obj \
${SRC_WIN32DIR}\service.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\bn_type.obj \
${SRC_COMMONDIR}\packet.obj \
${SRC_COMMONDIR}\queue.obj \
${SRC_COMMONDIR}\util.obj \
${SRC_COMMONDIR}\network.obj \
${SRC_COMMONDIR}\list.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\bnettime.obj \
${SRC_COMMONDIR}\bnethash.obj \
${SRC_COMMONDIR}\bnethashconv.obj \
${SRC_COMMONDIR}\addr.obj \
${SRC_COMMONDIR}\hashtable.obj \
${SRC_COMMONDIR}\give_up_root_privileges.obj \
${SRC_COMMONDIR}\token.obj \
${SRC_COMMONDIR}\proginfo.obj \
${SRC_COMMONDIR}\rlimit.obj \
${SRC_COMMONDIR}\tag.obj \
${SRC_COMMONDIR}\trans.obj \
${SRC_COMMONDIR}\fdwatch.obj \
${SRC_COMMONDIR}\fdwatch_poll.obj \
${SRC_COMMONDIR}\fdwatch_select.obj \
${SRC_COMMONDIR}\xalloc.obj \
${SRC_COMMONDIR}\rcm.obj \
${SRC_COMMONDIR}\conf.obj \
${SRC_COMPATDIR}\pdir.obj \
${SRC_COMPATDIR}\inet_aton.obj \
${SRC_COMPATDIR}\inet_ntoa.obj \
${SRC_COMPATDIR}\strdup.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\strtoul.obj \
${SRC_COMPATDIR}\strftime.obj \
${SRC_COMPATDIR}\strcasecmp.obj \
${SRC_COMPATDIR}\strncasecmp.obj \
${SRC_COMPATDIR}\strsep.obj \
${SRC_COMPATDIR}\psock.obj \
${SRC_COMPATDIR}\uname.obj \
${SRC_COMPATDIR}\gettimeofday.obj \
${SRC_COMPATDIR}\difftime.obj \
${SRC_COMPATDIR}\memset.obj \
${SRC_COMPATDIR}\memcpy.obj \
${SRC_COMPATDIR}\mmap.obj \
${SRC_COMPATDIR}\getopt.obj \
${SRC_CDBDIR}\cdb_init.obj \
${SRC_CDBDIR}\cdb_find.obj \
${SRC_CDBDIR}\cdb_findnext.obj \
${SRC_CDBDIR}\cdb_seek.obj \
${SRC_CDBDIR}\cdb_seq.obj \
${SRC_CDBDIR}\cdb_unpack.obj \
${SRC_CDBDIR}\cdb_make_add.obj \
${SRC_CDBDIR}\cdb_make_put.obj \
${SRC_CDBDIR}\cdb_make_find.obj \
${SRC_CDBDIR}\cdb_make.obj \
${SRC_CDBDIR}\cdb_hash.obj \
$(SRC_ZLIBDIR)\pvpgn_adler32.obj \
$(SRC_ZLIBDIR)\pvpgn_deflate.obj \
$(SRC_ZLIBDIR)\pvpgn_trees.obj \
$(SRC_ZLIBDIR)\pvpgn_zutil.obj \
${SRC_WIN32DIR}\winmain.obj
sbnetd_SBIN = ${SRC_SBINDIR}\sbnetd.exe
sbnetd_OBJECTS = ${SRC_DEBUGDIR}\sbnetd.obj \
${SRC_COMPATDIR}\strerror.obj
d2cs_DEFCONFFILE = ${confdir}\d2cs.conf
d2cs_SBIN = ${SRC_SBINDIR}\d2cs.exe
d2cs_OBJECTS = \
${SRC_D2CSDIR}\main.obj \
${SRC_D2CSDIR}\d2gs.obj \
${SRC_D2CSDIR}\handle_d2gs.obj \
${SRC_D2CSDIR}\serverqueue.obj \
${SRC_D2CSDIR}\connection.obj \
${SRC_D2CSDIR}\game.obj \
${SRC_D2CSDIR}\server.obj \
${SRC_D2CSDIR}\handle_init.obj \
${SRC_D2CSDIR}\handle_d2cs.obj \
${SRC_D2CSDIR}\d2charfile.obj \
${SRC_D2CSDIR}\d2charlist.obj \
${SRC_D2CSDIR}\gamequeue.obj \
${SRC_D2CSDIR}\prefs.obj \
${SRC_D2CSDIR}\cmdline.obj \
${SRC_D2CSDIR}\bnetd.obj \
${SRC_D2CSDIR}\handle_bnetd.obj \
${SRC_D2CSDIR}\handle_signal.obj \
${SRC_D2CSDIR}\s2s.obj \
${SRC_D2CSDIR}\net.obj \
${SRC_D2CSDIR}\d2ladder.obj \
${SRC_COMMONDIR}\conf.obj \
${SRC_COMMONDIR}\hashtable.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\fdwatch.obj \
${SRC_COMMONDIR}\fdwatch_poll.obj \
${SRC_COMMONDIR}\fdwatch_select.obj \
${SRC_COMMONDIR}\list.obj \
${SRC_COMMONDIR}\packet.obj \
${SRC_COMMONDIR}\bn_type.obj \
${SRC_COMMONDIR}\addr.obj \
${SRC_COMMONDIR}\util.obj \
${SRC_COMMONDIR}\queue.obj \
${SRC_COMMONDIR}\network.obj \
${SRC_COMMONDIR}\rlimit.obj \
${SRC_COMMONDIR}\trans.obj \
${SRC_COMMONDIR}\d2char_checksum.obj \
${SRC_COMMONDIR}\fdwatch_select.obj \
${SRC_COMMONDIR}\xalloc.obj \
${SRC_COMMONDIR}\xstring.obj \
${SRC_COMPATDIR}\inet_aton.obj \
${SRC_COMPATDIR}\inet_ntoa.obj \
${SRC_COMPATDIR}\strdup.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\strtoul.obj \
${SRC_COMPATDIR}\strftime.obj \
${SRC_COMPATDIR}\strcasecmp.obj \
${SRC_COMPATDIR}\strncasecmp.obj \
${SRC_COMPATDIR}\psock.obj \
${SRC_COMPATDIR}\uname.obj \
${SRC_COMPATDIR}\gettimeofday.obj \
${SRC_COMPATDIR}\difftime.obj \
${SRC_COMPATDIR}\pdir.obj \
${SRC_COMPATDIR}\strsep.obj \
${SRC_WIN32DIR}\service.obj \
${SRC_WIN32DIR}\d2cs_winmain.obj
d2dbs_DEFCONFFILE = ${confdir}\d2dbs.conf
d2dbs_SBIN = ${SRC_SBINDIR}\d2dbs.exe
d2dbs_OBJECTS = \
${SRC_D2DBSDIR}\main.obj \
${SRC_D2DBSDIR}\charlock.obj \
${SRC_D2DBSDIR}\d2ladder.obj \
${SRC_D2DBSDIR}\dbserver.obj \
${SRC_D2DBSDIR}\dbspacket.obj \
${SRC_D2DBSDIR}\cmdline.obj \
${SRC_D2DBSDIR}\prefs.obj \
${SRC_D2DBSDIR}\dbsdupecheck.obj \
${SRC_D2DBSDIR}\handle_signal.obj \
${SRC_COMMONDIR}\conf.obj \
${SRC_COMMONDIR}\list.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\bn_type.obj \
${SRC_COMMONDIR}\util.obj \
${SRC_COMMONDIR}\addr.obj \
${SRC_COMMONDIR}\d2char_checksum.obj \
${SRC_COMMONDIR}\xalloc.obj \
${SRC_COMMONDIR}\packet.obj \
${SRC_COMMONDIR}\network.obj \
${SRC_COMMONDIR}\xstring.obj \
${SRC_COMPATDIR}\inet_aton.obj \
${SRC_COMPATDIR}\psock.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\strsep.obj \
${SRC_WIN32DIR}\service.obj \
${SRC_WIN32DIR}\d2dbs_winmain.obj
bnproxy_SBIN = ${SRC_SBINDIR}\bnproxy.exe
bnproxy_OBJECTS = ${SRC_BNPROXYDIR}\bnproxy.obj \
${SRC_BNPROXYDIR}\virtconn.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\packet.obj \
${SRC_COMMONDIR}\queue.obj \
${SRC_COMMONDIR}\list.obj \
${SRC_COMMONDIR}\bn_type.obj \
${SRC_COMMONDIR}\network.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\util.obj \
${SRC_COMMONDIR}\xalloc.obj \
${SRC_COMPATDIR}\inet_ntoa.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\psock.obj
bntrackd_SBIN = ${SRC_SBINDIR}\bntrackd.exe
bntrackd_OBJECTS= ${SRC_BNTRACKDDIR}\bntrackd.obj \
${SRC_COMMONDIR}\util.obj \
${SRC_COMMONDIR}\list.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\xalloc.obj \
${SRC_COMPATDIR}\inet_ntoa.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\psock.obj
bnchat_BIN = ${SRC_BINDIR}\bnchat.exe
bnchat_OBJECTS = ${SRC_CLIENTDIR}\bnchat.obj \
${SRC_CLIENTDIR}\client.obj \
${SRC_CLIENTDIR}\client_connect.obj \
${SRC_CLIENTDIR}\udptest.obj \
${SRC_COMMONDIR}\packet.obj \
${SRC_COMMONDIR}\queue.obj \
${SRC_COMMONDIR}\bn_type.obj \
${SRC_COMMONDIR}\network.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\bnethash.obj \
${SRC_COMMONDIR}\bnethashconv.obj \
${SRC_COMMONDIR}\util.obj \
${SRC_COMMONDIR}\bnettime.obj \
${SRC_COMMONDIR}\proginfo.obj \
${SRC_COMMONDIR}\xalloc.obj \
${SRC_COMPATDIR}\inet_ntoa.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\psock.obj \
${SRC_COMPATDIR}\vsnprintf.obj \
${SRC_COMPATDIR}\gettimeofday.obj
bnpass_BIN = ${SRC_BINDIR}\bnpass.exe
bnpass_OBJECTS = ${SRC_BNPASSDIR}\bnpass.obj \
${SRC_COMMONDIR}\bnethash.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMPATDIR}\strerror.obj
bnftp_BIN = ${SRC_BINDIR}\bnftp.exe
bnftp_OBJECTS = ${SRC_CLIENTDIR}\bnftp.obj \
${SRC_CLIENTDIR}\client.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\packet.obj \
${SRC_COMMONDIR}\queue.obj \
${SRC_COMMONDIR}\bn_type.obj \
${SRC_COMMONDIR}\network.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\bnettime.obj \
${SRC_COMMONDIR}\util.obj \
${SRC_COMMONDIR}\xalloc.obj \
${SRC_COMPATDIR}\inet_ntoa.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\strftime.obj \
${SRC_COMPATDIR}\psock.obj \
${SRC_COMPATDIR}\gettimeofday.obj
bnbot_BIN = ${SRC_BINDIR}\bnbot.exe
bnbot_OBJECTS = ${SRC_CLIENTDIR}\bnbot.obj \
${SRC_CLIENTDIR}\client.obj \
${SRC_COMMONDIR}\packet.obj \
${SRC_COMMONDIR}\bn_type.obj \
${SRC_COMMONDIR}\network.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\util.obj \
${SRC_COMMONDIR}\xalloc.obj \
${SRC_COMPATDIR}\inet_ntoa.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\psock.obj
bnstat_BIN = ${SRC_BINDIR}\bnstat.exe
bnstat_OBJECTS = ${SRC_CLIENTDIR}\bnstat.obj \
${SRC_CLIENTDIR}\client.obj \
${SRC_CLIENTDIR}\client_connect.obj \
${SRC_CLIENTDIR}\udptest.obj \
${SRC_COMMONDIR}\packet.obj \
${SRC_COMMONDIR}\queue.obj \
${SRC_COMMONDIR}\bn_type.obj \
${SRC_COMMONDIR}\network.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\bnethash.obj \
${SRC_COMMONDIR}\bnethashconv.obj \
${SRC_COMMONDIR}\util.obj \
${SRC_COMMONDIR}\bnettime.obj \
${SRC_COMMONDIR}\proginfo.obj \
${SRC_COMMONDIR}\xalloc.obj \
${SRC_COMPATDIR}\inet_ntoa.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\strftime.obj \
${SRC_COMPATDIR}\psock.obj \
${SRC_COMPATDIR}\gettimeofday.obj
bnilist_BIN = ${SRC_BINDIR}\bnilist.exe
bnilist_OBJECTS = ${SRC_BNIUTILSDIR}\bnilist.obj \
${SRC_BNIUTILSDIR}\fileio.obj \
${SRC_BNIUTILSDIR}\tga.obj \
${SRC_COMPATDIR}\strerror.obj
bni2tga_BIN = ${SRC_BINDIR}\bni2tga.exe
bni2tga_OBJECTS = ${SRC_BNIUTILSDIR}\bni2tga.obj \
${SRC_BNIUTILSDIR}\fileio.obj \
${SRC_COMPATDIR}\strerror.obj
bniextract_BIN = ${SRC_BINDIR}\bniextract.exe
bniextract_OBJECTS= ${SRC_BNIUTILSDIR}\bniextract.obj \
${SRC_BNIUTILSDIR}\fileio.obj \
${SRC_BNIUTILSDIR}\tga.obj \
${SRC_BNIUTILSDIR}\bni.obj \
${SRC_COMPATDIR}\strerror.obj
bnibuild_BIN = ${SRC_BINDIR}\bnibuild.exe
bnibuild_OBJECTS= ${SRC_BNIUTILSDIR}\bnibuild.obj \
${SRC_BNIUTILSDIR}\fileio.obj \
${SRC_BNIUTILSDIR}\tga.obj \
${SRC_BNIUTILSDIR}\bni.obj \
${SRC_COMPATDIR}\strerror.obj
tgainfo_BIN = ${SRC_BINDIR}\tgainfo.exe
tgainfo_OBJECTS = ${SRC_BNIUTILSDIR}\tgainfo.obj \
${SRC_BNIUTILSDIR}\fileio.obj \
${SRC_BNIUTILSDIR}\tga.obj \
${SRC_COMPATDIR}\strerror.obj
timetest_BIN = ${SRC_BINDIR}\timetest.exe
timetest_OBJECTS = ${SRC_DEBUGDIR}\timetest.obj \
${SRC_COMMONDIR}\bn_type.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\bnettime.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\gettimeofday.obj
listtest_BIN = ${SRC_BINDIR}\listtest.exe
listtest_OBJECTS = ${SRC_DEBUGDIR}\listtest.obj \
${SRC_COMMONDIR}\list.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\strdup.obj
hashtabletest_BIN = ${SRC_BINDIR}\hashtabletest.exe
hashtabletest_OBJECTS = ${SRC_DEBUGDIR}\hashtabletest.obj \
${SRC_COMMONDIR}\hashtable.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\strdup.obj
addrtest_BIN = ${SRC_BINDIR}\addrtest.exe
addrtest_OBJECTS = ${SRC_DEBUGDIR}\addrtest.obj \
${SRC_COMMONDIR}\addr.obj \
${SRC_COMMONDIR}\util.obj \
${SRC_COMMONDIR}\list.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMPATDIR}\inet_aton.obj \
${SRC_COMPATDIR}\inet_ntoa.obj \
${SRC_COMPATDIR}\strerror.obj \
${SRC_COMPATDIR}\psock.obj \
${SRC_COMPATDIR}\memset.obj \
${SRC_COMPATDIR}\memcpy.obj \
${SRC_COMPATDIR}\strdup.obj
cdb_BIN = ${SRC_BINDIR}\bncdb.exe
cdb_OBJECTS = ${SRC_CDBDIR}\cdb.obj \
${SRC_CDBDIR}\cdb_init.obj \
${SRC_CDBDIR}\cdb_seek.obj \
${SRC_CDBDIR}\cdb_seq.obj \
${SRC_CDBDIR}\cdb_find.obj \
${SRC_CDBDIR}\cdb_findnext.obj \
${SRC_CDBDIR}\cdb_unpack.obj \
${SRC_CDBDIR}\cdb_make_add.obj \
${SRC_CDBDIR}\cdb_make_put.obj \
${SRC_CDBDIR}\cdb_make_find.obj \
${SRC_CDBDIR}\cdb_make.obj \
${SRC_CDBDIR}\cdb_hash.obj \
${SRC_COMMONDIR}\eventlog.obj \
${SRC_COMMONDIR}\hexdump.obj \
${SRC_COMMONDIR}\xalloc.obj \
${SRC_COMPATDIR}\mmap.obj \
${SRC_COMPATDIR}\getopt.obj \
${SRC_COMPATDIR}\strerror.obj
OBJECTS = ${bnetd_OBJECTS} ${d2cs_OBJECTS} ${d2dbs_OBJECTS} ${bntrackd_OBJECTS} ${bnchat_OBJECTS} ${bnpass_OBJECTS} ${bnbot_OBJECTS} ${bnftp_OBJECTS} ${bnstat_OBJECTS} ${bnilist_OBJECTS} ${bni2tga_OBJECTS} ${bniextract_OBJECTS} ${bnibuild_OBJECTS} ${tgainfo_OBJECTS} ${timetest_OBJECTS} ${listtest_OBJECTS} ${hashtabletest_OBJECTS} ${addrtest_OBJECTS} ${cdb_OBJECTS}
GUISBINS = ${bnetd_SBIN} ${d2cs_SBIN} ${d2dbs_SBIN}
SBINS = ${bnproxy_SBIN} ${bntrackd_SBIN}
BINS = ${bnchat_BIN} ${bnpass_BIN} ${bnftp_BIN} ${bnbot_BIN} ${bnstat_BIN} ${bnilist_BIN} ${bni2tga_BIN} ${bniextract_BIN} ${bnibuild_BIN} ${tgainfo_BIN} ${cdb_BIN}
CONFS = ad.conf bnetd.conf bnetd_default_user.plain bnetd_default_user.cdb bnmotd.txt channel.conf news.txt bnban.conf bnhelp.conf autoupdate.conf realm.conf bnmaps.conf bnxplevel.conf bnxpcalc.conf news.txt command_groups.conf bnban.conf bnhelp.conf bnalias.conf anongame_infos.conf tournament.conf topics.conf sql_DB_layout.conf address_translation.conf supportfile.conf
SHARES = ad000001.smk tos.txt
OTHERBINS = ${sbnetd_OBJECTS} ${sbnetd_SBIN}
DIRS = ${SRC_BINDIR} ${SRC_SBINDIR}
!ifdef WITH_GUI
all: config objdir ${GUISBINS}
@echo ===================================================================
@echo Build GUI versions of bnetd, d2cs and d2dbs.
@echo Now building non GUI stuff.
@-${RMF} ${SRC_COMMONDIR}\eventlog.obj
@make_borland console
!else
all: config objdir ${GUISBINS} ${SBINS} ${BINS}
-${RMF} ${SRC_COMMONDIR}\eventlog.obj
@echo ===================================================================
@echo All applications build.
@echo ===================================================================
!endif
!ifndef WITH_GUI
console: config objdir ${SBINS} ${BINS}
-${RMF} ${SRC_COMMONDIR}\eventlog.obj
@echo ===================================================================
@echo remaining sbin and bin applications build.
@echo ===================================================================
!endif
objdir:
if not exist ${OBJDIR} ${INSTALL_DIRS} ${OBJDIR}
clean:
# win95 supports only 1 parameter to 'del' & 'rmdir'
# and wants 'y' for *.*
-${RMF} ${SRC_BNTRACKDDIR}\*.obj
-${RMF} ${SRC_CLIENTDIR}\*.obj
-${RMF} ${SRC_BNIUTILSDIR}\*.obj
-${RMF} ${SRC_BNPASSDIR}\*.obj
-${RMF} ${SRC_BNPROXYDIR}\*.obj
-${RMF} ${SRC_COMPATDIR}\*.obj
-${RMF} ${SRC_COMMONDIR}\*.obj
-${RMF} ${SRC_WIN32DIR}\*.obj
-${RMF} ${SRC_BNETDDIR}\*.obj
-${RMF} ${SRC_D2DBSDIR}\*.obj
-${RMF} ${SRC_D2CSDIR}\*.obj
-${RMF} ${SRC_CDBDIR}\*.obj
-${RMF} ${SRC_ZLIBDIR}\*.obj
-${RMF} ${SRC_BNETDDIR}\*.res
-${RMF} ${SRC_COMPATDIR}\*.g_obj
-${RMF} ${SRC_COMMONDIR}\*.g_obj
-${RMF} ${SRC_WIN32DIR}\*.g_obj
-${RMF} ${SRC_BNETDDIR}\*.g_obj
-${RMF} ${SRC_CDBDIR}\*.g_obj
-${RMF} ${SRC_ZLIBDIR}\*.g_obj
-${RMFALL} ${SRC_BINDIR}\*.*
-${RMFALL} ${SRC_SBINDIR}\*.*
-${RMFALL} ${OBJDIR}\*.*
-${RMDIR} ${SRC_BINDIR}
-${RMDIR} ${SRC_SBINDIR}
-${RMDIR} ${OBJDIR}
distclean: clean
-${RMF} ${SRC_CONFDIR}\bnetd.conf
-${RMF} ${SRC_CONFDIR}\d2dbs.conf
-${RMF} ${SRC_SRCDIR}\config.cache
-${RMF} ${SRC_SRCDIR}\config.log
-${RMF} ${SRC_SRCDIR}\config.status
-${RMF} ${SRC_SRCDIR}\Makefile
-${RMF} ${SRC_SRCDIR}\config.h
-${RMDIR} ${SRC_BINDIR}
-${RMDIR} ${SRC_SBINDIR}
clean-compile: clean all
config: ${SRC_SRCDIR}\Makefile
${SRC_SRCDIR}\Makefile: Makefile.BORLAND
copy Makefile.BORLAND ${SRC_SRCDIR}\Makefile
${SRC_BINDIR}:
if not exist $@ ${INSTALL_DIRS} $@
${SRC_SBINDIR}:
if not exist $@ ${INSTALL_DIRS} $@
install: config all
-${INSTALL_DIRS} ${INSTALLDIR}
-${INSTALL_DIRS} ${INSTALLDIR}\bin
-${INSTALL_DIRS} ${INSTALLDIR}\sbin
-${INSTALL_DIRS} ${INSTALLDIR}\var
-${INSTALL_DIRS} ${INSTALLDIR}\var\files
-${INSTALL_DIRS} ${INSTALLDIR}\var\users
-${INSTALL_DIRS} ${INSTALLDIR}\var\reports
-${INSTALL_DIRS} ${INSTALLDIR}\var\chanlogs
-${INSTALL_DIRS} ${INSTALLDIR}\etc
copy ${TOPDIR}\files\*.* ${INSTALLDIR}\var\files
copy ${TOPDIR}\conf\*.* ${INSTALLDIR}\etc
copy ${INSTALLDIR}\etc\bnetd.conf.win32 ${INSTALLDIR}\etc\bnetd.conf
copy ${INSTALLDIR}\etc\d2cs.conf.win32 ${INSTALLDIR}\etc\d2cs.conf
copy ${INSTALLDIR}\etc\d2dbs.conf.win32 ${INSTALLDIR}\etc\d2dbs.conf
copy ${TOPDIR}\sbin\*.exe ${INSTALLDIR}\sbin
copy ${TOPDIR}\bin\*.exe ${INSTALLDIR}\bin
copy ${TOPDIR}\*.* ${INSTALLDIR}
echo @cd ${INSTALLDIR} > ${INSTALLDIR}\bnetd.bat
echo @.\sbin\bnetd.exe -c .\etc\bnetd.conf >> ${INSTALLDIR}\bnetd.bat
# The Borland compiler silently ignores -ofilename if it is after the source file
# The Borland compiler silently ignores -efilename if it is after the object file
.rc.res:
${RC} -r -i${srcdir} -fo$@ $<
.c.obj:
${COMPILE} -o$@ $<
${bnetd_SBIN}: ${bnetd_OBJECTS} ${bnetd_RESOURCES} ${SRC_SBINDIR}
${LINK} ${LINKPREFIX} ${bnetd_OBJECTS}, $@, , ${LINK_LIBS} ${LINKPOSTFIX} ${bnetd_RESOURCES}
${d2cs_SBIN}: ${d2cs_OBJECTS} ${d2cs_RESOURCES} ${SRC_SBINDIR}
${LINK} ${LINKPREFIX} ${d2cs_OBJECTS}, $@, , ${LINK_LIBS} ${LINKPOSTFIX} ${d2cs_RESOURCES}
${d2dbs_SBIN}: ${d2dbs_OBJECTS} ${d2dbs_RESOURCES} ${SRC_SBINDIR}
${LINK} ${LINKPREFIX} ${d2dbs_OBJECTS}, $@, , ${LINK_LIBS} ${LINKPOSTFIX} ${d2dbs_RESOURCES}
${bnproxy_SBIN}: ${bnproxy_OBJECTS} ${SRC_SBINDIR}
${LINK} /ap c0x32 ${bnproxy_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${bntrackd_SBIN}: ${bntrackd_OBJECTS} ${SRC_SBINDIR}
${LINK} /ap c0x32 ${bntrackd_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${bnchat_BIN}: ${bnchat_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${bnchat_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${bnpass_BIN}: ${bnpass_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${bnpass_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${bnftp_BIN}: ${bnftp_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${bnftp_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${bnbot_BIN}: ${bnbot_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${bnbot_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${bnstat_BIN}: ${bnstat_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${bnstat_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${bnilist_BIN}: ${bnilist_OBJECTS}
${LINK} /ap c0x32 ${bnilist_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${bni2tga_BIN}: ${bni2tga_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${bni2tga_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${bniextract_BIN}: ${bniextract_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${bniextract_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${bnibuild_BIN}: ${bnibuild_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${bnibuild_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${tgainfo_BIN}: ${tgainfo_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${tgainfo_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${timetest_BIN}: ${timetest_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${timetest_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${listtest_BIN}: ${listtest_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${listtest_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${hashtabletest_BIN}: ${hashtabletest_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${hashtabletest_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${addrtest_BIN}: ${addrtest_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${addrtest_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32
${cdb_BIN}: ${cdb_OBJECTS} ${SRC_BINDIR}
${LINK} /ap c0x32 ${cdb_OBJECTS}, $@, , ${LINK_LIBS} cw32 import32

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,61 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bncdb", "bncdb.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F0}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bnchat", "bnchat.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F4}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bnftp", "bnftp.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F5}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "d2cs", "d2cs.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F1}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "d2dbs", "d2dbs.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F2}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PvPGN", "PvPGN.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F3}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
Release = Release
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{300F80E0-1A0E-4639-AEB9-18A692FF35F0}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F0}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F0}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F0}.Release.Build.0 = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F4}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F4}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F4}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F4}.Release.Build.0 = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F5}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F5}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F5}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F5}.Release.Build.0 = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F1}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F1}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F1}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F1}.Release.Build.0 = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F2}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F2}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F2}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F2}.Release.Build.0 = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F3}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F3}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F3}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F3}.Release.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,61 @@
Microsoft Visual Studio Solution File, Format Version 8.00
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PvPGNConsole", "PvPGNConsole.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F3}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "d2csConsole", "d2csConsole.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F1}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "d2dbsConsole", "d2dbsConsole.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F2}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bncdb", "bncdb.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F0}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bnchat", "bnchat.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F4}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bnftp", "bnftp.vcproj", "{300F80E0-1A0E-4639-AEB9-18A692FF35F5}"
ProjectSection(ProjectDependencies) = postProject
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfiguration) = preSolution
Debug = Debug
Release = Release
EndGlobalSection
GlobalSection(ProjectConfiguration) = postSolution
{300F80E0-1A0E-4639-AEB9-18A692FF35F3}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F3}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F3}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F3}.Release.Build.0 = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F1}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F1}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F1}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F1}.Release.Build.0 = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F2}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F2}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F2}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F2}.Release.Build.0 = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F0}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F0}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F0}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F0}.Release.Build.0 = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F4}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F4}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F4}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F4}.Release.Build.0 = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F5}.Debug.ActiveCfg = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F5}.Debug.Build.0 = Debug|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F5}.Release.ActiveCfg = Release|Win32
{300F80E0-1A0E-4639-AEB9-18A692FF35F5}.Release.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
EndGlobalSection
GlobalSection(ExtensibilityAddIns) = postSolution
EndGlobalSection
EndGlobal

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,309 @@
[Project]
FileName=bncdb.dev
Name=bncdb
UnitCount=26
Type=1
Ver=1
ObjFiles=
Includes=..\src
Libs=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=_@@_
IsCpp=0
Icon=
ExeOutput=..\bin
ObjectOutput=
OverrideOutput=0
OverrideOutputName=bncdb.exe
HostApplication=
Folders=bncdb,"bncdb/Header Files","bncdb/Source Files",common,"common/Header Files","common/Source Files",compat,"compat/Header Files","compat/Source Files"
CommandLine=
UseCustomMakefile=0
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=0000000000000000000000
CustomMakefile=
PrivateResource=
[Unit1]
FileName=..\src\tinycdb\cdb_unpack.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=..\src\tinycdb\cdb.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit3]
FileName=..\src\tinycdb\cdb.h
CompileCpp=0
Folder=bncdb/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit4]
FileName=..\src\tinycdb\cdb_find.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit5]
FileName=..\src\tinycdb\cdb_findnext.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit6]
FileName=..\src\tinycdb\cdb_hash.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit7]
FileName=..\src\tinycdb\cdb_init.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit8]
FileName=..\src\tinycdb\cdb_int.h
CompileCpp=0
Folder=bncdb/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit9]
FileName=..\src\tinycdb\cdb_make.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit10]
FileName=..\src\tinycdb\cdb_make_add.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit11]
FileName=..\src\tinycdb\cdb_make_find.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit12]
FileName=..\src\tinycdb\cdb_make_put.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit13]
FileName=..\src\tinycdb\cdb_seek.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit14]
FileName=..\src\tinycdb\cdb_seq.c
CompileCpp=0
Folder=bncdb/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit15]
FileName=..\src\common\xalloc.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit16]
FileName=..\src\common\eventlog.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit17]
FileName=..\src\common\hexdump.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit18]
FileName=..\src\compat\mmap.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit19]
FileName=..\src\compat\getopt.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit20]
FileName=..\src\common\xalloc.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit21]
FileName=..\src\common\eventlog.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit22]
FileName=..\src\common\hexdump.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit23]
FileName=..\src\compat\mmap.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit24]
FileName=..\src\compat\getopt.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=0.1
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=bncdb.exe
ProductName=bncdb
ProductVersion=0.1
AutoIncBuildNr=0
[Unit25]
FileName=..\src\compat\strerror.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit26]
FileName=..\src\compat\strerror.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=

View file

@ -0,0 +1,269 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="bncdb"
ProjectGUID="{300F80E0-1A0E-4639-AEB9-18A692FF35F0}"
RootNamespace="bncdb"
Keyword="ManagedCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)_debug"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="_DEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)/$(ProjectName)_debug.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="NDEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="0"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)/$(ProjectName).exe"
LinkIncremental="1"
GenerateDebugInformation="FALSE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<Filter
Name="bncdb"
Filter="">
<File
RelativePath="..\src\tinycdb\cdb.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_find.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_findnext.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_hash.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_init.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_make.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_make_add.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_make_find.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_make_put.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_seek.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_seq.c">
</File>
<File
RelativePath="..\src\tinycdb\cdb_unpack.c">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\eventlog.c">
</File>
<File
RelativePath="..\src\common\hexdump.c">
</File>
<File
RelativePath="..\src\common\xalloc.c">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\getopt.c">
</File>
<File
RelativePath="..\src\compat\mmap.c">
</File>
<File
RelativePath="..\src\compat\strerror.c">
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\eventlog.h">
</File>
<File
RelativePath="..\src\common\setup_before.h">
</File>
<File
RelativePath="..\src\common\xalloc.h">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\getopt.h">
</File>
<File
RelativePath="..\src\compat\mmap.h">
</File>
<File
RelativePath="..\src\compat\strerror.h">
</File>
</Filter>
<Filter
Name="bncdb"
Filter="">
<File
RelativePath="..\src\tinycdb\cdb.h">
</File>
<File
RelativePath="..\src\tinycdb\cdb_int.h">
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath="..\src\win32\console_resource.rc">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -0,0 +1,469 @@
[Project]
FileName=bnchat.dev
Name=bnchat
UnitCount=42
Type=1
Ver=1
ObjFiles=
Includes=..\src
Libs=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=-lws2_32_@@_
IsCpp=0
Icon=
ExeOutput=..\bin
ObjectOutput=
OverrideOutput=0
OverrideOutputName=bnchat.exe
HostApplication=
Folders=bnchat,"bnchat/Header Files","bnchat/Source Files",common,"common/Header Files","common/Source Files",compat,"compat/Header Files","compat/Source Files"
CommandLine=
UseCustomMakefile=0
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=0000000000000000000000
CustomMakefile=
PrivateResource=
[Unit1]
FileName=..\src\client\udptest.c
CompileCpp=0
Folder=bnchat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=..\src\client\bnchat.c
CompileCpp=0
Folder=bnchat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit3]
FileName=..\src\client\client.c
CompileCpp=0
Folder=bnchat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit4]
FileName=..\src\client\client_connect.c
CompileCpp=0
Folder=bnchat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit5]
FileName=..\src\common\xalloc.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit6]
FileName=..\src\common\bn_type.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit7]
FileName=..\src\common\bnethash.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit8]
FileName=..\src\common\bnethashconv.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit9]
FileName=..\src\common\bnettime.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit10]
FileName=..\src\common\eventlog.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit11]
FileName=..\src\common\hexdump.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit12]
FileName=..\src\common\network.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit13]
FileName=..\src\common\packet.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit14]
FileName=..\src\common\proginfo.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit15]
FileName=..\src\common\queue.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit16]
FileName=..\src\common\util.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit17]
FileName=..\src\compat\strerror.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit18]
FileName=..\src\compat\gettimeofday.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit19]
FileName=..\src\compat\inet_ntoa.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit20]
FileName=..\src\compat\psock.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit21]
FileName=..\src\common\xalloc.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit22]
FileName=..\src\common\bn_type.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit23]
FileName=..\src\common\bnethash.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit24]
FileName=..\src\common\bnethashconv.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit25]
FileName=..\src\common\bnettime.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit26]
FileName=..\src\common\eventlog.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit27]
FileName=..\src\common\hashtable.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit28]
FileName=..\src\common\network.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit29]
FileName=..\src\common\packet.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit30]
FileName=..\src\common\proginfo.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit31]
FileName=..\src\common\queue.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit32]
FileName=..\src\common\setup_before.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit33]
FileName=..\src\common\util.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit34]
FileName=..\src\compat\strerror.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit35]
FileName=..\src\compat\gettimeofday.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit36]
FileName=..\src\compat\inet_ntoa.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit37]
FileName=..\src\compat\psock.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit38]
FileName=..\src\client\udptest.h
CompileCpp=0
Folder=bnchat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit39]
FileName=..\src\client\client.h
CompileCpp=0
Folder=bnchat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit40]
FileName=..\src\client\client_connect.h
CompileCpp=0
Folder=bnchat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=0.1
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=bnchat.exe
ProductName=bnchat
ProductVersion=0.1
AutoIncBuildNr=0
[Unit41]
FileName=..\src\compat\vsnprintf.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit42]
FileName=..\src\compat\vsnprintf.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=

View file

@ -0,0 +1,319 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="bnchat"
ProjectGUID="{300F80E0-1A0E-4639-AEB9-18A692FF35F4}"
RootNamespace="bnchat"
Keyword="ManagedCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)_debug"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="_DEBUG;WIN32;_MBCS"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName)_debug.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="NDEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="0"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName).exe"
LinkIncremental="1"
GenerateDebugInformation="FALSE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<Filter
Name="bnchat"
Filter="">
<File
RelativePath="..\src\client\bnchat.c">
</File>
<File
RelativePath="..\src\client\client.c">
</File>
<File
RelativePath="..\src\client\client_connect.c">
</File>
<File
RelativePath="..\src\client\udptest.c">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\bn_type.c">
</File>
<File
RelativePath="..\src\common\bnethash.c">
</File>
<File
RelativePath="..\src\common\bnethashconv.c">
</File>
<File
RelativePath="..\src\common\bnettime.c">
</File>
<File
RelativePath="..\src\common\eventlog.c">
</File>
<File
RelativePath="..\src\common\hexdump.c">
</File>
<File
RelativePath="..\src\common\network.c">
</File>
<File
RelativePath="..\src\common\packet.c">
</File>
<File
RelativePath="..\src\common\proginfo.c">
</File>
<File
RelativePath="..\src\common\queue.c">
</File>
<File
RelativePath="..\src\common\util.c">
</File>
<File
RelativePath="..\src\common\xalloc.c">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\gettimeofday.c">
</File>
<File
RelativePath="..\src\compat\inet_ntoa.c">
</File>
<File
RelativePath="..\src\compat\psock.c">
</File>
<File
RelativePath="..\src\compat\strerror.c">
</File>
<File
RelativePath="..\src\compat\vsnprintf.c">
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\bn_type.h">
</File>
<File
RelativePath="..\src\common\bnethash.h">
</File>
<File
RelativePath="..\src\common\bnethashconv.h">
</File>
<File
RelativePath="..\src\common\bnettime.h">
</File>
<File
RelativePath="..\src\common\eventlog.h">
</File>
<File
RelativePath="..\src\common\hexdump.h">
</File>
<File
RelativePath="..\src\common\network.h">
</File>
<File
RelativePath="..\src\common\packet.h">
</File>
<File
RelativePath="..\src\common\proginfo.h">
</File>
<File
RelativePath="..\src\common\queue.h">
</File>
<File
RelativePath="..\src\common\setup_before.h">
</File>
<File
RelativePath="..\src\common\util.h">
</File>
<File
RelativePath="..\src\common\xalloc.h">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\gettimeofday.h">
</File>
<File
RelativePath="..\src\compat\inet_ntoa.h">
</File>
<File
RelativePath="..\src\compat\psock.h">
</File>
<File
RelativePath="..\src\compat\strerror.h">
</File>
<File
RelativePath="..\src\compat\vsnprintf.h">
</File>
</Filter>
<Filter
Name="bnchat"
Filter="">
<File
RelativePath="..\src\client\client.h">
</File>
<File
RelativePath="..\src\client\client_connect.h">
</File>
<File
RelativePath="..\src\client\udptest.h">
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath="..\src\win32\console_resource.rc">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -0,0 +1,369 @@
[Project]
FileName=bnftp.dev
Name=bnftp
UnitCount=32
Type=1
Ver=1
ObjFiles=
Includes=..\src
Libs=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=-lws2_32_@@_
IsCpp=0
Icon=
ExeOutput=..\bin
ObjectOutput=
OverrideOutput=0
OverrideOutputName=bnftp.exe
HostApplication=
Folders=bnftp,"bnftp/Header Files","bnftp/Source Files",common,"common/Header Files","common/Source Files",compat,"compat/Header Files","compat/Source Files"
CommandLine=
UseCustomMakefile=0
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=0000000000000000000000
CustomMakefile=
PrivateResource=
[Unit1]
FileName=..\src\client\client.c
CompileCpp=0
Folder=bnftp/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=..\src\client\bnftp.c
CompileCpp=0
Folder=bnftp/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit3]
FileName=..\src\common\xalloc.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit4]
FileName=..\src\common\bn_type.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit5]
FileName=..\src\common\bnettime.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit6]
FileName=..\src\common\eventlog.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit7]
FileName=..\src\common\hexdump.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit8]
FileName=..\src\common\network.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit9]
FileName=..\src\common\packet.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit10]
FileName=..\src\common\queue.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit11]
FileName=..\src\common\util.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit12]
FileName=..\src\compat\strftime.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit13]
FileName=..\src\compat\gettimeofday.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit14]
FileName=..\src\compat\inet_ntoa.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit15]
FileName=..\src\compat\psock.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit16]
FileName=..\src\compat\strerror.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit17]
FileName=..\src\common\xalloc.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit18]
FileName=..\src\common\bn_type.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit19]
FileName=..\src\common\bnettime.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit20]
FileName=..\src\common\eventlog.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit21]
FileName=..\src\common\hexdump.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit22]
FileName=..\src\common\network.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit23]
FileName=..\src\common\packet.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit24]
FileName=..\src\common\queue.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit25]
FileName=..\src\common\setup_before.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit26]
FileName=..\src\common\util.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit27]
FileName=..\src\compat\strftime.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit28]
FileName=..\src\compat\gettimeofday.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit29]
FileName=..\src\compat\inet_ntoa.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit30]
FileName=..\src\compat\psock.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit31]
FileName=..\src\compat\strerror.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit32]
FileName=..\src\client\client.h
CompileCpp=0
Folder=bnftp/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=0.1
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=bnftp.exe
ProductName=bnftp
ProductVersion=0.1
AutoIncBuildNr=0

View file

@ -0,0 +1,289 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="bnftp"
ProjectGUID="{300F80E0-1A0E-4639-AEB9-18A692FF35F5}"
RootNamespace="bnftp"
Keyword="ManagedCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)_debug"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="_DEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName)_debug.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="NDEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="0"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName).exe"
LinkIncremental="1"
GenerateDebugInformation="FALSE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<Filter
Name="bnchat"
Filter="">
<File
RelativePath="..\src\client\bnftp.c">
</File>
<File
RelativePath="..\src\client\client.c">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\bn_type.c">
</File>
<File
RelativePath="..\src\common\bnettime.c">
</File>
<File
RelativePath="..\src\common\eventlog.c">
</File>
<File
RelativePath="..\src\common\hexdump.c">
</File>
<File
RelativePath="..\src\common\network.c">
</File>
<File
RelativePath="..\src\common\packet.c">
</File>
<File
RelativePath="..\src\common\queue.c">
</File>
<File
RelativePath="..\src\common\util.c">
</File>
<File
RelativePath="..\src\common\xalloc.c">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\gettimeofday.c">
</File>
<File
RelativePath="..\src\compat\inet_ntoa.c">
</File>
<File
RelativePath="..\src\compat\psock.c">
</File>
<File
RelativePath="..\src\compat\strerror.c">
</File>
<File
RelativePath="..\src\compat\strftime.c">
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\bn_type.h">
</File>
<File
RelativePath="..\src\common\bnettime.h">
</File>
<File
RelativePath="..\src\common\eventlog.h">
</File>
<File
RelativePath="..\src\common\hexdump.h">
</File>
<File
RelativePath="..\src\common\network.h">
</File>
<File
RelativePath="..\src\common\packet.h">
</File>
<File
RelativePath="..\src\common\queue.h">
</File>
<File
RelativePath="..\src\common\setup_before.h">
</File>
<File
RelativePath="..\src\common\util.h">
</File>
<File
RelativePath="..\src\common\xalloc.h">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\gettimeofday.h">
</File>
<File
RelativePath="..\src\compat\inet_ntoa.h">
</File>
<File
RelativePath="..\src\compat\psock.h">
</File>
<File
RelativePath="..\src\compat\strerror.h">
</File>
<File
RelativePath="..\src\compat\strftime.h">
</File>
</Filter>
<Filter
Name="bncdb"
Filter="">
<File
RelativePath="..\src\client\client.h">
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath="..\src\win32\console_resource.rc">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,564 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="d2cs"
ProjectGUID="{300F80E0-1A0E-4639-AEB9-18A692FF35F1}"
RootNamespace="d2cs"
Keyword="ManagedCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)_debug"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="_DEBUG;WIN32;WIN32_GUI"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName)_debug.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="NDEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="0"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName).exe"
LinkIncremental="1"
GenerateDebugInformation="FALSE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<Filter
Name="d2cs"
Filter="">
<File
RelativePath="..\src\d2cs\bnetd.c">
</File>
<File
RelativePath="..\src\d2cs\cmdline.c">
</File>
<File
RelativePath="..\src\d2cs\connection.c">
</File>
<File
RelativePath="..\src\d2cs\d2charfile.c">
</File>
<File
RelativePath="..\src\d2cs\d2charlist.c">
</File>
<File
RelativePath="..\src\d2cs\d2gs.c">
</File>
<File
RelativePath="..\src\d2cs\d2ladder.c">
</File>
<File
RelativePath="..\src\d2cs\game.c">
</File>
<File
RelativePath="..\src\d2cs\gamequeue.c">
</File>
<File
RelativePath="..\src\d2cs\handle_bnetd.c">
</File>
<File
RelativePath="..\src\d2cs\handle_d2cs.c">
</File>
<File
RelativePath="..\src\d2cs\handle_d2gs.c">
</File>
<File
RelativePath="..\src\d2cs\handle_init.c">
</File>
<File
RelativePath="..\src\d2cs\handle_signal.c">
</File>
<File
RelativePath="..\src\d2cs\main.c">
</File>
<File
RelativePath="..\src\d2cs\net.c">
</File>
<File
RelativePath="..\src\d2cs\prefs.c">
</File>
<File
RelativePath="..\src\d2cs\s2s.c">
</File>
<File
RelativePath="..\src\d2cs\server.c">
</File>
<File
RelativePath="..\src\d2cs\serverqueue.c">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\addr.c">
</File>
<File
RelativePath="..\src\common\bn_type.c">
</File>
<File
RelativePath="..\src\common\conf.c">
</File>
<File
RelativePath="..\src\common\d2char_checksum.c">
</File>
<File
RelativePath="..\src\common\eventlog.c">
</File>
<File
RelativePath="..\src\common\fdwatch.c">
</File>
<File
RelativePath="..\src\common\fdwatch_epoll.c">
</File>
<File
RelativePath="..\src\common\fdwatch_kqueue.c">
</File>
<File
RelativePath="..\src\common\fdwatch_poll.c">
</File>
<File
RelativePath="..\src\common\fdwatch_select.c">
</File>
<File
RelativePath="..\src\common\hashtable.c">
</File>
<File
RelativePath="..\src\common\hexdump.c">
</File>
<File
RelativePath="..\src\common\list.c">
</File>
<File
RelativePath="..\src\common\network.c">
</File>
<File
RelativePath="..\src\common\packet.c">
</File>
<File
RelativePath="..\src\common\queue.c">
</File>
<File
RelativePath="..\src\common\rlimit.c">
</File>
<File
RelativePath="..\src\common\trans.c">
</File>
<File
RelativePath="..\src\common\util.c">
</File>
<File
RelativePath="..\src\common\xalloc.c">
</File>
<File
RelativePath="..\src\common\xstring.c">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\access.h">
</File>
<File
RelativePath="..\src\compat\difftime.c">
</File>
<File
RelativePath="..\src\compat\gettimeofday.c">
</File>
<File
RelativePath="..\src\compat\inet_aton.c">
</File>
<File
RelativePath="..\src\compat\inet_ntoa.c">
</File>
<File
RelativePath="..\src\compat\pdir.c">
</File>
<File
RelativePath="..\src\compat\psock.c">
</File>
<File
RelativePath="..\src\compat\strcasecmp.c">
</File>
<File
RelativePath="..\src\compat\strdup.c">
</File>
<File
RelativePath="..\src\compat\strerror.c">
</File>
<File
RelativePath="..\src\compat\strftime.c">
</File>
<File
RelativePath="..\src\compat\strncasecmp.c">
</File>
<File
RelativePath="..\src\compat\strsep.c">
</File>
<File
RelativePath="..\src\compat\strtoul.c">
</File>
<File
RelativePath="..\src\compat\uname.c">
</File>
</Filter>
<Filter
Name="win32"
Filter="">
<File
RelativePath="..\src\win32\d2cs_winmain.c">
</File>
<File
RelativePath="..\src\win32\service.c">
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<Filter
Name="d2cs"
Filter="">
<File
RelativePath="..\src\d2cs\bit.h">
</File>
<File
RelativePath="..\src\d2cs\bnetd.h">
</File>
<File
RelativePath="..\src\d2cs\cmdline.h">
</File>
<File
RelativePath="..\src\d2cs\connection.h">
</File>
<File
RelativePath="..\src\d2cs\d2charfile.h">
</File>
<File
RelativePath="..\src\d2cs\d2charlist.h">
</File>
<File
RelativePath="..\src\d2cs\d2cs_bnetd_protocol.h">
</File>
<File
RelativePath="..\src\d2cs\d2cs_d2dbs_ladder.h">
</File>
<File
RelativePath="..\src\d2cs\d2cs_d2gs_character.h">
</File>
<File
RelativePath="..\src\d2cs\d2cs_d2gs_protocol.h">
</File>
<File
RelativePath="..\src\d2cs\d2cs_protocol.h">
</File>
<File
RelativePath="..\src\d2cs\d2gs.h">
</File>
<File
RelativePath="..\src\d2cs\d2ladder.h">
</File>
<File
RelativePath="..\src\d2cs\game.h">
</File>
<File
RelativePath="..\src\d2cs\gamequeue.h">
</File>
<File
RelativePath="..\src\d2cs\handle_bnetd.h">
</File>
<File
RelativePath="..\src\d2cs\handle_d2cs.h">
</File>
<File
RelativePath="..\src\d2cs\handle_d2gs.h">
</File>
<File
RelativePath="..\src\d2cs\handle_init.h">
</File>
<File
RelativePath="..\src\d2cs\handle_signal.h">
</File>
<File
RelativePath="..\src\d2cs\net.h">
</File>
<File
RelativePath="..\src\d2cs\prefs.h">
</File>
<File
RelativePath="..\src\d2cs\s2s.h">
</File>
<File
RelativePath="..\src\d2cs\server.h">
</File>
<File
RelativePath="..\src\d2cs\serverqueue.h">
</File>
<File
RelativePath="..\src\d2cs\version.h">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\addr.h">
</File>
<File
RelativePath="..\src\common\bn_type.h">
</File>
<File
RelativePath="..\src\common\conf.h">
</File>
<File
RelativePath="..\src\common\d2char_checksum.h">
</File>
<File
RelativePath="..\src\common\eventlog.h">
</File>
<File
RelativePath="..\src\common\fdwatch.h">
</File>
<File
RelativePath="..\src\common\fdwatch_epoll.h">
</File>
<File
RelativePath="..\src\common\fdwatch_kqueue.h">
</File>
<File
RelativePath="..\src\common\fdwatch_poll.h">
</File>
<File
RelativePath="..\src\common\fdwatch_select.h">
</File>
<File
RelativePath="..\src\common\hashtable.h">
</File>
<File
RelativePath="..\src\common\hexdump.h">
</File>
<File
RelativePath="..\src\common\list.h">
</File>
<File
RelativePath="..\src\common\network.h">
</File>
<File
RelativePath="..\src\common\packet.h">
</File>
<File
RelativePath="..\src\common\queue.h">
</File>
<File
RelativePath="..\src\common\rlimit.h">
</File>
<File
RelativePath="..\src\common\trans.h">
</File>
<File
RelativePath="..\src\common\util.h">
</File>
<File
RelativePath="..\src\common\xalloc.h">
</File>
<File
RelativePath="..\src\common\xstring.h">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\difftime.h">
</File>
<File
RelativePath="..\src\compat\gettimeofday.h">
</File>
<File
RelativePath="..\src\compat\inet_aton.h">
</File>
<File
RelativePath="..\src\compat\inet_ntoa.h">
</File>
<File
RelativePath="..\src\compat\pdir.h">
</File>
<File
RelativePath="..\src\compat\psock.h">
</File>
<File
RelativePath="..\src\compat\strcasecmp.h">
</File>
<File
RelativePath="..\src\compat\strdup.h">
</File>
<File
RelativePath="..\src\compat\strerror.h">
</File>
<File
RelativePath="..\src\compat\strftime.h">
</File>
<File
RelativePath="..\src\compat\strncasecmp.h">
</File>
<File
RelativePath="..\src\compat\strsep.h">
</File>
<File
RelativePath="..\src\compat\strtoul.h">
</File>
<File
RelativePath="..\src\compat\uname.h">
</File>
</Filter>
<Filter
Name="win32"
Filter="">
<File
RelativePath="..\src\win32\d2cs_resource.h">
</File>
<File
RelativePath="..\src\win32\service.h">
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath="..\src\win32\d2cs_resource.rc">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,558 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="d2csConsole"
ProjectGUID="{300F80E0-1A0E-4639-AEB9-18A692FF35F1}"
RootNamespace="d2csConsole"
Keyword="ManagedCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)_debug"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="_DEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName)_debug.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="NDEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="0"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName).exe"
LinkIncremental="1"
GenerateDebugInformation="FALSE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<Filter
Name="d2cs"
Filter="">
<File
RelativePath="..\src\d2cs\bnetd.c">
</File>
<File
RelativePath="..\src\d2cs\cmdline.c">
</File>
<File
RelativePath="..\src\d2cs\connection.c">
</File>
<File
RelativePath="..\src\d2cs\d2charfile.c">
</File>
<File
RelativePath="..\src\d2cs\d2charlist.c">
</File>
<File
RelativePath="..\src\d2cs\d2gs.c">
</File>
<File
RelativePath="..\src\d2cs\d2ladder.c">
</File>
<File
RelativePath="..\src\d2cs\game.c">
</File>
<File
RelativePath="..\src\d2cs\gamequeue.c">
</File>
<File
RelativePath="..\src\d2cs\handle_bnetd.c">
</File>
<File
RelativePath="..\src\d2cs\handle_d2cs.c">
</File>
<File
RelativePath="..\src\d2cs\handle_d2gs.c">
</File>
<File
RelativePath="..\src\d2cs\handle_init.c">
</File>
<File
RelativePath="..\src\d2cs\handle_signal.c">
</File>
<File
RelativePath="..\src\d2cs\main.c">
</File>
<File
RelativePath="..\src\d2cs\net.c">
</File>
<File
RelativePath="..\src\d2cs\prefs.c">
</File>
<File
RelativePath="..\src\d2cs\s2s.c">
</File>
<File
RelativePath="..\src\d2cs\server.c">
</File>
<File
RelativePath="..\src\d2cs\serverqueue.c">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\addr.c">
</File>
<File
RelativePath="..\src\common\bn_type.c">
</File>
<File
RelativePath="..\src\common\conf.c">
</File>
<File
RelativePath="..\src\common\d2char_checksum.c">
</File>
<File
RelativePath="..\src\common\eventlog.c">
</File>
<File
RelativePath="..\src\common\fdwatch.c">
</File>
<File
RelativePath="..\src\common\fdwatch_epoll.c">
</File>
<File
RelativePath="..\src\common\fdwatch_kqueue.c">
</File>
<File
RelativePath="..\src\common\fdwatch_poll.c">
</File>
<File
RelativePath="..\src\common\fdwatch_select.c">
</File>
<File
RelativePath="..\src\common\hashtable.c">
</File>
<File
RelativePath="..\src\common\hexdump.c">
</File>
<File
RelativePath="..\src\common\list.c">
</File>
<File
RelativePath="..\src\common\network.c">
</File>
<File
RelativePath="..\src\common\packet.c">
</File>
<File
RelativePath="..\src\common\queue.c">
</File>
<File
RelativePath="..\src\common\rlimit.c">
</File>
<File
RelativePath="..\src\common\trans.c">
</File>
<File
RelativePath="..\src\common\util.c">
</File>
<File
RelativePath="..\src\common\xalloc.c">
</File>
<File
RelativePath="..\src\common\xstring.c">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\access.h">
</File>
<File
RelativePath="..\src\compat\difftime.c">
</File>
<File
RelativePath="..\src\compat\gettimeofday.c">
</File>
<File
RelativePath="..\src\compat\inet_aton.c">
</File>
<File
RelativePath="..\src\compat\inet_ntoa.c">
</File>
<File
RelativePath="..\src\compat\pdir.c">
</File>
<File
RelativePath="..\src\compat\psock.c">
</File>
<File
RelativePath="..\src\compat\strcasecmp.c">
</File>
<File
RelativePath="..\src\compat\strdup.c">
</File>
<File
RelativePath="..\src\compat\strerror.c">
</File>
<File
RelativePath="..\src\compat\strftime.c">
</File>
<File
RelativePath="..\src\compat\strncasecmp.c">
</File>
<File
RelativePath="..\src\compat\strsep.c">
</File>
<File
RelativePath="..\src\compat\strtoul.c">
</File>
<File
RelativePath="..\src\compat\uname.c">
</File>
</Filter>
<Filter
Name="win32"
Filter="">
<File
RelativePath="..\src\win32\service.c">
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<Filter
Name="d2cs"
Filter="">
<File
RelativePath="..\src\d2cs\bit.h">
</File>
<File
RelativePath="..\src\d2cs\bnetd.h">
</File>
<File
RelativePath="..\src\d2cs\cmdline.h">
</File>
<File
RelativePath="..\src\d2cs\connection.h">
</File>
<File
RelativePath="..\src\d2cs\d2charfile.h">
</File>
<File
RelativePath="..\src\d2cs\d2charlist.h">
</File>
<File
RelativePath="..\src\d2cs\d2cs_bnetd_protocol.h">
</File>
<File
RelativePath="..\src\d2cs\d2cs_d2dbs_ladder.h">
</File>
<File
RelativePath="..\src\d2cs\d2cs_d2gs_character.h">
</File>
<File
RelativePath="..\src\d2cs\d2cs_d2gs_protocol.h">
</File>
<File
RelativePath="..\src\d2cs\d2cs_protocol.h">
</File>
<File
RelativePath="..\src\d2cs\d2gs.h">
</File>
<File
RelativePath="..\src\d2cs\d2ladder.h">
</File>
<File
RelativePath="..\src\d2cs\game.h">
</File>
<File
RelativePath="..\src\d2cs\gamequeue.h">
</File>
<File
RelativePath="..\src\d2cs\handle_bnetd.h">
</File>
<File
RelativePath="..\src\d2cs\handle_d2cs.h">
</File>
<File
RelativePath="..\src\d2cs\handle_d2gs.h">
</File>
<File
RelativePath="..\src\d2cs\handle_init.h">
</File>
<File
RelativePath="..\src\d2cs\handle_signal.h">
</File>
<File
RelativePath="..\src\d2cs\net.h">
</File>
<File
RelativePath="..\src\d2cs\prefs.h">
</File>
<File
RelativePath="..\src\d2cs\s2s.h">
</File>
<File
RelativePath="..\src\d2cs\server.h">
</File>
<File
RelativePath="..\src\d2cs\serverqueue.h">
</File>
<File
RelativePath="..\src\d2cs\version.h">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\addr.h">
</File>
<File
RelativePath="..\src\common\bn_type.h">
</File>
<File
RelativePath="..\src\common\conf.h">
</File>
<File
RelativePath="..\src\common\d2char_checksum.h">
</File>
<File
RelativePath="..\src\common\eventlog.h">
</File>
<File
RelativePath="..\src\common\fdwatch.h">
</File>
<File
RelativePath="..\src\common\fdwatch_epoll.h">
</File>
<File
RelativePath="..\src\common\fdwatch_kqueue.h">
</File>
<File
RelativePath="..\src\common\fdwatch_poll.h">
</File>
<File
RelativePath="..\src\common\fdwatch_select.h">
</File>
<File
RelativePath="..\src\common\hashtable.h">
</File>
<File
RelativePath="..\src\common\hexdump.h">
</File>
<File
RelativePath="..\src\common\list.h">
</File>
<File
RelativePath="..\src\common\network.h">
</File>
<File
RelativePath="..\src\common\packet.h">
</File>
<File
RelativePath="..\src\common\queue.h">
</File>
<File
RelativePath="..\src\common\rlimit.h">
</File>
<File
RelativePath="..\src\common\trans.h">
</File>
<File
RelativePath="..\src\common\util.h">
</File>
<File
RelativePath="..\src\common\xalloc.h">
</File>
<File
RelativePath="..\src\common\xstring.h">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\difftime.h">
</File>
<File
RelativePath="..\src\compat\gettimeofday.h">
</File>
<File
RelativePath="..\src\compat\inet_aton.h">
</File>
<File
RelativePath="..\src\compat\inet_ntoa.h">
</File>
<File
RelativePath="..\src\compat\pdir.h">
</File>
<File
RelativePath="..\src\compat\psock.h">
</File>
<File
RelativePath="..\src\compat\strcasecmp.h">
</File>
<File
RelativePath="..\src\compat\strdup.h">
</File>
<File
RelativePath="..\src\compat\strerror.h">
</File>
<File
RelativePath="..\src\compat\strftime.h">
</File>
<File
RelativePath="..\src\compat\strncasecmp.h">
</File>
<File
RelativePath="..\src\compat\strsep.h">
</File>
<File
RelativePath="..\src\compat\strtoul.h">
</File>
<File
RelativePath="..\src\compat\uname.h">
</File>
</Filter>
<Filter
Name="win32"
Filter="">
<File
RelativePath="..\src\win32\service.h">
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath="..\src\win32\console_resource.rc">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -0,0 +1,619 @@
[Project]
FileName=d2dbs.dev
Name=d2dbs
UnitCount=57
Type=0
Ver=1
ObjFiles=
Includes=..\src
Libs=
ResourceIncludes=..\src
MakeIncludes=
Compiler=-DWIN32_GUI_@@_
CppCompiler=
Linker=-lws2_32_@@_
IsCpp=0
Icon=d2dbs.ico
ExeOutput=..\bin
ObjectOutput=
OverrideOutput=0
OverrideOutputName=d2dbs.exe
HostApplication=
Folders=common,"common/Header Files","common/Source Files",compat,"compat/Header Files","compat/Source Files",d2dbs,"d2dbs/Header Files","d2dbs/Source Files",win32,"win32/Header Files","win32/Resource Files","win32/Source Files"
CommandLine=
UseCustomMakefile=0
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=0000000000000000000000
CustomMakefile=
PrivateResource=d2dbs_private.rc
[Unit1]
FileName=..\src\win32\service.h
CompileCpp=0
Folder=win32/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=..\src\win32\service.c
CompileCpp=0
Folder=win32/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit3]
FileName=..\src\d2dbs\version.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit4]
FileName=..\src\d2dbs\charlock.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit5]
FileName=..\src\d2dbs\d2ladder.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit6]
FileName=..\src\d2dbs\dbsdupecheck.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit7]
FileName=..\src\d2dbs\dbserver.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit8]
FileName=..\src\d2dbs\dbspacket.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit9]
FileName=..\src\d2dbs\handle_signal.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit10]
FileName=..\src\d2dbs\prefs.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit11]
FileName=..\src\d2dbs\setup.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit12]
FileName=..\src\d2dbs\prefs.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit13]
FileName=..\src\d2dbs\charlock.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit14]
FileName=..\src\d2dbs\d2ladder.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit15]
FileName=..\src\d2dbs\dbsdupecheck.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit16]
FileName=..\src\d2dbs\dbserver.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit17]
FileName=..\src\d2dbs\dbspacket.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit18]
FileName=..\src\d2dbs\handle_signal.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit19]
FileName=..\src\d2dbs\main.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit20]
FileName=..\src\common\xalloc.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit21]
FileName=..\src\common\addr.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit22]
FileName=..\src\common\bn_type.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit23]
FileName=..\src\common\d2char_checksum.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit24]
FileName=..\src\common\eventlog.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit25]
FileName=..\src\common\hexdump.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit26]
FileName=..\src\common\list.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit27]
FileName=..\src\common\util.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit28]
FileName=..\src\compat\strsep.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit29]
FileName=..\src\compat\inet_aton.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit30]
FileName=..\src\compat\psock.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit31]
FileName=..\src\compat\strerror.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit32]
FileName=..\src\common\util.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit33]
FileName=..\src\common\addr.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit34]
FileName=..\src\common\bn_type.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit35]
FileName=..\src\common\d2char_checksum.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit36]
FileName=..\src\common\eventlog.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit37]
FileName=..\src\common\hexdump.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit38]
FileName=..\src\common\list.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit39]
FileName=..\src\compat\strsep.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit40]
FileName=..\src\compat\inet_aton.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit41]
FileName=..\src\compat\psock.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit42]
FileName=..\src\compat\strerror.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit43]
FileName=..\src\common\xalloc.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit44]
FileName=..\src\win32\d2dbs_winmain.c
CompileCpp=0
Folder=win32/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit45]
FileName=..\src\win32\winmain.h
CompileCpp=0
Folder=win32/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=0.1
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=d2dbs.exe
ProductName=d2dbs
ProductVersion=0.1
AutoIncBuildNr=0
[Unit46]
FileName=..\src\win32\d2dbs_resource.rc
CompileCpp=0
Folder=win32/Resource Files
Compile=1
Link=0
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit47]
FileName=..\src\win32\d2dbs_resource.h
CompileCpp=0
Folder=win32/Resource Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit48]
FileName=..\src\common\packet.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit49]
FileName=..\src\common\network.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit50]
FileName=..\src\common\packet.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit51]
FileName=..\src\common\network.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit52]
FileName=..\src\common\conf.h
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
CompileCpp=0
[Unit53]
FileName=..\src\common\conf.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit54]
FileName=..\src\d2dbs\cmdline.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit55]
FileName=..\src\d2dbs\cmdline.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit56]
FileName=..\src\common\xstring.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit57]
FileName=..\src\common\xstring.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=

View file

@ -0,0 +1,384 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="d2dbs"
ProjectGUID="{300F80E0-1A0E-4639-AEB9-18A692FF35F2}"
RootNamespace="d2dbs"
Keyword="ManagedCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)_debug"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="_DEBUG;WIN32;WIN32_GUI"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName)_debug.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="NDEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="0"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName).exe"
LinkIncremental="1"
GenerateDebugInformation="FALSE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<Filter
Name="d2dbs"
Filter="">
<File
RelativePath="..\src\d2dbs\charlock.c">
</File>
<File
RelativePath="..\src\d2dbs\cmdline.c">
</File>
<File
RelativePath="..\src\d2dbs\d2ladder.c">
</File>
<File
RelativePath="..\src\d2dbs\dbsdupecheck.c">
</File>
<File
RelativePath="..\src\d2dbs\dbserver.c">
</File>
<File
RelativePath="..\src\d2dbs\dbspacket.c">
</File>
<File
RelativePath="..\src\d2dbs\handle_signal.c">
</File>
<File
RelativePath="..\src\d2dbs\main.c">
</File>
<File
RelativePath="..\src\d2dbs\prefs.c">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\addr.c">
</File>
<File
RelativePath="..\src\common\bn_type.c">
</File>
<File
RelativePath="..\src\common\conf.c">
<FileConfiguration
Name="Debug|Win32">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32">
<Tool
Name="VCCLCompilerTool"
ObjectFile="$(IntDir)/$(InputName)1.obj"/>
</FileConfiguration>
</File>
<File
RelativePath="..\src\common\d2char_checksum.c">
</File>
<File
RelativePath="..\src\common\eventlog.c">
</File>
<File
RelativePath="..\src\common\hexdump.c">
</File>
<File
RelativePath="..\src\common\list.c">
</File>
<File
RelativePath="..\src\common\network.c">
</File>
<File
RelativePath="..\src\common\packet.c">
</File>
<File
RelativePath="..\src\common\util.c">
</File>
<File
RelativePath="..\src\common\xalloc.c">
</File>
<File
RelativePath="..\src\common\xstring.c">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\inet_aton.c">
</File>
<File
RelativePath="..\src\compat\psock.c">
</File>
<File
RelativePath="..\src\compat\strerror.c">
</File>
<File
RelativePath="..\src\compat\strsep.c">
</File>
</Filter>
<Filter
Name="win32"
Filter="">
<File
RelativePath="..\src\win32\d2dbs_winmain.c">
</File>
<File
RelativePath="..\src\win32\service.c">
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<Filter
Name="d2dbs"
Filter="">
<File
RelativePath="..\src\d2dbs\charlock.h">
</File>
<File
RelativePath="..\src\d2dbs\cmdline.h">
</File>
<File
RelativePath="..\src\d2dbs\d2ladder.h">
</File>
<File
RelativePath="..\src\d2dbs\dbsdupecheck.h">
</File>
<File
RelativePath="..\src\d2dbs\dbserver.h">
</File>
<File
RelativePath="..\src\d2dbs\dbspacket.h">
</File>
<File
RelativePath="..\src\d2dbs\handle_signal.h">
</File>
<File
RelativePath="..\src\d2dbs\prefs.h">
</File>
<File
RelativePath="..\src\d2dbs\setup.h">
</File>
<File
RelativePath="..\src\d2dbs\version.h">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\addr.h">
</File>
<File
RelativePath="..\src\common\bn_type.h">
</File>
<File
RelativePath="..\src\common\conf.h">
</File>
<File
RelativePath="..\src\common\d2char_checksum.h">
</File>
<File
RelativePath="..\src\common\eventlog.h">
</File>
<File
RelativePath="..\src\common\hexdump.h">
</File>
<File
RelativePath="..\src\common\list.h">
</File>
<File
RelativePath="..\src\common\network.h">
</File>
<File
RelativePath="..\src\common\packet.h">
</File>
<File
RelativePath="..\src\common\util.h">
</File>
<File
RelativePath="..\src\common\xalloc.h">
</File>
<File
RelativePath="..\src\common\xstring.h">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\inet_aton.h">
</File>
<File
RelativePath="..\src\compat\psock.h">
</File>
<File
RelativePath="..\src\compat\strerror.h">
</File>
<File
RelativePath="..\src\compat\strsep.h">
</File>
</Filter>
<Filter
Name="win32"
Filter="">
<File
RelativePath="..\src\win32\service.h">
</File>
<File
RelativePath="..\src\win32\winmain.h">
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath="..\src\win32\d2dbs_resource.h">
</File>
<File
RelativePath="..\src\win32\d2dbs_resource.rc">
</File>
<File
RelativePath="..\src\win32\logo01.ico">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -0,0 +1,579 @@
[Project]
FileName=d2dbsConsole.dev
Name=d2dbsConsole
UnitCount=53
Type=1
Ver=1
ObjFiles=
Includes=..\src
Libs=
ResourceIncludes=
MakeIncludes=
Compiler=
CppCompiler=
Linker=-lws2_32_@@_
IsCpp=0
Icon=d2dbsConsole.ico
ExeOutput=..\bin
ObjectOutput=
OverrideOutput=0
OverrideOutputName=d2dbsConsole.exe
HostApplication=
Folders=common,"common/Header Files","common/Source Files",compat,"compat/Header Files","compat/Source Files",d2dbs,"d2dbs/Header Files","d2dbs/Source Files",win32,"win32/Header Files","win32/Source Files"
CommandLine=
UseCustomMakefile=0
IncludeVersionInfo=0
SupportXPThemes=0
CompilerSet=0
CompilerSettings=0000000000000000000000
CustomMakefile=
PrivateResource=d2dbsConsole_private.rc
[Unit1]
FileName=..\src\win32\service.h
CompileCpp=0
Folder=win32/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit2]
FileName=..\src\win32\service.c
CompileCpp=0
Folder=win32/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit3]
FileName=..\src\d2dbs\version.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit4]
FileName=..\src\d2dbs\charlock.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit5]
FileName=..\src\d2dbs\d2ladder.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit6]
FileName=..\src\d2dbs\dbsdupecheck.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit7]
FileName=..\src\d2dbs\dbserver.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit8]
FileName=..\src\d2dbs\dbspacket.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit9]
FileName=..\src\d2dbs\handle_signal.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit10]
FileName=..\src\d2dbs\prefs.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit11]
FileName=..\src\d2dbs\setup.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit12]
FileName=..\src\d2dbs\prefs.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit13]
FileName=..\src\d2dbs\charlock.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit14]
FileName=..\src\d2dbs\d2ladder.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit15]
FileName=..\src\d2dbs\dbsdupecheck.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit16]
FileName=..\src\d2dbs\dbserver.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit17]
FileName=..\src\d2dbs\dbspacket.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit18]
FileName=..\src\d2dbs\handle_signal.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit19]
FileName=..\src\d2dbs\main.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit20]
FileName=..\src\common\xalloc.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit21]
FileName=..\src\common\addr.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit22]
FileName=..\src\common\bn_type.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit23]
FileName=..\src\common\d2char_checksum.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit24]
FileName=..\src\common\eventlog.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit25]
FileName=..\src\common\hexdump.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit26]
FileName=..\src\common\list.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit27]
FileName=..\src\common\util.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit28]
FileName=..\src\compat\strsep.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit29]
FileName=..\src\compat\inet_aton.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit30]
FileName=..\src\compat\psock.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit31]
FileName=..\src\compat\strerror.c
CompileCpp=0
Folder=compat/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit32]
FileName=..\src\common\util.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit33]
FileName=..\src\common\addr.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit34]
FileName=..\src\common\bn_type.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit35]
FileName=..\src\common\d2char_checksum.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit36]
FileName=..\src\common\eventlog.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit37]
FileName=..\src\common\hexdump.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit38]
FileName=..\src\common\list.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit39]
FileName=..\src\compat\strsep.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit40]
FileName=..\src\compat\inet_aton.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit41]
FileName=..\src\compat\psock.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit42]
FileName=..\src\compat\strerror.h
CompileCpp=0
Folder=compat/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit43]
FileName=..\src\common\xalloc.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit44]
FileName=..\src\common\packet.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit45]
FileName=..\src\common\network.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[VersionInfo]
Major=0
Minor=1
Release=1
Build=1
LanguageID=1033
CharsetID=1252
CompanyName=
FileVersion=0.1
FileDescription=Developed using the Dev-C++ IDE
InternalName=
LegalCopyright=
LegalTrademarks=
OriginalFilename=d2dbs.exe
ProductName=d2dbs
ProductVersion=0.1
AutoIncBuildNr=0
[Unit46]
FileName=..\src\common\packet.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit47]
FileName=..\src\common\network.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit48]
FileName=..\src\d2dbs\cmdline.h
CompileCpp=0
Folder=d2dbs/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit49]
FileName=..\src\d2dbs\cmdline.c
CompileCpp=0
Folder=d2dbs/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit50]
FileName=..\src\common\conf.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit51]
FileName=..\src\common\conf.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit52]
FileName=..\src\common\xstring.h
CompileCpp=0
Folder=common/Header Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=
[Unit53]
FileName=..\src\common\xstring.c
CompileCpp=0
Folder=common/Source Files
Compile=1
Link=1
Priority=1000
OverrideBuildCmd=0
BuildCmd=

View file

@ -0,0 +1,360 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="7.10"
Name="d2dbsConsole"
ProjectGUID="{300F80E0-1A0E-4639-AEB9-18A692FF35F2}"
RootNamespace="d2dbsConsole"
Keyword="ManagedCProj">
<Platforms>
<Platform
Name="Win32"/>
</Platforms>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)_debug"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="_DEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="3"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName)_debug.exe"
LinkIncremental="1"
GenerateDebugInformation="TRUE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="..\bin"
IntermediateDirectory="..\obj\$(ProjectName)"
ConfigurationType="1"
UseOfMFC="0"
UseOfATL="0"
CharacterSet="2"
WholeProgramOptimization="TRUE">
<Tool
Name="VCCLCompilerTool"
Optimization="2"
GlobalOptimizations="FALSE"
InlineFunctionExpansion="1"
EnableIntrinsicFunctions="FALSE"
FavorSizeOrSpeed="1"
OmitFramePointers="TRUE"
OptimizeForProcessor="0"
OptimizeForWindowsApplication="TRUE"
AdditionalIncludeDirectories="../src;&quot;$(SolutionDir)/..&quot;"
PreprocessorDefinitions="NDEBUG;WIN32"
StringPooling="TRUE"
RuntimeLibrary="0"
StructMemberAlignment="1"
EnableFunctionLevelLinking="TRUE"
UsePrecompiledHeader="0"
WarningLevel="1"
Detect64BitPortabilityProblems="TRUE"
DebugInformationFormat="0"
CallingConvention="0"
CompileAs="1"/>
<Tool
Name="VCCustomBuildTool"/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="ws2_32.lib"
OutputFile="$(OutDir)/$(ProjectName).exe"
LinkIncremental="1"
GenerateDebugInformation="FALSE"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"/>
<Tool
Name="VCMIDLTool"/>
<Tool
Name="VCPostBuildEventTool"/>
<Tool
Name="VCPreBuildEventTool"/>
<Tool
Name="VCPreLinkEventTool"/>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="..\src\"/>
<Tool
Name="VCWebServiceProxyGeneratorTool"/>
<Tool
Name="VCXMLDataGeneratorTool"/>
<Tool
Name="VCWebDeploymentTool"/>
<Tool
Name="VCManagedWrapperGeneratorTool"/>
<Tool
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<Filter
Name="d2dbs"
Filter="">
<File
RelativePath="..\src\d2dbs\charlock.c">
</File>
<File
RelativePath="..\src\d2dbs\cmdline.c">
</File>
<File
RelativePath="..\src\d2dbs\d2ladder.c">
</File>
<File
RelativePath="..\src\d2dbs\dbsdupecheck.c">
</File>
<File
RelativePath="..\src\d2dbs\dbserver.c">
</File>
<File
RelativePath="..\src\d2dbs\dbspacket.c">
</File>
<File
RelativePath="..\src\d2dbs\handle_signal.c">
</File>
<File
RelativePath="..\src\d2dbs\main.c">
</File>
<File
RelativePath="..\src\d2dbs\prefs.c">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\addr.c">
</File>
<File
RelativePath="..\src\common\bn_type.c">
</File>
<File
RelativePath="..\src\common\conf.c">
</File>
<File
RelativePath="..\src\common\d2char_checksum.c">
</File>
<File
RelativePath="..\src\common\eventlog.c">
</File>
<File
RelativePath="..\src\common\hexdump.c">
</File>
<File
RelativePath="..\src\common\list.c">
</File>
<File
RelativePath="..\src\common\network.c">
</File>
<File
RelativePath="..\src\common\packet.c">
</File>
<File
RelativePath="..\src\common\util.c">
</File>
<File
RelativePath="..\src\common\xalloc.c">
</File>
<File
RelativePath="..\src\common\xstring.c">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\inet_aton.c">
</File>
<File
RelativePath="..\src\compat\psock.c">
</File>
<File
RelativePath="..\src\compat\strerror.c">
</File>
<File
RelativePath="..\src\compat\strsep.c">
</File>
</Filter>
<Filter
Name="win32"
Filter="">
<File
RelativePath="..\src\win32\service.c">
</File>
</Filter>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
<Filter
Name="d2dbs"
Filter="">
<File
RelativePath="..\src\d2dbs\charlock.h">
</File>
<File
RelativePath="..\src\d2dbs\cmdline.h">
</File>
<File
RelativePath="..\src\d2dbs\d2ladder.h">
</File>
<File
RelativePath="..\src\d2dbs\dbsdupecheck.h">
</File>
<File
RelativePath="..\src\d2dbs\dbserver.h">
</File>
<File
RelativePath="..\src\d2dbs\dbspacket.h">
</File>
<File
RelativePath="..\src\d2dbs\handle_signal.h">
</File>
<File
RelativePath="..\src\d2dbs\prefs.h">
</File>
<File
RelativePath="..\src\d2dbs\setup.h">
</File>
<File
RelativePath="..\src\d2dbs\version.h">
</File>
</Filter>
<Filter
Name="common"
Filter="">
<File
RelativePath="..\src\common\addr.h">
</File>
<File
RelativePath="..\src\common\bn_type.h">
</File>
<File
RelativePath="..\src\common\conf.h">
</File>
<File
RelativePath="..\src\common\d2char_checksum.h">
</File>
<File
RelativePath="..\src\common\eventlog.h">
</File>
<File
RelativePath="..\src\common\hexdump.h">
</File>
<File
RelativePath="..\src\common\list.h">
</File>
<File
RelativePath="..\src\common\network.h">
</File>
<File
RelativePath="..\src\common\packet.h">
</File>
<File
RelativePath="..\src\common\util.h">
</File>
<File
RelativePath="..\src\common\xalloc.h">
</File>
<File
RelativePath="..\src\common\xstring.h">
</File>
</Filter>
<Filter
Name="compat"
Filter="">
<File
RelativePath="..\src\compat\inet_aton.h">
</File>
<File
RelativePath="..\src\compat\psock.h">
</File>
<File
RelativePath="..\src\compat\strerror.h">
</File>
<File
RelativePath="..\src\compat\strsep.h">
</File>
</Filter>
<Filter
Name="win32"
Filter="">
<File
RelativePath="..\src\win32\service.h">
</File>
</Filter>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
<File
RelativePath="..\src\win32\console_resource.rc">
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View file

@ -0,0 +1,14 @@
@echo off
echo ===================================================================
echo Parameter -DWITH_SQL_MYSQL enables MySQL SQL storage support
echo Parameter -DWITH_SQL_ODBC enables ODBC SQL storage support
echo Parameter -DWITH_CDB enables CDB file storage support
echo Parameter -DWITH_GUI to build GUI versions of bnetd, d2cs and d2dbs
echo ===================================================================
echo Parameter clean deletes object files
echo ===================================================================
copy Makefile.BORLAND ..\src\Makefile.BORLAND
copy make_borland.bat ..\src\make_borland.bat
cd ..\src
make -fMakefile.BORLAND %1 %2
cd ..\Win32-Projects

50
pvpgn/conf/ad.conf Normal file
View file

@ -0,0 +1,50 @@
##############################################################################
# ad.list - Configuration for bnetd ad banners #
#----------------------------------------------------------------------------#
# #
# Quotes (") are required around the strings, but they are not allowed #
# inside them. #
# #
# The "file name" field should be in the form llXXXXXX.eee where the X's are #
# the ad id. The ad id is a non-zero hexadecimal number. The files must be #
# in the files/ directory and no path components should be listed here, only #
# the filename portion. #
# #
# The "when" field determines which ad banners should be picked to start a #
# sequence. These can be used to make the server avoid picking an "answer" #
# banner before its corresponding "question" banner by setting it to "start" #
# or "init". The first banner that is chosen when the user logs in is an #
# "init" banner. These banners are not reused, so you may want to double #
# list them as "start" banners. #
# #
# The "time" field is the number of seconds that the banner should be #
# displayed on the client. If it is zero, the ad will be displayed forever. #
# #
# The "URL" field is the location that the user will be sent to if (s)he #
# clicks on the ad. #
# #
# The "next" field determines which banner will be displayed next. If it is #
# zero, then a start banner may be chosen randomly. #
# #
# The "client" field determines which banner will be displayed to which #
# client. Starting with Warcraft III banners are .mng files which are not #
# visible by all clients (and .pcx files dont show on Warcraft III). If this #
# field is NULL than it will be shown to all clients _except_ those who have #
# a specific clienttag line. #
#
# --file name-- when- time ---------------URL--------------- --next-- --client-- #
"ad000001.mng" init 30 "http://www.pvpgn.org" 0x000000 "WAR3"
"ad000001.mng" start 30 "http://www.pvpgn.org" 0x000000 "WAR3"
"ad000004.mng" init 30 "http://www.pvpgn.org" 0x000000 "WAR3"
"ad000004.mng" start 30 "http://www.pvpgn.org" 0x000000 "WAR3"
"ad000001.mng" init 30 "http://www.pvpgn.org" 0x000000 "W3XP"
"ad000001.mng" start 30 "http://www.pvpgn.org" 0x000000 "W3XP"
"ad000004.mng" init 30 "http://www.pvpgn.org" 0x000000 "W3XP"
"ad000004.mng" start 30 "http://www.pvpgn.org" 0x000000 "W3XP"
"ad000001.smk" init 30 "http://www.pvpgn.org" 0x000000 "NULL"
"ad000001.smk" start 30 "http://www.pvpgn.org" 0x000000 "NULL"
#"ad000003.pcx" start 30 "http://www.place.edu/~clanpage" 0x000000
#"ad000002.smk" start 30 "http://www.blah.com/" 0x000004
#"ad000004.smk" norm 30 "http://foo.com/" 0x000000
# #
##############################################################################

View file

@ -0,0 +1,94 @@
########################################################################################################
#------------------------------------------------------------------------------------------------------#
# Address Translation table #
#------------------------------------------------------------------------------------------------------#
# #
# This is a list of ip:port addresses that get translated #
# #
# The entries are broken into four parts: #
# #
# * the IP address w/port to be translated #
# * the output IP address w/port #
# * comma delimited list of networks to be excluded from translation #
# * comma delimited list of networks to be included in translation #
# #
# Each line must contain all four parts or the entire entry will be rejected #
# There are no default ports, make sure input and output includes the port number #
# #
# The entries are searched in the order listed in this file #
# Exclude networks are searched before include networks #
# Only the first matching line is used #
# Lines begining with '#' are ignored #
# #
# If no match is found, the input ip will be returned. #
# #
# NONE = There are no neworks to exclude/include (just a place holder, no entries will be added) #
# ANY = All networks will be excluded/included (same as 0.0.0.0/0) #
# #
########################################################################################################
########################################################################################################
# w3route server ip (removed from w3trans.conf) (Port 6200) #
# #
# Set input address the same as the w3routeaddr setting in the bnetd.conf #
# Set output address to the address to be sent to war3 clients #
# Set exclude to the range of clients you want to recieve the input address #
# instead of the output address #
# Set include to the range of clients you want to recieve the output address #
# #
# input (ip:port) output (ip:port) exclude (ip/netmask) include (ip/netmask) #
#--------------------- ---------------------- ---------------------------- -------------------------#
#0.0.0.0:6200 192.168.1.100:6200 NONE 192.168.1.0/24
#0.0.0.0:6200 internetip:6200 NONE ANY
########################################################################################################
# Game Translations for clients (removed from gametrans.conf) (client data ports) #
# #
# Set input address to the client to be translated #
# Set output address to the address to be sent to the other clients #
# Set exclude to the range of clients you want to recieve the input address #
# instead of the output address #
# Set include to the range of clients you want to recieve the output address #
# #
# input (ip:port) output (ip:port) exclude (ip/netmask) include (ip/netmask) #
#--------------------- ---------------------- ---------------------------- -------------------------#
#192.168.1.1:6119 internetip:6119 192.168.1.0/24,10.0.0.0/8 ANY
#192.168.1.2:6118 internetip:6118 192.168.1.0/24 ANY
########################################################################################################
# Diablo II Charactar Server (d2cs) - (removed from realm.conf) (Port 6113) #
# #
# Set input address to the ip of d2cs (same as the ip in the realm.conf) #
# Set output address to the address to be sent to the clients #
# Set exclude to the range of clients you want to recieve the input address #
# instead of the output address #
# Set include to the range of client you want to recieve the output address #
# #
# input (ip:port) output (ip:port) exclude (ip/netmask) include (ip/netmask) #
#--------------------- ---------------------- ---------------------------- -------------------------#
#192.168.1.100:6113 internetip:6113 192.168.1.0/24 ANY
########################################################################################################
# Diablo II Game Server (d2gs) - (removed from d2gstrans.conf) (Port 4000) #
# #
# Set input address to the ip of d2gs (same as the gameservlist in d2cs.conf) #
# Set output address to the address to be sent to the clients #
# Set exclude to the range of clients you want to recieve the input address #
# instead of the output address #
# Set include to the range of client you want to recieve the output address #
# #
# input (ip:port) output (ip:port) exclude (ip/netmask) include (ip/netmask) #
#--------------------- ---------------------- ---------------------------- -------------------------#
#192.168.1.100:4000 internetip:4000 192.168.1.0/24 ANY

View file

@ -0,0 +1,263 @@
#
# this file shows a sample config of a Frozen Throne ladder URL config
# replace www.your-ladder-page.com with your actual ladder stats URL
#
[URL]
server_URL = "http://www.your-ladder-page.com"
player_URL = "http://www.your-ladder-page.com/?game=W3XP&user="
tourney_URL = "http://www.your-tourney-page.com"
clan_URL = "http://www.your-clan-page/?clan="
ladder_PG_1v1_URL = "http://www.your-ladder-page.com/?game=W3XP&type=solo"
ladder_PG_ffa_URL = "http://www.your-ladder-page.com/?game=W3XP&type=team"
ladder_PG_team_URL = "http://www.your-ladder-page.com/?game=W3XP&type=ffa"
ladder_AT_2v2_URL = "http://www.your-ladder-page.com/?game=W3XP&type=at"
ladder_AT_3v3_URL = "http://www.your-ladder-page.com/?game=W3XP&type=at"
ladder_AT_4v4_URL = "http://www.your-ladder-page.com/?game=W3XP&type=at"
ladder_clan_1v1_URL = "http://www.your-ladder-page.com/?game=W3XP&type=clan_1v1"
ladder_clan_2v2_URL = "http://www.your-ladder-page.com/?game=W3XP&type=clan_2v2"
ladder_clan_3v3_URL = "http://www.your-ladder-page.com/?game=W3XP&type=clan_3v3"
ladder_clan_4v4_URL = "http://www.your-ladder-page.com/?game=W3XP&type=clan_4v4"
[DEFAULT_DESC]
ladder_PG_1v1_desc = "Solo Games"
ladder_PG_ffa_desc = "Free For all Games"
ladder_PG_team_desc = "Team Games"
ladder_AT_2v2_desc = "2 Player Team"
ladder_AT_3v3_desc = "3 Player Team"
ladder_AT_4v4_desc = "4 Player Team"
ladder_clan_1v1_desc = "Solo Games"
ladder_clan_2v2_desc = "2 Player Team"
ladder_clan_3v3_desc = "3 Player Team"
ladder_clan_4v4_desc = "4 Player Team"
gametype_1v1_short = "One vs. One"
gametype_1v1_long = "Two players fight to the death"
gametype_2v2_short = "Two vs. Two"
gametype_2v2_long = "Two teams of two vie for dominance"
gametype_3v3_short = "Three vs. Three"
gametype_3v3_long = "Two teams of three face off on the battlefield"
gametype_4v4_short = "Four vs. Four"
gametype_4v4_long = "Two teams of four head to battle"
gametype_5v5_short = "Five vs. Five"
gametype_5v5_long = "Two teams of five - who will prevail?"
gametype_6v6_short = "Six vs. Six"
gametype_6v6_long = "Two teams of six - get ready to rumble!"
gametype_sffa_short = "Small Free for All"
gametype_sffa_long = "Can you defeat 3-5 opponents alone?"
gametype_tffa_short = "Team Free for All"
gametype_tffa_long = "Can your team defeat 1-2 others?"
gametype_2v2v2_short = "Two vs. Two vs. Two"
gametype_2v2v2_long = "Three teams of two, can you handle it?"
gametype_3v3v3_short = "Three vs. Three vs. Three"
gametype_3v3v3_long = "Three teams of three battle each other"
gametype_4v4v4_short = "Four vs. Four vs. Four"
gametype_4v4v4_long = "Three teams of four - things getting crowded?"
gametype_2v2v2v2_short = "Two vs. Two vs. Two vs. Two"
gametype_2v2v2v2_long = "Four teams of two, is this a challenge?"
gametype_3v3v3v3_short = "Three vs. Three vs. Three vs. Three"
gametype_3v3v3v3_long = "Four teams of three, the ultimate challenge!"
[deDE]
ladder_PG_1v1_desc = "Solo-Spiele"
ladder_PG_ffa_desc = "J.g.J.-Spiele"
ladder_PG_team_desc = "Team-Spiele"
ladder_AT_2v2_desc = "2 Spieler Team"
ladder_AT_3v3_desc = "3 Spieler Team"
ladder_AT_4v4_desc = "4 Spieler Team"
ladder_clan_1v1_desc = "Solo-Spiele"
ladder_clan_2v2_desc = "2 Spieler-Spiele"
ladder_clan_3v3_desc = "3 Spieler-Spiele"
ladder_clan_4v4_desc = "4 Spieler-Spiele"
gametype_1v1_short = "Einer gegen Einen"
gametype_1v1_long = "Zwei Spieler kämpfen bis zum Tod."
gametype_2v2_short = "Zwei gegen Zwei"
gametype_2v2_long = "Zwei Zweier-Teams ringen um die Vorherrschaft."
gametype_3v3_short = "Drei gegen Drei"
gametype_3v3_long = "Zwei Dreier-Teams stehen sich auf dem Schlachfeld gegenüber."
gametype_4v4_short = "Vier gegen Vier"
gametype_4v4_long = "Zwei Vierer-Teams stürmen in die Schlacht."
gametype_5v5_short = "Fünf gegen Fünf"
gametype_5v5_long = "Zwei Fünfer-Teams, wer wird vorherschen?"
gametype_6v6_short = "Sechs gegen Sechs"
gametype_6v6_long = "Zwei Sechser-Teams, macht euch bereit zur Schlacht!"
gametype_sffa_short = "Jeder gegen Jeden - klein"
gametype_sffa_long = "Können Sie allein 3-5 Gegener besiegen?"
gametype_tffa_short = "Jeder gegen Jeden - Team"
gametype_tffa_long = "Kann dein Team 1-2 andere besiegen?"
gametype_2v2v2_short = "Zwei gegen Zwei gegen Zwei"
gametype_2v2v2_long = "Drei Zweier-Teams, können sie das schaffen?"
gametype_3v3v3_short = "Drei gegen Drei gegen Drei"
gametype_3v3v3_long = "Drei Dreier-Teams bekämpfen sich gegenseitig"
gametype_4v4v4_short = "Vier gegen Vier gegen Vier"
gametype_4v4v4_long = "Drei Vierer-Teams - wirds langsam eng?"
gametype_2v2v2v2_short = "2 gegen 2 gegen 2 gegen 2"
gametype_2v2v2v2_long = "Vier Zweier-Teams, ist das eine Herausforderung?"
gametype_3v3v3v3_short = "3 gegen 3 gegen 3 gegen 3"
gametype_3v3v3v3_long = "Vier Dreier-Teams, die ultimative Herausforderung!"
[zhCN]
ladder_PG_1v1_desc = "å<>•æŒ"
ladder_PG_ffa_desc = "混战"
ladder_PG_team_desc = "群殴"
ladder_AT_2v2_desc = "两人队ä¼<C3A4>"
ladder_AT_3v3_desc = "三人队ä¼<C3A4>"
ladder_AT_4v4_desc = "å人队ä¼<C3A4>"
gametype_1v1_short = "1对1"
gametype_1v1_long = "两个玩家一定è¦<C3A8>分出个胜负ã€"
gametype_2v2_short = "2对2"
gametype_2v2_long = "两个队ä¼<C3A4>展开对决ã€"
gametype_3v3_short = "3对3"
gametype_3v3_long = "两个三人队ä¼<C3A4>è¿è¡Œå¯¹å†³ã€"
gametype_4v4_short = "4对4"
gametype_4v4_long = "两个å人队ä¼<C3A4>è¿è¡Œå¯¹å†³ã€"
gametype_5v5_short = "5对5"
gametype_5v5_long = "两个五人队ä¼<C3A4>è¿è¡Œå¯¹å†³ã€"
gametype_6v6_short = "6对6"
gametype_6v6_long = "两个六人队ä¼<C3A4>è¿è¡Œå¯¹å†³ã€"
gametype_sffa_short = " å°<C3A5>åžçš„FFA"
gametype_sffa_long = "你能å<C2BD>•ç¬å‡»è´¥3到5个对æ‰ä¹ˆ?"
gametype_tffa_short = " 组队的FFA"
gametype_tffa_long = "你能åŒé˜Ÿå<C5B8>å<E280B9>ˆä½œå‡»è´¥1到2个对æ‰ä¹ˆ?"
gametype_2v2v2_short = "2对2对2"
gametype_2v2v2_long = "三个队ä¼<C3A4>è¿è¡Œå¯¹å†³ã€"
gametype_3v3v3_short = "3对3对3"
gametype_3v3v3_long = "三个三人队ä¼<C3A4>è¿è¡Œå¯¹å†³ã€"
gametype_4v4v4_short = "4对4对4"
gametype_4v4v4_long = "三个å人队ä¼<C3A4>è¿è¡Œå¯¹å†³ã€"
gametype_2v2v2v2_short = "2对2对2对2"
gametype_2v2v2v2_long = "å个二人队ä¼<C3A4>è¿è¡Œå¯¹å†³ã€"
gametype_3v3v3v3_short = "3对3对3对3"
gametype_3v3v3v3_long = "å个三人队ä¼<C3A4>è¿è¡Œå¯¹å†³ã€"
[ruRU]
ladder_PG_1v1_desc = "Игры без правил"
ladder_PG_ffa_desc = "Без правил"
ladder_PG_team_desc = "Клановые игры"
ladder_AT_2v2_desc = "2 Player Team"
ladder_AT_3v3_desc = "3 Player Team"
ladder_AT_4v4_desc = "4 Player Team"
gametype_1v1_short = "1x1"
gametype_1v1_long = "ДуÑ<C692>ль двух игроков."
gametype_2v2_short = "2x2"
gametype_2v2_long = "Два враждующих клана, по 2 игрока в каждом."
gametype_3v3_short = "3x3"
gametype_3v3_long = "Два враждующих клана, по 3 игрока в каждом."
gametype_4v4_short = "4x4"
gametype_4v4_long = "Два враждующих клана, по 4 игрока в каждом."
gametype_5v5_short = "5x5"
gametype_5v5_long = "Два враждующих клана, по 5 игроков в каждом."
gametype_6v6_short = "6x6"
gametype_6v6_long = "Два враждующих клана, по 6 игроков в каждом."
gametype_sffa_short = "МалаÑ<C2B0> игра БП"
gametype_sffa_long = "СправишÑ<CB86>Ñ<EFBFBD> в одиночку Ñ<> 3-5 противниками?"
gametype_tffa_short = "Team Free for All"
gametype_tffa_long = "СправишÑ<CB86>Ñ<EFBFBD> Ñ<> 1-2 противниками?"
gametype_2v2v2_short = "2x2x2"
gametype_2v2v2_long = "Три враждующих клана, по 2 игрока в каждом."
gametype_3v3v3_short = "3x3x3"
gametype_3v3v3_long = "Три враждующих клана, по 3 игрока в каждом."
gametype_4v4v4_short = "4x4x4"
gametype_4v4v4_long = "Три враждующих клана, по 4 игрока в каждом."
gametype_2v2v2v2_short = "2x2x2x2"
gametype_2v2v2v2_long = "Четыре враждующих клана, по 2 игрока в каждом."
gametype_3v3v3v3_short = "3x3x3x3"
gametype_3v3v3v3_long = "Четыре враждующих клана, по 3 игрока в каждом."
[THUMBS_DOWN_LIMIT]
PG_1v1 = 3
PG_2v2 = 2
PG_3v3 = 1
PG_4v4 = 1
PG_5v5 = 1
PG_6v6 = 1
PG_ffa = 2
AT_2v2 = 3
AT_3v3 = 2
AT_4v4 = 1
AT_ffa = 0
PG_2v2v2 = 0
PG_3v3v3 = 0
PG_4v4v4 = 0
PG_2v2v2v2 = 0
PG_3v3v3v3 = 0
[ICON_REQUIRED_RACE_WINS_WAR3]
Level1 = 25
Level2 = 250
Level3 = 500
Level4 = 1500
[ICON_REQUIRED_RACE_WINS_W3XP]
Level1 = 25
Level2 = 150
Level3 = 350
Level4 = 750
Level5 = 1500
[ICON_REQUIRED_TOURNEY_WINS]
Level1 = 10
Level2 = 75
Level3 = 150
Level4 = 250
Level5 = 500

249
pvpgn/conf/autoupdate.conf Normal file
View file

@ -0,0 +1,249 @@
##############################################################################
# autoupdate - Auto Update Configuration #
#----------------------------------------------------------------------------#
# #
# This is a list of client tags and their equivalent autoupdate files and #
# version information. #
# #
# This file will be ignored for certain clients if skip_versioncheck is #
# enabled in the bnetd.conf file. #
# #
# Only the first matching line is used. If no lines match then no upgrade #
# will be attempted and the client will remain at its current version. #
# #
# Do not include "/" in any of the filenames. #
# #
# The versiontag is used to identify a particular version as specified in #
# the versioncheck configuration file. #
# #
# It works like this: versioncheck identifies a version by reported version #
# number, checksum, clienttag, etc. The autoupdate then uses the arch tog, #
# clinet tag and version tag to find the needed update file. #
# #
# War3 and War3x clinets have different mpq files for the different game #
# languages. This is accounted for by the server, and cleint will get the #
# correct file. Only one entry is needed per arch, client, and version tag. #
# The server will know to send the correct file when a non-english game #
# version connects. #
# #
# Example: With the following line: #
# #
# IX86 W3XP W3XP_107a W3XP_IX86_1xx_111A.mpq #
# #
# war3x english clients will receive the file "W3XP_IX86_1xx_111A.mpq" #
# where russian clients will receive the file "W3XP_IX86_1xx_111A_ruRU.mpq #
# and german clients will receive the file "W3XP_IX86_1xx_111A_deDE.mpq #
# Make sure all the required mpq files are in the files directory or #
# autoupdate will not work. #
# #
# Note: As of Warcraft III 1.14, English clients now have a language tag #
# #
# The avaliable language files in addition to enUS are: #
# #
# csCZ deDE esES frFR itIT jaJA koKR plPL ruRU zhCN zhTW #
# #
# The format of this file is as follows: #
# #
# archtag clienttag versiontag -----update file----- #
# #
##############################################################################
##### Intel (IX86) ###########################################################
# =============== WarCraft III - FT (Expansion) ===============
#IX86 W3XP W3XP_107a W3XP_IX86_1xx_116A.mpq
#IX86 W3XP W3XP_110a W3XP_IX86_1xx_116A.mpq
#IX86 W3XP W3XP_111a W3XP_IX86_1xx_116A.mpq
#IX86 W3XP W3XP_112A W3XP_IX86_1xx_116A.mpq
#IX86 W3XP W3XP_113A W3XP_IX86_1xx_116A.mpq
#IX86 W3XP W3XP_113B W3XP_IX86_1xx_116A.mpq
#IX86 W3XP W3XP_114A W3XP_IX86_1xx_116A.mpq
#IX86 W3XP W3XP_114B W3XP_IX86_1xx_116A.mpq
# Incremental update from version 1.15
#IX86 W3XP W3XP_115A W3XP_IX86_115A_116A.mpq
# The next one is a WarCraft III - FT wildcard entry.
#IX86 W3XP W3XP_1xx W3XP_IX86_1xx_116A.mpq
# ==================== WarCraft III - RoC =====================
#IX86 WAR3 WAR3_100 WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_101 WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_101b WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_102 WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_102a WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_103a WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_104a WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_104b WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_104c WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_105a WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_106a WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_110a WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_111a WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_112A WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_113A WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_113B WAR3_IX86_1xx_116A.mpq
#IX86 WAR3 WAR3_114A WAR3_IX86_1xx_116A.mpq
#IX86 W3XP W3XP_114B WAR3_IX86_1xx_116A.mpq
# Incremental update from version 1.15
#IX86 WAR3 WAR3_115A WAR3_IX86_115A_116A.mpq
# The next one is a WarCraft III - RoC wildcard entry.
#IX86 WAR3 WAR3_1xx WAR3_IX86_1xx_116A.mpq
# ===================== Diablo II Expansion (LoD) ===========================
# note: Blizzard has suppressed d2/lod versions 1.09c.
#IX86 D2XP D2XP_107 D2XP_IX86_1xx_110A.mpq
#IX86 D2XP D2XP_108 D2XP_IX86_1xx_110A.mpq
#IX86 D2XP D2XP_109 D2XP_IX86_1xx_110A.mpq
#IX86 D2XP D2XP_109b D2XP_IX86_1xx_110A.mpq
#IX86 D2XP D2XP_109c D2XP_IX86_1xx_110A.mpq
# The next one is a Diablo II LoD wildcard entry.
#IX86 D2XP D2XP_1xx D2XP_IX86_1xx_110A.mpq
# ========================== Diablo II (DV) =================================
# note: Blizzard has suppressed d2/lod versions 1.09c.
#IX86 D2DV D2DV_100 D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_101 D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_103 D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_104b D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_104c D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_105 D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_105b D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_106 D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_106b D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_108 D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_109 D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_109b D2DV_IX86_1xx_110A.mpq
#IX86 D2DV D2DV_109c D2DV_IX86_1xx_110A.mpq
# The next one is a Diablo II wildcard entry.
#IX86 D2DV D2DV_1xx D2DV_IX86_1xx_110A.mpq
# ================ StarCraft Expansion (Brood War) ==========================
#IX86 SEXP SEXP_104 SEXP_IX86_1xx_112.mpq
#IX86 STAR SEXP_104_STAR SEXP_IX86_1xx_112.mpq
#IX86 SEXP SEXP_105 SEXP_IX86_1xx_112.mpq
#IX86 STAR SEXP_105_STAR SEXP_IX86_1xx_112.mpq
#IX86 SEXP SEXP_106 SEXP_IX86_1xx_112.mpq
#IX86 STAR SEXP_106_STAR SEXP_IX86_1xx_112.mpq
#IX86 SEXP SEXP_107 SEXP_IX86_1xx_112.mpq
#IX86 STAR SEXP_107_STAR SEXP_IX86_1xx_112.mpq
#IX86 SEXP SEXP_108 SEXP_IX86_1xx_112.mpq
#IX86 STAR SEXP_108_STAR SEXP_IX86_1xx_112.mpq
#IX86 SEXP SEXP_108b SEXP_IX86_1xx_112.mpq
#IX86 STAR SEXP_108b_STAR SEXP_IX86_1xx_112.mpq
#IX86 SEXP SEXP_109 SEXP_IX86_1xx_112.mpq
#IX86 STAR SEXP_109_STAR SEXP_IX86_1xx_112.mpq
#IX86 SEXP SEXP_110 SEXP_IX86_1xx_112.mpq
#IX86 STAR SEXP_110_STAR SEXP_IX86_1xx_112.mpq
#IX86 SEXP SEXP_111 SEXP_IX86_1xx_112.mpq
#IX86 STAR SEXP_111_STAR SEXP_IX86_1xx_112.mpq
# Incremental updates from version 1.11b
#IX86 SEXP SEXP_111B SEXP_IX86_111B_112.mpq
#IX86 STAR SEXP_111B_STAR SEXP_IX86_111B_112.mpq
# The next one is a Brood War wildcard entry.
#IX86 SEXP SEXP_1xx SEXP_IX86_1xx_112.mpq
# ========================= StarCraft (original) ============================
#IX86 STAR STAR_100 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_101 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_102 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_103 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_104 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_105 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_106 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_107 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_108 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_108b STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_109 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_109b STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_110 STAR_IX86_1xx_112.mpq
#IX86 STAR STAR_111 STAR_IX86_1xx_112.mpq
# Incremental update from version 1.11b
#IX86 STAR STAR_111B STAR_IX86_111B_112.mpq
# The next one is a Starcraft wildcard entry.
#IX86 STAR STAR_1xx STAR_IX86_1xx_112.mpq
# ========================= Diablo (original) ==============================
# note: Blizzard doesn't update client from 109 to 109b.
#IX86 DRTL DRTL_108 DRTL_IX86_108_109.mpq
# The next one is a Diablo wildcard entry.
#IX86 DRTL DRTL_1xx DRTL_IX86_100_109.mpq
# ========================= Warcraft II BNE ===============================
#IX86 W2BN W2BN_200 W2BN_IX86_200_202.mpq
#IX86 W2BN W2BN_201 W2BN_IX86_201_202.mpq
##### Mac OS X (XMAC) ########################################################
# ===================== Diablo II Expansion (LoD) ===========================
# Note: Diablo 2 1.10b was released for Mac only.
# Blizzard doesn't update clients from 1.10a to 1.10b
# versioncheck cannot tell the difference between 1.10a and 1.10b
#XMAC D2XP D2XP_1xx D2XP_XMAC_1xx_110B.mpq
# ========================== Diablo II (DV) =================================
#XMAC D2DV D2DV_1xx D2DV_XMAC_1xx_110B.mpq
# ================ StarCraft Expansion (Brood War) ==========================
#XMAC SEXP SEXP_109b SEXP_XMAC_1xx_111B.mpq
#XMAC SEXP SEXP_110 SEXP_XMAC_1xx_111B.mpq
#XMAC STAR SEXP_110_STAR SEXP_XMAC_1xx_111B.mpq
#XMAC SEXP SEXP_111 SEXP_XMAC_1xx_111B.mpq
#XMAC STAR SEXP_111_STAR SEXP_XMAC_1xx_111B.mpq
# The next one is a Brood War wildcard entry.
#XMAC SEXP SEXP_1xx SEXP_XMAC_1xx_111B.mpq
# ========================= StarCraft (original) ============================
#XMAC STAR STAR_109b STAR_XMAC_1xx_111B.mpq
#XMAC STAR STAR_110 STAR_XMAC_1xx_111B.mpq
#XMAC STAR STAR_111 STAR_XMAC_1xx_111B.mpq
# The next one is a Brood War wildcard entry.
#XMAC STAR STAR_1xx STAR_XMAC_1xx_111B.mpq
##### Mac OS Classic (PMAC) ##################################################
# ===================== Diablo II Expansion (LoD) ===========================
#PMAC D2XP D2XP_1xx D2XP_PMAC_1xx_110A.mpq
# ========================== Diablo II (DV) =================================
#PMAC D2DV D2DV_109d D2DV_PMAC_1xx_110A.mpq
#PMAC D2DV D2DV_1xx D2DV_PMAC_1xx_110A.mpq
# ================ StarCraft Expansion (Brood War) ==========================
#PMAC SEXP SEXP_109b SEXP_PMAC_1xx_111B.mpq
#PMAC SEXP SEXP_110 SEXP_PMAC_1xx_111B.mpq
#PMAC STAR SEXP_110_STAR SEXP_PMAC_1xx_111B.mpq
#PMAC SEXP SEXP_111 SEXP_PMAC_1xx_111B.mpq
#PMAC STAR SEXP_111_STAR SEXP_PMAC_1xx_111B.mpq
# The next one is a Brood War wildcard entry.
#PMAC SEXP SEXP_1xx SEXP_PMAC_1xx_111B.mpq
# ========================= StarCraft (original) ============================
#PMAC STAR STAR_109b STAR_PMAC_1xx_111B.mpq
#PMAC STAR STAR_110 STAR_PMAC_1xx_111B.mpq
#PMAC STAR STAR_111 STAR_PMAC_1xx_111B.mpq
# The next one is a Brood War wildcard entry.
#PMAC STAR STAR_1xx STAR_PMAC_1xx_111B.mpq

58
pvpgn/conf/bnalias.conf Normal file
View file

@ -0,0 +1,58 @@
##############################################################################
# bnalias.list - List of Locally Defined Alias Commands #
#----------------------------------------------------------------------------#
# #
# This file can be used to define shortcuts for often-used commands or for #
# unusually long commands. It can also be used to make custom emotes which #
# are especially useful for non-English servers. #
# #
# Lines starting with a # are considered to be comments. #
# The format is: #
# @ #
# aliasname [aliasshortcut1 [aliasshortcut2 [...]]] #
# [!]text or command to type as if the player typed it #
# [!]%Iinformation to print to the player #
# [!]%Eerror to print to the player #
# #
# Where ! is either an integer representing the number of arguments given to #
# the alias by the user or an asterisk (*) meaning it will match any number #
# of arguments. The plus sign (+) will match with any non-zero number of #
# arguments. #
# #
# There may be as many lines as you want following the aliasname. If #
# multiple lines match they will be executed in the order they are listed. #
# #
# The text or command is actually formatted text as used in the bnmotd file. #
# It contains special formatting characters which can be used to specify the #
# type of message or substitue special values (the hostname, the player's #
# own name, and many more). These all start with a percent sign (%). There #
# are also special formatters which subsitute arguments which were entered #
# by the user. These start with a dollar sign. #
# #
# $* - substitute all arguments here #
# $0 through $9 - substitute that argument here (0 means the command) #
# ${43} - substitute that argument here (0 means the command) #
# ${-19} - substitute arguments 0-19 here #
# ${2-} - substitue all arguments from 2 until the end here #
# #
@
//doubt //dt //d
[0]/me looks with doubt
[1+]/me looks at ${1-} with doubt
@
//numusers //nu
[0]%IThere are %u users online.
[0]%IThere are %g games online.
[0]%IThere are %c channels online.
[1+]%EThat command does not take any arguments.
@
//askban //ab
[2+]/w $1 Please ban ${2-}.
@
//statsme //sm
[0]/stats %u
@
//pvpgn
[*]/announce PVPGN rulez!
# #
##############################################################################

12
pvpgn/conf/bnban.conf Normal file
View file

@ -0,0 +1,12 @@
# an example wildcard-match entry
#127.*.*.*
# an example exact-match entry
#127.0.0.1
# an example range-match entry
#127.0.0.79-127.0.0.84
# two example network entries
#127.0.0.0/8
#127.0.0.0/255.0.0.0

605
pvpgn/conf/bnetd.conf.in Normal file
View file

@ -0,0 +1,605 @@
##############################################################################
# bnetd.conf - Configuration file for the Unix Battle.net daemon #
#----------------------------------------------------------------------------#
# #
# This file is an example configuration and may require modification to #
# suit your needs or your site. Blank lines and lines starting with a "#" #
# are ignored. Use quotes around values that contain spaces. #
# #
##############################################################################
##############################################################################
# Privileges to work under #
# Use either the names from the corresponding files or numerical id's (with #
# a leading '#'). If none are specified, the userid will not be changed. #
#----------------------------------------------------------------------------#
#effective_user = games
#effective_group = games
# effective_user = #12
# effective_group = #20
# #
##############################################################################
##############################################################################
# Storage section #
# storage_path will tell pvpgn how and where from/to to read/write accounts #
# right now it supports 2 "drivers" : file and sql #
# #
# Syntax: #
# * for plain file driver: #
# storage_path = file:mode=plain;dir=<path_to_user_files>;clan=<path_to_clan_files>;default=/path/to/default/account #
# * for cdb file driver: #
# storage_path = file:mode=cdb;dir=<path_to_cdb_files>;clan=<path_to_clan_files>;default=/path/to/default/account #
# * for sql/sql2 driver: #
# storage_path = sql:variable=value;...;default=0 (0 is the default uid) #
# or storage_path = sql2:variable=value;...;default=0 (0 is the default uid) #
# #
# Variables for sql/sql2 can be: #
# - "mode" : tells PVPGN the sql mode you will use (mysql/pgsql/etc..) #
# - "host" : the database host #
# - "port" : the TCP/IP port if needed #
# - "socket" : the UNIX local socket if needed #
# - "name" : database name #
# - "user" : db username #
# - "pass" : db password #
# - "default" : specify the UID to use for the default account data #
# - "prefix" : prefix to use for all pvpgn tables (default "") #
# #
# Examples: #
# storage_path = file:mode=plain;dir=/usr/local/var/users;clan=/usr/local/var/clans;team=/usr/local/var/teams;default=/usr/local/etc/bnetd_default_user.plain
# storage_path = file:mode=cdb;dir=/usr/local/var/userscdb;clan=/usr/local/var/clans;team=/usr/local/var/teams;default=/usr/local/etc/bnetd_default_user.cdb
# storage_path = sql:mode=mysql;host=127.0.0.1;name=PVPGN;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn_
# storage_path = sql:mode=pgsql;host=127.0.0.1;name=pvpgn;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn_
# storage_path = sql:mode=sqlite3;name=/usr/local/var/users.db;default=0;prefix=pvpgn_
# storage_path = sql:mode=odbc;name=PVPGN;prefix=pvpgn_
#
# WARNING!! you MUST change "DBlayoutfile" bellow configuration directive to
# sql_DB_layout2.conf to be able to use "sql2" !!!
# storage_path = sql2:mode=mysql;host=127.0.0.1;name=PVPGN;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn2_
# storage_path = sql2:mode=pgsql;host=127.0.0.1;name=pvpgn;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn2_
# storage_path = sql2:mode=sqlite3;name=/usr/local/var/users.db;default=0;prefix=pvpgn2_
# storage_path = sql2:mode=odbc;name=PVPGN;prefix=pvpgn2_
#----------------------------------------------------------------------------#
storage_path = file:mode=plain;dir=/usr/local/var/users;clan=/usr/local/var/clans;team=/usr/local/var/teams;default=/usr/local/etc/bnetd_default_user.plain
# #
##############################################################################
##############################################################################
# File section #
# The pidfile can be set to "" to turn it off. #
# Use absolute paths in these lines to avoid problems! #
#----------------------------------------------------------------------------#
filedir = /usr/local/var/files
reportdir = /usr/local/var/reports
chanlogdir = /usr/local/var/chanlogs
motdfile = /usr/local/etc/bnmotd.txt
issuefile = /usr/local/etc/bnissue.txt
channelfile = /usr/local/etc/channel.conf
newsfile = /usr/local/etc/news.txt
adfile = /usr/local/etc/ad.conf
topicfile = /usr/local/etc/topics.conf
ipbanfile = /usr/local/etc/bnban.conf
helpfile = /usr/local/etc/bnhelp.conf
mpqfile = /usr/local/etc/autoupdate.conf
logfile = /usr/local/var/bnetd.log
realmfile = /usr/local/etc/realm.conf
maildir = /usr/local/var/bnmail
versioncheck_file = /usr/local/etc/versioncheck.conf
mapsfile = /usr/local/etc/bnmaps.conf
xplevelfile = /usr/local/etc/bnxplevel.conf
xpcalcfile = /usr/local/etc/bnxpcalc.conf
#pidfile = /usr/local/var/bnetd.pid
ladderdir = /usr/local/var/ladders
command_groups_file = /usr/local/etc/command_groups.conf
tournament_file = /usr/local/etc/tournament.conf
statusdir = /usr/local/var/status
aliasfile = /usr/local/etc/bnalias.conf
anongame_infos_file = /usr/local/etc/anongame_infos.conf
DBlayoutfile = /usr/local/etc/sql_DB_layout.conf
supportfile = /usr/local/etc/supportfile.conf
transfile = /usr/local/etc/address_translation.conf
fortunecmd = /usr/games/fortune
# #
##############################################################################
##############################################################################
# Message logs #
#----------------------------------------------------------------------------#
# Multiple log levels can be defined by connecting them with a comma (,)
# Available loglevels are:
# none
# trace
# debug
# info
# warn
# error
# fatal
loglevels = fatal,error,warn,info,debug,trace
#loglevels = fatal,error,warn,info
# #
##############################################################################
##############################################################################
# D2CS realm server settings #
#----------------------------------------------------------------------------#
# Version of D2CS server to connect with (set to zero to disable version check)
d2cs_version = 0
# Allow the D2CS server to change realm names?
allow_d2cs_setname = true
# #
##############################################################################
##############################################################################
# Downloadable files #
#----------------------------------------------------------------------------#
# These filenames are reported directly to the client and are relative to
# the "filedir" directory specified above.
iconfile = "icons.bni"
war3_iconfile = "icons-WAR3.bni"
star_iconfile = "icons_STAR.bni"
tosfile = "tos.txt"
# #
##############################################################################
##############################################################################
# Client verification and upgrades #
#----------------------------------------------------------------------------#
# This option lists the client types allowed to connect (only valid for
# the bnet protocol). The list is a comma separated list of any of the
# following elements:
# all : all client types allowed (default)
# chat : client type "CHAT" allowed (used by some bot software)
# dshr : client type Diablo 1 Shareware
# drtl : client type Diablo 1 (Retail)
# sshr : client type Starcraft Shareware
# star : client type Starcraft
# sexp : client type Starcraft Broodwar
# w2bn : client type Warcraft II Battle.Net Edition
# d2dv : client type Diablo 2
# d2xp : client type Diablo 2 LOD
# war3 : client type Warcraft III (Reign Of Chaos)
# w3xp : client type Warcraft III Frozen Throne
#
# Example: allowed_clients = war3,w3xp
allowed_clients = all
# If this option is enabled, the verification step is skipped if possible.
# This only works with clients < 109. It is useful because you no longer
# need any of the IX86AUTH?.MPQ and PMACAUTH?.MPQ files. Note that it will
# also skip over all the autoupdate checks effectively disabling it.
#
# If you disable this you must have one or more of the MPQ files. Otherwise
# clients will hang when they first connect because they are attempting to
# download them. The versioncheck can only be skipped for clients older
# than 109. Starting with version 109 the clients will always do version
# checking since they do not function properly if the server does not
# request it.
skip_versioncheck = false
# If you enable the version checks but want to allow clients that don't pass
# the checksum test then enable this.
allow_bad_version = false
# If you enable the version checks but want to allow clients that aren't
# listed in the versioncheck configuration file then enable this. Unless
# you have a very complete file or are very paranoid about cheaters this
# is a good idea.
allow_unknown_version = true
# This defines how the exeinfo field in the versioncheck file is being
# checked. You can choose between no match at all [none] (default),
# exact match [exact], exact case-sensitive match [exactcase], dumb wildcard
# match [wildcard], and parsed value comparison [parse].
# NOTE: [parse] needs the mktime() function and might therefore not work on
# every system.
version_exeinfo_match = none
# If you have choosen [parse] above, this is the tolerance with which
# the time can differ. The value must be given in seconds. If it's 0 this
# check is disabled.
version_exeinfo_maxdiff = 0
# #
##############################################################################
##############################################################################
# Time values #
#----------------------------------------------------------------------------#
# Time in seconds between account file updates, 0 means wait forever.
usersync = 300
# Number of seconds of inactivity before file is unloaded from memory.
# (only checked during account file updates)
userflush = 1200
# Number of users checked for updates at once. Higher values make sense if you
# either have very fast hardware or you don't have many number of accounts.
# Lower values make sense if you have very high CPU usage on the system you run
# the server (dont make it too low or your system will save accounts continously).
# Modify this value ONLY if you know what you are doing!!
userstep = 100
# How often to send user latency tests in seconds.
latency = 600
# How often to send null or keepalive packets in seconds.
nullmsg = 120
# Amount of time to delay shutting down server in seconds.
shutdown_delay = 300
# Amount of time delay period is decremented by either a SIGTERM or SIGINT
# (control-c) signal in seconds.
shutdown_decr = 60
# How often should bans be checked for expiration? (in seconds)
#ipban_check_int = 30
# #
##############################################################################
##############################################################################
# Policy options #
#----------------------------------------------------------------------------#
# If you don't want people to be able to create new accounts, set this to
# false.
new_accounts = true
# Set this to the maximum number of accounts you want to allow to be
# created on your server. A value of 0 means infinite and is the default.
#max_accounts = 0
# If someone attempts to log in more than once, should it kick off the old
# login, or deny the new one?
kick_old_login = true
#kick_old_login = false
# With no passwords, this is bad to have enabled --NonReal
# load_new_account option has been eliminated and the functionality now is
# always active in PvPGN
# If a user is creating a new channel, should it be added automatically, or
# prompt them first?
ask_new_channel = true
# Should a game report be written for every game played or just ladder
# games?
#report_all_games = false
report_all_games = true
# Should Diablo I/II reports be written? There are no winners/losers.
report_diablo_games = false
# Should games with passwords be hidden on the game list?
hide_pass_games = true
# Should games already started be hidden on the game list? (for heavily
# loaded servers)
hide_started_games = true
# Should non-permanent channels hidden on the channel list?
hide_temp_channels = true
# Should the extended /-commands be avaliable? (of course!)
extra_commands = true
# Should any and all disconnects to be counted as losses?
# (Turning this on will override the user's choice in ladder games!)
disc_is_loss = false
# List additional game types to be counted as ladder games
# Curently allowed types: topvbot, melee, ffa, oneonone
# Example: ladder_games = "topvbot,oneonone"
ladder_games = "none"
# If additional game types are configured (see above) to be counted as ladder
# games then this setting configures a game name prefix to make only games
# which match this game name prefix be counted as ladder. This allows to
# still have normal games of the game types configured with "ladder_games"
# directive. However if this setting is commented or "" then ALL games
# which match the game types configured with "ladder_games" are to be
# considered as ladder games. The prefix checking is CASE SENSITIVE!
# Example: ladder_prefix = "ldr_"
ladder_prefix = ""
# Should all users be able to use the /con and /connections commands?
enable_conn_all = true
# Should client IP addresses (from /con, /games, /gameinfo, /netinfo)
# be hidden from non-admins?
hide_addr = false
# Should private channel messages be logged to files in the chanlogdir
# directory? (see channels.list for public channels)
chanlog = false
# Do you want to use the channel quota feature?
quota = yes
# The following options deal with flood prevention.
#
# How many lines do you accept in quota_time seconds?
# (The default should allow 5 lines in 5 seconds,
# longer time periods allow "bursts" of traffic before the quota is full.)
quota_lines = 5 # must be between 1 and 100 lines
quota_time = 5 # must be between 1 and 60 seconds
# "virtual wrapping", so long lines count as multiple lines
quota_wrapline = 40 # must be between 1 to 256 chars
# absolute maximum characters allowed in a line
quota_maxline = 200 # must be between 1 to 256 chars
#
# How many lines do you accept in quota_time seconds before user is
# disconnected?
# (According to Jung-woo, Dobae is a Korean term for flooding the game server...
# it originally meant "to paint the wallpaper on a new or refurbished house").
# If it less than or equal to quota_lines, there is no warning before
# disconnection so don't set this too low.
quota_dobae = 10 # must be between 1 and 100 lines
# Mail support
mail_support = true
mail_quota = 5
# Channel logging message
log_notice = "*** Please note this channel is logged! ***"
# Ban on repeated password fails against bruteforce password thieves
# Fails required to get ip banned (0 to disable ban on password fail)
passfail_count = 0
# Password fail IP ban duration (in seconds)
passfail_bantime = 300
# Max users limit in private channels (0 = unlimited)
maxusers_per_channel = 0
# #
##############################################################################
##############################################################################
# Account configuration #
#----------------------------------------------------------------------------#
# Should account files be named by the account number or the player name?
savebyname = true
# Save the account data on logoff
sync_on_logoff = false
# How man rows should the account lookup hash table have? Servers with
# more accounts should use a larger table for better performance.
hashtable_size = 61
# Per default, only alphanumerical symbols are allowed in account names
# with this variable you can add some extra symbols to be allowed
# but be warned - that some of them might cause trouble - at least with
# savebyname=true (some symbols are forbidden in filenames or might cause
# you real trouble - plz neither allow wildcard symbols like '*' or '?'.
# Path delimiters like '/' or '\' are hardcoded filtered and can't be allowed.
# Also note that allowing the '.' might cause u some headache on win32 systems.
# You have been warned - the rest is up to you.
# default setting is "-_[]" as it was previous versions
account_allowed_symbols = "-_[]"
# maximum number of friends a user can add to there friends list
# default setting is 20
max_friends = 20
# #
##############################################################################
##############################################################################
# Tracking server info #
#----------------------------------------------------------------------------#
# Set track=0 to disable tracking. Any other number will set number
# of seconds between sending tracking packets. This is OFF by default.
#track = 0
track = 60
# 10 minutes
# Tracking server(s)
# Use a comma delimited list of hostnames with optional UDP port numbers
# after colons. (port 6114 is the default for the newer tracking protocol)
#trackaddrs = "track.bnetd.org,localhost:9999"
#trackaddrs = "track.pvpgn.org"
# Change these to match your system, for example:
location = "unknown"
description = "unknown"
url = "unknown"
contact_name = "a PvPGN user"
contact_email = "unknown"
# #
##############################################################################
##############################################################################
# Server network info #
#----------------------------------------------------------------------------#
# Servername by which the server identifies itself (default: "PvPGN Realm")
#servername = "PvPGN Realm"
# Set this to the maximum number of concurrent connections allowed on
# this server (minimum 32). This limit sets a general server connection
# limit, NOT the concurrent user limit (for that see next option)
max_connections = 1000
# Maximum number of concurrent users (0 means unlimited).
max_concurrent_logins = 0
# Set this option to true to allow TCP to detect and close stale
# connections.
use_keepalive = false
# Limit maximum number of connections per IP (0 = unlimited)
# this feature is new, so no recommended value so far
max_conns_per_IP = 0
# This is a comma delimited list of hostnames that the server should
# listen on. It might be useful to make an internal-only server on a
# gateway machine for example. If the list is not set or if it has a
# entry with no host component, the server will bind to that port on all
# interfaces.
#servaddrs = ":9999"
#servaddrs = "myinternalname.some.com,localhost"
servaddrs = ":" # default interface (all) and default port (6112)
# Don't change these unless you really need to! You will need to run a proxy
# or modify the clients. Also note that these will not change when simply
# sending a HUP signal to the server; they are only read on startup.
# This is the port the server send the UDP test packets to by default.
# Setting it to zero makes the server use the same port as the TCP connection
# comes from. Newer clients can override this setting on a per connection
# basis.
#udptest_port = 6112
# W3 Play Game router address. Just put your server address in here
# or use 0.0.0.0:6200 for server to bind to all interfaces,
# but make sure you set up w3trans if you do.
w3routeaddr = "0.0.0.0:6200"
# w3routeshow has been removed.
# see the address_translation.conf for translating the w3route ip for local networks
# initkill_timer sets up a periodic timer on init/defer class connections
# this should detect and clean up stale connections to your server
initkill_timer = 120
# #
##############################################################################
##############################################################################
# Westwood Online (WOL) configuration #
#----------------------------------------------------------------------------#
# NOTE: WOL support is still experimental!
# This specifies the addresses where IRC connections should be accepted. See
# the description of servaddrs for formatting information. Leave this field
# blank if you do not want to accept IRC connections. If the port is not
# specifed then 4005 will be used. Note: DO NOT SET THE PORT TO ANYTHING OTHER
# THEN 4005, WOL WILL FAIL IF YOU DO!
#woladdrs = ":4005"
# Just leave these as default (unless you know the timezone, longitiude and latitude
# of your server
woltimezone = "-8"
wollongitude = "36.1083"
wollatitude = "-115.0582"
# #
##############################################################################
##############################################################################
# Internet Relay Chat (IRC) configuration #
#----------------------------------------------------------------------------#
# NOTE: IRC support is still experimental!
# This specifies the addresses where IRC connections should be accepted. See
# the description of servaddrs for formatting information. Leave this field
# blank if you do not want to accept IRC connections. If the port is not
# specified then 6667 will be used.
#ircaddrs = ":6667"
# This is the IRC network name. If this is not specified then the default of
# "PvPGN" will be used.
#irc_network_name = "PvPGN"
# This is the hostname used for IRC connections. Set this to your
# hostname, if the automatic detection doesn't correctly.
#hostname = "none"
# Set this to the desired IRC connection timeout in seconds.
#irc_latency = 180
# #
##############################################################################
##############################################################################
# Telnet configuration #
#----------------------------------------------------------------------------#
# This specifies the addresses where telnet connections should be accepted.
# See the description of servaddrs for formatting information. Leave this
# field # blank if you do not want to accept telnet connections. If the port
# is not specifed then 23 will be used.
#telnetaddrs = ":23"
###############################################################################
# war3 ladder textual output #
#-----------------------------------------------------------------------------#
# this is for all the guys, that want Warcraft 3 ladder, but don't want their
# server to run with MySQL support.
# For each ladder (solo, team, ffa, at) a corresponing file is created,
# so it's easy to build your ladder pages with them
# the following value determines, at which rate, these files are created
# set to 0 if you don't want or need these files
war3_ladder_update_secs = 300
# jfro's latest ladder is based on XML... so we can switch to XML output of ladder
# on demand
XML_output_ladder = false
###############################################################################
# server status textual output #
#-----------------------------------------------------------------------------#
# This is for writing status of the server in an attempt to see number of user
# on line actually, and games/chans.
# This is store in file var\status\warcraft3.dat as a *.ini format.
# Shouldn't be so hard in php to create dynamic website using this content.
# the following value determines, at which rate, these files are created
# set to 0 if you don't want or need these files
output_update_secs = 60
# jfro's latest ladder is based on XML... so we can switch to XML output of ladder
# on demand. Maybe we should set update interval bigger cause XML output version
# is much more verbose than the standard output
XML_status_output = false
###############################################################################
# clan settings #
#-----------------------------------------------------------------------------#
# Time in hours for a new member of clan to be a newer(Peon icon, cannot promote to Grunt)
# default value 168(7 days). If set to 0, all new members could be promote in no time
clan_newer_time = 0
# max members count allowed in a clan, set between 10&255, default 50.
clan_max_members = 50
# Default clan channel status when create a clan, 1 for private, 0 for public
clan_channel_default_private = 0

589
pvpgn/conf/bnetd.conf.win32 Normal file
View file

@ -0,0 +1,589 @@
##############################################################################
# bnetd.conf - Configuration file for the Unix Battle.net daemon #
#----------------------------------------------------------------------------#
# #
# This file is an example configuration and may require modification to #
# suit your needs or your site. Blank lines and lines starting with a "#" #
# are ignored. Use quotes around values that contain spaces. #
# #
##############################################################################
##############################################################################
# Storage section #
# storage_path will tell pvpgn how and where from/to to read/write accounts #
# right now it supports 2 "drivers" : file and sql #
# #
# Syntax: #
# * for plain file driver: #
# storage_path = file:mode=plain;dir=<path_to_user_files>;clan=<path_to_clan_files>;team=<path_to_team_files>;default=/path/to/default/account #
# * for cdb file driver: #
# storage_path = file:mode=cdb;dir=<path_to_cdb_files>;clan=<path_to_clan_files>;team=<path_to_team_files>;default=/path/to/default/account #
# * for sql/sql2 driver: #
# storage_path = sql:variable=value;...;default=0 (0 is the default uid) #
# or storage_path = sql2:variable=value;...;default=0 (0 is the default uid) #
# #
# Variables for sql/sql2 can be: #
# - "mode" : tells PVPGN the sql mode you will use (mysql/pgsql/etc..) #
# - "host" : the database host #
# - "port" : the TCP/IP port if needed #
# - "socket" : the UNIX local socket if needed #
# - "name" : database name #
# - "user" : db username #
# - "pass" : db password #
# - "default" : specify the UID to use for the default account data #
# - "prefix" : prefix to use for all pvpgn tables (default "") #
# #
# Examples: #
# storage_path = file:mode=plain;dir=var\users;clan=var\clans;team=var\teams\;default=conf\bnetd_default_user.plain
# storage_path = file:mode=cdb;dir=var\userscdb;clan=var\clans;team=var\teams\;default=conf\bnetd_default_user.cdb
# storage_path = sql:mode=mysql;host=127.0.0.1;name=PVPGN;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn_
# storage_path = sql:mode=pgsql;host=127.0.0.1;name=pvpgn;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn_
# storage_path = sql:mode=sqlite3;name=var\users.db;default=0;prefix=pvpgn_
# storage_path = sql:mode=odbc;name=PVPGN;prefix=pvpgn_
# storage_path = sql2:mode=mysql;host=127.0.0.1;name=PVPGN;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn_
# storage_path = sql2:mode=pgsql;host=127.0.0.1;name=pvpgn;user=pvpgn;pass=pvpgnrocks;default=0;prefix=pvpgn_
# storage_path = sql2:mode=sqlite3;name=var\users.db;default=0;prefix=pvpgn_
# storage_path = sql2:mode=odbc;name=PVPGN;prefix=pvpgn_
#----------------------------------------------------------------------------#
storage_path = file:mode=plain;dir=var\users;clan=var\clans;team=var\teams;default=conf\bnetd_default_user.plain
# #
##############################################################################
##############################################################################
# File section #
# The pidfile can be set to "" to turn it off. #
# Use absolute paths in these lines to avoid problems! #
#----------------------------------------------------------------------------#
filedir = files
reportdir = var\reports
chanlogdir = var\chanlogs
motdfile = conf\bnmotd.txt
issuefile = conf\bnissue.txt
channelfile = conf\channel.conf
newsfile = conf\news.txt
adfile = conf\ad.conf
topicfile = conf\topics.conf
ipbanfile = conf\bnban.conf
helpfile = conf\bnhelp.conf
transfile = conf\address_translation.conf
mpqfile = conf\autoupdate.conf
logfile = var\bnetd.log
realmfile = conf\realm.conf
versioncheck_file = conf\versioncheck.conf
mapsfile = conf\bnmaps.conf
xplevelfile = conf\bnxplevel.conf
xpcalcfile = conf\bnxpcalc.conf
#pidfile = var\bnetd.pid
ladderdir = var\ladders
command_groups_file = conf\command_groups.conf
statusdir = var\status
aliasfile = conf\bnalias.conf
anongame_infos_file = conf\anongame_infos.conf
DBlayoutfile = conf\sql_DB_layout.conf
supportfile = conf\supportfile.conf
fortunecmd = bin\fortune.exe
# #
##############################################################################
##############################################################################
# Message logs #
#----------------------------------------------------------------------------#
# Multiple log levels can be defined by connecting them with a comma (,)
# Available loglevels are:
# none
# trace
# debug
# info
# warn
# error
# fatal
#loglevels = fatal,error,warn,info,debug,trace
loglevels = fatal,error
# #
##############################################################################
##############################################################################
# D2CS realm server settings #
#----------------------------------------------------------------------------#
# Version of D2CS server to connect with (set to zero to disable version check)
d2cs_version = 0
# Allow the D2CS server to change realm names?
allow_d2cs_setname = true
# #
##############################################################################
##############################################################################
# Downloadable files #
#----------------------------------------------------------------------------#
# These filenames are reported directly to the client and are relative to
# the "filedir" directory specified above.
iconfile = "icons.bni"
war3_iconfile = "icons-WAR3.bni"
star_iconfile = "icons_STAR.bni"
tosfile = "tos.txt"
# #
##############################################################################
##############################################################################
# Client verification and upgrades #
#----------------------------------------------------------------------------#
# This option lists the client types allowed to connect (only valid for
# the bnet protocol). The list is a comma separated list of any of the
# following elements:
# all : all client types allowed (default)
# chat : client type "CHAT" allowed (used by some bot software)
# dshr : client type Diablo 1 Shareware
# drtl : client type Diablo 1 (Retail)
# sshr : client type Starcraft Shareware
# star : client type Starcraft
# sexp : client type Starcraft Broodwar
# w2bn : client type Warcraft II Battle.Net Edition
# d2dv : client type Diablo 2
# d2xp : client type Diablo 2 LOD
# war3 : client type Warcraft III (Reign Of Chaos)
# w3xp : client type Warcraft III Frozen Throne
#
# Example: allowed_clients = war3,w3xp
allowed_clients = all
# If this option is enabled, the verification step is skipped if possible.
# This only works with clients < 109. It is useful because you no longer
# need any of the IX86AUTH?.MPQ and PMACAUTH?.MPQ files. Note that it will
# also skip over all the autoupdate checks effectively disabling it.
#
# If you disable this you must have one or more of the MPQ files. Otherwise
# clients will hang when they first connect because they are attempting to
# download them. The versioncheck can only be skipped for clients older
# than 109. Starting with version 109 the clients will always do version
# checking since they do not function properly if the server does not
# request it.
skip_versioncheck = false
# If you enable the version checks but want to allow clients that don't pass
# the checksum test then enable this.
allow_bad_version = false
# If you enable the version checks but want to allow clients that aren't
# listed in the versioncheck configuration file then enable this. Unless
# you have a very complete file or are very paranoid about cheaters this
# is a good idea.
allow_unknown_version = true
# This defines how the exeinfo field in the versioncheck file is being
# checked. You can choose between no match at all [none] (default),
# exact match [exact], exact case-sensitive match [exactcase], dumb wildcard
# match [wildcard], and parsed value comparison [parse].
# NOTE: [parse] needs the mktime() function and might therefore not work on
# every system.
version_exeinfo_match = none
# If you have choosen [parse] above, this is the tolerance with which
# the time can differ. The value must be given in seconds. If it's 0 this
# check is disabled.
version_exeinfo_maxdiff = 0
# #
##############################################################################
##############################################################################
# Time values #
#----------------------------------------------------------------------------#
# Time in seconds between account file updates, 0 means wait forever.
usersync = 300
# Number of seconds of inactivity before file is unloaded from memory.
# (only checked during account file updates)
userflush = 1200
# Number of users checked for updates at once. Higher values make sense if you
# either have very fast hardware or you don't have many number of accounts.
# Lower values make sense if you have very high CPU usage on the system you run
# the server (dont make it too low or your system will save accounts continously).
# Modify this value ONLY if you know what you are doing!!
userstep = 100
# How often to send user latency tests in seconds.
latency = 600
# How often to send null or keepalive packets in seconds.
nullmsg = 120
# Amount of time to delay shutting down server in seconds.
shutdown_delay = 300
# Amount of time delay period is decremented by either a SIGTERM or SIGINT
# (control-c) signal in seconds.
shutdown_decr = 60
# How often should bans be checked for expiration? (in seconds)
#ipban_check_int = 30
# #
##############################################################################
##############################################################################
# Policy options #
#----------------------------------------------------------------------------#
# If you don't want people to be able to create new accounts, set this to
# false.
new_accounts = true
# Set this to the maximum number of accounts you want to allow to be
# created on your server. A value of 0 means infinite and is the default.
#max_accounts = 0
# If someone attempts to log in more than once, should it kick off the old
# login, or deny the new one?
kick_old_login = true
#kick_old_login = false
# With no passwords, this is bad to have enabled --NonReal
# load_new_account option has been eliminated and the functionality now is
# always active in PvPGN
# If a user is creating a new channel, should it be added automatically, or
# prompt them first?
ask_new_channel = true
# Should a game report be written for every game played or just ladder
# games?
#report_all_games = false
report_all_games = true
# Should Diablo I/II reports be written? There are no winners/losers.
report_diablo_games = false
# Should games with passwords be hidden on the game list?
hide_pass_games = true
# Should games already started be hidden on the game list? (for heavily
# loaded servers)
hide_started_games = true
# Should non-permanent channels hidden on the channel list?
hide_temp_channels = true
# Should the extended /-commands be avaliable? (of course!)
extra_commands = true
# Should any and all disconnects to be counted as losses?
# (Turning this on will override the user's choice in ladder games!)
disc_is_loss = false
# List additional game types to be counted as ladder games
# Curently allowed types: topvbot, melee, ffa, oneonone
# Example: ladder_games = "topvbot,oneonone"
ladder_games = "none"
# If additional game types are configured (see above) to be counted as ladder
# games then this setting configures a game name prefix to make only games
# which match this game name prefix be counted as ladder. This allows to
# still have normal games of the game types configured with "ladder_games"
# directive. However if this setting is commented or "" then ALL games
# which match the game types configured with "ladder_games" are to be
# considered as ladder games. The prefix checking is CASE SENSITIVE!
# Example: ladder_prefix = "ldr_"
ladder_prefix = ""
# Should all users be able to use the /con and /connections commands?
enable_conn_all = true
# Should client IP addresses (from /con, /games, /gameinfo, /netinfo)
# be hidden from non-admins?
hide_addr = false
# Should private channel messages be logged to files in the chanlogdir
# directory? (see channels.list for public channels)
chanlog = false
# Do you want to use the channel quota feature?
quota = yes
# The following options deal with flood prevention.
#
# How many lines do you accept in quota_time seconds?
# (The default should allow 5 lines in 5 seconds,
# longer time periods allow "bursts" of traffic before the quota is full.)
quota_lines = 5 # must be between 1 and 100 lines
quota_time = 5 # must be between 1 and 60 seconds
# "virtual wrapping", so long lines count as multiple lines
quota_wrapline = 40 # must be between 1 to 256 chars
# absolute maximum characters allowed in a line
quota_maxline = 200 # must be between 1 to 256 chars
#
# How many lines do you accept in quota_time seconds before user is
# disconnected?
# (According to Jung-woo, Dobae is a Korean term for flooding the game server...
# it originally meant "to paint the wallpaper on a new or refurbished house").
# If it less than or equal to quota_lines, there is no warning before
# disconnection so don't set this too low.
quota_dobae = 10 # must be between 1 and 100 lines
# Mail support
mail_support = true
mail_quota = 5
# Channel logging message
log_notice = "*** Please note this channel is logged! ***"
# Ban on repeated password fails against bruteforce password thieves
# Fails required to get ip banned (0 to disable ban on password fail)
passfail_count = 0
# Password fail IP ban duration (in seconds)
passfail_bantime = 300
# Max users limit in private channels (0 = unlimited)
maxusers_per_channel = 0
# #
##############################################################################
##############################################################################
# Account configuration #
#----------------------------------------------------------------------------#
# Should account files be named by the account number or the player name?
savebyname = true
# Save the account data on logoff
sync_on_logoff = false
# How man rows should the account lookup hash table have? Servers with
# more accounts should use a larger table for better performance.
hashtable_size = 61
# Per default, only alphanumerical symbols are allowed in account names
# with this variable you can add some extra symbols to be allowed
# but be warned - that some of them might cause trouble - at least with
# savebyname=true (some symbols are forbidden in filenames or might cause
# you real trouble - plz neither allow wildcard symbols like '*' or '?'.
# Path delimiters like '/' or '\' are hardcoded filtered and can't be allowed.
# Also note that allowing the '.' might cause u some headache on win32 systems.
# You have been warned - the rest is up to you.
# default setting is "-_[]" as it was previous versions
account_allowed_symbols = "-_[]"
# maximum number of friends a user can add to there friends list
# default setting is 20
max_friends = 20
# #
##############################################################################
##############################################################################
# Tracking server info #
#----------------------------------------------------------------------------#
# Set track=0 to disable tracking. Any other number will set number
# of seconds between sending tracking packets. This is OFF by default.
#track = 0
track = 60
# 10 minutes
# Tracking server(s)
# Use a comma delimited list of hostnames with optional UDP port numbers
# after colons. (port 6114 is the default for the newer tracking protocol)
#trackaddrs = "track.bnetd.org,localhost:9999"
#trackaddrs = "track.pvpgn.org"
# Change these to match your system, for example:
location = "unknown"
description = "unknown"
url = "unknown"
contact_name = "a PvPGN user"
contact_email = "unknown"
# #
##############################################################################
##############################################################################
# Server network info #
#----------------------------------------------------------------------------#
# Servername by which the server identifies itself (default: "PvPGN Realm")
#servername = "PvPGN Realm"
# Set this to the maximum number of concurrent connections allowed on
# this server (minimum 32). This limit sets a general server connection
# limit, NOT the concurrent user limit (for that see next option)
max_connections = 1000
# Maximum number of concurrent users (0 means unlimited).
max_concurrent_logins = 0
# Set this option to true to allow TCP to detect and close stale
# connections.
use_keepalive = false
# Limit maximum number of connections per IP (0 = unlimited)
# this feature is new, so no recommended value so far
max_conns_per_IP = 0
# This is a comma delimited list of hostnames that the server should
# listen on. It might be useful to make an internal-only server on a
# gateway machine for example. If the list is not set or if it has a
# entry with no host component, the server will bind to that port on all
# interfaces.
#servaddrs = ":9999"
#servaddrs = "myinternalname.some.com,localhost"
servaddrs = ":" # default interface (all) and default port (6112)
# Don't change these unless you really need to! You will need to run a proxy
# or modify the clients. Also note that these will not change when simply
# sending a HUP signal to the server; they are only read on startup.
# This is the port the server send the UDP test packets to by default.
# Setting it to zero makes the server use the same port as the TCP connection
# comes from. Newer clients can override this setting on a per connection
# basis.
#udptest_port = 6112
# W3 Play Game router address. Just put your server address in here
# or use 0.0.0.0:6200 for server to bind to all interfaces,
# but make sure you set up w3trans if you do.
w3routeaddr = "0.0.0.0:6200"
# w3routeshow has been removed.
# see the address_translation.conf for translating the w3route ip for local networks
# initkill_timer sets up a periodic timer on init/defer class connections
# this should detect and clean up stale connections to your server
initkill_timer = 120
# #
##############################################################################
##############################################################################
# Westwood Online (WOL) configuration #
#----------------------------------------------------------------------------#
# NOTE: WOL support is still experimental!
# This specifies the addresses where IRC connections should be accepted. See
# the description of servaddrs for formatting information. Leave this field
# blank if you do not want to accept IRC connections. If the port is not
# specifed then 4005 will be used. Note: DO NOT SET THE PORT TO ANYTHING OTHER
# THEN 4005, WOL WILL FAIL IF YOU DO!
#woladdrs = ":4005"
# Just leave these as default (unless you know the timezone, longitiude and latitude
# of your server
woltimezone = "-8"
wollongitude = "36.1083"
wollatitude = "-115.0582"
# #
##############################################################################
##############################################################################
# Internet Relay Chat (IRC) configuration #
#----------------------------------------------------------------------------#
# NOTE: IRC support is still experimental!
# This specifies the addresses where IRC connections should be accepted. See
# the description of servaddrs for formatting information. Leave this field
# blank if you do not want to accept IRC connections. If the port is not
# specifed then 6667 will be used.
#ircaddrs = ":6667"
# This is the IRC network name. If this is not specified then the default of
# "PvPGN" will be used.
#irc_network_name = "PvPGN"
# This is the hostname used for IRC connections. Set this to your
# hostname, if the automatic detection doesn't correctly.
#hostname = "none"
# Set this to the desired IRC connection timeout in seconds.
#irc_latency = 180
# #
##############################################################################
##############################################################################
# Telnet configuration #
#----------------------------------------------------------------------------#
# This specifies the addresses where telnet connections should be accepted.
# See the description of servaddrs for formatting information. Leave this
# field # blank if you do not want to accept telnet connections. If the port
# is not specifed then 23 will be used.
#telnetaddrs = ":23"
# #
##############################################################################
###############################################################################
# war3 ladder textual output #
#-----------------------------------------------------------------------------#
# this is for all the guys, that want Warcraft 3 ladder, but don't want their
# server to run with MySQL support.
# For each ladder (solo, team, ffa, at) a corresponing file is created,
# so it's easy to build your ladder pages with them
# the following value determines, at which rate, these files are created
# set to 0 if you don't want or need these files
war3_ladder_update_secs = 300
# jfro's latest ladder is based on XML... so we can switch to XML output of ladder
# on demand. Maybe we should set update interval bigger cause XML output version
# is much more verbose than the standard output
XML_output_ladder = false
###############################################################################
# server status textual output #
#-----------------------------------------------------------------------------#
# This is for writing status of the server in an attempt to see number of user
# on line actually, and games/chans.
# This is store in file var\status\warcraft3.dat as a *.ini format.
# Shouldn't be so hard in php to create dynamic website using this content.
# the following value determines, at which rate, these files are created
# set to 0 if you don't want or need these files
output_update_secs = 60
# jfro's latest ladder is based on XML... so we can switch to XML output of ladder
# on demand. Maybe we should set update interval bigger cause XML output version
# is much more verbose than the standard output
XML_status_output = false
###############################################################################
# clan settings #
#-----------------------------------------------------------------------------#
# Time in hours for a new member of clan to be a newer(Peon icon, cannot premote to Grunt)
# default value 168(7 days). If set to 0, all new members could be promote in no time
clan_newer_time = 0
# max members count allowed in a clan, set between 10&255, default 50.
clan_max_members = 50
# Default clan channel status when create a clan, 1 for private, 0 for public
clan_channel_default_private = 0

Binary file not shown.

View file

@ -0,0 +1,146 @@
##############################################################################
# bnetd_default_user - Default values for user accounts #
#----------------------------------------------------------------------------#
# #
# When a value is not stored in a player's account file, the value is taken #
# from this file instead. #
# #
##############################################################################
##############################################################################
# Game record section #
#----------------------------------------------------------------------------#
# Brood War stats
"Record\\SEXP\\0\\last game result"="NONE"
"Record\\SEXP\\0\\last game"="0"
"Record\\SEXP\\0\\disconnects"="0"
"Record\\SEXP\\0\\losses"="0"
"Record\\SEXP\\0\\wins"="0"
"Record\\SEXP\\1\\last game result"="NONE"
"Record\\SEXP\\1\\last game"="0"
"Record\\SEXP\\1\\high rank"="0"
"Record\\SEXP\\1\\rank"="0"
"Record\\SEXP\\1\\high rating"="0"
"Record\\SEXP\\1\\rating"="0"
"Record\\SEXP\\1\\disconnects"="0"
"Record\\SEXP\\1\\losses"="0"
"Record\\SEXP\\1\\wins"="0"
# Starcraft stats
"Record\\Star\\0\\last game result"="NONE"
"Record\\Star\\0\\last game"="0"
"Record\\Star\\0\\disconnects"="0"
"Record\\Star\\0\\losses"="0"
"Record\\Star\\0\\wins"="0"
"Record\\Star\\1\\last game result"="NONE"
"Record\\Star\\1\\last game"="0"
"Record\\Star\\1\\high rank"="0"
"Record\\Star\\1\\rank"="0"
"Record\\Star\\1\\high rating"="0"
"Record\\Star\\1\\rating"="0"
"Record\\Star\\1\\disconnects"="0"
"Record\\Star\\1\\losses"="0"
"Record\\Star\\1\\wins"="0"
# Starcraft Shareware stats
"Record\\SSHR\\0\\last game result"="NONE"
"Record\\SSHR\\0\\last game"="0"
"Record\\SSHR\\0\\disconnects"="0"
"Record\\SSHR\\0\\losses"="0"
"Record\\SSHR\\0\\wins"="0"
# Diablo Retail stats
"BNET\\Record\\DRTL\\0\\level"="0"
"BNET\\Record\\DRTL\\0\\class"="99"
"BNET\\Record\\DRTL\\0\\diablo kills"="0"
"BNET\\Record\\DRTL\\0\\strength"="0"
"BNET\\Record\\DRTL\\0\\magic"="0"
"BNET\\Record\\DRTL\\0\\dexterity"="0"
"BNET\\Record\\DRTL\\0\\vitality"="0"
"BNET\\Record\\DRTL\\0\\gold"="0"
# WarCraft II BNE stats
"Record\\W2BN\\0\\last game result"="NONE"
"Record\\W2BN\\0\\last game"="0"
"Record\\W2BN\\0\\disconnects"="0"
"Record\\W2BN\\0\\losses"="0"
"Record\\W2BN\\0\\wins"="0"
"Record\\W2BN\\1\\last game result"="NONE"
"Record\\W2BN\\1\\last game"="0"
"Record\\W2BN\\1\\high rank"="0"
"Record\\W2BN\\1\\rank"="0"
"Record\\W2BN\\1\\high rating"="0"
"Record\\W2BN\\1\\rating"="0"
"Record\\W2BN\\1\\disconnects"="0"
"Record\\W2BN\\1\\losses"="0"
"Record\\W2BN\\1\\wins"="0"
# FIXME: what is 2 for?
"Record\\W2BN\\3\\last game result"="NONE"
"Record\\W2BN\\3\\last game"="0"
"Record\\W2BN\\3\\high rank"="0"
"Record\\W2BN\\3\\rank"="0"
"Record\\W2BN\\3\\high rating"="0"
"Record\\W2BN\\3\\rating"="0"
"Record\\W2BN\\3\\disconnects"="0"
"Record\\W2BN\\3\\losses"="0"
"Record\\W2BN\\3\\wins"="0"
# #
##############################################################################
##############################################################################
# Default profile info #
#----------------------------------------------------------------------------#
# No good defaults for these :)
"profile\\description"=""
"profile\\location"=""
"profile\\age"=""
"profile\\sex"=""
# These 3 are ignored in the template, but they make it easier
# to use this file by hand to create a new account...
"BNET\\acct\\username"="bnetd_default_user"
"BNET\\acct\\userid"="0"
"BNET\\acct\\passhash1"="67452301efcdab8998badcfe10325476c3d2e1f0"
#"BNET\\fakeclienttag"="WAR3"
# #
##############################################################################
##############################################################################
# Authorization flags (comments show defaults) #
#----------------------------------------------------------------------------#
# "BNET\\auth\\admin"="false"
"BNET\\auth\\command_groups"="1"
# "BNET\\auth\\announce"="false"
# "BNET\\auth\\botlogin"="false"
# "BNET\\auth\\operator"="false"
"BNET\\auth\\normallogin"="true"
"BNET\\auth\\changepass"="true"
"BNET\\auth\\changeprofile"="true"
# "BNET\\auth\\createnormalgame"="true"
# "BNET\\auth\\joinnormalgame"="true"
# "BNET\\auth\\createladdergame"="true"
# "BNET\\auth\\joinladdergame"="true"
# "BNET\\auth\\lock"="false"
# Specific channels can be specified to override the
# channel defaults and the plain operator setting:
# (use the long channel name)
# "BNET\\auth\\operator\\example channel"="false"
"BNET\\auth\\botlogin"="true"
# "BNET\\auth\\operator"="false"
# Set to "false" to not check IP, set to IP
# (like: "192.168.1.2" to require an IP to login for warcraft3)
"BNET\\auth\\w3_require_ip"="false"
# #
##############################################################################

198
pvpgn/conf/bnhelp.conf Normal file
View file

@ -0,0 +1,198 @@
##############################################################################
# bnhelp - This Help File is used for describing the commands to the user #
#----------------------------------------------------------------------------#
# Entries are separated by a percent sign (%) at the beginning of the line. #
# The commands that correspond with the entry should follow the % on the #
# same line. #
# #
# You can enter comments by starting a line with #. Comments extend to the #
# end of the line. #
# #
%whois whereis where
whois <player> - looks up some basic information on a user, including their account number and their current location
%msg whisper m w
/msg, /whisper, /m, /w <player> <message> - sends a private message to a user online regardless of the channel they are in
%ignore squelch
/ignore, /squelch <player> - ignores any future messages from that user effectively muting that user to you
%unignore unsquelch
/unignore /unsquelch <player> - unignores a user so u can listen to him again
%away
/away [<message>] - displays a message that you are away from your keyboard whenever someone whispers to you or does a /whois command on you
%dnd
/dnd [<message>] - prevents ALL whispers from displaying to your screen
%who
/who <channel> - displays a list of all users in the given channel
%stats astat
/stats /astat [<player>] [<gametag>] - displays a player's game record
%status users
/status, /users - displays the number of users currently on this server
%time
/time - displays the current server time
%channel join
/channel /join <channel> - switches to a channel without having to use the channel join screen
%rejoin
/rejoin - join the channel you are already in
%me
/me <message> - displays emotion text, as in 'tN is rolling on the floor laughing'
%kick
/kick <player> - kicks a user out of the channel
%ban
/ban <player> - kicks a user out of the channel and prevents them from returning until the current operator steps down or leaves the channel
%unban
/unban <player> - allows a banned user to return to the channel
%whoami
/whoami - looks up some basic information on yourself, including your account number and your current location
%uptime
/uptime - show the amount of time the server has been running
%beep
/beep - enable audible notifications
%nobeep
/nobeep - disable audible notifications
%version
/version - shows the version of the server
%lusers
/lusers - shows list of banned players in this channel
%games
/games [<gametag>] - displays current game list
%channels chs
/channels /chs [all] - displays current channel list
%connections con
/connections /con - displays current connections
%finger
/finger [<player>] - displays information about player
%admins
/admins - shows all currently logged in administrators
%reply r
/reply /r <message> - reply to the last person that whispered to you
%announce ann
/announce /ann <message> - announces a message in all channels
%realmann
/realmann <message> - makes an announcement in the real u are currenlty in
%copyright warranty license
/copyright /warranty /license - shows the legal information for bnetd
%news
/news - show some system-specific news
%logout quit exit
/logout /quit /exit - closes your connection to the server
%kill
/kill [<player>] [min] - close a player's connection to the server and ban players IP for min minutes
%killsession
/killsession [<sessionid>] [min] - close a connection to the server and ban sesion's IP for min minutes
%watch
/watch <player> - sends notification when a player logs out or joins a game
%unwatch
/unwatch <player> - stops sending notification about a player
%watchall
/watchall - sends notification when any player logs in or out
%unwatchall
/unwatchall - stops sending notification about all players
%gameinfo
/gameinfo [<gamename>] - prints information about a game
%ladderactivate
/ladderactivate - copy current ladder stats to active ladder stats
%ladderinfo
/ladderinfo <rank> [<gameid>] - display ladder info for given rank
%bitsinfo
/bitsinfo - reports BITS status of server
%timer
/timer [<duration>] [<message>] - send notification after a period of time
%netinfo
/netinfo [<player>] - display a player's IP and port information
%addacct
/addacct <player> <password> - create a new player account
%chpass
/chpass [<player>] <password> - change a player's password
%quota
/quota - displays the channel quota
%shutdown
/shutdown [<duration>] - starts the shutdown sequence or cancels if duration is zero
%lockacct
/lockacct <player> - locks that users account
%unlockacct
/unlockacct <player> - unlocks that users account
%friends f
/friends add <username> - add user to your friends list
/friends del <username> - remove user from your friends list
/friends promote <username> - promote user in your friends list
/friends demote <username> - demote user in your friends list
/friends list - list all users in your friends list
/friends msg <msgtext> - whispers to all your online friends
%mail
/mail <command> [<options>] - mail management commands
Syntax:
/mail send <receiver> <message>
/mail read [<index>]
/mail delete {all|<index>}
%flag
/flag <number> - debug tool for icon flags
%tag
/tag <gamename> - debug tool for client tags
%help
/help [<command>] - does this
%ipban
/ipban [<command>] [option] [time] - ban management commands
Syntax:
/ipban [l[ist]] - shows banned IPs
/ipban c[heck] <IP> - check is IP banned
/ipban d[el] <IP|index> - deletes ban for IP, or rule number index
/ipban a[dd] <IP> [time] - ban specified IP for time minutes (time = 0 - permanently ban)
/ipban h[elp] - show help screen
%set
/set <account> <key> [value] - set an attribute in a player profile - if no value given returns current value
key is like BNET\acct\lastlogin_owner
%motd
/motd - display the motd
%tos
/tos - shows terms of service once more
%admin
/admin - +username to make user a admin, or -username to remove admin status of a user
%rank_all_accounts
/rank_all_accounts - brute force adds all accounts to war3 ladder
%rehash
/rehash - forces reload of bnetd.conf
%clan
/clan public (alias: pub)
Opens the clan channel up to the public so that anyone may enter
/clan private (alias: priv)
Closes the clan channel such that only members of the clan may enter
/clan motd <MESSAGE>
Update the clan message of the day to MESSAGE
%ping p latency
/ping, /p, /latency - returns your latency to the server
%command_groups cg
/command_groups, /cg <command) <user> [<groups>] - adds, deletes, or lists command groups for user
Syntax:
/cg list <user> - shows command groups avialiable to user
/cg add <user> <group(s)> - adds group(s) to users command groups
/cg del <user> <group(s)> - deletes groups from users command groups
/cg help - show help screen
%admin
/admin +<username> - promote <username> to Server Admin
/admin -<username> - demote <username> from Server Admin
%operator
/operator +<username> - promote <username> to Server Operator
/operator -<username> - demote <username> from Server Operator
%aop
/aop <username> - make user Channel Admin
%op
/op <username> - make user Channel Operator
%deop
/deop - take away channel Admin/Operator privileges
%tmpop
/tmpop <username> - make user a temporary Channel Operator
%vop
/vop <username> - add user to VOP list
%voice
/voice <username> - give temporary voice to user
%devoice
/devoice <username> - remove user from VOP list and take away temporary voice
%topic
/topic [ [channel name] "topic " ] - used to get/set a channels topic
%moderate
/moderate - used to get/set channel moderated status
%clearstats
/clearstats - used to clear game statistics of a given user/clienttag
Syntax: /clearstats <user> <clienttag>
<clienttag> can be one of DSHR,DRTL,SSHR,STAR,SEXP,W2BNE,WAR3,W3XP,ALL
# #
##############################################################################

5
pvpgn/conf/bnissue.txt Normal file
View file

@ -0,0 +1,5 @@
BOT or Telnet Connection from [%r]
Enter your account name and password.
Sorry, there is no guest account.

191
pvpgn/conf/bnmaps.conf Normal file
View file

@ -0,0 +1,191 @@
######### WARCRAFT 3 REIGN OF CHAOS #################
WAR3 1v1 Maps\(2)PlunderIsle.w3m
WAR3 1v1 Maps\(4)Frostsabre.w3m
WAR3 1v1 Maps\(4)Legends.w3m
WAR3 1v1 Maps\(4)LostTemple.w3m
WAR3 1v1 Maps\(4)TranquilPaths.w3m
WAR3 1v1 Maps\(6)GnollWood.w3m
WAR3 1v1 Maps\(6)Moonglade.w3m
WAR3 1v1 Maps\(6)ScorchedBasin.w3m
WAR3 2v2 Maps\(4)Duskwood.w3m
WAR3 2v2 Maps\(4)HarvestMoon.w3m
WAR3 2v2 Maps\(4)LostTemple.w3m
WAR3 2v2 Maps\(6)GnollWood.w3m
WAR3 2v2 Maps\(6)ScorchedBasin.w3m
WAR3 2v2 Maps\(6)Stromguarde.w3m
WAR3 2v2 Maps\(6)SwampOfSorrows.w3m
WAR3 2v2 Maps\(8)GolemsInTheMist.w3m
WAR3 2v2 Maps\(8)TheCrucible.w3m
WAR3 3v3 Maps\(6)DarkForest.w3m
WAR3 3v3 Maps\(6)DragonFire.w3m
WAR3 3v3 Maps\(6)Stromguarde.w3m
WAR3 3v3 Maps\(6)SwampOfSorrows.w3m
WAR3 3v3 Maps\(6)TimbermawHold.w3m
WAR3 3v3 Maps\(8)Battleground.w3m
WAR3 3v3 Maps\(8)PlainsOfSnow.w3m
WAR3 3v3 Maps\(8)TheCrucible.w3m
WAR3 4v4 Maps\(8)BlastedLands.w3m
WAR3 4v4 Maps\(8)BloodvenomFalls.w3m
WAR3 4v4 Maps\(8)GardenOfWar.w3m
WAR3 4v4 Maps\(8)GolemsInTheMist.w3m
WAR3 4v4 Maps\(8)PetrifiedForest.w3m
WAR3 4v4 Maps\(8)PlainsOfSnow.w3m
WAR3 4v4 Maps\(8)TheCrucible.w3m
WAR3 sffa Maps\(4)HarvestMoon.w3m
WAR3 sffa Maps\(4)LostTemple.w3m
WAR3 sffa Maps\(4)MysticIsles.w3m
WAR3 sffa Maps\(6)GnollWood.w3m
WAR3 sffa Maps\(6)ScorchedBasin.w3m
WAR3 sffa Maps\(6)Stromguarde.w3m
WAR3 sffa Maps\(6)SwampOfSorrows.w3m
WAR3 sffa Maps\(8)Battleground.w3m
WAR3 sffa Maps\(8)TheCrucible.w3m
WAR3 at2v2 Maps\(4)Duskwood.w3m
WAR3 at2v2 Maps\(4)HarvestMoon.w3m
WAR3 at2v2 Maps\(4)LostTemple.w3m
WAR3 at2v2 Maps\(6)GnollWood.w3m
WAR3 at2v2 Maps\(6)ScorchedBasin.w3m
WAR3 at2v2 Maps\(6)Stromguarde.w3m
WAR3 at2v2 Maps\(6)SwampOfSorrows.w3m
WAR3 at2v2 Maps\(8)GolemsInTheMist.w3m
WAR3 at2v2 Maps\(8)TheCrucible.w3m
WAR3 at3v3 Maps\(6)DarkForest.w3m
WAR3 at3v3 Maps\(6)DragonFire.w3m
WAR3 at3v3 Maps\(6)Stromguarde.w3m
WAR3 at3v3 Maps\(6)SwampOfSorrows.w3m
WAR3 at3v3 Maps\(6)TimbermawHold.w3m
WAR3 at3v3 Maps\(8)Battleground.w3m
WAR3 at3v3 Maps\(8)PlainsOfSnow.w3m
WAR3 at3v3 Maps\(8)TheCrucible.w3m
WAR3 at4v4 Maps\(8)BlastedLands.w3m
WAR3 at4v4 Maps\(8)BloodvenomFalls.w3m
WAR3 at4v4 Maps\(8)GardenOfWar.w3m
WAR3 at4v4 Maps\(8)GolemsInTheMist.w3m
WAR3 at4v4 Maps\(8)PetrifiedForest.w3m
WAR3 at4v4 Maps\(8)PlainsOfSnow.w3m
WAR3 at4v4 Maps\(8)TheCrucible.w3m
WAR3 tffa Maps\(8)GardenOfWar.w3m
WAR3 5v5 Maps\(10)DustwallowKeys.w3m
WAR3 6v6 Maps\(12)DivideAndConquer.w3m
WAR3 2v2v2 Maps\(6)SwampOfSorrows.w3m
WAR3 3v3v3 Maps\(9)Riverrun.w3m
WAR3 4v4v4 Maps\(12)DivideAndConquer.w3m
WAR3 2v2v2v2 Maps\(8)GardenOfWar.w3m
WAR3 3v3v3v3 Maps\(12)DivideAndConquer.w3m
WAR3 at2v2v2 Maps\(6)SwampOfSorrows.w3m
######### WARCRAFT 3 THE FROZEN THRONE #################
W3XP 1v1 Maps\FrozenThrone\(2)EchoIsles.w3x
W3XP 1v1 Maps\FrozenThrone\(2)BanditRidge.w3x
W3XP 1v1 Maps\FrozenThrone\(2)TheTwoRivers.w3x
W3XP 1v1 Maps\FrozenThrone\(4)BrokenShard.w3x
W3XP 1v1 Maps\(4)LostTemple.w3m
W3XP 1v1 Maps\FrozenThrone\(4)TwistedMeadows.w3x
W3XP 1v1 Maps\FrozenThrone\(4)TurtleRock.w3x
W3XP 1v1 Maps\FrozenThrone\(4)Hellfire.w3x
W3XP 1v1 Maps\FrozenThrone\(6)GnollWood.w3x
W3XP 2v2 Maps\FrozenThrone\(4)TwistedMeadows.w3x
W3XP 2v2 Maps\FrozenThrone\(4)Predators.w3x
W3XP 2v2 Maps\FrozenThrone\(4)Wetlands.w3x
W3XP 2v2 Maps\FrozenThrone\(4)LostTemple.w3x
W3XP 2v2 Maps\FrozenThrone\(4)StoneColdMountain.w3x
W3XP 2v2 Maps\FrozenThrone\(6)GnollWood.w3x
W3XP 2v2 Maps\FrozenThrone\(6)Typhoon.w3x
W3XP 2v2 Maps\FrozenThrone\(6)RollingHills.w3x
W3XP 2v2 Maps\FrozenThrone\(6)RiverOfSouls.w3x
W3XP 2v2 Maps\FrozenThrone\(6)CopperCanyon.w3x
W3XP 3v3 Maps\FrozenThrone\(6)GnollWood.w3x
W3XP 3v3 Maps\FrozenThrone\(6)Typhoon.w3x
W3XP 3v3 Maps\FrozenThrone\(6)RiverOfSouls.w3x
W3XP 3v3 Maps\FrozenThrone\(6)CopperCanyon.w3x
W3XP 3v3 Maps\FrozenThrone\(6)Monsoon.w3x
W3XP 3v3 Maps\FrozenThrone\(6)UpperKingdom.w3x
W3XP 3v3 Maps\FrozenThrone\(6)HinterlandRaid.w3x
W3XP 3v3 Maps\FrozenThrone\(6)BloodstoneMesa.w3x
W3XP 3v3 Maps\FrozenThrone\(6)RuinsOfStratholme.w3x
W3XP 3v3 Maps\FrozenThrone\(8)Mur'gulOasis.w3x
W3XP 4v4 Maps\FrozenThrone\(8)Mur'gulOasis.w3x
W3XP 4v4 Maps\FrozenThrone\(8)DragonFalls.w3x
W3XP 4v4 Maps\FrozenThrone\(8)Deadlands.w3x
W3XP 4v4 Maps\FrozenThrone\(8)GoldRush.w3x
W3XP 4v4 Maps\FrozenThrone\(8)Feralas.w3x
W3XP 4v4 Maps\FrozenThrone\(8)MarketSquare.w3x
W3XP 4v4 Maps\FrozenThrone\(8)TwilightRuins.w3x
W3XP 4v4 Maps\FrozenThrone\(8)Deadlock.w3x
W3XP 4v4 Maps\FrozenThrone\(8)Battleground.w3x
W3XP sffa Maps\FrozenThrone\(4)Predators.w3x
W3XP sffa Maps\FrozenThrone\(6)Typhoon.w3x
W3XP sffa Maps\FrozenThrone\(6)CopperCanyon.w3x
W3XP sffa Maps\FrozenThrone\(6)Monsoon.w3x
W3XP sffa Maps\FrozenThrone\(6)BloodstoneMesa.w3x
W3XP sffa Maps\FrozenThrone\(8)Mur'gulOasis.w3x
W3XP sffa Maps\FrozenThrone\(8)GoldRush.w3x
W3XP sffa Maps\FrozenThrone\(8)MarketSquare.w3x
W3XP sffa Maps\FrozenThrone\(8)Deadlock.w3x
W3XP sffa Maps\FrozenThrone\(8)Battleground.w3x
W3XP at2v2 Maps\FrozenThrone\(4)TwistedMeadows.w3x
W3XP at2v2 Maps\FrozenThrone\(4)Predators.w3x
W3XP at2v2 Maps\FrozenThrone\(4)Wetlands.w3x
W3XP at2v2 Maps\FrozenThrone\(4)LostTemple.w3x
W3XP at2v2 Maps\FrozenThrone\(4)StoneColdMountain.w3x
W3XP at2v2 Maps\FrozenThrone\(6)GnollWood.w3x
W3XP at2v2 Maps\FrozenThrone\(6)Typhoon.w3x
W3XP at2v2 Maps\FrozenThrone\(6)RollingHills.w3x
W3XP at2v2 Maps\FrozenThrone\(6)RiverOfSouls.w3x
W3XP at2v2 Maps\FrozenThrone\(6)CopperCanyon.w3x
W3XP at3v3 Maps\FrozenThrone\(6)GnollWood.w3x
W3XP at3v3 Maps\FrozenThrone\(6)Typhoon.w3x
W3XP at3v3 Maps\FrozenThrone\(6)RiverOfSouls.w3x
W3XP at3v3 Maps\FrozenThrone\(6)CopperCanyon.w3x
W3XP at3v3 Maps\FrozenThrone\(6)Monsoon.w3x
W3XP at3v3 Maps\FrozenThrone\(6)UpperKingdom.w3x
W3XP at3v3 Maps\FrozenThrone\(6)HinterlandRaid.w3x
W3XP at3v3 Maps\FrozenThrone\(6)BloodstoneMesa.w3x
W3XP at3v3 Maps\FrozenThrone\(6)RuinsOfStratholme.w3x
W3XP at3v3 Maps\FrozenThrone\(8)Mur'gulOasis.w3x
W3XP at4v4 Maps\FrozenThrone\(8)Mur'gulOasis.w3x
W3XP at4v4 Maps\FrozenThrone\(8)DragonFalls.w3x
W3XP at4v4 Maps\FrozenThrone\(8)Deadlands.w3x
W3XP at4v4 Maps\FrozenThrone\(8)GoldRush.w3x
W3XP at4v4 Maps\FrozenThrone\(8)Feralas.w3x
W3XP at4v4 Maps\FrozenThrone\(8)MarketSquare.w3x
W3XP at4v4 Maps\FrozenThrone\(8)TwilightRuins.w3x
W3XP at4v4 Maps\FrozenThrone\(8)Deadlock.w3x
W3XP at4v4 Maps\FrozenThrone\(8)Battleground.w3x
W3XP tffa Maps\FrozenThrone\(8)GardenOfWar.w3x
W3XP 5v5 Maps\FrozenThrone\(10)RagingStream.w3x
W3XP 2v2v2 Maps\FrozenThrone\(6)WheelofChaos.w3x
W3XP 3v3v3 Maps\FrozenThrone\(10)RagingStream.w3x
W3XP 2v2v2v2 Maps\FrozenThrone\(8)GardenOfWar.w3x
W3XP at2v2v2 Maps\FrozenThrone\(6)WheelofChaos.w3x

11
pvpgn/conf/bnmotd.txt Normal file
View file

@ -0,0 +1,11 @@
%IHello %l, welcome to %s!
%IRunning version %v on %h.
%IThis server is hosted by %H
%I
%IThere are %a user accounts on this server.
%IThere are currently %U users in %G games of %N,
%Iand %u users playing %g games and chatting in %c channels.
%IHaving trouble with a command? Type /help to
%Ilearn more about it.
%I
%I%m

17
pvpgn/conf/bnxpcalc.conf Normal file
View file

@ -0,0 +1,17 @@
# This file is used to compute the XP points gained/lost by Warcraft III
# anonymous matchmaking games
#
# <min realm level> <level diff> <higher points gained> <higher points lost> <lower points gained> <lower points lost>
#
# Note: you may notice that blizzard has columns for points win/loss by
# higher and lower opponets but because they must keep constant the sum
# of points the columns are in "mirror"
# used for all players
50 0 100 100 100 100
50 1 95 105 115 85
50 2 90 110 130 70
50 3 85 115 145 55
50 4 80 120 155 45
50 5 75 125 165 35
50 6 70 130 175 25

57
pvpgn/conf/bnxplevel.conf Normal file
View file

@ -0,0 +1,57 @@
# This file is used mainly for computing the level of players and
# teams on W3 Anonymous Matchmaking, the format is:
#
# <level> <starting XP> <XP needed> <Loss Factor> <Min Games>
#
# FIXME: Min Games is not used right now
1 0 0 0.11 0
2 100 100 0.11 0
3 200 200 0.11 0
4 400 200 0.25 0
5 600 300 0.25 0
6 900 300 0.43 0
7 1200 400 0.43 0
8 1600 400 0.67 0
9 2000 500 0.67 0
10 2500 500 1.00 0
11 3000 500 1.00 1
12 3500 500 1.00 1
13 4000 500 1.00 1
14 4500 500 1.00 1
15 5000 500 1.00 1
16 5500 500 1.00 1
17 6000 500 1.00 1
18 6500 500 1.00 1
19 7000 500 1.00 1
20 7500 500 1.00 1
21 8000 500 1.00 1
22 8500 500 1.00 2
23 9000 500 1.00 2
24 9500 500 1.00 2
25 10000 500 1.00 2
26 10500 500 1.00 2
27 11000 500 1.00 2
28 11500 500 1.00 2
29 12000 500 1.00 2
30 12500 500 1.00 2
31 13000 500 1.00 3
32 13500 500 1.00 3
33 14000 500 1.00 3
34 14500 500 1.00 3
35 15000 500 1.00 3
36 15500 500 1.00 3
37 16000 500 1.00 3
38 16500 500 1.00 3
39 17000 500 1.00 3
40 17500 500 1.00 3
41 18000 500 1.00 4
42 18500 500 1.00 4
43 19000 500 1.00 4
44 19500 500 1.00 4
45 20000 500 1.00 4
46 20500 500 1.00 4
47 21000 500 1.00 4
48 21500 500 1.00 4
49 22000 500 1.00 4
50 22500 500 1.00 4

67
pvpgn/conf/channel.conf Normal file
View file

@ -0,0 +1,67 @@
##############################################################################
# channel.list - Configuration for permanent channels #
#----------------------------------------------------------------------------#
# #
# These are the channels to create when the server starts up. This file does #
# not change the channel that the client requests when it logs in, but it #
# can be used to give that channel a different "official" name. #
# #
# Quotes (") are required around the strings, but they are not allowed #
# inside them. An unquoted NULL means there is no entry for that position. #
# #
# NONE for special name means to use the format "shortname-ctry num realm" #
# e.g. "D2CS-Starcraft USA-1" #
# NULL for country creates non-country specific channels. #
# -1 for max sets no limit to the number of users allowed in the channel #
# #
# ---special name--- -----short name----- cltag bots- -ops- -log- ctry- realm max -mod-#
"The Void" "The Void" NULL true false false NULL NULL -1 true
NONE "Starcraft" STAR true false false NULL NULL -1 false
NONE "Brood War" SEXP true false false NULL NULL -1 false
NONE "Starcraft Shareware" SSHR true false false NULL NULL -1 false
NONE "Diablo Retail" DRTL true false false NULL NULL -1 false
NONE "War2BNE" W2BN true false false NULL NULL -1 false
NONE "Diablo II" D2DV true false false NULL NULL -1 false
NONE "Diablo II" D2XP true false false NULL NULL -1 false
"Warcraft 3 Frozen Throne" "W3" W3XP true false false NULL NULL -1 false
"Warcraft 3" "W3" WAR3 true false false NULL NULL -1 false
"Human Castle" "W3" W3XP true false false NULL NULL -1 false
"Orc Stronghold" "W3" W3XP true false false NULL NULL -1 false
"Undead Necropolis" "W3" W3XP true false false NULL NULL -1 false
"Night Elf Tree of Life" "W3" W3XP true false false NULL NULL -1 false
"Dragon Roost" "W3" W3XP true false false NULL NULL -1 false
"Human Castle" "W3" WAR3 true false false NULL NULL -1 false
"Orc Stronghold" "W3" WAR3 true false false NULL NULL -1 false
"Undead Necropolis" "W3" WAR3 true false false NULL NULL -1 false
"Night Elf Tree of Life" "W3" WAR3 true false false NULL NULL -1 false
"Dragon Roost" "W3" WAR3 true false false NULL NULL -1 false
"Chat" "Chat" CHAT true false false NULL NULL -1 false
"Backstage" "Backstage" NULL true false false NULL NULL 0 false
"Moderated Support" "Support" NULL true false false NULL NULL -1 true
# #
##############################################################################
##############################################################################
# Westwood Online Channels #
#----------------------------------------------------------------------------#
# Note: The Westwood channels should be formatted like this! Do not set the last number above 5.
# The proper game type numbers are as follows:
# - 18 = Tiberian Sun game channels
# - 21 = Red alert 1 channels
# - 33 = Red alert 2 channels
# - 41 = Yuri's Revenge
#
##### Tiberian Sun Support #####################################################################################
"Lob 18 0" "GDI Barracks" WWOL false false false NULL NULL -1 false
"Lob 18 1" "NOD Barracks" WWOL false false false NULL NULL -1 false
"Lob 18 2" "GDI Comm. Center" WWOL false false false NULL NULL -1 false
##### Red Alert 2 Support ######################################################################################
"Lob 33 0" "USA Command" CHAT false false false NULL NULL -1 false
"Lob 33 1" "Korean Bunker" CHAT false false false NULL NULL -1 false
##### Yuri's Revenge Support ###################################################################################
"Lob 41 0" "Unknown" CHAT false false false NULL NULL -1 false
"Lob 41 1" "Unknown" CHAT false false false NULL NULL -1 false
# #
##############################################################################

View file

@ -0,0 +1,167 @@
# ///////////////////////////////////////////////////////////////////////
# ////////////// Command Groups Configuration File //////////////
# ///////////////////////////////////////////////////////////////////////
#
# Format of this file is simple. There are 8 different groups.
#
# Each line must start with the group number followed by as many
# commands as you wish.
#
# Group '1' is common user commands and can be used by any user.
#
# Rights to use commands in Groups '2' through '8' must be given
# to a user using the /commandgroups or /cg command.
#
# usage /cg <add|del|list> <username> [<groups>]
#
# ie. /cg list pvpgnplayer <-- list the current command groups for user
# ie. /cg add pvpgnplayer 234 <-- adds groups 2, 3, & 4 to user
# ie. /cg del pvpgnplayer 24 <-- deletes groups 2 & 4 from user
#
# If the following commands were done, pvpgnplayer would have access
# to commands in groups 1 & 3
#
# Commands not listed in this file will be deactivated by the server
#
# FILE MODE:
# Add the following line to your user file to get access to all groups:
# "BNET\\auth\\command_groups"="255"
#
# For regualar users to be able to use the regualr commands make sure to
# use the updated 'bnetd_default_user' file
#
# SQL MODE:
# Issue the following commands to get access to all groups:
# ALTER TABLE BNET ADD COLUMN auth_command_groups VARCHAR(128) default '1';
# UPDATE BNET SET auth_command_groups='255' WHERE uid='youruserid'
#
# For regular users to be able to use the reqular commands
# issue the following command:
# UPDATE BNET SET auth_command_groups='1' WHERE uid='0'
#
# <group> <command> [<command2> <command3> <...>]
# ////////////////////////////////////////////////
# ///// Regular commands usable by all users /////
# ////////////////////////////////////////////////
1 /c /clan
1 /f /friends
1 /me
1 /msg /whisper /w /m /r /reply
1 /status /users /lusers
1 /who /whois /whereis /where /whoami
1 /beep /nobeep
1 /version /copyright /warrenty /license
1 /uptime /stats /astat /time
1 /channel /join /rejoin
1 /away /dnd /ignore /squelch /unignore /unsquelch
1 /watch /unwatch /watchall /unwatchall
1 /news /games /channels /chs /admins
1 /logout /quit /exit
1 /ladderinfo
1 /timer /quota
1 /help
1 /mail
1 /motd
1 /tos
1 /bitsinfo
1 /latency /ping /p
1 /topic
# /////////////////////////////
# ///// Operator commands /////
# /////////////////////////////
#
# -- These commands require the user to be one of the following:
#
# -- Server Admin - admin status set to true - use --> /admin +<username>
# -- can /aop users for any channel
# -- can /op & /deop users for any channel
# -- can /kick /ban & /unban users for any channel
# -- can /vop users for any channel
# -- can /voice & /devoice users for any channel
# -- Server Operator - operator status set to true - use --> /operator +<username>
# -- can /op & /deop users for any channel
# -- can /kick /ban & /unban users for any channel
# -- can /voice & /devoice users for any channel
# -- Channel Admin - admin starus for channel set to true - use --> /aop <username>
# -- can /aop users for the channel they are admin of
# -- can /op & /deop users for the channel they are admin of
# -- can /kick /ban & /unban users for the channel they are admin of
# -- can /vop users for the chnnel they are admin of
# -- can /voice & /devoice users for the channel they are admin of
# -- Channel Operator - operator status for channel set to true - use --> /op <username>
# -- can /op & /deop users for the channel they are operator of
# -- can /kick /ban & /unban users for the channel they are operator of
# -- can /voice & /devoice users for the channel they are operator of
#
# -- You must be in the channel you wish to give or take Channel Operator or
# Channel Admin status too or from. ** /aop /op & /deop **
# -- P.S. You may now have more than one operator and/or admin per channel.
# -- No need to make everyone Server Admins.
1 /kick /ban /unban /op /deop /aop /voice /devoice /vop /devop /tmpop /moderate
# ////////////////////////////////
# ///// Commands with limits /////
# ////////////////////////////////
#
# -- Although set to Group '1', these command have the following limitations for users.
#
# -- /admin-con & /admin-addr /admin-chpass are not real commands.
#
# -- Without 'enable_conn_all = true' in bnetd.conf, only users with access to
# /admin-con may use the /con or /connections.
1 /connections /con
# -- Without 'hide_addr = false' in bnetd.conf, only users with access to
# /admin-addr will see IP Numbers.
1 /games /finger /gameinfo
# -- Users may use /chpass on themselves, but require access to
# /admin-chpass to change others.
# -- Users may use /netinfo on themselves, but require access to
# /admin-addr to see others info.
1 /netinfo /chpass
# -- /admin-con & /admin-addr /admin-chpass are not real commands.
# -- Access to these commands gives more info for the following commands:
# /connections /con /games /finger /gameinfo /netinfo /chpass
# as described above.
6 /admin-con /admin-addr /admin-chpass
# //////////////////////////////////////////
# ///// Command Groups Access Required /////
# //////////////////////////////////////////
#
# -- All the following do not require Server Admin Status.
# -- They are all locked out for regular users and require access to the Group to Use.
# -- Use the /cg command to assign groups to users.
2 /realmann /ann /announce
3 /serverban /ipban
4 /kill /killsession /addacct /lockacct /unlockacct
5 /ladderactivate
# 5 /rank_all_accounts
# -- Access to group '6' allows users to not only make others Server Admins & Server Operators
# but will allow them to make themselves Server Admin & Server Operator.
6 /operator /admin /flag /tag
7 /set /commandgroups /cg /clearstats
8 /shutdown /rehash
# //////////////////////////////////////
# ///// End of Command Groups File /////
# //////////////////////////////////////

218
pvpgn/conf/d2cs.conf.in Normal file
View file

@ -0,0 +1,218 @@
#################################################################################
# d2cs.conf - Configuration file for the diablo2 game control server #
#-------------------------------------------------------------------------------#
# #
# This file is an example configuration and may require modification to #
# suit your needs or your site. Blank lines and lines starting with a "#" #
# are ignored. Use quotes around values that contain spaces. #
# #
#################################################################################
#################################################################################
# Server Major Settings #
#-------------------------------------------------------------------------------#
# #
# Your realm server name #
realmname = D2CS
# This is a comma delimited list of hostnames that the server should
# listen on. It might be useful to make an internal-only server on a
# gateway machine for example. If the list is not set or if it has a
# entry with no host component, the server will bind to that port on all
# interfaces.
# d2cs default listening port is 6113
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
servaddrs = 0.0.0.0:6113
# This is a comma delimited list of game servers
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#gameservlist = your.gameserver,another.gameserver
# This is bnetd server address with port
# bnetd default listening port is 6112
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#bnetdaddr = xxx.xxx.xxx.xxx:6112
# Set this to the maximum number of concurrent connections allowed on
# this server.
max_connections = 1000
# This sets the realm to Classic or LOD or Both
# Classic = 0
# LOD = 1
# Both = 2 (default)
lod_realm = 2
# This sets whether you can convert a clasic char to
# an expansion char.
# Allow Convert = 1
# Don't allow Convert = 0
allow_convert = 0
# here u can enter the symbols allowed in accountnames (additional to
# alphanumerical symbals which are always accepted). please note that
# it is absolutly mandatory that u set up the same symbols here as in
# bnetd.conf or else u wont be able to play D2 with some characters
# (those whose symbols are allowed in bnetd.conf but not here)
# same warnings as in bnetd.conf apply here - be warned - and just
# change something if you know what you are doing
#default setting is "-_[]"
account_allowed_symbols = "-_[]"
# #
#################################################################################
#################################################################################
# Message logs #
#-------------------------------------------------------------------------------#
# Multiple log levels can be defined by connecting them with a comma (,)
# Available loglevels are:
# none
# trace
# debug
# info
# warn
# error
# fatal
#loglevels = fatal,error,warn,info
loglevels = fatal,error,warn,info,debug,trace
# #
#################################################################################
#################################################################################
# File and Path section #
# Use absolute paths in these lines to avoid problems! #
#-------------------------------------------------------------------------------#
# #
logfile = /usr/local/var/d2cs.log
charsavedir = /usr/local/var/charsave
charinfodir = /usr/local/var/charinfo
bak_charsavedir = /usr/local/var/bak/charsave
bak_charinfodir = /usr/local/var/bak/charinfo
ladderdir = /usr/local/var/ladders
newbiefile = /usr/local/var/files/newbie.save
transfile = /usr/local/etc/address_translation.conf
d2gsconffile = /usr/local/etc/d2server.ini
#pidfile = /usr/local/var/d2cs.pid
# #
#################################################################################
#################################################################################
# Misc #
#-------------------------------------------------------------------------------#
# #
# Message Of The Day
motd = "No Message Of The Day Set"
# Set to non-zero to allow creation of new realm character
allow_newchar = 1
# Do you want d2cs to check client for multilogin for security reason?
check_multilogin = 0
# Maxinum number of character per account
# Max allowed value is 18 (enforced by server)
maxchar = 8
# Character sorting. Options are: level, mtime, name, none. (none assumed if
# not specified).
#charlist_sort = "none"
# Do we need ascending or descending order for charlist?
#charlist_sort_order = "ASC"
# Maxinum number of games will be shown in join game list
# Zero = infinite
maxgamelist = 20
# Set to non-zero to allow show all games with difficulty < character difficulty
# Otherwise, only game with difficulty = character difficulty will be shown
gamelist_showall = 0
# Maxinum time in seconds that a user can idle
# Zero = infinite
idletime = 3600
# Amount of time to delay shutting down server in seconds.
shutdown_delay = 300
# Amount of time delay period is decremented by either a SIGTERM or SIGINT
# (control-c) signal in seconds.
shutdown_decr = 60
#
#################################################################################
#################################################################################
# Internal System Settings #
# You may just ignore them and use the default value #
#-------------------------------------------------------------------------------#
#
# How often will the server purge all list to clean unused data (in seconds)
listpurgeinterval = 300
# How often will the server check game queues (in seconds)
gqcheckinterval = 60
# How often will the server retry to connect to bnetd
# when connection lost (in seconds)
s2s_retryinterval = 10
# How long time the s2s connection will timeout
s2s_timeout = 10
# How often the server will check server queues for expired data
sq_checkinterval = 300
# How long time will a server queue data expire
sq_timeout = 300
# Game serer binary files checksum, use zero to skip this checking
d2gs_checksum = 0
# Game server version, use zero to skip this checking
d2gs_version = 0
# Game server password
d2gs_password = ""
# Maxinum number of second that a game will be shown on list( zero = infinite )
game_maxlifetime = 0
# A game will be automatically destroied after how long time idle
max_game_idletime = 0
# Allow Limitation created game with password, player number or level limit?
allow_gamelimit = 1
# Ladder refresh time
ladder_refresh_interval = 3600
# server to server connection max idle time in seconds
s2s_idletime = 300
# server to server connection keepalive interval
s2s_keepalive_interval = 60
# all connection timeout check interval
timeout_checkinterval = 60
# game server restart interval
# when sending SIGUSR2 signal to your d2cs this issues a restart
# of all connected d2gs after d2gs_restart_delay seconds
d2gs_restart_delay = 300
# ladder start time
# format: yyyy-mm-dd hh:mm:ss
# be carefull:
# all chars created before this date will revert to non-ladder chars
ladder_start_time = ""
# number of days before a char expires (default 0=unlimited)
char_expire_day = 0
#
#################################################################################

216
pvpgn/conf/d2cs.conf.win32 Normal file
View file

@ -0,0 +1,216 @@
#################################################################################
# d2cs.conf - Configuration file for the diablo2 game control server #
#-------------------------------------------------------------------------------#
# #
# This file is an example configuration and may require modification to #
# suit your needs or your site. Blank lines and lines starting with a "#" #
# are ignored. Use quotes around values that contain spaces. #
# #
#################################################################################
#################################################################################
# Server Major Settings #
#-------------------------------------------------------------------------------#
# #
# Your realm server name #
realmname = D2CS
# This is a comma delimited list of hostnames that the server should
# listen on. It might be useful to make an internal-only server on a
# gateway machine for example. If the list is not set or if it has a
# entry with no host component, the server will bind to that port on all
# interfaces.
# d2cs default listening port is 6113
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
servaddrs = 0.0.0.0:6113
# This is a comma delimited list of game servers
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#gameservlist = your.gameserver,another.gameserver
# This is bnetd server address with port
# bnetd default listening port is 6112
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#bnetdaddr = xxx.xxx.xxx.xxx:6112
# Set this to the maximum number of concurrent connections allowed on
# this server.
max_connections = 1000
# This sets the realm to Classic or LOD or Both
# Classic = 0
# LOD = 1
# Both = 2 (default)
lod_realm = 2
# This sets whether you can convert a clasic char to
# an expansion char.
# Allow Convert = 1
# Don't allow Convert = 0
allow_convert = 0
# here u can enter the symbols allowed in accountnames (additional to
# alphanumerical symbals which are always accepted). please note that
# it is absolutly mandatory that u set up the same symbols here as in
# bnetd.conf or else u wont be able to play D2 with some characters
# (those whose symbols are allowed in bnetd.conf but not here)
# same warnings as in bnetd.conf apply here - be warned - and just
# change something if you know what you are doing
#default setting is "-_[]"
account_allowed_symbols = "-_[]"
# #
#################################################################################
#################################################################################
# Message logs #
#-------------------------------------------------------------------------------#
# Multiple log levels can be defined by connecting them with a comma (,)
# Available loglevels are:
# none
# trace
# debug
# info
# warn
# error
# fatal
#loglevels = fatal,error,warn,info
loglevels = fatal,error,warn,info,debug,trace
# #
#################################################################################
#################################################################################
# File and Path section #
# Use absolute paths in these lines to avoid problems! #
#-------------------------------------------------------------------------------#
# #
logfile = var\d2cs.log
charsavedir = var\charsave
charinfodir = var\charinfo
bak_charsavedir = var\bak\charsave
bak_charinfodir = var\bak\charinfo
ladderdir = var\ladders
newbiefile = files\newbie.save
transfile = conf\address_translation.conf
d2gsconffile = conf\d2server.ini
# #
#################################################################################
#################################################################################
# Misc #
#-------------------------------------------------------------------------------#
# #
# Message Of The Day
motd = "No Message Of The Day Set"
# Set to non-zero to allow creation of new realm character
allow_newchar = 1
# Do you want d2cs to check client for multilogin for security reason?
check_multilogin = 0
# Maxinum number of character per account
# Max allowed value is 18 (enforced by server)
maxchar = 8
# Character sorting. Options are: level, mtime, name, none. (none assumed if
# not specified).
#charlist_sort = "none"
# Do we need ascending or descending order for charlist?
#charlist_sort_order = "ASC"
# Maxinum number of games will be shown in join game list
# Zero = infinite
maxgamelist = 20
# Set to non-zero to allow show all games with difficulty < character difficulty
# Otherwise, only game with difficulty = character difficulty will be shown
gamelist_showall = 0
# Maxinum time in seconds that a user can idle
# Zero = infinite
idletime = 3600
# Amount of time to delay shutting down server in seconds.
shutdown_delay = 300
# Amount of time delay period is decremented by either a SIGTERM or SIGINT
# (control-c) signal in seconds.
shutdown_decr = 60
#
#################################################################################
#################################################################################
# Internal System Settings #
# You may just ignore them and use the default value #
#-------------------------------------------------------------------------------#
#
# How often will the server purge all list to clean unused data (in seconds)
listpurgeinterval = 300
# How often will the server check game queues (in seconds)
gqcheckinterval = 60
# How often will the server retry to connect to bnetd
# when connection lost (in seconds)
s2s_retryinterval = 10
# How long time the s2s connection will timeout
s2s_timeout = 10
# How often the server will check server queues for expired data
sq_checkinterval = 300
# How long time will a server queue data expire
sq_timeout = 300
# Game serer binary files checksum, use zero to skip this checking
d2gs_checksum = 0
# Game server version, use zero to skip this checking
d2gs_version = 0
# Game server password
d2gs_password = ""
# Maxinum number of second that a game will be shown on list( zero = infinite )
game_maxlifetime = 0
# A game will be automatically destroied after how long time idle
max_game_idletime = 0
# Allow Limitation created game with password, player number or level limit?
allow_gamelimit = 1
# Ladder refresh time
ladder_refresh_interval = 3600
# server to server connection max idle time in seconds
s2s_idletime = 300
# server to server connection keepalive interval
s2s_keepalive_interval = 60
# all connection timeout check interval
timeout_checkinterval = 60
# game server restart interval
# when sending SIGUSR2 signal to your d2cs this issues a restart
# of all connected d2gs after d2gs_restart_delay seconds
d2gs_restart_delay = 300
# ladder start time
# format: yyyy-mm-dd hh:mm:ss
# be carefull:
# all chars created before this date will revert to non-ladder chars
ladder_start_time = ""
# number of days before a char expires (default 0=unlimited)
char_expire_day = 0
#
#################################################################################

113
pvpgn/conf/d2dbs.conf.in Normal file
View file

@ -0,0 +1,113 @@
#################################################################################
# d2dbs.conf - Configuration file for the Diablo2 Game database server #
#-------------------------------------------------------------------------------#
# #
# This file is an example configuration and may require modification to #
# suit your needs or your site. Blank lines and lines starting with a "#" #
# are ignored. Use quotes around values that contain spaces. #
# #
#################################################################################
#################################################################################
# Server Major Settings #
#-------------------------------------------------------------------------------#
# This is a comma delimited list of hostnames that the server should
# listen on. It might be useful to make an internal-only server on a
# gateway machine for example. If the list is not set or if it has a
# entry with no host component, the server will bind to that port on all
# interfaces.
# dbs default listening port is 6114
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
servaddrs = 0.0.0.0:6114
# This is a comma delimited list of game servers
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#gameservlist = your.gameserver,another.gameserver
# #
#################################################################################
#################################################################################
# Message logs #
#-------------------------------------------------------------------------------#
# Multiple log levels can be defined by connecting them with a comma (,)
# Available loglevels are:
# none
# trace
# debug
# info
# warn
# error
# fatal
#loglevels = fatal,error,warn,info
loglevels = fatal,error,warn,info,debug,trace
# #
#################################################################################
#################################################################################
# File and Path section #
# Use absolute paths in these lines to avoid problems! #
#-------------------------------------------------------------------------------#
logfile = /usr/local/var/d2dbs.log
logfile-gs = /usr/local/var/d2dbs-gs.log
charsavedir = /usr/local/var/charsave
charinfodir = /usr/local/var/charinfo
ladderdir = /usr/local/var/ladders
bak_charsavedir = /usr/local/var/bak/charsave
bak_charinfodir = /usr/local/var/bak/charinfo
#pidfile = /usr/local/var/d2dbs.pid
# #
#################################################################################
#################################################################################
# Misc #
#-------------------------------------------------------------------------------#
# #
# Ladder save interval
laddersave_interval = 3600
# Time that allow characters create after it insert into ladder
# These code should be rewritted to support string formmated time
ladderinit_time = 0
# create extra ladder file in XML format that can be parsed more easy
# 0 = turn extra output off (default)
# 1 = turn on the XML output
XML_ladder_output = 0
# Amount of time to delay shutting down server in seconds.
shutdown_delay = 360
# Amount of time delay period is decremented by either a SIGTERM or SIGINT
# (control-c) signal in seconds.
shutdown_decr = 60
# connection max idle time in seconds
idletime = 300
# connection keep alive interval
keepalive_interval = 60
# connection time out check interval
timeout_checkinterval = 60
# experience threshold, minimum experience needed to register on the ladder
ladderupdate_threshold = 0
# What chars will be added to ladder?
# 0 = ladder and non-ladder chars
# 1 = only ladder chars
ladder_chars_only = 1
# This setting activates a workaround for the well known "Lvl 100" bug.
# It should be activated for mods where the max level is greater than 99.
# Activating this should work for mods with any max level
# If level is greater than 255, it will be set to 255
# 0 = deactivated
# 1 = activated
difficulty_hack = 0
# #
#################################################################################

111
pvpgn/conf/d2dbs.conf.win32 Normal file
View file

@ -0,0 +1,111 @@
#################################################################################
# d2dbs.conf - Configuration file for the Diablo2 Game database server #
#-------------------------------------------------------------------------------#
# #
# This file is an example configuration and may require modification to #
# suit your needs or your site. Blank lines and lines starting with a "#" #
# are ignored. Use quotes around values that contain spaces. #
# #
#################################################################################
#################################################################################
# Server Major Settings #
#-------------------------------------------------------------------------------#
# This is a comma delimited list of hostnames that the server should
# listen on. It might be useful to make an internal-only server on a
# gateway machine for example. If the list is not set or if it has a
# entry with no host component, the server will bind to that port on all
# interfaces.
# dbs default listening port is 6114
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
servaddrs = 0.0.0.0:6114
# This is a comma delimited list of game servers
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" !!!
#gameservlist = your.gameserver,another.gameserver
# #
#################################################################################
#################################################################################
# Message logs #
#-------------------------------------------------------------------------------#
# Multiple log levels can be defined by connecting them with a comma (,)
# Available loglevels are:
# none
# trace
# debug
# info
# warn
# error
# fatal
#loglevels = fatal,error,warn,info
loglevels = fatal,error,warn,info,debug,trace
# #
#################################################################################
#################################################################################
# File and Path section #
# Use absolute paths in these lines to avoid problems! #
#-------------------------------------------------------------------------------#
logfile = var\d2dbs.log
logfile-gs = var\d2dbs-gs.log
charsavedir = var\charsave
charinfodir = var\charinfo
ladderdir = var\ladders
bak_charsavedir = var\bak\charsave
bak_charinfodir = var\bak\charinfo
# #
#################################################################################
#################################################################################
# Misc #
#-------------------------------------------------------------------------------#
# #
# Ladder save interval
laddersave_interval = 3600
# Time that allow characters create after it insert into ladder
# These code should be rewritted to support string formmated time
ladderinit_time = 0
# create extra ladder file in XML format that can be parsed more easy
# 0 = turn extra output off (default)
# 1 = turn on the XML output
XML_ladder_output = 0
# Amount of time to delay shutting down server in seconds.
shutdown_delay = 360
# Amount of time delay period is decremented by either a SIGTERM or SIGINT
# (control-c) signal in seconds.
shutdown_decr = 60
# connection max idle time in seconds
idletime = 300
# connection keep alive interval
keepalive_interval = 60
# connection time out check interval
timeout_checkinterval = 60
# experience threshold, minimum experience needed to register on the ladder
ladderupdate_threshold = 0
# What chars will be added to ladder?
# 0 = ladder and non-ladder chars
# 1 = only ladder chars
ladder_chars_only = 1
# This setting activates a workaround for the well known "Lvl 100" bug.
# It should be activated for mods where the max level is greater than 99.
# Activating this should work for mods with any max level
# If level is greater than 255, it will be set to 255
# 0 = deactivated
# 1 = activated
difficulty_hack = 0
# #
#################################################################################

108
pvpgn/conf/d2server.ini Normal file
View file

@ -0,0 +1,108 @@
;Standard windows INI file format
[D2GE]
DebugDumpThread=1
[World Event]
Enable=1
;update interval in seconds
UpdateInterval=30
;Notes: even if DC spawns in non-hell difficulty, it can only drop USC in hell difficulty
;e.g: Difficulty=normal,nightmare,hell means spawn DC in any difficulty
Difficulty=hell
;you will be happy when SpawnMinions set to non zero...
SpawnMinions=0
ItemDataFile=ItemConfig.dat
;World event trigger item config
Item=The Stone of Jordan
;Total items needed to trigger DC is:
;[ItemRangeMin, ItemRangeMax] + (ItemNormalGameFactor * NormalGames)/100
;+ (ItemNormalPlayerFactor * NormalPlayers)/100 + ...
;NormalGame, NormalPlayers ... all are current dyanmic count on this server
ItemRangeMin=10
ItemRangeMax=20
ItemNormalGameFactor=0
ItemNightmareGameFactor=0
ItemHellGameFactor=100
ItemNormalPlayerFactor=0
ItemNightmarePlayerFactor=0
ItemHellPlayerFactor=100
[Key]
Mods = code=key
[The Stone of Jordan]
Mods = code=rin & quality=unique & prefix=122
[7% mf sc]
Mods = code=cm1 & quality=magical & mf=7
[UM Rune]
Mods = code=r22
[Unique or Set ring]
Mods = code=rin & quality=unique, quality=set
[UnID unique ring or unID set amulet]
Mods = code=rin & quality=unique | code=amu & quality=set
;Item Format:
;Logical operators:
;'|' ';' high priority OR
;'&' normal priority AND
;',' low priority OR
;e.g:
;mod1 | mod2, mod3 & mod4 = mod1 ; mod2, mod3 & mod4 = mod1 || ((mod2 || mod3) && mod4) (unsupported c like expression)
;all spaces are ignored
;any character after '/' will be treated as comment and ignored
;Mod format:
;[mod] [<|=|>|<=|>=] [value]
;Currently supported mod list:
;Type -> item base type id
;can be found from weapons.txt armor.txt misc.txt
;notes: the ID start from 0 instead of 1
;code -> item code
;can be found from weapons.txt armor.txt misc.txt
;quality -> tempered, craft,unique,set,rare,magical,superior,normal,inferior
;prefix -> item prefix id
;actually, for unique/set/runeword items, it is the name index.
;can be found from UniqueItems.txt, SetItems.txt, Runes.txt
;notes: the ID start from 0 instead of 1
;ilvl -> item ilvl
;stat[n] -> stats value
;see ItemStatCost.txt ID column
;flag[n] -> item flag value
;see alias for common used flags
;MPQVersion -> item version
;ItemClassic for classic item, ItemExpansion for expansion item, ItemExpansion110 for items after 1.10
;Common used alias
;socket = number of socket
;ethereal = [1|0]
;ear = [1|0]
;runeword = [1|0]
;broken = [1|0]
;identified = [1/0]
;personalized = [1/0]
;gems = number of gems socketed
;unsupported now
;gem[n] = mod of certain gem
;suffix = item suffix id
;and item magical prefix/suffix, use Stat[n] to check them now
;e.g: mf=7 & code=cm1 or stat80=7 & code=cm1 means 7% mf sc

26
pvpgn/conf/news.txt Normal file
View file

@ -0,0 +1,26 @@
{10/01/2004}
Welcome To The Player-vs-Player Gaming Network!
Bringing Emulation To New Levels!
=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=
** IF YOU EXPERIENCE PROBLEMS USING THIS SERVER PLEASE REPORT IT TO THE **
********* ADMINISTRATOR OF THE SERVER NOT TO THE PVPGN TEAM ************
Project development homepage: http://pvpgn.berlios.de
Support channels (ONLY for the admins):
========================================
1. BugTracker (preffered support method):
http://sourceforge.net/tracker/?atid=470605&group_id=53514&func=browse
2. Mailing List: pvpgn-users@lists.sourceforge.net (to subscribe go here
http://lists.sourceforge.net/lists/listinfo/pvpgn-users )
3. Forums: http://forums.pvpgn.org
4. IRC live support: #pvpgn on irc.pvpgn.org
Enjoy!
The PvPGN Team
http://www.PvPGN.org

27
pvpgn/conf/realm.conf Normal file
View file

@ -0,0 +1,27 @@
#################################################################################
# realm.list - List of Diablo II Realms #
#-------------------------------------------------------------------------------#
# #
# Realms are areas that hold closed characters and games. #
# Users are given this list of realms to choose from when #
# creating a new character. Next time the character is #
# used, they will automatically join the same realm. #
# #
# The realm server runs on port 6113 by default. #
# If you do not specify a port number, it will use this by default. #
# #
# <realmname> : the realm name (mandatory; must start and end with " ) #
# <description> : the realm description (optional; must start and end with " ) #
# ip:port - actual ip the d2cs server is running on (mandatory) #
# #
# --- realm name --- --- description --- --- real address --- #
# (mandatory) (optional) (mandatory) #
#-------------------------------------------------------------------------------#
# "<realmname>" ["<description>"] <ip:port> #
# #
#################################################################################
# WARNING!! DO NOT USE "127.0.0.1" or "localhost" FOR ANY IP ADDRESS
# example (having a d2cs server running on IP 1.2.3.4):
#"D2CS" "PvPGN Closed Realm" 1.2.3.4:6113

View file

@ -0,0 +1,154 @@
# this file determines the layout of the PvPGN SQL database
# the server will create the tables with their columns as specified in here
# don't forget to create the DB yourself
# no empty lines allowed, no whitespaces in front of any entries allowed
# file format:
# [name_of_a_table]
# "column_name with format infos","default value" [&& "sqlcommand to execute on success"] [|| "sqlcommand to execute on failure"]
# :"sqlcommand to execute" [&& "sqlcommand to execute on success"] [|| "sqlcommand to execute on failure"]
# you might also notice some variables of the form ${variable}. these are
# replaced with their meaning when the server starts
# ${prefix} is replaced with the configured table prefix from bnetd.conf/storage_path
#
# For the "sql" SQL layout
#
[${prefix}BNET]
"uid int NOT NULL PRIMARY KEY","'0'"
"acct_username varchar(32)","NULL"
"username varchar(32)","NULL" && "UPDATE ${prefix}BNET SET username = lower(acct_username)"
"acct_userid int","NULL"
"acct_passhash1 varchar(128)","NULL"
"acct_email varchar(128)","NULL"
"auth_admin varchar(16)","'false'"
"auth_normallogin varchar(16)","'true'"
"auth_changepass varchar(16)","'true'"
"auth_changeprofile varchar(16)","'true'"
"auth_botlogin varchar(16)","'true'"
"auth_operator varchar(16)","'false'"
"new_at_team_flag int","'0'"
"auth_lockk varchar(16)","'0'"
"auth_command_groups varchar(128)","'1'"
"acct_lastlogin_time int","'0'"
"acct_lastlogin_owner varchar(128)","NULL"
"acct_lastlogin_clienttag varchar(128)","NULL"
"acct_lastlogin_ip varchar(32)","NULL"
:"DROP INDEX username"
:"CREATE UNIQUE INDEX username2 ON ${prefix}BNET (username)"
[${prefix}friend]
"uid int NOT NULL PRIMARY KEY","'0'"
[${prefix}profile]
"uid int NOT NULL PRIMARY KEY","'0'"
"sex varchar(16)","NULL"
"location varchar(128)","NULL"
"description varchar(256)","NULL"
"age varchar(16)","NULL"
"clanname varchar(48)","NULL"
[${prefix}Record]
"uid int NOT NULL PRIMARY KEY","'0'"
"WAR3_solo_xp int","'0'"
"WAR3_solo_level int","'0'"
"WAR3_solo_wins int","'0'"
"WAR3_solo_rank int","'0'"
"WAR3_solo_losses int","'0'"
"WAR3_team_xp int","'0'"
"WAR3_team_level int","'0'"
"WAR3_team_rank int","'0'"
"WAR3_team_wins int","'0'"
"WAR3_team_losses int","'0'"
"WAR3_ffa_xp int","'0'"
"WAR3_ffa_rank int","'0'"
"WAR3_ffa_level int","'0'"
"WAR3_ffa_wins int","'0'"
"WAR3_ffa_losses int","'0'"
"WAR3_orcs_wins int","'0'"
"WAR3_orcs_losses int","'0'"
"WAR3_humans_wins int","'0'"
"WAR3_humans_losses int","'0'"
"WAR3_undead_wins int","'0'"
"WAR3_undead_losses int","'0'"
"WAR3_nightelves_wins int","'0'"
"WAR3_nightelves_losses int","'0'"
"WAR3_random_wins int","'0'"
"WAR3_random_losses int","'0'"
"WAR3_teamcount int","'0'"
"WAR3_userselected_icon varchar(16)","NULL"
"W3XP_solo_xp int","'0'"
"W3XP_solo_level int","'0'"
"W3XP_solo_wins int","'0'"
"W3XP_solo_rank int","'0'"
"W3XP_solo_losses int","'0'"
"W3XP_team_xp int","'0'"
"W3XP_team_level int","'0'"
"W3XP_team_rank int","'0'"
"W3XP_team_wins int","'0'"
"W3XP_team_losses int","'0'"
"W3XP_ffa_xp int","'0'"
"W3XP_ffa_rank int","'0'"
"W3XP_ffa_level int","'0'"
"W3XP_ffa_wins int","'0'"
"W3XP_ffa_losses int","'0'"
"W3XP_orcs_wins int","'0'"
"W3XP_orcs_losses int","'0'"
"W3XP_humans_wins int","'0'"
"W3XP_humans_losses int","'0'"
"W3XP_undead_wins int","'0'"
"W3XP_undead_losses int","'0'"
"W3XP_nightelves_wins int","'0'"
"W3XP_nightelves_losses int","'0'"
"W3XP_random_wins int","'0'"
"W3XP_random_losses int","'0'"
"W3XP_teamcount int","'0'"
"W3XP_userselected_icon varchar(16)","NULL"
"STAR_0_wins int","'0'"
"STAR_0_losses int","'0'"
"STAR_0_disconnects int","'0'"
"STAR_1_wins int","'0'"
"STAR_1_losses int","'0'"
"STAR_1_disconnects int","'0'"
"STAR_0_last_game int","'0'"
"STAR_0_last_game_result varchar(128)","NULL"
"STAR_1_last_game int","'0'"
"STAR_1_last_game_result varchar(128)","NULL"
"STAR_1_rating int","'0'"
"STAR_1_high_rating int","'0'"
"STAR_1_rank int","'0'"
"STAR_1_high_rank int","'0'"
"SEXP_0_wins int","'0'"
"SEXP_0_losses int","'0'"
"SEXP_0_disconnects int","'0'"
"SEXP_1_wins int","'0'"
"SEXP_1_losses int","'0'"
"SEXP_1_disconnects int","'0'"
"SEXP_0_last_game int","'0'"
"SEXP_0_last_game_result varchar(128)","NULL"
"SEXP_1_last_game int","'0'"
"SEXP_1_last_game_result varchar(128)","NULL"
"SEXP_1_rating int","'0'"
"SEXP_1_high_rating int","'0'"
"SEXP_1_rank int","'0'"
"SEXP_1_high_rank int","'0'"
[${prefix}clan]
"cid int NOT NULL PRIMARY KEY","'0'"
"short int","'0'"
"name varchar(30)","NULL"
"motd varchar(30)","NULL",
"creation_time int","'0'"
[${prefix}clanmember]
"uid int NOT NULL PRIMARY KEY","'0'"
"cid int","'0'"
"status int","'0'"
"join_time int","'0'"
[${prefix}arrangedteam]
"teamid int NOT NULL PRIMARY KEY","'0'"
"size int","0"
"clienttag varchar(8)","NULL"
"lastgame int","'0'"
"member1 int","'0'"
"member2 int","'0'"
"member3 int","'0'"
"member4 int","'0'"
"wins int","'0'"
"losses int","'0'"
"xp int","'0'"
"level int","'0'"
"rank int","'0'"

View file

@ -0,0 +1,64 @@
# this file determines the layout of the PvPGN SQL database
# the server will create the tables with their columns as specified in here
# don't forget to create the DB yourself
# no empty lines allowed, no whitespaces in front of any entries allowed
# file format:
# [name_of_a_table]
# "column_name with format infos","default value" [&& "sqlcommand to execute on success"] [|| "sqlcommand to execute on failure"]
# :"sqlcommand to execute" [&& "sqlcommand to execute on success"] [|| "sqlcommand to execute on failure"]
# you might also notice some variables of the form ${variable}. these are
# replaced with their meaning when the server starts
# ${prefix} is replaced with the configured table prefix from bnetd.conf/storage_path
#
# For the "sql2" SQL layout
#
[${prefix}BNET]
"uid int NOT NULL","'0'"
"name varchar(128) NOT NULL","''"
"value varchar(200) NOT NULL","''"
:"CREATE UNIQUE INDEX ${prefix}user ON ${prefix}BNET (uid,name)"
:"INSERT INTO ${prefix}BNET (uid, name, value) VALUES ('0', 'auth\normallogin', 'true')"
:"INSERT INTO ${prefix}BNET (uid, name, value) VALUES ('0', 'auth\changepass', 'true')"
:"INSERT INTO ${prefix}BNET (uid, name, value) VALUES ('0', 'auth\changeprofile', 'true')"
:"INSERT INTO ${prefix}BNET (uid, name, value) VALUES ('0', 'auth\botlogin', 'true')"
:"INSERT INTO ${prefix}BNET (uid, name, value) VALUES ('0', 'auth\command_groups' ,'1')"
[${prefix}friend]
"uid int NOT NULL","'0'"
"name varchar(128) NOT NULL","''"
"value varchar(200) NOT NULL","''"
:"CREATE UNIQUE INDEX ${prefix}friends ON ${prefix}friend (uid,name)"
[${prefix}profile]
"uid int NOT NULL","'0'"
"name varchar(128) NOT NULL","''"
"value varchar(200) NOT NULL","''"
:"CREATE UNIQUE INDEX ${prefix}profiles ON ${prefix}profile (uid,name)"
[${prefix}Record]
"uid int NOT NULL","'0'"
"name varchar(128) NOT NULL","''"
"value varchar(200) NOT NULL","''"
:"CREATE UNIQUE INDEX ${prefix}Records ON ${prefix}Record (uid,name)"
[${prefix}clan]
"cid int NOT NULL PRIMARY KEY","'0'"
"short int","'0'"
"name varchar(30)","NULL"
"motd varchar(30)","NULL",
"creation_time int","'0'"
[${prefix}clanmember]
"uid int NOT NULL PRIMARY KEY","'0'"
"cid int","'0'"
"status int","'0'"
"join_time int","'0'"
[${prefix}arrangedteam]
"teamid int NOT NULL PRIMARY KEY","'0'"
"size int","0"
"clienttag varchar(8)","NULL"
"lastgame int","'0'"
"member1 int","'0'"
"member2 int","'0'"
"member3 int","'0'"
"member4 int","'0'"
"wins int","'0'"
"losses int","'0'"
"xp int","'0'"
"level int","'0'"
"rank int","'0'"

View file

@ -0,0 +1,17 @@
# this file contains the names of all files that need to be installed in the filedir
# (but that aren't any longer part of the pvpgn package)
# some lines are commented out, cause they weren't installed by default in older versions
IX86ver1.mpq
#PMACver1.mpq
#WAR3IX86.mpq
#XMACver1.mpq
bnserver-D2DV.ini
#bnserver-D2XP.ini
bnserver-WAR3.ini
bnserver.ini
icons-WAR3.bni
icons.bni
icons_STAR.bni
matchmaking-war3-default.dat
matchmaking-war3-enUS.dat

2
pvpgn/conf/topics.conf Normal file
View file

@ -0,0 +1,2 @@
"Chat","This is the public chat channel. Feel free to chat..."
"Moderated Support","Support is provided in this channel..."

123
pvpgn/conf/tournament.conf Normal file
View file

@ -0,0 +1,123 @@
# Tournament Settings
#
# time format: quotes required:
#
# "MM/DD/YYYY HH:MM:SS"
start_preliminary = "08/01/2003 08:00:00"
end_signup = "08/01/2003 09:00:00"
end_preliminary = "08/01/2003 10:00:00"
start_round_1 = "08/01/2003 11:00:00"
start_round_2 = "08/01/2003 12:00:00"
start_round_3 = "08/01/2003 13:00:00"
start_round_4 = "08/01/2003 14:00:00"
tournament_end = "08/01/2003 15:00:00"
# game selection:
#
# PG = 1
# AT = 2
game_selection = 1
# game type:
#
# 1v1 = 1
# 2v2 = 2
# 3v3 = 3
# 4v4 = 4
game_type = 1
# game client:
#
# due to the fact RoC and FT clients can not play
# games together, tournaments must be specified
# for one or the other but not both
#
# RoC = 1
# FT = 2
game_client = 2
# available races: quotes required:
#
# H = Humans
# O = Orcs
# N = Night Elves
# U = Undead
# R = Random
races = "HONUR"
# Notice Format: quotes required:
format = "PvPGN 1v1 Tournament"
# Notice Sponsor: quotes required:
sponsor = "The PvPGN Team"
# Notice Icon: quotes required:
#-----------------------------------------------------------------#
# Frozen Throne # Reign of Chaos #
# R = Ramdom # R = Ramdom #
# 2 = Myrmidon # 2 = Green Dragon Whelp #
# 3 = Siren # 3 = Blue Dragon #
# 4 = Dragon Turtle # 4 = Red Dragon #
# 5 = Sea Witch # 5 = Deathwing #
# 6 = Illidan # #
# H = Human # H = Human #
# 2 = Rifleman # 2 = Footman #
# 3 = Sorceress # 3 = Knight #
# 4 = Spellbreaker # 4 = Archmage #
# 5 = Blood Mage # 5 = Medivh #
# 6 = Jaina # #
# O = Orcs # O = Orcs #
# 1 = Peon # 1 = Peon #
# 2 = Troll Headhunter # 2 = Grunt #
# 3 = Shaman # 3 = Tauren #
# 4 = Spirit Walker # 4 = Far Seer #
# 5 = Shadow Hunter # 5 = Thrall #
# 6 = Rexxar # #
# U = Undead # U = Undead #
# 2 = Crypt Fiend # 2 = Ghoul #
# 3 = Banshee # 3 = Abomination #
# 4 = Destroyer # 4 = Lich #
# 5 = Crypt Lord # 5 = Tichondrius #
# 6 = Sylvanas # #
# N = Night Elves # N = Night Elves #
# 2 = Huntress # 2 = Archer #
# 3 = Druid of the Talon # 3 = Druid of the Claw #
# 4 = Dryad # 4 = Priestess of the Moon #
# 5 = Keeper of the Grove # 5 = Furion Stormrage #
# 6 = Maiev # #
# D = Demons # #
# 2 = Felguard # #
# 3 = Infernal # #
# 4 = Doomguard # #
# 5 = Pit Lord # #
# 6 = Archimonde # #
# # #
# W3XP = Frozen Throne Icon # WAR3 = Reign of Chaos Icon #
#-----------------------------------------------------------------#
icon = "R4"
# Thumbs down limit:
thumbs_down = 0
# Maps section:
#
# all maps used for tournaments must be included between [MAPS] & [ENDMAPS]
# DO NOT use quotes around client tag or map name in this section
[MAPS]
WAR3 Maps\(8)Battleground.w3m
WAR3 Maps\(8)PlainsOfSnow.w3m
WAR3 Maps\(8)BloodvenomFalls.w3m
WAR3 Maps\(8)GardenOfWar.w3m
W3XP Maps\FrozenThrone\(8)Mur'gulOasis.w3x
W3XP Maps\FrozenThrone\(8)PlainsOfSnow.w3x
W3XP Maps\FrozenThrone\(8)RockQuarry.w3x
W3XP Maps\FrozenThrone\(8)Sanctuary.w3x
[ENDMAPS]

2063
pvpgn/conf/versioncheck.conf Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,85 @@
PvPGN Win32 Borland Compile Instructions
This file explains how to compile PvPGN for Win32 using Borland C++ Compiler 5.5
1) Download Borland C++ Compiler 5.5 (BCC32) from one of the folling sites:
ftp://ftpd.borland.com/download/bcppbuilder/freecommandLinetools.exe
http://altd.borland.com/download/bcppbuilder/freecommandLinetools.exe
2) Install the tools to a directory, e.g. c:\program files\borlandc\ (this will be used as an example in the following)
3) Go to the /bin subdirectory, e.g. c:\program files\borlandc\bin
4) Create a file named bcc32.cfg and insert the following two lines:
-I"c:\program files\borlandc\Include"
-L"c:\program files\borlandc\Lib;c:\program files\borlandc\Lib\PSDK"
(replace c:\program files\borlandc\ with your own borland path of course)
5) Create a file named ilink32.cfg and insert the following line:
-L"c:\program files\borlandc\Lib;c:\program files\borlandc\Lib\PSDK"
(replace c:\program files\borlandc\ with your own borland path of course)
Those two files are required by the compiler to find the Lib and Include directory...
6) Now you're ready to compile the server.
Open a command prompt, go to the Win32-Projects directory.
To build all apps as console apps (recommended for running as a service): make_borland
To build GUI versions of bnetd, d2cs and d2dbs: make_borland -DWITH_GUI
The resulting exe file will be in the sbin directory and you can use it with the other files from the latest PvPGN release.
Notes about CDB Support:
------------------------
To add support for CDB file storage add -DWITH_CDB to the command line options
Notes about MYSQL Support:
--------------------------
First of all u need to add a subfolder src/mysql/ where u add the header files from your favorite mySQL release.
If you wish to compile with MYSQL support, run "make_borland -DWITH_SQL_MYSQL" in src directory.
Note that libmySQL.lib does not work with borland compilers, so we converted it using the borland tool
COFF2OMF libmySQL.lib libmySQL_bc.lib
You might want to do the same if you want to have a current lib file, alternatively you can create the lib from the dll:
IMPLIB libmysql_bc.lib libmysql.dll
Note that we're working with VS.NET mostly so there might still be borland-related bugs.

View file

@ -0,0 +1,32 @@
PvPGN Win32 Dev-C++ Compile Instructions
This file explains how to compile PvPGN for Win32 using Dev-C++ ( 5.0 beta 9 (4.9.9.0) )
1) Download Dev-C++ 5.0 beta 9 (4.9.9.0) with Mingw/GCC 3.3.1 from the folling sites:
http://prdownloads.sourceforge.net/dev-cpp/devcpp4990setup.exe
2) Install Dev-C++ in a folder without any spaces in the path
3) Go into the Win32-Projects folder of the PvPGN sources
Simply double-click on any of the *.dev files to fire up Dev-C++ and use Execute->Compile to build the binary
3) The resulting exe file will be in the bin directory and you can use it with the other files from the latest PvPGN release.
Notes for MYSQL Support:
mySQL support with Dev-C++ still unsupported/untested
Notes for GUI Support:
We won't support building a GUI version with Dev-C++
Common problems and Solutions:
==============================
Fatal: 'all-before' does not exist - don't know how to make it:
----------------------------------------------------------------
That happens when the wrong make.exe is invoked, usually the Borland one. It will usually leave a copyright notice in your compile log.
How to fix it? add the bin folder of your Dev-C++ (or MinGW) installation to the PATH environment variable, before any Borland path that might be there
For more details check: http://www14.brinkster.com/aditsu/dev-cpp-faq.html#allbefore
Complains about not being able to create Makefile or 'no rule to make target all':
-----------------------------------------------------------------------------------
Check size of pvpgn\src\win32\Makefile.win
If it's 0 bytes quit Dev-C++, delete the file and try to compile again

View file

@ -0,0 +1,18 @@
PvPGN Win32 VS.Net Compile Instructions
Compiling WITHOUT mySQL support:
- edit the PvPGN project properties:
-- C/C++ -> Preprocessor -> Preprocessor definitions: remove the ";WITH_SQL_MYSQL" part of the line
-- Linker -> command line: remove " libmysql.lib" part of the line
- compile
Compiling WITH mySQL support:
- add a subfolder src/mysql/
- copy the header files from your favorite mySQL version to this folder
- copy libmysql.lib from your favorite mySQL version into src/win32
- compile
- make sure to provide the "libmysql.dll" from your chosen mySQL version along with the PvPGN exe
Downgrade notes (to 2002 (version 7.00)):
- open sln file with an editor, change 8.00 to 7.00
- open project file with an editor, change 7.10 to 7.00

8
pvpgn/docs/INDEX Normal file
View file

@ -0,0 +1,8 @@
- README.storage : how to use PvPGN with the various storage drivers (MySQL,
PGSQL, cdb, files etc..)
- INSTALL.unix : how to compile and install on Unix/POSIX operating systems
- FAQ : frequently asked questions
- Compile.Instructions.Win32.Borland.txt : as the filename says
- Compile.Instructions.Win32.VS.Net.txt : same for this one
- PORTS : PvPGN porting status file, check to see if your platform/operating
system is supported

64
pvpgn/docs/INSTALL.unix Normal file
View file

@ -0,0 +1,64 @@
PvPGN Install instructions for the Linux/Unix version
-------------------------------------------------------
1. First get your hands on a PvPGN source tarball or a binary package (RPM/etc).
If you got the source follow instructions bellow, if you got a binary package
jump to step 4. If you get the source you will also need to fetch the support
files package.
2. Unpack the source tarball, change current directory to the source directory
(ex. pvpgn-<version>/src) and run configure. You will need to provide configure
with your custom options, ex.
./configure --prefix=<path>
It will configure the source distribution to compile and install in the <path>
location.
./configure --with-mysql
It will configure the source distribution to compile with MySQL support (in
it just tells configure to try to find mysql libs/includes, if it doesnt it
WONT compiled MySQL support; read README.MySQL for more details).
Check using ./configure --help for all available options.
3. Compile and install PvPGN using
*** NOTE ***
you need to use GNU make to compile PvPGN (ie under linux this is
just "make" but under *BSD it is usually named "gmake")
************
$ make
$ make install
WARNING !! make install it will also overwrite the configuration files. Make a
backup of them before doing "make install" (read more about this in the UPDATE
file).
Next thing to do is to unpack the support files package in the "files"
directory of your installed pvpgn (look where pvpgn has installed and search
for a "files" directory, you need to unpack there the support files).
Now you just need to edit the config files and adjust them acording to your
system. Have fun!
4. (only for binary PvPGN distributions)
Depending on the type of package you have obtained (ex RPM, deb, tgz) you will
have to install the package using the right package tool.
Examples:
$ rpm -ivh pvpgn-<ver>.rpm
or
$ installpkg pvpgn-<ver>.tgz
or
$ dpkg -i pvpgn-<ver>.deb
After you install the binary package you will need to adjust PvPGN configuration
files (usually installed in /etc/pvpgn dir). Have fun!

27
pvpgn/docs/PORTS Normal file
View file

@ -0,0 +1,27 @@
PvPGN porting status file
===========================
Arch. | Operating System | Status | Compilers | Comments
------------------------------------------------------------------
x86 | Linux 2.6.x | OK | gcc,tcc,icc | main dev. platform
x86 | Linux 2.4.x | OK | gcc,icc | sec. dev. platform
x86 | WIN32 | OK | bcc,mingw,vc| tested
x86 | FreeBSD 4.x | OK | gcc | tested
x86 | FreeBSD 5.x | OK | gcc | tested (use FBSD >=5.2.1)
x86 | BeOS R4 /w BONE | OK | gcc | tested
x86 | OpenBSD 3.x | OK | gcc | tested
x86 | NetBSD 2.x/3.x | OK | gcc | tested
x86_64 | Linux 2.6.x | OK | gcc | tested (pvpgn >= 1.6.3)
sparc64| SunOS 5.9 | OK | gcc | tested
PPC G3 | Mac OS X 10.2.x | OK | gcc | tested
PPC G3 | Mac OS X 10.3.x | OK | gcc | tested
PPC G4 | Mac OS X 10.2.x | OK | gcc | tested
PPC G4 | Mac OS X 10.3.x | OK | gcc | tested
Alpha | Linux 2.6.x | OK | gcc | tested
Notes:
- clearly x86 is the most tested version
- the platforms/operating systems not listed have not been tested or they did
not came to our attention however, any POSIX system should work just fine
- please report to us any platform/OS you use pvpgn on and not listed here

140
pvpgn/docs/README.fdwatch Normal file
View file

@ -0,0 +1,140 @@
PvPGN Abstract socket event notification API ie fdwatch
v.01 (C) 2003 Dizzy <>
1. The problem:
I wanted to design and implement a general API to have PvPGN inspect
socket status (read/write availability) in the best possible way that the
host OS may offer (select()/poll()/kqueue()/epoll()/etc..).
Also the old PvPGN code to do such things was doing them in a very
slow way, especially if the system was using poll() (which was the default
with most Unices). When the server started to have lots of active connections
the CPU used in PvPGN to inspect and handle them was increasing very much (the
code complexity of the code executed each main loop run was of O(n^2) complexity,
where n is the number of connections to the server, and the main loop is cycling
at least 1000/BNETD_POLL_INTERVAL times per second ie at least 50 times per second).
2. The fdwatch API:
I started by reading the fdwatch code from the thttpd project, I used the
ideeas found on that code as a start point, but I got much far from those :).
The fdwatch API is described in fdwatch.h as follows:
extern int fdwatch_init(void);
extern int fdwatch_close(void);
extern int fdwatch_add_fd(int fd, t_fdwatch_type rw, fdwatch_handler h, void *data);
extern int fdwatch_update_fd(int fd, t_fdwatch_type rw);
extern int fdwatch_del_fd(int fd);
extern int fdwatch(long timeout_msecs);
extern int fdwatch_check_fd(int fd, t_fdwatch_type rw);
extern void fdwatch_handle(void);
The name of the functions should be self explanatory to what those functions
do.
3. The changed code flow:
A. the code flow before fdwatch
- main() calls server_process()
- server_process() after doing some single time initializations, entered
the main loop
- in the main loop after handing the events it starts to prepare the sockets
for select/poll
- it starts a loop cycling through each address configured in bnetd.conf
to listen on them and adds their sockets to the socket inspection list
- after this, it does a O(n) cycle where it populates the socket inspection list
with the sockets of every t_connection the server has (read availability)
- if any of this t_connections have packets in the outqueue (they need to
send data) then the sockets are also added for write availability
- then pvpgn calls select()/poll() on the socket inspection list
- after the syscall returns, pvpgn cycles through each address configured
in bnetd.conf and checks if they are read available (if a new connection
is to be made)
- pvpgn doesnt want to accept new connections when in shutdown phase but
it did it the wrong way: it completly ignored the listening sockets if
in shutdown phase, this made that once a connection was pending while in
shutdown phase, select/poll imediatly returns because it has it in the read
availability list and thus pvpgn was using 99% cpu while in shutdown phase
- anyway, after this, pvpgn does a O(n) cycle through each t_connection to
check if its socket is read/write available
- problem is that when it was using poll() (the common case on Unices) to
check if a socket was returned as read/write available by poll() it was
using another O(n) function thus making the total cycle of O(n^2)
- while cycling through each connection to inspect if its socket was
returned available by select/poll , pvpgn also checks if the connection
is in destroy state (conn_state_destroy) and if so it destroys it
B. the code flow after fdwatch
- I have tried to get every bit of speed I could from the design, so some
things while it may look complex they have the reason of speed behind
- just like the old code flow main calls server_process()
- here pvpgn does some single time initializations
- different than before, here, in the single time intializations code I also
add the listening sockets to the fdwatch socket inspection list (also
the code will need to update this list when receiving SIGHUP)
- then pvpgn enters main server loop
- the code first treats any received events (just like the old code)
- then it calls fdwatch() to inspect the sockets state
- then it calls conn_reap() to destroy the conn_state_destroy connections
- then it calls fdwatch_handle() to cycle through each ready socket and handle
its changed status
This is it! :)
No cycles, no O(n^2), not even a O(n) there (well in fact there is something
similar to a O(n) inside fdwatch() but about that read bellow).
FAQ:
1. Q: but where do the new connections get into the fdwatch inspection
list ?
A: they get in there when they are created, that means in the
function sd_accept() from server.c
the reason is: why add the connection sockets each time before poll() when the
event of having a new connection, so a new socket to inspect is very very rare
compared to the number of times we call select/poll).
2. Q: where are the connections removed from the fdwatch inspection list ?
A: where they should be, in conn_destroy() just before calling close() on the
socket
3. Q: where do we manifest our interest for write availability of a socket if
we have data to send to it ?
A: in conn_push_outuque. the ideea is if we got data to send, ok update fdwatch
socket inspection list to look for write availability of the socket where we
need to send data
4. Q: what does fdwatch() do ?
A: depending on the chosen backend it calls select or poll, or kqueue etc...
For some backends it has to do some work before calling the syscall. Ex. for
select() and poll() it needs to copy from a template list of sockets to inspect
to the actual working set. The reason why depends on the backend but it really is
a limitation of the how the syscall works and there is nothing pvpgn that can be
made to not do that. For example in the poll backend, one might argue that
instead of updating a template and copy it to a working array before each poll(),
we should update the working set. But that also means that before calling poll(),
we must set all "revents" field of each fd_struct to 0 , and my tests show that
a cycle through 1000 elements of poll fd structs setting revents to 0 is 5 times
slower than using a memcpy() to copy the whole array from a source.
5. Q: what does conn_reap() do ?
A: to get the maximum from each possible backend (kqueue was the main reason here)
I moved the cycling through each ready socket and calling the handling function
for it, outside server.c and inside fdwatch backends. Because the old code used
that cycle from server.c to also check if connections are dead and need destroyed
I had to find another way to do it. The best way I found was to have in connection.c
besides the connlist, another list, conn_dead, which will contain the current
connections which have the state set to conn_set_state. Then conn_reap() just
cycles through each element of conn_dead and destroys them. This was the fastest
solution I could find out.
6. Q: what does fdwatch_handle() do ?
A: it calls the backend's handle function. To get the max from each backend I
had to move the handling cycle as a backend specific function. In general this
functions cycle through each socket which was returned ready by the last
fdwatch() call, and calls the handler function (which was set when the socket
was added to the socket inspection list) giving it arguments a void * parameter
(also set when socket was added to the inspection list), and the type of readiness
(read/write). Currently, pvpgn has 3 possible handlers: handle_tcp, handle_udp
and handle_accept. Each of this calls acordingly sd_accept, sd_tcpinput,
sd_tcpoutput, sd_udpinput (UDP sends are done directly, not queueing them and
checking for socket readiness to write, maybe this is another bug ?)

164
pvpgn/docs/README.storage Normal file
View file

@ -0,0 +1,164 @@
PvPGN storage configuration README File
-----------------------------------------
1. What is this "storage" ?
"storage" is what we call in PvPGN the way to save account files data
(usernames, passwords, many other stuff). Thus it is a very important part of
PvPGN and can drastically improve speed of the server depending on the chosen
method. Because we wanted to be easy to add new storage types we designed a
modular solution, like this:
<pvpgn account code> (mostly in bnetd/account.c)
|
|
<general storage code> (mostly wrappers, in bnetd/storage.c)
/ \
/ \
/ \
<file> <sql> (bnetd/storage_filc, bnetd/storage_sql.c)
/\ /\
/ \ / \
/ \ / \
<plain> <cdb> <mysql> <pgsql>
Thus PvPGN can be compiled with support for more than one storage type but
(of course) at runtime it will only use one (as chosen by the server admin
from the configuration file).
2. First you will need to make sure your PvPGN version has support
compiled in for the type of storage you want to use.
2.1 file (plain and cdb)
"file" storage support means to store accounts data directly in files in either
plain text files or cdb files (but its easy to add any other support in the
future) and is compiled by default, chosen by default (with the "plain" mode)
in configuration file (and the oldest and most used storage type).
The only advantages of the plain files storage type are that the account files
beeing human readable text are easy to read/write. It has the drawback of
beeing the slowest one.
Starting with PvPGN version 1.6.0 (and their prereleases) we offer "cdb"
userfiles support. For who dont know, cdb is a constant non-relational
database. We included and adapted code from the tinycdb project to achieve this.
Because cdb doesnt have any external dependencies and is pretty stable it is
(as the "file" driver) compiled by default. It has the advantage of potentially
beeing a lot faster than "file" storage driver (I say potentially because at
this moment there are other things in the code which make cdb slow almost as
plain files, but this things will get soon fixed). It has the drawback of having
to use a separate tool to read/write this files outside PvPGN.
2.2 MySQL/PGSQL
For unix if you compiled your own source you need to add --with-mysql or
--with-pgsql to configure command line (read INSTALL.unix for general UNIX
installation details). Even if you give configure --with-mysql/--with-pgsql
parameter it will NOT compile MySQL/PGSQL support if it doesnt detect the
MySQL/PGSQL includes and libraries. Check the configure output where it detects
the mysql/pgsql paths, it should find the right locations of your MySQL/PGSQL
includes and libs.
If you got binary unix packages you will need to know if the packet you got
was compiled with MySQL/PGSQL support (ex a MySQL rpm file should have "mysql"
in the name of file).
A more general way to tell if you have a PvPGN with MySQL/PGSQL on Unix is to
use the "ldd" command on the "bnetd" file (the main PvPGN server daemon) and see
if the output shows usage of the SQL library (libmysqlclient for MySQL, libpq
for PGSQL).
If you got a binary Windows package/installer just check from where you got it
if it tells you if it has MySQL/PGSQL support or not.
No matter on what OS you are and how you got PvPGN, when you run PvPGN it will
log a message like this:
Nov 26 16:07:20 [info ] storage_init: initializing storage layer (available drivers: file, cdb, mysql)
If in the list of available drivers you see mysql/pgsql then all is fine.
3. Even if your PvPGN has support for your chosen storage driver compiled in
(you see it in the list of available drivers from above) you will need to
configure PvPGN and tell to use your chosen storage type (default PvPGN uses
plain files, the "file" driver).
You will need to locate the file bnetd.conf and edit it (note that in the
configuration files all characters that follows a first # character on a line
are ignored, they are comments). Find the line storage_path (which is not
commented) in the bnetd.conf file. Edit it to use your chosen storage type as
in the examples in the config file which I paste them here:
Syntax:
- for plain file driver:
storage_path = file:dir=<path_to_user_files>;clan=<path_to_clan_files>;default=/path/to/default/account
- for cdb file driver:
storage_path = cdb:dir=<path_to_cdb_files>;clan=<path_to_clan_files>;default=/path/to/default/account
- for sql driver:
storage_path = sql:variable=value;...;default=0 (0 is the default uid)
The "sql" variables can be:
- "mode" : tells PVPGN the sql mode you will use (mysql/pgsql/etc..)
- "host" : the database host
- "port" : the TCP/IP port if needed
- "socket" : the UNIX local socket if needed
- "name" : database name
- "user" : db username
- "pass" : db password
Examples:
storage_path = file:dir=/usr/local/pvpgn/var/users;clan=/usr/local/pvpgn/var/clans;default=/usr/local/pvpgn/etc/bnetd_default_user
storage_path = cdb:dir=/usr/local/pvpgn/var/userscdb;clan=/usr/local/pvpgn/var/clanscdb;default=/usr/local/pvpgn/etc/bnetd_default_user.cdb
storage_path = sql:mode=mysql;host=127.0.0.1;name=PVPGN;user=pvpgn;pass=pvpgnrocks;default=0
storage_path = sql:mode=pgsql;host=127.0.0.1;name=pvpgn;user=pvpgn;pass=pvpgnrocks;default=0
3. Start PvPGN. If all is well you should see a line similare to the one bellow
in your pvpgn logs:
Nov 26 16:07:20 [info ] storage_init: using <driver> storage driver
where <driver> is your chosen storage driver.
4. Troubleshooting:
Q: I am compiling the UNIX source and using ./configure --with-mysql but somehow
I dont see from configure output that it detects the MySQL libs and includes
A. Did you installed MySQL devel package (on some systems is separate from the
main MySQL package) ? locate the following files on your system
$ locate mysql.h
$ locate libmysqlclient.so
$ locate libmysqlclient.a
If you dont have mysql.h and one at least of the libmysqlclient.so or
libmysqlclient.a then you should install them (ask your local linux community
how).
Q: I dont see mysql in the available drivers list in the log ?
A: That means your PvPGN has no MySQL support compiled in. Go to step 2 of this
document.
Q: I see something like this in the logs "no known driver specified(sql)", what
does it mean ?
A: Just like the previous question, means your PvPGN has no MySQL support
compiled in. Go to step 2 of this document.
Q: I see something like this in the logs "no known driver specified(<text>)",
where <text> is not the driver I want, what should I do ?
A: Somehow you did not configured in bnetd.conf to use your chosen driver .
Please see step 3 of this document. Make sure to have a SINGLE UNCOMMENTED
storage_path line (a SINGLE line which starts with storage_path and which DOESNT
have a # character in front of it)
Q: I see sql in the list of available drivers but I get an error "error
connecting to database" in the logs.
A: You did not configured properly the <dbhost>, <dbname>, <dbuser>, <dbpass>
from step 3 of this document OR your db server has a problem (is it started ?
is it firewalled ? did you gave the right privileges to <dbuser> sql user ? etc)

21
pvpgn/docs/bnmotd.txt Normal file
View file

@ -0,0 +1,21 @@
Here is a short note of how to use and configure the conf/bnmotd.txt
- all lines have to start with %I
- possible parameters that can be used:
-- %a = number of registered accounts on the server
-- %c = number of currently existant channels
-- %g = total number of currently running games
-- %G = games of users with same clienttag.
-- %h = hostname of the server
-- %H = contact name (as set in bnetd.conf)
-- %i = userid of the user
-- %l = username
-- %N = name of the game the user has connected with.
-- %m = check users mail when they login
-- %r = IP of the user
-- %s = the servername
-- %t = clienttag of the user
-- %u = number of users currently logged in
-- %U = users logged in with the same clienttag
-- %v = server version
--

BIN
pvpgn/files/ad000001.mng Normal file

Binary file not shown.

BIN
pvpgn/files/ad000001.smk Normal file

Binary file not shown.

BIN
pvpgn/files/ad000002.mng Normal file

Binary file not shown.

BIN
pvpgn/files/ad000003.mng Normal file

Binary file not shown.

BIN
pvpgn/files/ad000004.mng Normal file

Binary file not shown.

BIN
pvpgn/files/ad000075.mng Normal file

Binary file not shown.

View file

@ -0,0 +1,15 @@
PvPGN Bnet Emulation Chat Help Commands
New Commands:
use /f help for a friend lists help
use /users to view users online
use /w or /msg <username> to whisper people
use /join <channel> to join a channel
For Chan Ops:
use /ban <username> bans a user from channel
use /kick <username> kicks a user from channel
For a more detailed help type: /help

View file

@ -0,0 +1,15 @@
PvPGN Bnet Emulation Chat Help Commands
New Commands:
use /f help for a friend lists help
use /users to view users online
use /w or /msg <username> to whisper people
use /join <channel> to join a channel
For Chan Ops:
use /ban <username> bans a user from channel
use /kick <username> kicks a user from channel
For a more detailed help type: /help

View file

@ -0,0 +1,15 @@
Commandes d'aides du salon de discussions de PvPGN(serveur Emulateur Bnet)
Nouvelles commandes:
utiliser /f pour afficher la liste d'amis
utiliser /users pour voir les utilisateur en ligne
utiliser /w ou /msg <utilisateur> pour chuchoter a une personne
utiliser /join <canal> pour joindre un canal de discussions
Pour les opérateurs du canal:
utiliser /ban <utilisateur> banni l'utilisateur du canal de discussions
utiliser /kick <utilisateur> pour sortir un utilisateur du canal de discussions
pour une aide plus détaillé taper: /help

View file

@ -0,0 +1,15 @@
PvPGN Bnet Emulation Chat Help Commands
Новые команды:
наберите /f help для вызова справки списке друзей
наберите /users для просмотра пользоватей в онлайне
наберите /w или /msg <имяпользователя> для личного сообщения
наберите /join <канал> для присоединения к каналу
Для операторов каналов:
наберите /ban <имяпользователя> чтобы забанить игрока на данном канале
наберите /kick <имяпользователя> чтобы выкинуть пользователя с этого канала
Для дальнейшей помощи наберите: /help

View file

@ -0,0 +1,15 @@
PvPGN模拟战网聊天命令帮助
新命令:
使用 /f help 显示朋友命令帮助
使用 /users 显示在线玩家数
使用 /w 或者 /msg <玩家名称> 发送消息给玩家
使用 /join <频道> 加入指定的频道
频道管理员:
使用 /ban <玩家名称> 把玩家从该频道中踢出,并禁止玩家再次进入此频道
使用 /kick <玩家名称> 把玩家从该频道中踢出
更多的帮助:输入/help

View file

@ -0,0 +1,21 @@
You are currently connected to a PvPGN Server (Player -vs- Player Gaming Network)
PvPGN TERMS OF USE:
PvPGN is a Battle.net(R) emulation server and in no way affiliated with bnetd, warforge, or Blizzard Entertainment(R).
PvPGN is provided "as is" without warrenties of any kind.
We do not support the idea of Pirated software and urge you to purchase a legit copy of any games that you play on our servers.
1. Information found on PvPGN.
PvPGN does not endorse or stand behind the accuracy, truthfulness or reliability of any information (including statements of opinion or advice) provided on or by means of PvPGN. Any and all statements made in forums, chat or during game play reflect only the views of their author.
2. Disclaimer of Warrenty.
PvPGN is provided to you "as is" without warrenty of any kind. PvPGN does not warrent that their programm will be uninterrupted or error free.
3. Limitations of Liability
PvPGN is in no way liable for loss or damage of any kind resulting from the use of PvPGN, including but not limited to, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other damages or losses, commercial or otherwise.
Battle.net(R) and Blizzard Entertainment(R) are trademarks or registered trademarks of Blizzard Entertainment in the U.S. and/or other countries.
Besides all this... Happy gaming..
PvPGN Project Page: http://pvpgn.berlios.de/

View file

@ -0,0 +1,21 @@
You are currently connected to a PvPGN Server (Player -vs- Player Gaming Network)
PvPGN TERMS OF USE:
PvPGN is a Battle.net(R) emulation server and in no way affiliated with bnetd, warforge, or Blizzard Entertainment(R).
PvPGN is provided "as is" without warrenties of any kind.
We do not support the idea of Pirated software and urge you to purchase a legit copy of any games that you play on our servers.
1. Information found on PvPGN.
PvPGN does not endorse or stand behind the accuracy, truthfulness or reliability of any information (including statements of opinion or advice) provided on or by means of PvPGN. Any and all statements made in forums, chat or during game play reflect only the views of their author.
2. Disclaimer of Warrenty.
PvPGN is provided to you "as is" without warrenty of any kind. PvPGN does not warrent that their programm will be uninterrupted or error free.
3. Limitations of Liability
PvPGN is in no way liable for loss or damage of any kind resulting from the use of PvPGN, including but not limited to, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other damages or losses, commercial or otherwise.
Battle.net(R) and Blizzard Entertainment(R) are trademarks or registered trademarks of Blizzard Entertainment in the U.S. and/or other countries.
Besides all this... Happy gaming..
PvPGN Project Page: http://pvpgn.berlios.de/

BIN
pvpgn/files/newbie.save Normal file

Binary file not shown.

View file

@ -0,0 +1,21 @@
You are currently connected to a PvPGN Server (Player -vs- Player Gaming Network)
PvPGN TERMS OF USE:
PvPGN is a Battle.net(R) emulation server and in no way affiliated with bnetd, warforge, or Blizzard Entertainment(R).
PvPGN is provided "as is" without warrenties of any kind.
We do not support the idea of Pirated software and urge you to purchase a legit copy of any games that you play on our servers.
1. Information found on PvPGN.
PvPGN does not endorse or stand behind the accuracy, truthfulness or reliability of any information (including statements of opinion or advice) provided on or by means of PvPGN. Any and all statements made in forums, chat or during game play reflect only the views of their author.
2. Disclaimer of Warrenty.
PvPGN is provided to you "as is" without warrenty of any kind. PvPGN does not warrent that their programm will be uninterrupted or error free.
3. Limitations of Liability
PvPGN is in no way liable for loss or damage of any kind resulting from the use of PvPGN, including but not limited to, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other damages or losses, commercial or otherwise.
Battle.net(R) and Blizzard Entertainment(R) are trademarks or registered trademarks of Blizzard Entertainment in the U.S. and/or other countries.
Besides all this... Happy gaming..
PvPGN Project Page: http://pvpgn.berlios.de/

View file

@ -0,0 +1,21 @@
You are currently connected to a PvPGN Server (Player -vs- Player Gaming Network)
PvPGN TERMS OF USE:
PvPGN is a Battle.net(R) emulation server and in no way affiliated with bnetd, warforge, or Blizzard Entertainment(R).
PvPGN is provided "as is" without warrenties of any kind.
We do not support the idea of Pirated software and urge you to purchase a legit copy of any games that you play on our servers.
1. Information found on PvPGN.
PvPGN does not endorse or stand behind the accuracy, truthfulness or reliability of any information (including statements of opinion or advice) provided on or by means of PvPGN. Any and all statements made in forums, chat or during game play reflect only the views of their author.
2. Disclaimer of Warrenty.
PvPGN is provided to you "as is" without warrenty of any kind. PvPGN does not warrent that their programm will be uninterrupted or error free.
3. Limitations of Liability
PvPGN is in no way liable for loss or damage of any kind resulting from the use of PvPGN, including but not limited to, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other damages or losses, commercial or otherwise.
Battle.net(R) and Blizzard Entertainment(R) are trademarks or registered trademarks of Blizzard Entertainment in the U.S. and/or other countries.
Besides all this... Happy gaming..
PvPGN Project Page: http://pvpgn.berlios.de/

View file

@ -0,0 +1,21 @@
You are currently connected to a PvPGN Server (Player -vs- Player Gaming Network)
PvPGN TERMS OF USE:
PvPGN is a Battle.net(R) emulation server and in no way affiliated with bnetd, warforge, or Blizzard Entertainment(R).
PvPGN is provided "as is" without warrenties of any kind.
We do not support the idea of Pirated software and urge you to purchase a legit copy of any games that you play on our servers.
1. Information found on PvPGN.
PvPGN does not endorse or stand behind the accuracy, truthfulness or reliability of any information (including statements of opinion or advice) provided on or by means of PvPGN. Any and all statements made in forums, chat or during game play reflect only the views of their author.
2. Disclaimer of Warrenty.
PvPGN is provided to you "as is" without warrenty of any kind. PvPGN does not warrent that their programm will be uninterrupted or error free.
3. Limitations of Liability
PvPGN is in no way liable for loss or damage of any kind resulting from the use of PvPGN, including but not limited to, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other damages or losses, commercial or otherwise.
Battle.net(R) and Blizzard Entertainment(R) are trademarks or registered trademarks of Blizzard Entertainment in the U.S. and/or other countries.
Besides all this... Happy gaming..
PvPGN Project Page: http://pvpgn.berlios.de/

21
pvpgn/files/tos.txt Normal file
View file

@ -0,0 +1,21 @@
You are currently connected to a PvPGN Server (Player -vs- Player Gaming Network)
PvPGN TERMS OF USE:
PvPGN is a Battle.net(R) emulation server and in no way affiliated with bnetd, warforge, or Blizzard Entertainment(R).
PvPGN is provided "as is" without warrenties of any kind.
We do not support the idea of Pirated software and urge you to purchase a legit copy of any games that you play on our servers.
1. Information found on PvPGN.
PvPGN does not endorse or stand behind the accuracy, truthfulness or reliability of any information (including statements of opinion or advice) provided on or by means of PvPGN. Any and all statements made in forums, chat or during game play reflect only the views of their author.
2. Disclaimer of Warrenty.
PvPGN is provided to you "as is" without warrenty of any kind. PvPGN does not warrent that their programm will be uninterrupted or error free.
3. Limitations of Liability
PvPGN is in no way liable for loss or damage of any kind resulting from the use of PvPGN, including but not limited to, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other damages or losses, commercial or otherwise.
Battle.net(R) and Blizzard Entertainment(R) are trademarks or registered trademarks of Blizzard Entertainment in the U.S. and/or other countries.
Besides all this... Happy gaming..
PvPGN Project Page: http://pvpgn.berlios.de/

View file

@ -0,0 +1,21 @@
You are currently connected to a PvPGN Server (Player -vs- Player Gaming Network)
PvPGN TERMS OF USE:
PvPGN is a Battle.net(R) emulation server and in no way affiliated with bnetd, warforge, or Blizzard Entertainment(R).
PvPGN is provided "as is" without warrenties of any kind.
We do not support the idea of Pirated software and urge you to purchase a legit copy of any games that you play on our servers.
1. Information found on PvPGN.
PvPGN does not endorse or stand behind the accuracy, truthfulness or reliability of any information (including statements of opinion or advice) provided on or by means of PvPGN. Any and all statements made in forums, chat or during game play reflect only the views of their author.
2. Disclaimer of Warrenty.
PvPGN is provided to you "as is" without warrenty of any kind. PvPGN does not warrent that their programm will be uninterrupted or error free.
3. Limitations of Liability
PvPGN is in no way liable for loss or damage of any kind resulting from the use of PvPGN, including but not limited to, loss of goodwill, work stoppage, computer failure or malfunction, or any and all other damages or losses, commercial or otherwise.
Battle.net(R) and Blizzard Entertainment(R) are trademarks or registered trademarks of Blizzard Entertainment in the U.S. and/or other countries.
Besides all this... Happy gaming..
PvPGN Project Page: http://pvpgn.berlios.de/

92
pvpgn/man/bnbot.1 Normal file
View file

@ -0,0 +1,92 @@
.\"
.\" Copyright (C) 2000 Ross Combs (ross@bnetd.org)
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH BNBOT 1 "11 June, 2000" "BNETD" "BNETD User's Manual"
.SH NAME
bnbot \- Battle.net text-based chat bot client
.SH SYNOPSIS
.B bnbot
[\fIoptions\fP]
\fIservername\fP
[\fIserverport\fP]
.SH DESCRIPTION
.B bnbot
is a simple program which will allow communication through the bot protocol of a
Battle.net server from the command line. Input from stdin is sent to the server and
output from the server is send to stdout. The interface is so simple that
.BR telnet (1)
could be used. The only complicating factor is that a control-C character must be sent
to the server before any other input.
.LP
It is hoped that this program can be used with a scripting language like
.BR expect (1)
to make creation of chat bots for Unix easier. To date, I don't know of anyone doing
this. This program may also be used to test bot login permissions for accounts.
.LP
If no \fIservername\fP is specified, localhost is assumed. If no \fIserverport\fP is
specified, 6112 is assumed.
.SH OPTIONS
.TP
.B \-h --help --usage
Print usage information and exit.
.TP
.B \-v --version
Print its version number and exit.
.SH NOTES
The current version is available with the bnetd distribution at:
.LP
.RS
.I http://www.bnetd.org/
.RE
.SH BUGS
The terminal settings are not consulted for keybindings. The following are assumed:
.TP
^H
delete the character to the left of the cursor
.TP
^J
accept current line
.TP
^M (return)
accept current line
.TP
^T
transpose the last two characters
.TP
^W
delete word to the left of the cursor
.TP
^U
delete the whole input line
.TP
^[ (escape)
cancel the current input line
.TP
^? (delete)
delete the character to the left of the cursor
.SH "SEE ALSO"
.BR bnetd (1),
.BR bnchat (1)
.SH AUTHOR
.TP
Ross Combs (\fIross@bnetd.org\fP)

160
pvpgn/man/bnchat.1 Normal file
View file

@ -0,0 +1,160 @@
.\"
.\" Copyright (C) 1998,1999,2000 Ross Combs (ross@bnetd.org)
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH BNCHAT 1 "09 April, 1999" "BNETD" "BNETD User's Manual"
.SH NAME
bnchat \- Battle.net text-based chat client
.SH SYNOPSIS
.B bnchat
[\fIoptions\fP]
[\fIservername\fP [\fIserverport\fP]]
.SH DESCRIPTION
.B bnchat
is a simple Battle.net client emulator that can be used as a minimal chat client with
.BR bnetd (1)
in order to test certain aspects of the server configuration or to do server
administration from the Unix command line. It is also compatible with FSGS servers, but
has difficulty with real Battle.net servers.
.LP
If no \fIservername\fP is specified, localhost is assumed. If no \fIserverport\fP is
specified, 6112 is assumed.
.SH OPTIONS
.TP
.B \-a --ansi-color
Allows
.B bnchat
to use ANSI terminal color escapes to make things more
readable. You must be using a terminal compatible with VT100 positioning and
ANSI color codes. The program will not attempt to determine your terminal type.
.TP
.B \-b
Causes
.B bnchat
to emulate a Brood Wars client.
.TP
.B \-c --change-password
Causes
.B bnchat
to prompt for a new login password on the
.BR bnetd (1)
server.
.TP
.B \--client
Causes
.B bnchat
to emulate a specific client. The following client tags are recognized:
DRTL DSHR STAR SSHR SEXP W2BN.
There are short options which may be used instead for the common clients.
.TP
.B \-d
Causes
.B bnchat
to emulate a Diablo client.
.TP
.B \-h --help --usage
Print usage information and exit.
.TP
.B \-k --cdkey
Causes
.B bnchat
to report an alternate key to the
.BR bnetd (1)
server.
.TP
.B \-o --owner
Causes
.B bnchat
to report an alternate owner to the
.BR bnetd (1)
server.
.TP
.B \-n --new-account
Causes
.B bnchat
to prompt to create a new player account on the
.BR bnetd (1)
server.
.TP
.B \-s
Causes
.B bnchat
to emulate a Starcraft client.
.TP
.B \-v --version
Print its version number and exit.
.TP
.B \-w
Causes
.B bnchat
to emulate a Warcraft II BNE client.
.SH NOTES
The terminal width is attempted to be determined at runtime but if it does not work
you may need to try running
.BR resize (1) .
As a final act of desperation you can try setting the COLUMNS environmental variable.
.LP
If SIGWINCH and its associated
.BR ioctl (2)
are supported on your system, resizing the window while the program is running should
immediately update width of the entry line.
.LP
The current version is available with the bnetd distribution at:
.LP
.RS
.I http://www.bnetd.org/
.RE
.SH BUGS
This program assumes that the terminal will move to the beginning of the current line
when the carriage return character (^M) is printed. It also assumes the backspace
character (^H) will move one column to the left that character printed after that
will replace those already on the screen.
.LP
The terminal settings are not consulted for keybindings. The following are assumed:
.TP
^H
delete the character to the left of the cursor
.TP
^J
accept current line
.TP
^M (return)
accept current line
.TP
^T
transpose the last two characters
.TP
^W
delete word to the left of the cursor
.TP
^U
delete the whole input line
.TP
^[ (escape)
cancel the current input line
.TP
^? (delete)
delete the character to the left of the cursor
.SH "SEE ALSO"
.BR bnetd (1)
.SH AUTHOR
Ross Combs (\fIross@bnetd.org\fP)

126
pvpgn/man/bnetd.1 Normal file
View file

@ -0,0 +1,126 @@
.\"
.\" Copyright (C) 1998 Mark Baysinger (mbaysing@ucsd.edu)
.\" Copyright (C) 1998,1999 Ross Combs (ross@bnetd.org)
.\" Copyright (C) 1999 Rob Crittenden (rcrit@greyoak.com)
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH BNETD 1 "12 June, 2000" "BNETD" "The bnetd Project"
.SH NAME
bnetd \- Unix Battle.net daemon
.SH SYNOPSIS
.B bnetd
[\fB-f\fP]
[\fB-c\fP \fIconfigfile\fP]
[\fB-d\fP \fIdumpfile\fP]
.SH DESCRIPTION
.B bnetd
is a program that will eventually completely emulate a Blizzard Battle.net
server. Currently Starcraft, Brood War, Diablo, and Warcraft II BNE are
supported as clients.
.LP
It is known to work under most versions of Unix and can also be used under
Windows as a win32 console application.
.SH OPTIONS
.TP
.B \-c --config
Use this configuration file instead of the compiled-in default location.
.TP
.B \-d --hexdump
Put a hex dump of packets sent and received into the specified file.
.TP
.B \-f --foreground
The server normally acts as a daemon and goes into the background. This forces
the server to run in the foreground.
.TP
.B \-h --help --usage
Print server usage information and exit.
.TP
.B \-v --version
Print its version number and exit.
.SH FILES
.TP
.I bnetd.conf
The main configuration file. Among other things, it specifies the locations for
the other files used by the daemon.
.TP
.I bnmotd.txt
The "message of the day" file. This is displayed when the user enters the
first chat channel.
.TP
.I bnetd_default_user
This is the default account file. The contains all default account attributes
which are used when an attribute is not set on an actual account.
.I channel.list
This is the permanent channel list. Short names, target clients, and other
attributes may be specified here.
.TP
.I news.txt
The contensts of this file are printed when the /news command is used.
.TP
.I ad.list
This is the ad banner list which determines which banners to display at which
times. The order of display for the banners may be specified as well as the
URL which they should follow when clicked.
.TP
.I bnban
The IP ban file can be used to block connections from certain addresses.
.TP
.I bnhelp
This file contains the the chat command help.
.TP
.I gametrans
The game address translation file can be used to allow players from behind a
NAT firewall to play with those outside of the firewall.
.TP
.I autoupdate
This is the autoupdate MPQ archive list. It chooses which versions of which
clients to update.
.TP
.I tos.txt
This is the Terms Of Service file that is displayed before a user can create
a new account.
.TP
.I icons.bni
The icons which the client displays for players in the chat rooms.
.TP
.I ad000001.pcx
This is the ad Banner. Currently, it says "Welcome to... BNETD".
.SH NOTES
The current version is available at:
.LP
.RS
.I http://www.bnetd.org/
.RE
.SH "SEE ALSO"
.BR bntrackd (1),
.BR bnproxy (1),
.BR bnchat (1),
.BR bnbot (1),
.BR bnpass (1),
.BR bnftp (1),
.BR bnetd.conf (5),
.BR bnmotd.txt (5)
.SH AUTHORS
Ross Combs (\fIross@bnetd.org\fP),
Rob Crittenden (\fIrob@bnetd.org\fP), and
Mark Baysinger (\fImark@bnetd.org\fP)

302
pvpgn/man/bnetd.conf.5 Normal file
View file

@ -0,0 +1,302 @@
.\"
.\" Copyright (C) 1998 Mark Baysinger (mbaysing@ucsd.edu)
.\" Copyright (C) 1998,1999,2000 Ross Combs (ross@bnetd.org)
.\" Copyright (C) 1999 Rob Crittenden (rcrit@greyoak.com)
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH BNETD.CONF 5 "12 June, 2000" "BNETD" "BNETD User's Manual"
.SH NAME
bnetd.conf \- configuration for the Unix Battle.net daemon
.SH DESCRIPTION
The file
.I bnetd.conf
contains information used by the Unix Battle.net daemon
.BR bnetd (1)
to obtain system-specific information such as file locations and policies.
.LP
The file consists of a list of configuration entries and comments. A comment
starts with a pound (#) sign and continues to the end of the line. Blank lines
and whitespace are ignored between entries. A configuration entry is composed
of two fields separated by an equals (=) sign:
.IP
\f2directive\f1 = \f2value\f1
.LP
The
.I directive
field contains the name of the configuration item you want to set to the value
of \f2value\f1. If the value contains spaces it should be surrounded by
quotation marks ("). The value may not contain quotation marks. Multiple
entries are not allowed on a single line.
.LP
If the field is Boolean, any of \fBtrue\fP, \fBfalse\fP, \fByes\fP, \fBno\fP,
\fB1\fP, or \fB0\fP may be used. If the field is numeric, it must be in base
ten. If the field is an address list, it must be delimited by commas. Each
element may contain a hostname (or IP) and a port number. If a port number is
given, it must be preceded by a colon (:). A colon by itself may be used to
represent the wildcard address. If the field is a file or directory path, use
of an absolute pathname is recommended. The values for \fBiconfile\fP,
\fBtosfile\fP, and \fBmpqauthfile\fP are not pathnames but just the names of
the files. They must be in the \fBfiledir\fP directory.
.LP
Recognized values for \f2directive\f1 include:
.RS
.TP 10
.B filedir
Specifies the path where downloadable files are stored. These files are
include the TOS (terms of service), icons, and ad banners. (Normally "files/")
.TP
.B userdir
Specify the path where user accounts are stored. (Normally "users/")
.TP
.B reportdir
Specify the path where game reports are stored. (Normally "reports/")
.TP
.B chanlogdir
Specify the path where channel logs are stored. (Normally "chanlogs/")
.TP
.B defacct
Specify the path of the default account file. This file contains all default
account attributes which are used when an attribute is not set on an actual
account. (Normally "bnetd_default_user")
.TP
.B motdfile
Specify the path of the "message of the day" text file. This is displayed
when a user enters the first chat channel. (Normally "bnmotd.txt")
.TP
.B channelfile
Specify the path of the permanent channel list. (Normally "channel.list")
.TP
.B newsfile
Specify the path of the file that is printed when the /news command is used.
If no file is specified or the file doesn't exist then the server prints
"No news today" to the user. (Normally "news.txt")
.TP
.B adfile
Specify the path of the ad banner list which determines which banners to
display at which times. (Normally "ad.list")
.TP
.B ipbanfile
Specify the path of the IP ban file which can be used to block connections
from certain addresses. (Normally "bnban")
.TP
.B helpfile
Specify the path of the chat command help file. (Normally "bnhelp")
.TP
.B transfile
Specify the path of the game address translation file which can be used to
allow players from behind a NAT firewall to play with those outside of the
firewall. (Normally "gametrans")
.TP
.B mpqfile
Specify the path of the autoupdate MPQ archive list. It chooses which
versions of which clients to update. (Normally "autoupdate")
.TP
.B logfile
Specifies the file where the server appends the event messages selected with
the \f3loglevels\f1 field. (Normally "bnetd.log")
.TP
.B pidfile
Specify the path of the file where the server records its process ID.
(Normally "bnetd.pid")
.TP
.B fortunecmd
The path for the program to be executed when /fortune is used. See
.BR fortune (6).
(Normally "/usr/games/fortune")
.TP
.B loglevels
Specify A comma-delimited list of message levels to log. The avaliable levels
are:
.RS
.TP
.B trace
flow tracing statements
.TP
.B debug
debugging information
.TP
.B info
potentially useful informational
.TP
.B warn
potentially serious events
.TP
.B error
error messages and unexpected events
.TP
.B fatal
fatal errors
.RE
.TP
.B iconfile
Specify the name of the BNI chat icons file which must be inside of the
.B filedir
directory. (Normally "icons.bni")
.TP
.B tosfile
Specify the name of the TOS file which must be inside of the
.B filedir
directory. (Normally "tos.txt")
.TP
.B allow_autoupdate
Enable or disable to automatic client update facility. If you want to allow
different client versions to connect, set this to false. If you want to update
all clients to the same version, be sure to also download the MPQ auth file,
and the update MPQ.
.TP
.B mpqauthfile
Specify the name of the MPQ authorization file which must be inside of the
.B filedir
directory. This file is used to determine the current client version. This
is only needed if
.B allow_autoupdate
is turned on. (Normally "IX86ver1.mpq")
.TP
.B usersync
Specify the time in seconds between account file saves. A value of 0 means to
wait until shutdown to save account files and not do do periodic updates.
.TP
.B userflush
Specify the number of seconds of inactivity before a user is unloaded from
memory (only checked during file account updates, see usersync. After the
account has been unloaded, it must be read from disk when accessed again.
.TP
.B latency
How often to send user latency tests to the user, in seconds. These are used
to decide how many "lag bars" to print next to users in channels.
.TP
.B shutdown_delay
Specify the amount of time in seconds to delay shutting down the server when it
receives a SIGTERM or SIGINT
.BR signal (7).
.TP
.B shutdown_decr
You can decrease the amount of time to wait by this value by sending another
SIGTERM or SIGINT
.BR signal (7).
.TP
.B newaccounts
If this value is true then new accounts may be created by users on the system.
Administrators can always use the /addacct chat command.
.TP
.B kick_oldlogin
If this value is true then a second login by the same user will kick off the
first, otherwise the second login will get message saying that they are already
logged in.
.TP
.B ask_new_channel
If this value is true, a user using the "Channels" button to join a
non-existing channel will be asked if they wish to create it just like
Battle.net. Otherwise, the channel will be created silently.
.TP
.B report_all_games
If this value is true, all games with more than one player lasting for more
than 5 minutes will be logged. Otherwise, only ladder games are logged.
.TP
.B hide_pass_games
If this value is true, private (passworded) games will not be shown in the game
list just like Battle.net. Otherwise all games will be listed.
.TP
.B hide_started_games
If this value is true, games which have already stated will not be sent to the
clients. The clients filter these games out for Starcraft and Brood War already.
.TP
.B hide_temp_channels
If this value is true, private channels will not be shown in the channel list
just like Battle.net. Otherwise all channels will be listed.
.TP
.B extra_commands
If this value is true then all the extended chat commands are enabled,
otherwise only those which exist on Battle.net are enabled.
.TP
.B disc_is_loss
If this value is true then any disconnect will be treated as a loss (regardless
of the setting in ladder games).
.TP
.B enable_conn_all
If this value is true then all users may use the /con and /connections
commands. Otherwise only administrators may use them.
.TP
.B hide_addr
If this value is true then IP addresses will be hidden from non-admins in the
output of the /con, /games, /gameinfo, and /netinfo commands.
.TP
.B chanlog
If this value is true then private channels will be logged to files in the
.B chanlogdir
direcotry. The logging of public (permanent) channels is controlled in the
.B channelfile
file.
.TP
.B track
Set this value to 0 to disable sending updates to the tracking server. Any
other number will set the number of seconds between tracking packets. Try to
use a number above 60 seconds unless you know the tracking server administrator
doesn't mind being spammed.
.TP
.B trackaddrs
Specify a comma-delimited list of addresses of tracking servers to send updates
to. The address for the master server is "track.bnetd.org". A port may be
specified after a colon numerically or by name from
.BR /etc/services (5).
If a port number is not specified, it defaults to 6114.
.TP
.B location
Give a description of the physical location of the server such as
"San Diego, CA, USA". This is reported to the tracking server.
.TP
.B description
Give a description of title or role of the server such as
"Joe's Spiffy Server". This is reported to the tracking server.
.TP
.B url
Give a URL for the homepage or contact for the server such as
"http://www.foo.com/joeserv.html". This is reported to the tracking
server.
.TP
.B contact_name
Give the name of the contact for the server such as "Joe Blockhead". This is
reported to the tracking server.
.TP
.B contact_email
Give the email address of the contact for the server such as "joe@foo.com".
This is reported to the tracking server.
.TP
.B use_keepalive
If this value is set to true, the server will enable the TCP keepalive option
to allow the system to detect stale connections.
.TP
.B servaddrs
Specify the comma-delimited list of addresses the server should listen on. A
port may be specified after a colon numerically or by name from
.BR /etc/services (5).
If a port number is not specified, it defaults to 6112.
.TP
.B udptest_port
The UDP port number which is assumed for clients if they don't send SESSIONADDR
packets. If it is set to zero, the server will use the remote TCP port number
as the default UDP port number.
.SH SEE ALSO
.BR bnetd (1)
.SH AUTHOR
Rob Crittenden (\fIrob@bnetd.org\fP),
Ross Combs (\fIross@bnetd.org\fP)

117
pvpgn/man/bnftp.1 Normal file
View file

@ -0,0 +1,117 @@
.\"
.\" Copyright (C) 1998,1999 Ross Combs (ross@bnetd.org)
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH BNFTP 1 "11 June, 2000" "BNETD" "BNETD User's Manual"
.SH NAME
bnftp \- Battle.net file transfer client
.SH SYNOPSIS
.B bnftp
[\fIoptions\fP]
[\fIservername\fP [\fIserverport\fP]]
.SH DESCRIPTION
.B bnftp
is a simple program for downloading data files from a bnetd server. These files include
\fItos.txt\fP, upgrade MPQ archives, and ad banners.
.LP
If no \fIservername\fP is specified, localhost is assumed. If no \fIserverport\fP is
specified, 6112 is assumed.
.LP
After the program is started it will connect to the server and then prompt for
the filename to download. No directory components may be used in the filename.
The file is copied to a file with the same name in the current directory.
.SH OPTIONS
.TP
.B \-b
Causes
.B bnftp
to emulate a Brood Wars client.
.TP
.B \--client
Causes
.B bnftp
to emulate a specific client. The following client tags are
recognized:
DRTL DSHR STAR SSHR SEXP W2BN.
There are short options which may be used instead for the common clients.
.TP
.B \-d
Causes
.B bnftp
to emulate a Diablo client.
.TP
.B \-h --help --usage
Print usage information and exit.
.TP
.B \-s
Causes
.B bnftp
to emulate a Starcraft client.
.TP
.B \-v --version
Print its version number and exit.
.TP
.B \-w
Causes
.B bnftp
to emulate a Warcraft II BNE client.
.SH NOTES
The current version is available with the bnetd distribution at:
.LP
.RS
.I http://www.bnetd.org/
.RE
.SH BUGS
This program assumes that the terminal will move to the beginning of the current line
when the carriage return character (^M) is printed. It also assumes the backspace
character (^H) will move one column to the left that character printed after that
will replace those already on the screen.
.LP
The terminal settings are not consulted for keybindings. The following are assumed:
.TP
^H
delete the character to the left of the cursor
.TP
^J
accept current line
.TP
^M (return)
accept current line
.TP
^T
transpose the last two characters
.TP
^W
delete word to the left of the cursor
.TP
^U
delete the whole input line
.TP
^[ (escape)
cancel the current input line
.TP
^? (delete)
delete the character to the left of the cursor
.SH "SEE ALSO"
.BR bnetd (1)
.SH AUTHOR
Ross Combs (\fIross@bnetd.org\fP)

76
pvpgn/man/bni2tga.1 Normal file
View file

@ -0,0 +1,76 @@
.\"
.\" Copyright (C) 2000 Ross Combs (ross@bnetd.org)
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH BNI2TGA 1 "6 November, 2000" "BNETD" "BNETD User's Manual"
.SH NAME
bni2tga \- convert a Battle.net icon file to a Targa file
.SH SYNOPSIS
.B bni2tga
[\fIoptions\fP]
[--]
[\fIbnifile\fP [\fItgafile\fP]]
.SH DESCRIPTION
.B bni2tga
is a simple program which will convert the icons in a Battle.net icon file
into a TGA file with the icons arranged vertically.
.LP
The specific variant of TGA that is used will depend on the input file, but
typically it will be a 28 pixel wide, true-color, 24bit, run-length encoded
image with no attributes.
.LP
If
.I bnifile
is not specified or is specified as "-", the standard input will be used.
If
.I tgafile
is not specified or is specified as "-", the standard output will be used.
.SH OPTIONS
.TP
.B \-h --help --usage
Print usage information and exit.
.TP
.B \-v --version
Print its version number and exit.
.TP
.B --
Signal end of options. Any further arguments will be treated as filenames
even if they begin with a "-".
.SH NOTES
The current version is available with the bnetd distribution at:
.LP
.RS
.I http://www.bnetd.org/
.RE
.SH BUGS
The purpose of some of the fields in the BNI format are not known. Only
true-color formats are currently supported.
.SH "SEE ALSO"
.BR bnetd (1),
.BR bnibuild (1),
.BR bniextract (1),
.BR bnilist (1),
.BR tgainfo (1)
.SH AUTHORS
.TP
Marco Ziech (\fImmz@gmx.net\fP) and
Ross Combs (\fIross@bnetd.org\fP)

73
pvpgn/man/bnibuild.1 Normal file
View file

@ -0,0 +1,73 @@
.\"
.\" Copyright (C) 2000 Ross Combs (ross@bnetd.org)
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH BNIBUILD 1 "6 November, 2000" "BNETD" "BNETD User's Manual"
.SH NAME
bnibuild \- build a Battle.net icon file from a directory of Targa icon files
.SH SYNOPSIS
.B bnibuild
[\fIoptions\fP]
[--]
\fIinputdir\fP
[\fIbnifile\fP]
.SH DESCRIPTION
.B bnibuild
is a simple program which will convert a directory with a text file named
.I bniindex.lst
and associated Targa image file into a single Battle.net icon file.
.LP
If
.I bnifile
is not specified or is specified as "-", the standard output will be used.
.LP
FIXME: specify format of bniindex.lst
.SH OPTIONS
.TP
.B \-h --help --usage
Print usage information and exit.
.TP
.B \-v --version
Print its version number and exit.
.TP
.B --
Signal end of options. Any further arguments will be treated as filenames
even if they begin with a "-".
.SH NOTES
The current version is available with the bnetd distribution at:
.LP
.RS
.I http://www.bnetd.org/
.RE
.SH BUGS
The purpose of some of the fields in the BNI format are not known. Only
true-color formats are currently supported.
.SH "SEE ALSO"
.BR bnetd (1),
.BR bni2tga (1),
.BR bniextract (1),
.BR bnilist (1),
.BR tgainfo (1)
.SH AUTHORS
.TP
Marco Ziech (\fImmz@gmx.net\fP) and
Ross Combs (\fIross@bnetd.org\fP)

71
pvpgn/man/bniextract.1 Normal file
View file

@ -0,0 +1,71 @@
.\"
.\" Copyright (C) 2000 Ross Combs (ross@bnetd.org)
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH BNIEXTRACT 1 "6 November, 2000" "BNETD" "BNETD User's Manual"
.SH NAME
bniextract \- extract a directory of Targa icon files from a Battle.net icon file
.SH SYNOPSIS
.B bniextract
[\fIoptions\fP]
[--]
\fIbnifile\fP
\fIoutputdir\fP
.SH DESCRIPTION
.B bniextract
is a simple program which will convert a single Battle.net icon file
into a directory with a text file named
.I bniindex.lst
and associated Targa image file.
If
.I bnifile
is specified as "-", the standard input will be used.
.SH OPTIONS
.TP
.B \-h --help --usage
Print usage information and exit.
.TP
.B \-v --version
Print its version number and exit.
.TP
.B --
Signal end of options. Any further arguments will be treated as filenames
even if they begin with a "-".
.SH NOTES
The current version is available with the bnetd distribution at:
.LP
.RS
.I http://www.bnetd.org/
.RE
.SH BUGS
The purpose of some of the fields in the BNI format are not known. Only
true-color formats are currently supported.
.SH "SEE ALSO"
.BR bnetd (1),
.BR bni2tga (1),
.BR bnibuild (1),
.BR bnilist (1),
.BR tgainfo (1)
.SH AUTHORS
.TP
Marco Ziech (\fImmz@gmx.net\fP) and
Ross Combs (\fIross@bnetd.org\fP)

73
pvpgn/man/bnilist.1 Normal file
View file

@ -0,0 +1,73 @@
.\"
.\" Copyright (C) 2000 Ross Combs (ross@bnetd.org)
.\"
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, write to the Free
.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
.\" USA.
.\"
.TH BNILIST 1 "6 November, 2000" "BNETD" "BNETD User's Manual"
.SH NAME
bnilist \- list contents of a Battle.net icon file
.SH SYNOPSIS
.B bnilist
[\fIoptions\fP]
[--]
[\fIbnifile\fP]
.SH DESCRIPTION
.B bnilist
is a simple program which will list all the icons stored in a BNI file along
with their attributes. Additionally, information is displayed from the TGA
header in the same format as
.BR tgainfo (1)
would use. Some simple sanity checks are also done to verify the file is
using the same format as expected by the other bni utilities.
.LP
If
.I bnifile
is not specified or is specified as "-", the standard input will be used.
.SH OPTIONS
.TP
.B \-h --help --usage
Print usage information and exit.
.TP
.B \-v --version
Print its version number and exit.
.TP
.B --
Signal end of options. Any further arguments will be treated as filenames
even if they begin with a "-".
.SH NOTES
The current version is available with the bnetd distribution at:
.LP
.RS
.I http://www.bnetd.org/
.RE
.SH BUGS
The purpose of some of the fields in the BNI format are not known. Only
true-color formats are currently supported.
.SH "SEE ALSO"
.BR bnetd (1),
.BR bni2tga (1),
.BR bnibuild (1),
.BR bniextract (1),
.BR tgainfo (1)
.SH AUTHORS
.TP
Marco Ziech (\fImmz@gmx.net\fP) and
Ross Combs (\fIross@bnetd.org\fP)

Some files were not shown because too many files have changed in this diff Show more