News:

Facebook killed the radio star. And by radio star, I mean the premise of distributed forums around the internet. And that got got by Instagram/SnapChat. And that got got by TikTok. Where the fuck is the internet we once knew?

Main Menu

bunker bnet

Started by nslay, April 18, 2007, 01:58:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

nslay

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!

mynameistmp

Quote from: nslay on April 18, 2007, 01:58:01 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?

Blaze

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...

Joe

Quote from: mynameistmp on April 21, 2007, 12:48:22 AM
Quote from: nslay on April 18, 2007, 01:58:01 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.
Quote from: Camel on June 09, 2009, 04:12:23 PMI'd personally do as Joe suggests

Quote from: AntiVirus on October 19, 2010, 02:36:52 PM
You might be right about that, Joe.


nslay

Quote from: Joex86/64] link=topic=9120.msg116067#msg116067 date=1177159843]
Quote from: mynameistmp on April 21, 2007, 12:48:22 AM
Quote from: nslay on April 18, 2007, 01:58:01 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!

nslay

Quote from: Blaze 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?  :\

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

Blaze

And like a fool I believed myself, and thought I was somebody else...

Joe

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..
Quote from: Camel on June 09, 2009, 04:12:23 PMI'd personally do as Joe suggests

Quote from: AntiVirus on October 19, 2010, 02:36:52 PM
You might be right about that, Joe.