32 #include <sys/socket.h>
33 #include <sys/types.h>
47 #define XRDLINK_RDLOCK 0x0001
48 #define XRDLINK_NOCLOSE 0x0002
74 void Bind(pthread_t tid);
76 int Client(
char *buff,
int blen);
78 int Close(
int defer=0);
85 {
if (fd < 0) fd = -fd;
90 {
if (fd < 0) fd = -fd;
99 int &numstall,
int &numtardy)
127 const char *
Name(sockaddr *ipaddr=0)
128 {
if (ipaddr) memcpy(ipaddr, &
InetAddr,
sizeof(sockaddr));
129 return (
const char *)
Lname;
132 const char *
Host(sockaddr *ipaddr=0)
133 {
if (ipaddr) memcpy(ipaddr, &
InetAddr,
sizeof(sockaddr));
137 int Peek(
char *buff,
int blen,
int timeout=-1);
139 int Recv(
char *buff,
int blen);
140 int Recv(
char *buff,
int blen,
int timeout);
142 int RecvAll(
char *buff,
int blen,
int timeout=-1);
144 int Send(
const char *buff,
int blen);
145 int Send(
const struct iovec *iov,
int iocnt,
int bytes=0);
157 int Send(
const struct sfVec *sdP,
int sdn);
163 void setID(
const char *userid,
int procid);
165 static void setKWT(
int wkSec,
int kwSec);
171 static int Setup(
int maxfd,
int idlewait);
173 static int Stats(
char *buff,
int blen,
int do_sync=0);
189 int sendData(
const char *Buff,
int Blen);
int Client(char *buff, int blen)
int HNlen
Definition: XrdLink.hh:234
static XrdLink * fd2link(int fd, unsigned int inst)
Definition: XrdLink.hh:89
char isEnabled
Definition: XrdLink.hh:256
int FD
Definition: XrdLink.hh:249
XrdLink * Next
Definition: XrdLink.hh:242
static void setKWT(int wkSec, int kwSec)
char * buffer
Definition: XrdLink.hh:147
friend class XrdPollDev
Definition: XrdLink.hh:68
static XrdSysError * XrdLog
Definition: XrdLink.hh:191
void Hold(int lk)
Definition: XrdLink.hh:111
void syncStats(int *ctime=0)
long long BytesInTot
Definition: XrdLink.hh:218
struct sockaddr InetAddr
Definition: XrdLink.hh:230
static int devNull
Definition: XrdLink.hh:202
XrdProtocol * ProtoAlt
Definition: XrdLink.hh:245
unsigned int Inst()
Definition: XrdLink.hh:120
static int LinkCountMax
Definition: XrdLink.hh:213
XrdProtocol * Protocol
Definition: XrdLink.hh:244
char LockReads
Definition: XrdLink.hh:254
static const char KillXwt
Definition: XrdLink.hh:263
XrdProtocol * setProtocol(XrdProtocol *pp)
static short killWait
Definition: XrdLink.hh:203
friend class XrdPoll
Definition: XrdLink.hh:66
XrdSysMutex opMutex
Definition: XrdLink.hh:237
static int LinkSfIntr
Definition: XrdLink.hh:216
static XrdLink * fd2link(int fd)
Definition: XrdLink.hh:84
struct pollfd * PollEnt
Definition: XrdLink.hh:247
static int LinkTimeOuts
Definition: XrdLink.hh:214
Definition: XrdProtocol.hh:109
int doPost
Definition: XrdLink.hh:253
int stallCntTot
Definition: XrdLink.hh:222
time_t timeCon()
Definition: XrdLink.hh:179
static long long LinkBytesIn
Definition: XrdLink.hh:208
char * Etext
Definition: XrdLink.hh:248
static const int sfMax
Definition: XrdLink.hh:153
int UseCnt()
Definition: XrdLink.hh:181
int Terminate(const XrdLink *owner, int fdnum, unsigned int inst)
char * ID
Definition: XrdLink.hh:113
static const char KillMsk
Definition: XrdLink.hh:262
long long BytesIn
Definition: XrdLink.hh:217
static int Setup(int maxfd, int idlewait)
int InUse
Definition: XrdLink.hh:252
Definition: XrdOucTrace.hh:35
Definition: XrdSysError.hh:87
static XrdLink ** LinkTab
Definition: XrdLink.hh:197
Definition: XrdScheduler.hh:42
Definition: XrdLink.hh:147
int stallCnt
Definition: XrdLink.hh:221
Definition: XrdSysPthread.hh:140
int isInstance(unsigned int inst)
Definition: XrdLink.hh:124
static int Stats(char *buff, int blen, int do_sync=0)
char inQ
Definition: XrdLink.hh:258
char * HostName
Definition: XrdLink.hh:233
const char * Host(sockaddr *ipaddr=0)
Definition: XrdLink.hh:132
XrdNetBuffer * udpbuff
Definition: XrdLink.hh:243
static unsigned int LinkAlloc
Definition: XrdLink.hh:199
unsigned int Instance
Definition: XrdLink.hh:250
int setEtext(const char *text)
static void Init(XrdSysError *eP, XrdOucTrace *tP, XrdScheduler *sP)
Definition: XrdLink.hh:115
const char * Name(sockaddr *ipaddr=0)
Definition: XrdLink.hh:127
Definition: XrdLink.hh:62
static int LinkCount
Definition: XrdLink.hh:212
XrdSysSemaphore IOSemaphore
Definition: XrdLink.hh:240
Definition: XrdSysPthread.hh:53
int Peek(char *buff, int blen, int timeout=-1)
Definition: XrdSysPthread.hh:329
XrdPoll * Poller
Definition: XrdLink.hh:246
int sendsz
Definition: XrdLink.hh:150
long long BytesOut
Definition: XrdLink.hh:219
char Lname[232]
Definition: XrdLink.hh:232
static int getName(int &curr, char *bname, int blen, XrdLinkMatch *who=0)
static int LinkStalls
Definition: XrdLink.hh:215
off_t offset
Definition: XrdLink.hh:148
static XrdSysMutex statsMutex
Definition: XrdLink.hh:226
XrdProtocol * getProtocol()
Definition: XrdLink.hh:109
~XrdLink()
Definition: XrdLink.hh:184
static long long LinkBytesOut
Definition: XrdLink.hh:209
static XrdLink * Find(int &curr, XrdLinkMatch *who=0)
int fdnum
Definition: XrdLink.hh:151
void setID(const char *userid, int procid)
static short waitKill
Definition: XrdLink.hh:204
static XrdLink * Alloc(XrdNetPeer &Peer, int opts=0)
int Send(const char *buff, int blen)
friend class XrdPollE
Definition: XrdLink.hh:69
static XrdScheduler * XrdSched
Definition: XrdLink.hh:193
static long long LinkCountTot
Definition: XrdLink.hh:211
static XrdInet * XrdNetTCP
Definition: XrdLink.hh:194
pthread_t TID
Definition: XrdLink.hh:235
XrdSysMutex rdMutex
Definition: XrdLink.hh:238
friend class XrdLinkScan
Definition: XrdLink.hh:65
static const char KillMax
Definition: XrdLink.hh:261
void Lock()
Definition: XrdSysPthread.hh:149
char KeepFD
Definition: XrdLink.hh:255
XrdSysMutex wrMutex
Definition: XrdLink.hh:239
char isIdle
Definition: XrdLink.hh:257
int FDnum()
Definition: XrdLink.hh:82
int sendData(const char *Buff, int Blen)
static XrdOucTrace * XrdTrace
Definition: XrdLink.hh:192
static char * LinkBat
Definition: XrdLink.hh:198
XrdSysCondVar * KillcvP
Definition: XrdLink.hh:241
char KillCnt
Definition: XrdLink.hh:260
int RecvAll(char *buff, int blen, int timeout=-1)
long long BytesOutTot
Definition: XrdLink.hh:220
friend class XrdPollPoll
Definition: XrdLink.hh:67
static const char * TraceID
Definition: XrdLink.hh:201
int SfIntr
Definition: XrdLink.hh:225
static int LTLast
Definition: XrdLink.hh:200
char tBound
Definition: XrdLink.hh:259
char Uname[24]
Definition: XrdLink.hh:231
Definition: XrdLinkMatch.hh:35
int isFlawed()
Definition: XrdLink.hh:122
void UnLock()
Definition: XrdSysPthread.hh:151
int tardyCntTot
Definition: XrdLink.hh:224
time_t conTime
Definition: XrdLink.hh:251
static int sfOK
Definition: XrdLink.hh:155
static long long LinkConTime
Definition: XrdLink.hh:210
int tardyCnt
Definition: XrdLink.hh:223
int getIOStats(long long &inbytes, long long &outbytes, int &numstall, int &numtardy)
Definition: XrdLink.hh:98
int Recv(char *buff, int blen)
static XrdSysMutex LTMutex
Definition: XrdLink.hh:196
static void Init(XrdInet *iP)
Definition: XrdLink.hh:118