BNETD.CONF(5)

πŸ“¦
version 1.99.7.2.1 Β· 2 versions
, in debian trixie, ubuntu stonking

πŸ’– BNETD.CONF(5) πŸ’–

okay bestie, welcome to the BNETD User's Manual ✨ this is the bnetd.conf page and it's a whole journey, so grab a snack πŸ“


πŸŽ€ NAME πŸŽ€

bnetd.conf β€” configuration for the Unix Battle.net daemon πŸ’…


🌸 DESCRIPTION 🌸

So. The file bnetd.conf holds all the info that the Unix Battle.net daemon bnetd(1) needs β€” like, the system-specific stuff: where files live, what the policies are, all of it. It's basically the server's little diary of settings πŸ““

The file is a list of configuration entries and comments. A comment starts with a pound (#) sign and just keeps going to the end of the line, no cap. Blank lines and whitespace between entries? Ignored, we don't see them πŸ’€

A configuration entry is made of two fields separated by an equals (=) sign, like so:

directive = value

The directive field is the name of the configuration item you're setting, and it gets set to value. If your value has spaces in it, wrap it in quotation marks ("). The value itself may not contain quotation marks, sorry babe. And multiple entries on one single line? Absolutely not allowed, one per line periodt 🚫

Now the tea on types β˜•

  • If the field is Boolean, you can use any of true, false, yes, no, 1, or 0.
  • If the field is numeric, it has to be in base ten.
  • If the field is an address list, it must be comma-delimited. Each element may contain a hostname (or IP) and a port number. If a port number is given it has to be preceded by a colon (:). A colon all by itself represents the wildcard address πŸ‘‘
  • If the field is a file or directory path, using an absolute pathname is recommended, fr fr.
⚠️ heads up bestie: the values for iconfile, tosfile, and mpqauthfile are not pathnames β€” they're just the names of the files, and they must live in the filedir directory. don't come for me, that's just how it is 🫢

πŸ¦‹ recognized values for directive πŸ¦‹

These are the ones the server actually knows about, and there are a LOT of them, so let's go πŸ’…

  • filedir β€” the path where downloadable files are stored. These include the TOS (terms of service), icons, and ad banners. (Normally "files/")
  • userdir β€” the path where user accounts are stored. (Normally "users/")
  • reportdir β€” the path where game reports are stored. (Normally "reports/")
  • chanlogdir β€” the path where channel logs are stored. (Normally "chanlogs/")
  • defacct β€” the path of the default account file. This file holds all the default account attributes, which get used whenever an attribute isn't set on an actual account. (Normally "bnetd_default_user")
  • motdfile β€” the path of the "message of the day" text file. It gets displayed when a user enters the first chat channel. (Normally "bnmotd.txt")
  • channelfile β€” the path of the permanent channel list. (Normally "channel.list")
  • newsfile β€” the path of the file that gets printed when the /news command is used. If no file is specified, or the file just doesn't exist, the server tells the user "No news today" 😭 (Normally "news.txt")
  • adfile β€” the path of the ad banner list, which decides which banners get displayed at which times. (Normally "ad.list")
  • ipbanfile β€” the path of the IP ban file, which you can use to block connections from certain addresses. (Normally "bnban")
  • helpfile β€” the path of the chat command help file. (Normally "bnhelp")
  • transfile β€” the path of the game address translation file, which lets players behind a NAT firewall play with players outside of it. iconic honestly. (Normally "gametrans")
  • mpqfile β€” the path of the autoupdate MPQ archive list. It chooses which versions of which clients to update. (Normally "autoupdate")
  • logfile β€” the file where the server appends the event messages selected with the loglevels field. (Normally "bnetd.log")
  • pidfile β€” the path of the file where the server records its process ID. (Normally "bnetd.pid")
  • fortunecmd β€” the path for the program to be executed when /fortune is used. See fortune(6). (Normally "/usr/games/fortune")
  • loglevels β€” a comma-delimited list of message levels to log. The available levels are:
    • trace β€” flow tracing statements
    • debug β€” debugging information
    • info β€” potentially useful informational
    • warn β€” potentially serious events
    • error β€” error messages and unexpected events
    • fatal β€” fatal errors
  • iconfile β€” the name of the BNI chat icons file, which must be inside of the filedir directory. (Normally "icons.bni")
  • tosfile β€” the name of the TOS file, which must be inside of the filedir directory. (Normally "tos.txt")
  • allow_autoupdate β€” enable or disable the 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 πŸ‘‘
  • mpqauthfile β€” the name of the MPQ authorization file, which must be inside of the filedir directory. This file is used to determine the current client version. It's only needed if allow_autoupdate is turned on. (Normally "IX86ver1.mpq")
  • usersync β€” the time in seconds between account file saves. A value of 0 means wait until shutdown to save account files and don't do periodic updates.
  • userflush β€” 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 has to be read from disk when it's accessed again.
  • latency β€” how often to send user latency tests to the user, in seconds. These decide how many "lag bars" get printed next to users in channels πŸ“Ά
  • shutdown_delay β€” the amount of time in seconds to delay shutting down the server when it receives a SIGTERM or SIGINT signal(7).
  • shutdown_decr β€” you can decrease the amount of time to wait by this value by sending another SIGTERM or SIGINT signal(7).
  • 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, no matter what πŸ’…
  • kick_oldlogin β€” if this value is true, then a second login by the same user will kick off the first. Otherwise, that second login gets a message saying they're already logged in πŸ’€
  • ask_new_channel β€” if this value is true, a user who uses the "Channels" button to join a non-existing channel gets asked if they want to create it, just like Battle.net. Otherwise, the channel just gets created silently.
  • report_all_games β€” if this value is true, all games with more than one player lasting for more than 5 minutes get logged. Otherwise, only ladder games are logged.
  • hide_pass_games β€” if this value is true, private (passworded) games won't be shown in the game list, just like Battle.net. Otherwise all games get listed.
  • hide_started_games β€” if this value is true, games which have already started will not be sent to the clients. The clients filter these games out for Starcraft and Brood War already.
  • hide_temp_channels β€” if this value is true, private channels won't be shown in the channel list, just like Battle.net. Otherwise all channels get listed.
  • 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.
  • disc_is_loss β€” if this value is true then any disconnect will be treated as a loss (regardless of the setting in ladder games). harsh but okay 😭
  • enable_conn_all β€” if this value is true then all users may use the /con and /connections commands. Otherwise only administrators may use them.
  • 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 πŸ•΅οΈ
  • chanlog β€” if this value is true then private channels will be logged to files in the chanlogdir directory. The logging of public (permanent) channels is controlled in the channelfile file.
  • track β€” set this value to 0 to disable sending updates to the tracking server. Any other number sets 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 πŸ™ˆ
  • trackaddrs β€” 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 /etc/services(5). If a port number is not specified, it defaults to 6114.
  • location β€” give a description of the physical location of the server, such as "San Diego, CA, USA". This gets reported to the tracking server 🌍
  • description β€” give a description of the title or role of the server, such as "Joe's Spiffy Server". This gets reported to the tracking server too ✨

and bestie we are SO not done, there's more coming πŸ’– part 2 is right there β†’

  • url β€” drop the URL for your homepage or a contact page for the server, like "http://www.foo.com/joeserv.html". This one gets reported to the tracking server, so bestie, make it something you actually want people seeing πŸ’–
  • contact_name β€” the name of the person to contact about the server, like "Joe Blockhead". Also reported to the tracking server 🫢
  • contact_email β€” the email address of the contact for the server, like "joe@foo.com". Yep, also reported to the tracking server β€” it's giving "here's who to yell at" energy ✨
  • use_keepalive β€” set this to true and the server turns on the TCP keepalive option, which lets the system sniff out stale connections πŸ‘ƒ Lowkey a vibe check for dead sockets.
  • servaddrs β€” the comma-delimited list of addresses the server should listen on 🎧 A port can go after a colon, either as a number or by name from /etc/services(5). And if you don't specify a port at all? It defaults to 6112. Periodt.
  • udptest_port β€” the UDP port number that gets assumed for clients if they don't send SESSIONADDR packets. Plot twist: if you set it to zero, the server just uses the remote TCP port number as the default UDP port number. Iconic little fallback ngl 🌈

🌸 SEE ALSO 🌸

  • bnetd(1) β€” go read that one too, bestie, it's the whole point πŸ’…

πŸ‘‘ AUTHOR πŸ‘‘

Rob Crittenden (rob@bnetd.org), Ross Combs (ross@bnetd.org)


That's the whole page, bestie β€” you made it to the end πŸŽ‰ This was BNETD.CONF(5) from the BNETD crew, dated 12 June, 2000. Genuinely iconic documentation, no cap πŸ’–βœ¨πŸ¦‹
πŸ“¦ where this page comes from