Up to Main Index Up to Journal for May, 2014 JOURNAL FOR SUNDAY 25TH MAY, 2014 ______________________________________________________________________________ SUBJECT: A dev branch update. Telnet over SSL in the works. DATE: Sun 25 May 20:11:10 BST 2014 The PROTOTYPE3 release seems to have gone down well :) I had a question about specifying which interface WolfMUD listens on, more specifically: Can WolfMUD listen on any/all interfaces? Yes it can. In the configuration file - data/config.wrj - change the listen.address to be empty: listen.address: Then the server will listen on all available network interfaces. This can be useful on android tablets where editing the config file is a pain every time the wireless connection gets a new IP address ;) I've updated the configuration file comments to mention this now. It was also noticed that slow connections sometimes discarded the final data in transit - usually the 'Idle connection terminated by server' message. This is also fixed in the dev branch. Finally I've fixed a bug where the maximum number of concurrent players can be inaccurate if a player logs in and then out before the stats snapshot is taken. Again this is fixed in the dev branch. The above three changes have just been pushed out to the public dev branch. I've also switched to using GO1.3 (BETA 2) for development. Since PROTOTYPE3 I've been working mainly on cleaning up the code. The bugs and bits above were fixed as I came across them. I say 'mainly working on' because I had another networking request come in which has provided for and interesting distraction. Quite a number of users are using WolfMUD as a chat server - lets face it, you can't do much else at the moment :) "In light of HEARTBLEED and allegations of everybody snooping on everyone else could you make WolfMUD connections more secure please?" So far I have a proof of concept working with Telnet over SSL, self signed certificates and perfect forward secrecy. I've hacked this into the existing code - not ideal as you lose the plain Telnet connections. As the accept loop is in the main goroutine I need to adjust that to run multiple accept loops in their own goroutines. The configuration also needs to be modified to handle multiple sections, maybe something like: data.dir: . mem.profile.rate: 1 stats.rate: 10s account.id.min: 10 account.password.min: 10 %% listen.protocol: telnet listen.address: 127.0.0.1 listen.port: 4001 %% listen.protocol: telnet-ssl listen.address: 127.0.0.1 listen.port: 4002 listen.cert: WolfMUD.crt listen.key: WolfMUD.key listen.ca: ca-bundle.crt %% This would also allow SSH connections to be added later on. Separate local and remote connections could also be specified - I'm thinking always allow local connections even if the server is full so that admin users can gain access. I've not had time to play with this too much - just got the proof of concept working. One thing I did notice was that I couldn't use a tls.Conn as a drop in replacement for a standard net.TCPConn or net.Conn :( This is awkward as I can't use the standard WolfMUD client package. I'm sure I've just overlooked something obvious here? -- Diddymus Up to Main Index Up to Journal for May, 2014