xrootd
|
#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 |
struct sockaddr | PeerAddr |
char * | PeerName |
XrdSysError * | eroute |
XrdNetSocket::XrdNetSocket | ( | XrdSysError * | erobj = 0 , |
int | SockFileDesc = -1 |
||
) |
XrdNetSocket::~XrdNetSocket | ( | ) | [inline] |
References Close().
int XrdNetSocket::Accept | ( | int | ms = -1 | ) |
References XrdSysError::Emsg(), eroute, ErrCode, poll(), POLLHUP, POLLIN, POLLPRI, POLLRDBAND, POLLRDNORM, pollfd::revents, and SockFD.
Referenced by main(), XrdXrootdAdmin::Start(), and XrdCmsAdmin::Start().
void XrdNetSocket::Close | ( | ) |
XrdNetSocket * XrdNetSocket::Create | ( | XrdSysError * | Say, |
const char * | path, | ||
const char * | fn, | ||
mode_t | mode, | ||
int | isudp = 0 |
||
) | [static] |
References XrdSysError::Emsg(), eMsg, LastError(), Open(), open(), S_IFIFO, S_IFSOCK, S_IRWXG, S_IRWXU, socketPath(), SockFD, XRDNET_FIFO, XRDNET_SERVER, XRDNET_UDPSOCKET, and XrdNetSocket().
Referenced by XrdXrootdProtocol::Configure(), XrdCnsConfig::Configure(), XrdOfsEvr::Init(), mainConfig(), XrdFrmXfrDaemon::Pong(), XrdCmsConfig::setupServer(), XrdOfsEvs::Start(), and XrdBwmLogger::Start().
int XrdNetSocket::Detach | ( | ) |
References 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::getWindow | ( | int | fd, |
int & | Windowsz, | ||
XrdSysError * | eDest = 0 |
||
) | [static] |
References XrdSysError::Emsg(), socklen_t, and Sokdata_t.
Referenced by XrdNet::WSize().
int XrdNetSocket::LastError | ( | ) | [inline] |
References ErrCode.
Referenced by XrdNet::Bind(), Create(), and main().
int XrdNetSocket::Open | ( | const char * | path, |
int | port = -1 , |
||
int | flags = 0 , |
||
int | sockbuffsz = 0 |
||
) |
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, 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().
const char * XrdNetSocket::Peername | ( | struct sockaddr ** | InetAddr = 0 | ) |
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] |
References 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] |
References XrdSysError::Emsg(), SOCKLEN_t, and Sokdata_t.
Referenced by Open().
const char * XrdNetSocket::socketAddr | ( | XrdSysError * | Say, |
const char * | dest, | ||
struct sockaddr ** | sockAP, | ||
int & | sockAL | ||
) | [static] |
References XrdSysError::Emsg(), XrdNetDNS::getHostAddr(), XrdNetDNS::Host2Dest(), XrdMonCtrCollector::port, XrdNetDNS::setPort(), 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] |
References access(), XrdSysError::Emsg(), XrdOucUtils::makePath(), rindex, S_IFIFO, S_IFSOCK, S_IRWXG, S_IRWXU, S_IXGRP, S_IXUSR, stat(), strlcpy(), and W_OK.
Referenced by Create(), and XrdCmsSupervisor::Init().
int XrdNetSocket::SockNum | ( | ) | [inline] |
References SockFD.
XrdSysError* XrdNetSocket::eroute [private] |
Referenced by Accept(), Open(), Peername(), and XrdNetSocket().
int XrdNetSocket::ErrCode [private] |
Referenced by Accept(), Close(), LastError(), Open(), Peername(), and XrdNetSocket().
struct sockaddr XrdNetSocket::PeerAddr [private] |
Referenced by Open(), and Peername().
char* XrdNetSocket::PeerName [private] |
Referenced by Close(), Detach(), Open(), Peername(), and XrdNetSocket().
int XrdNetSocket::SockFD [private] |
Referenced by Accept(), Close(), Create(), Detach(), Open(), Peername(), SockNum(), and XrdNetSocket().