Index: /branches/proxy/src/lib/network/handshake.cc
===================================================================
--- /branches/proxy/src/lib/network/handshake.cc	(revision 9294)
+++ /branches/proxy/src/lib/network/handshake.cc	(revision 9295)
@@ -46,4 +46,5 @@
 
   registerVar( new SynchronizeableString( &localState.preferedNickName, &remoteState.preferedNickName, "preferedNickName", PERMISSION_ALL ) );
+  registerVar( new SynchronizeableIP( &localState.proxy1, &remoteState.proxy1, "proxy server 1", PERMISSION_ALL ) );
 
   // init the local state
Index: /branches/proxy/src/lib/network/handshake.h
===================================================================
--- /branches/proxy/src/lib/network/handshake.h	(revision 9294)
+++ /branches/proxy/src/lib/network/handshake.h	(revision 9295)
@@ -11,22 +11,27 @@
 
 
-struct HandshakeState {
-  int orxId;                         //!< orxonox id
-  int version;                       //!< network protocol version
+struct HandshakeState
+{
+  int           orxId;                         //!< orxonox id
+  int           version;                       //!< network protocol version
 
-  int networkManagerId;              //!< unique id of the network manager
-  int messageManagerId;              //!< unique id of the message manager
-  int hostId;                        //!< host id
-  int nodeType;                      //!< type of the network node
+  int           networkManagerId;              //!< unique id of the network manager
+  int           messageManagerId;              //!< unique id of the message manager
+  int           hostId;                        //!< host id
+  int           nodeType;                      //!< type of the network node
 
-  int completed;                     //!< true if completed
-  int canDel;                        //!< true if marked for deletion
+  int           completed;                     //!< true if completed
+  int           canDel;                        //!< true if marked for deletion
 
-  int error;                         //!< error number
+  int           error;                         //!< error number
 
-  std::string errorString;           //!< error string
+  std::string   errorString;                   //!< error string
 
   //additional data
-  std::string preferedNickName;      //!< prefered nick name
+  std::string   preferedNickName;              //!< prefered nick name
+
+  int           freeSlots;                     //!< true if there are still free slots on this server
+  IPaddress     proxy1;                        //!< ip address of the first proxy (0.0.0.0 of not available)
+  IPaddress     proxy2;                        //!< ip address of the second proxy (0.0.0.0 of not available)
 };
 
@@ -52,4 +57,5 @@
     inline void del(){ localState.canDel = 1; }
 
+
     /* the actual informations exchanged in the handshake */
     /** @returns the host id of the remote host */
@@ -66,4 +72,14 @@
     /** @returns the prefered nick name */
     inline std::string getPreferedNickName(){ return remoteState.preferedNickName; }
+
+    /** @param address: the address of the proxy server 1 if any */
+    inline void setProxy1Address(IPaddress address) { this->localState.proxy1 = address; }
+    /** @returns the address of the proxy server 1 if any */
+    inline IPaddress getProxy1Address() { return this->localState.proxy1; }
+    /** @param address: the address of the proxy server 2 if any */
+    inline void setProxy2Address(IPaddress address) { this->localState.proxy2 = address; }
+    /** @returns the address of the proxy server 2 if any */
+    inline IPaddress getProxy2Address() { return this->localState.proxy2; }
+
 
     /* variable handler function */
Index: /branches/proxy/src/lib/network/monitor/network_monitor.h
===================================================================
--- /branches/proxy/src/lib/network/monitor/network_monitor.h	(revision 9294)
+++ /branches/proxy/src/lib/network/monitor/network_monitor.h	(revision 9295)
@@ -49,4 +49,5 @@
     inline void removeMasterServer(NetworkNode* node, PeerInfo* pInfo) { node->removeMasterServer(pInfo); }
 
+    /* slots admin and info interface */
     /** @returns the total number of players in this game (including all proxy servers etc)*/
     inline int getPlayerNumber() { return this->playerNumber; }
Index: /branches/proxy/src/lib/network/synchronizeable.h
===================================================================
--- /branches/proxy/src/lib/network/synchronizeable.h	(revision 9294)
+++ /branches/proxy/src/lib/network/synchronizeable.h	(revision 9295)
@@ -20,4 +20,5 @@
 #include "synchronizeable_var/synchronizeable_bool.h"
 #include "synchronizeable_var/synchronizeable_uint.h"
+#include "synchronizeable_var/synchronizeable_ip.h"
 
 
