File: README.bits

package info (click to toggle)
bnetd 0.4.25-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 4,516 kB
  • ctags: 7,224
  • sloc: ansic: 67,547; sh: 3,142; makefile: 796; python: 304; perl: 211; awk: 73
file content (144 lines) | stat: -rw-r--r-- 5,437 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144

	 BNETD Interserver Transport System (BITS) protocol
	 
What's BITS ?
-------------
  The BITS protocol will be used to connect several BNETD servers
  to a network. If a server is connected to a network it will share
  account information with the other servers on this network. It will
  also be possible to chat and play games through the network. This
  protocol is still in its experimental state and needs some testing. 
  NOTE: If you already run a server make sure to send in some bug reports :)

News
----
  Account sharing  and chatting should work. Gaming still needs some testing
  but should generally work. (NOTE: There are still many bugs!) Network-wide 
  MOTD has been added. You can now specify IP:Port combinations for the uplink.
  Password are now hashed by default.

Compile with BITS support
-------------------------
  Make sure to add "--with-bits" to ./configure if you want to 
  use BITS.

Configuration
-------------
  There are some extra configuration variables in the bnetd.conf file:
  
  	do_uplink (boolean) :
		If this variable is set to true the server tries to
		connect to the BITS server stored in "uplink_server".
		To run a BITS master server set this variable to
		"false". 
	
	uplink_server (string) :
		This variable contains the servername to connect to if
		"do_uplink" is true. This might either be an IP-address 
		or a DNS-name.
		
	uplink_username (string) :
		This is the (BITS) username used to login to the BITS server.
		The password is taken from the BITS password file (see below).
	
	bits_password_file (string) :
		This variable contains the filename of the bits password file.
		
	allow_uplink (boolean) :
		Set this to "true" if you want to allow other bits client to
		connect to your server. This should always be "true" if
		"do_uplink" is set to "false".

	bits_motd_file (string) :
		This is the network-wide MOTD file which is displayed before
		the local MOTD file. This option is only used by master
		servers.

	bits_use_plaintext (boolean) :
		This specifies whether a BITS client should send the
		password in plain text or hashed. You probably wish to
		set this to false which is also the default.
		
BITS password file
------------------
  The BITS password file is used to store the password for each bits user.
  Each line contains three fields: user, password type, password. These
  fields are divided by a colon.
  A BITS password file might look like this:

	username:type:password
	test:P:test
	gamma:P:secret
	bob:H:19785d197ce66cdd2baf4b8bf348ed0b362587f6
	
  If you are running a BITS client you only have to store your own password
  in the file in plain-text. BITS master server should store passwords for all 
  users in this file. They can also save the hash only (like bob). This
  makes them unable to answer plain-text password requests for that user.
  
BITS TODO
---------
 - = ToDo
 w = currently working on
 ? = don't know
 + = works (well ... might work ;)
 i = important
 l = less important

	i+ account sharing (account locking)
	i? make all chat commands work (/stats(works),
				       /who,
				       /finger(works?)
				       ...);
	i+ bot connections
	i+ network chat (implement sessionid stuff)	
	iw gamelist sharing
	i- make bits work with more than 2 servers
	i- make it possible that 2 BITS clients connect at the same time
	l+ bits auth encryption -> improve the "handshake" 
	lw fix a lot of bugs and remove compiler warnings :-)
	l+ fix the crash bug if bits_init() fails
	l- perhaps rewrite bits_init()
	i+ add port specification in config file to allow (ssh/ssl) tunneling
	i+ network wide motd
	l- network wide adbanners?
	i? diabloII support
	 - much more ...
	
Account locking (for developers)
--------------------------------
  If an account isn't stored on a bits client and the client needs some 
  information about it ( does the account exist, stats ) it has to be
  "locked" by the client. If a BITS server is not the master server and
  receives a "lock request" from one of its clients it forwards 
  the request to the master server (creates a bits_query/ changes qid).
  The master server looks into its account database and if the account 
  exists it returns a positive response with account name and uid to 
  the client and adds the account name+uid to the "locklist" of the client.
  The "locklist" contains the name and uid of every locked account on the
  client. If a server sends or receives an attribute change for an account
  with a specific uid it forwards this change to every client which has this
  uid in its locklist and of course the master. An account could be locked
  by more than one client.  

BITS network topology
---------------------

           master server           
           -------------
          /      |      \
   server1     server2   server3
  /       \         |           \
server4  server5  server6      server7
   .        .        .            .
   .        .        .            .
   .        .        .            .

There is one master server which has the following jobs: manage the account
database, manage the channellists, handle login requests and manage all the
games (reports/ladder calculations). The other clients just connect to this 
server and other client can then connect to the already connected clients
and so on. It is planned to have connections between clients of diffrent
branches. 

Feel free to drop me a line at mmz@gmx.net --- Typhoon