SoC Ideas Network Stack Rewrite

From The Battle for Wesnoth Wiki
Revision as of 13:11, 28 March 2010 by Crab (talk | contribs) (Description)


This page is related to Summer of Code 2010
See the list of Summer of Code 2010 Ideas



This is a Summer of Code 2010 Idea


Description

Rewrite wesnoth network stack using boost::asio

Rewrite wesnoth network stack using boost::asio.

There are 2 student proposals for this idea

Orfest - Rewriting network stack

gna.org : orfest
irc : orfest

I am really interested in rewriting network stack using boost::asio. This task will not only improve the current network stack implementation but will also bring new features such as proxy support, configurable timeout values for connections, connection multiplexing on the client.

Please see more details on my page.
See SummerofCode Orfest for more information.

Billynux - Rewrite Wesnoth network stack using boost::asio

  • email : billybiset@gmail.com
  • irc : billynux
  • gna.org : billynux

The project consists of developing a network framework in the form of an API and subsequently an implementation that can be distributed as a library for the development of client/server applications. This library will be used to implement Wesnoth's network stack.
See SummerOfCodeProposal Billynux for more information.

Additional Information

Currently, wesnoth uses 'sdl net' for network layer. There's a number of issues with it. We want to recode wesnoth network layer (wesnothd server, wesnoth client, stats uploader) using a framework like boost::asio. Features wanted:

  • proxy support.
  • configurable timeout value for connections.
  • ability for wesnoth client to multiplex connections to wesnoth server (allow client to connect to wesnoth server multiple times)
  • ability to use wesnoth network client with a different c++ backend (e.g., use wesnoth network client as a library)

Questions

  • what types of proxies we can support, if we code a network stack using boost::asio, and how hard it'll be ?
  • what general architecture for the client you're going to use ?
  • what general architecture for the server you're going to use ?
  • how you'd allow the wesnoth client to multiplex connections to wesnoth server ?
  • how you'd make it possible to use wesnoth network client with a different c++ backend?
  • what problems and potential pitfalls do you see in the task?