#include "../core/global.h"
#include "messagedirector.h"
#include "../core/config.h"
using boost::asio::ip::tcp; // I don't want to type all of that god damned shit
ConfigVariable<std::string> bind_addr("messagedirector/bind", "unspecified");

MessageDirector MessageDirector::singleton;

void MessageDirector::InitializeMD()
{
	if(!m_initialized)
	{
		if(bind_addr.get_val() != "unspecified")
		{
			std::string str_ip = bind_addr.get_val();
			std::string str_port = str_ip.substr(str_ip.find(':', 0)+1, std::string::npos);
			str_ip = str_ip.substr(0, str_ip.find(':', 0));
			tcp::resolver resolver(io_service);
			tcp::resolver::query query(str_ip, str_port);
			tcp::resolver::iterator it = resolver.resolve(query);
			m_acceptor = new tcp::acceptor(io_service, *it, true);
			tcp::socket socket(io_service);
			tcp::endpoint peerEndpoint;
			m_acceptor->accept(socket);
		}
	}
}

MessageDirector::MessageDirector() : m_acceptor(NULL), m_initialized(false)
{
}
#include "messagedirector.h"
#include "../core/config.h"
ConfigVariable<std::string> bind_addr("messagedirector/bind", "unspecified");

MessageDirector MessageDirector::singleton;

void MessageDirector::InitializeMD()
{
	if(!m_initialized)
	{
		if(bind_addr.get_val() != "unspecified")
		{
		}
	}
}

MessageDirector::MessageDirector() : m_acceptor(NULL), m_initialized(false)
{
}
--- 
+++ 
@@ -1,5 +1,7 @@
+#include "../core/global.h"
 #include "messagedirector.h"
 #include "../core/config.h"
+using boost::asio::ip::tcp; // I don't want to type all of that god damned shit
 ConfigVariable<std::string> bind_addr("messagedirector/bind", "unspecified");
 
 MessageDirector MessageDirector::singleton;
@@ -10,6 +12,16 @@
 	{
 		if(bind_addr.get_val() != "unspecified")
 		{
+			std::string str_ip = bind_addr.get_val();
+			std::string str_port = str_ip.substr(str_ip.find(':', 0)+1, std::string::npos);
+			str_ip = str_ip.substr(0, str_ip.find(':', 0));
+			tcp::resolver resolver(io_service);
+			tcp::resolver::query query(str_ip, str_port);
+			tcp::resolver::iterator it = resolver.resolve(query);
+			m_acceptor = new tcp::acceptor(io_service, *it, true);
+			tcp::socket socket(io_service);
+			tcp::endpoint peerEndpoint;
+			m_acceptor->accept(socket);
 		}
 	}
 }
Put in some placeholder synhronous accept code
