135{
136 XrdNetAddr theAddr;
137 const char *Host = 0;
140 int wLen, rc;
141
142
143
144 while(1)
145 {Ready.Wait();
146 myMutex.Lock();
147 if ((sbP = inQ)) inQ = sbP->Next;
148 myMutex.UnLock();
149 if (!sbP) continue;
150 if (xP)
152 else if (theAddr.
Set(&(sbP->From.Addr))) Host = 0;
153 else Host = theAddr.
Name();
154 wLen = xP->
Format(Host, sbP->Data, obuff);
155 bP = obuff;
156 } else {
157 bP = sbP->Data;
158 *(bP + sbP->Dlen) = '\n';
159 wLen = sbP->Dlen+1;
160 }
161
162 while(wLen > 0)
163 {
do {rc =
write(STDOUT_FILENO, bP, wLen);}
164 while(rc < 0 && errno == EINTR);
165 wLen -= rc; bP += rc;
166 }
167
168 myMutex.Lock(); sbP->Next = Free; Free = sbP; myMutex.UnLock();
169 }
170
171
172
173 return (void *)0;
174}
int Format(const char *Host, char *ibuff, char *obuff)
const char * Name(const char *eName=0, const char **eText=0)
const char * Set(const char *hSpec, int pNum=PortInSpec)
static const int addSender