#include <XrdNetSocket.hh>
Public Member Functions | |
XrdNetSocket (XrdSysError *erobj=0, int SockFileDesc=-1) | |
~XrdNetSocket () | |
int | Open (const char *path, int port=-1, int flags=0, int sockbuffsz=0) |
int | Accept (int ms=-1) |
void | Close () |
int | Detach () |
int | LastError () |
const char * | Peername (struct sockaddr **InetAddr=0) |
int | SockNum () |
Static Public Member Functions | |
static XrdNetSocket * | Create (XrdSysError *Say, const char *path, const char *fn, mode_t mode, int isudp=0) |
static int | setOpts (int fd, int options, XrdSysError *eDest=0) |
static int | setWindow (int fd, int Windowsz, XrdSysError *eDest=0) |
static int | getWindow (int fd, int &Windowsz, XrdSysError *eDest=0) |
static const char * | socketAddr (XrdSysError *Say, const char *dest, struct sockaddr **sockAP, int &sockAL) |
static char * | socketPath (XrdSysError *Say, char *inbuff, const char *path, const char *fn, mode_t mode) |
Private Attributes | |
int | SockFD |
int | ErrCode |
sockaddr | PeerAddr |
char * | PeerName |
XrdSysError * | eroute |
Definition at line 27 of file XrdNetSocket.hh.
XrdNetSocket::XrdNetSocket | ( | XrdSysError * | erobj = 0 , |
|
int | SockFileDesc = -1 | |||
) |
XrdNetSocket::~XrdNetSocket | ( | ) | [inline] |
XrdNetSocket * XrdNetSocket::Create | ( | XrdSysError * | Say, | |
const char * | path, | |||
const char * | fn, | |||
mode_t | mode, | |||
int | isudp = 0 | |||
) | [static] |
Definition at line 122 of file XrdNetSocket.cc.
References eMsg, XrdSysError::Emsg(), LastError(), open, Open(), S_IFIFO, S_IFSOCK, S_IRWXG, S_IRWXU, XrdFrm::Say(), socketPath(), SockFD, XRDNET_FIFO, XRDNET_SERVER, XRDNET_UDPSOCKET, and XrdNetSocket().
Referenced by XrdCnsConfig::Configure(), XrdXrootdProtocol::Configure(), XrdCmsConfig::Configure2(), XrdOfsEvr::Init(), mainConfig(), XrdFrmXfrDaemon::Pong(), XrdCmsConfig::setupServer(), XrdOfsEvs::Start(), and XrdBwmLogger::Start().
int XrdNetSocket::Open | ( | const char * | path, | |
int | port = -1 , |
|||
int | flags = 0 , |
|||
int | sockbuffsz = 0 | |||
) |
Definition at line 192 of file XrdNetSocket.cc.
References Close(), XrdNetConnect::Connect(), EHOSTUNREACH, XrdSysError::Emsg(), eroute, Err, ErrCode, XrdNetDNS::getHostAddr(), XrdNetDNS::Host2Dest(), PeerAddr, PeerName, S_IRWXU, setOpts(), XrdNetDNS::setPort(), setWindow(), SockFD, SOCKLEN_t, Sokdata_t, sprintf(), strcpy(), sockaddr_un::sun_family, sockaddr_un::sun_path, unlink, XRDNET_BKLG, XRDNET_NOEMSG, XRDNET_SERVER, XRDNET_TOUT, XRDNET_UDPSOCKET, and XRDNETSOCKET_MAXBKLG.
Referenced by XrdNet::Bind(), XrdNet::Connect(), Create(), and main().
int XrdNetSocket::Accept | ( | int | ms = -1 |
) |
Definition at line 73 of file XrdNetSocket.cc.
References XrdSysError::Emsg(), eroute, ErrCode, poll(), POLLHUP, POLLIN, POLLPRI, POLLRDBAND, POLLRDNORM, pollfd::revents, and SockFD.
Referenced by main(), XrdCmsAdmin::Start(), and XrdXrootdAdmin::Start().
void XrdNetSocket::Close | ( | ) |
Definition at line 103 of file XrdNetSocket.cc.
References close, ErrCode, free(), PeerName, and SockFD.
Referenced by Open(), and ~XrdNetSocket().
int XrdNetSocket::Detach | ( | ) |
Definition at line 166 of file XrdNetSocket.cc.
References free(), PeerName, and SockFD.
Referenced by XrdNet::Bind(), XrdCnsConfig::Configure(), XrdNet::Connect(), XrdOfsEvr::Init(), main(), mainConfig(), XrdCmsAdmin::Notes(), XrdFrmXfrDaemon::Pong(), XrdOfsEvs::Start(), and XrdBwmLogger::Start().
int XrdNetSocket::LastError | ( | ) | [inline] |
Definition at line 87 of file XrdNetSocket.hh.
References ErrCode.
Referenced by XrdNet::Bind(), Create(), and main().
const char * XrdNetSocket::Peername | ( | struct sockaddr ** | InetAddr = 0 |
) |
Definition at line 306 of file XrdNetSocket.cc.
References XrdSysError::Emsg(), eroute, ErrCode, PeerAddr, XrdNetDNS::Peername(), PeerName, and SockFD.
Referenced by XrdNet::Connect().
int XrdNetSocket::setOpts | ( | int | fd, | |
int | options, | |||
XrdSysError * | eDest = 0 | |||
) | [static] |
Definition at line 337 of file XrdNetSocket.cc.
References eDest, XrdSysError::Emsg(), F_SETFD, fcntl(), FD_CLOEXEC, XrdNetDNS::getProtoID(), SOCKLEN_t, Sokdata_t, XRDNET_DELAY, XRDNET_KEEPALIVE, XRDNET_NOCLOSEX, XRDNET_NOLINGER, XRDNET_UDPSOCKET, and XRDNETSOCKET_LINGER.
Referenced by XrdNet::do_Accept_TCP(), Open(), XrdCmsAdmin::Relay(), and XrdCmsAdmin::Start().
int XrdNetSocket::setWindow | ( | int | fd, | |
int | Windowsz, | |||
XrdSysError * | eDest = 0 | |||
) | [static] |
Definition at line 378 of file XrdNetSocket.cc.
References eDest, XrdSysError::Emsg(), SOCKLEN_t, and Sokdata_t.
Referenced by Open().
int XrdNetSocket::getWindow | ( | int | fd, | |
int & | Windowsz, | |||
XrdSysError * | eDest = 0 | |||
) | [static] |
Definition at line 177 of file XrdNetSocket.cc.
References eDest, socklen_t, and Sokdata_t.
Referenced by XrdNet::WSize().
int XrdNetSocket::SockNum | ( | ) | [inline] |
const char * XrdNetSocket::socketAddr | ( | XrdSysError * | Say, | |
const char * | dest, | |||
struct sockaddr ** | sockAP, | |||
int & | sockAL | |||
) | [static] |
Definition at line 401 of file XrdNetSocket.cc.
References XrdNetDNS::getHostAddr(), XrdNetDNS::Host2Dest(), malloc(), XrdMonCtrCollector::port, XrdFrm::Say(), XrdNetDNS::setPort(), strcpy(), sockaddr_un::sun_family, and sockaddr_un::sun_path.
Referenced by XrdNetMsg::Send(), and XrdNetMsg::XrdNetMsg().
char * XrdNetSocket::socketPath | ( | XrdSysError * | Say, | |
char * | inbuff, | |||
const char * | path, | |||
const char * | fn, | |||
mode_t | mode | |||
) | [static] |
Definition at line 444 of file XrdNetSocket.cc.
References access, XrdSysError::Emsg(), i, XrdOucUtils::makePath(), rindex, S_IFIFO, S_IFSOCK, S_IRWXG, S_IRWXU, S_IXGRP, S_IXUSR, XrdFrm::Say(), stat, strcpy(), strlcpy(), and W_OK.
Referenced by Create(), and XrdCmsSupervisor::Init().
int XrdNetSocket::SockFD [private] |
Definition at line 137 of file XrdNetSocket.hh.
Referenced by Accept(), Close(), Create(), Detach(), Open(), Peername(), SockNum(), and XrdNetSocket().
int XrdNetSocket::ErrCode [private] |
Definition at line 138 of file XrdNetSocket.hh.
Referenced by Accept(), Close(), LastError(), Open(), Peername(), and XrdNetSocket().
struct sockaddr XrdNetSocket::PeerAddr [private] |
char* XrdNetSocket::PeerName [private] |
Definition at line 140 of file XrdNetSocket.hh.
Referenced by Close(), Detach(), Open(), Peername(), and XrdNetSocket().
XrdSysError* XrdNetSocket::eroute [private] |
Definition at line 141 of file XrdNetSocket.hh.
Referenced by Accept(), Open(), Peername(), and XrdNetSocket().