diff options
| -rw-r--r-- | Slimber/MainController.cpp | 19 | ||||
| -rw-r--r-- | Slimber/Server.h | 8 | 
2 files changed, 25 insertions, 2 deletions
| diff --git a/Slimber/MainController.cpp b/Slimber/MainController.cpp index 4e238d2..9cd8c4d 100644 --- a/Slimber/MainController.cpp +++ b/Slimber/MainController.cpp @@ -1,6 +1,7 @@  #include "Slimber/MainController.h"  #include <boost/bind.hpp> +#include <boost/lexical_cast.hpp>  #include <iostream>  #include "Swiften/Base/foreach.h" @@ -86,7 +87,22 @@ void MainController::handleServicesChanged() {  void MainController::handleServerStopped(boost::optional<ServerError> error) {  	if (error) { -		menuletController->setXMPPStatus("XMPP Server Error", MenuletController::Offline); +		String message; +		switch (error->getType()) { +			case ServerError::C2SPortConflict:  +				message = String("Error: Port ") + boost::lexical_cast<std::string>(server->getClientToServerPort()) + String(" in use"); +				break; +			case ServerError::C2SError: +				message = String("Local connection server error"); +			 break; +			case ServerError::LinkLocalPortConflict:  +				message = String("Error: Port ") + boost::lexical_cast<std::string>(server->getLinkLocalPort()) + String(" in use"); +				break; +			case ServerError::LinkLocalError:  +				message = String("External connection server error"); +				break; +		} +		menuletController->setXMPPStatus(message, MenuletController::Offline);  	}  	else {  		menuletController->setXMPPStatus("XMPP Server Not Running", MenuletController::Offline); @@ -94,7 +110,6 @@ void MainController::handleServerStopped(boost::optional<ServerError> error) {  }  void MainController::handleRestartRequested() { -	std::cout << "RESTART!" << std::endl;  	stop();  	start();  } diff --git a/Slimber/Server.h b/Slimber/Server.h index 372a3d3..3587c50 100644 --- a/Slimber/Server.h +++ b/Slimber/Server.h @@ -39,6 +39,14 @@ namespace Swift {  			void start();  			void stop(); +			int getLinkLocalPort() const { +				return linkLocalConnectionPort; +			} + +			int getClientToServerPort() const { +				return clientConnectionPort; +			} +  			boost::signal<void (bool)> onSelfConnected;  			boost::signal<void (boost::optional<ServerError>)> onStopped; | 
 Swift
 Swift