Author Topic: bunker bnet  (Read 5751 times)

0 Members and 1 Guest are viewing this topic.

Offline nslay

  • Hero Member
  • *****
  • Posts: 786
  • Giraffe meat, mmm
    • View Profile
bunker bnet
« on: April 18, 2007, 01:58:01 pm »
For channel warring reasons, Rob and I started implementing a battle.net clone, named 'bunker'
It implements text and all game protocols up to (but not including) war 3... but only for chatting purposes.  It does not, and will never support gaming.
bunker is written entirely in ANSI C and aims to be POSIX compliant where possible.
It supports the following
6112 (TCP/UDP) for clients
6113 (TCP) for server linking
/tmp/bunker (AF_UNIX) for IPC clients

Its database backend, for now, is dbm...we chose dbm because it is included in the Single Unix Specification (v2).  Additionally, it does not use a viral license like that of the GPL (our license is not an open source license for obvious reasons).  We might use BDB 1.85 later on.  Authentication takes place over the server link which is in contrast to using a dedicated database server software (MySQL's library also blocks...another reason we don't want to use MySQL...this server relies on non-blocking!).

So, our progress at present
-text protocol is complete
-game protocol is complete but may need cleaning up
-chatting is nearly complete, need to implement all the standard commands
-IPC handling, and IPC client are in the works...IPC client is used for administration and it is given administrator status on connect (new product type [IPCC], Inter Process Communication Client)
-server linking is in the works
-authentication is complete

So we're about half way finished, maybe 40-50%

bunker is modular, everything is as general as possible.  The server core is oblivious to the client's protocol, the protocols are modules that provide callbacks for the server to use.   Bunker, for the time being is multiplexed with select(), but it shouldn't be too difficult to use kqueue/epoll...in fact I might add #ifdefs BSD and Linux platforms to take advantage of those.

I am aiming for the battle.net environment as it was before nbbot (but not including the vulnerabilities it had, as iago was kind enough to mention to me :)).  For example, "The Void" is a valid chatting channel.  There is only allowed one CHAT client per IP (until a split happens, then the split server isn't aware of your other client).  We anticipate real splits for much the same reason IRC servers split.
We will import features like the friend list, and the '/r' command pvpgn has for responding to whispers.
I'll keep you up to date on progress, but it looks terrific so far!
Comments and criticisms are welcome

P.S.  If you have standard error/info responses, screenshots, etc...from those days, I'd really appreciate it if you could share them with me.

http://www.emadness.net/
http://www.projectbunker.net/
An adorable giant isopod!

Offline mynameistmp

  • Full Member
  • ***
  • Posts: 111
  • Hi! I'm new here!
    • View Profile
Re: bunker bnet
« Reply #1 on: April 21, 2007, 12:48:22 am »
  Additionally, it does not use a viral license like that of the GPL (our license is not an open source license for obvious reasons). 

What're the obvious reasons that it is not an open source license?

Offline Blaze

  • x86
  • Hero Member
  • *****
  • Posts: 7136
  • Canadian
    • View Profile
    • Maide
Re: bunker bnet
« Reply #2 on: April 21, 2007, 02:23:39 am »
When you said Rob I thought I knew who you were talking about.. till I read your website.  Who's Rob again?  :\
And like a fool I believed myself, and thought I was somebody else...

Offline Joe

  • B&
  • Moderator
  • Hero Member
  • *****
  • Posts: 10330
  • In Soviet Russia, text read you!
    • View Profile
    • Github
Re: bunker bnet
« Reply #3 on: April 21, 2007, 08:50:43 am »
  Additionally, it does not use a viral license like that of the GPL (our license is not an open source license for obvious reasons). 

What're the obvious reasons that it is not an open source license?

Copyright infringement.
I'd personally do as Joe suggests

You might be right about that, Joe.


Offline nslay

  • Hero Member
  • *****
  • Posts: 786
  • Giraffe meat, mmm
    • View Profile
Re: bunker bnet
« Reply #4 on: April 21, 2007, 04:13:46 pm »
  Additionally, it does not use a viral license like that of the GPL (our license is not an open source license for obvious reasons). 

What're the obvious reasons that it is not an open source license?

Copyright infringement.

Yes potential copyright infringement...though I don't think protocols alone should be copyrightable.
I want full control of the souce and executable so if a day comes when we do get a complaint from battle.net, we can easily pull it or modify it with no harm no foul.

In fact, the plan is to make a transition from battle.net protocols (for backwards compatibility) to a new protocol.  As an example, IPCC is a new protocol that bunker supports.  Although it can be used for chatting it is mainly for manipulating the bunker daemon without even logging in.
For example
Quote
%./bunkerctl -m -l nslay
Password:
Account created successfully!
This uses an AF_UNIX SOCK_STREAM socket, connects and sends an IPC_COMMAND_MAKEACCT packet to bunker and awaits a response.
An adorable giant isopod!

Offline nslay

  • Hero Member
  • *****
  • Posts: 786
  • Giraffe meat, mmm
    • View Profile
Re: bunker bnet
« Reply #5 on: April 21, 2007, 04:16:00 pm »
When you said Rob I thought I knew who you were talking about.. till I read your website.  Who's Rob again?  :\

Rob is a software engineer who got dragged into bot development in 2004 by a fellow battle.net junky. 
An adorable giant isopod!

Offline Blaze

  • x86
  • Hero Member
  • *****
  • Posts: 7136
  • Canadian
    • View Profile
    • Maide
Re: bunker bnet
« Reply #6 on: April 21, 2007, 06:13:19 pm »
Okay...  ???
And like a fool I believed myself, and thought I was somebody else...

Offline Joe

  • B&
  • Moderator
  • Hero Member
  • *****
  • Posts: 10330
  • In Soviet Russia, text read you!
    • View Profile
    • Github
Re: bunker bnet
« Reply #7 on: April 21, 2007, 10:50:00 pm »
Joe is a software enginner and software reverse enginner who got dragged in to bot dvelopment in 2002 by a fellow battle.net junky.

I don't actually remember when I started botdev. It seems like 5 years ago, but that would leave me at 11/12 years old..
I'd personally do as Joe suggests

You might be right about that, Joe.