2002-08-02 23:57:46 +04:00
|
|
|
/*
|
|
|
|
* synergy -- mouse and keyboard sharing utility
|
|
|
|
* Copyright (C) 2002 Chris Schoeneman
|
|
|
|
*
|
|
|
|
* This package is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU General Public License
|
|
|
|
* found in the file COPYING that should have accompanied this file.
|
|
|
|
*
|
|
|
|
* This package is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*/
|
|
|
|
|
2001-10-06 18:13:28 +04:00
|
|
|
#include "XSocket.h"
|
2003-01-05 01:01:32 +03:00
|
|
|
#include "CStringUtil.h"
|
2001-10-06 18:13:28 +04:00
|
|
|
|
|
|
|
//
|
|
|
|
// XSocketAddress
|
|
|
|
//
|
|
|
|
|
2002-07-28 23:06:52 +04:00
|
|
|
XSocketAddress::XSocketAddress(EError error,
|
2003-01-05 01:01:32 +03:00
|
|
|
const CString& hostname, int port) throw() :
|
2002-06-11 02:06:45 +04:00
|
|
|
m_error(error),
|
|
|
|
m_hostname(hostname),
|
|
|
|
m_port(port)
|
2001-10-06 18:13:28 +04:00
|
|
|
{
|
|
|
|
// do nothing
|
|
|
|
}
|
|
|
|
|
2002-07-28 23:06:52 +04:00
|
|
|
XSocketAddress::EError
|
2002-06-11 02:06:45 +04:00
|
|
|
XSocketAddress::getError() const throw()
|
2001-10-06 18:13:28 +04:00
|
|
|
{
|
|
|
|
return m_error;
|
|
|
|
}
|
|
|
|
|
2002-06-11 02:06:45 +04:00
|
|
|
CString
|
|
|
|
XSocketAddress::getHostname() const throw()
|
2001-10-06 18:13:28 +04:00
|
|
|
{
|
|
|
|
return m_hostname;
|
|
|
|
}
|
|
|
|
|
2003-01-05 01:01:32 +03:00
|
|
|
int
|
2002-06-11 02:06:45 +04:00
|
|
|
XSocketAddress::getPort() const throw()
|
2001-10-06 18:13:28 +04:00
|
|
|
{
|
|
|
|
return m_port;
|
|
|
|
}
|
|
|
|
|
2002-06-11 02:06:45 +04:00
|
|
|
CString
|
|
|
|
XSocketAddress::getWhat() const throw()
|
2001-10-06 18:13:28 +04:00
|
|
|
{
|
2002-07-25 21:52:40 +04:00
|
|
|
static const char* s_errorID[] = {
|
|
|
|
"XSocketAddressUnknown",
|
|
|
|
"XSocketAddressNotFound",
|
|
|
|
"XSocketAddressNoAddress",
|
2004-02-15 20:32:11 +03:00
|
|
|
"XSocketAddressUnsupported",
|
2002-07-25 21:52:40 +04:00
|
|
|
"XSocketAddressBadPort"
|
|
|
|
};
|
|
|
|
static const char* s_errorMsg[] = {
|
|
|
|
"unknown error for: %{1}:%{2}",
|
|
|
|
"address not found for: %{1}",
|
|
|
|
"no address for: %{1}",
|
2004-02-15 20:32:11 +03:00
|
|
|
"unsupported address for: %{1}",
|
2002-07-25 21:58:01 +04:00
|
|
|
"invalid port" // m_port may not be set to the bad port
|
2002-07-25 21:52:40 +04:00
|
|
|
};
|
|
|
|
return format(s_errorID[m_error], s_errorMsg[m_error],
|
|
|
|
m_hostname.c_str(),
|
|
|
|
CStringUtil::print("%d", m_port).c_str());
|
2001-10-06 18:13:28 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2002-09-15 00:56:28 +04:00
|
|
|
//
|
|
|
|
// XSocketIOClose
|
|
|
|
//
|
|
|
|
|
|
|
|
CString
|
|
|
|
XSocketIOClose::getWhat() const throw()
|
|
|
|
{
|
2003-01-05 01:01:32 +03:00
|
|
|
return format("XSocketIOClose", "close: %{1}", what());
|
2002-09-15 00:56:28 +04:00
|
|
|
}
|
|
|
|
|
2001-10-06 18:13:28 +04:00
|
|
|
|
|
|
|
//
|
|
|
|
// XSocketBind
|
|
|
|
//
|
|
|
|
|
2002-06-11 02:06:45 +04:00
|
|
|
CString
|
|
|
|
XSocketBind::getWhat() const throw()
|
2001-10-06 18:13:28 +04:00
|
|
|
{
|
2003-01-05 01:01:32 +03:00
|
|
|
return format("XSocketBind", "cannot bind address: %{1}", what());
|
2001-10-06 18:13:28 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
// XSocketConnect
|
|
|
|
//
|
|
|
|
|
2002-06-11 02:06:45 +04:00
|
|
|
CString
|
|
|
|
XSocketConnect::getWhat() const throw()
|
2001-10-06 18:13:28 +04:00
|
|
|
{
|
2003-01-05 01:01:32 +03:00
|
|
|
return format("XSocketConnect", "cannot connect socket: %{1}", what());
|
2001-10-06 18:13:28 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
// XSocketCreate
|
|
|
|
//
|
|
|
|
|
2002-06-11 02:06:45 +04:00
|
|
|
CString
|
|
|
|
XSocketCreate::getWhat() const throw()
|
2001-10-06 18:13:28 +04:00
|
|
|
{
|
2003-01-05 01:01:32 +03:00
|
|
|
return format("XSocketCreate", "cannot create socket: %{1}", what());
|
2001-10-06 18:13:28 +04:00
|
|
|
}
|