135{
136 XrdXrootdMonMap *mP;
137 long long mySid;
138 const char *etext = 0;
139 char iBuff[1024];
140 bool aOK;
141
142
143
145 (iName ? iName : "anon"), 0);
146 sidSize = strlen(sidName);
147 startTime = htonl(time(0));
148
149
150
151 if (!isEnabled) return 1;
152
153
154
155#if defined(__GNUC__) && __GNUC__ >= 12
156#pragma GCC diagnostic push
157#pragma GCC diagnostic ignored "-Warray-bounds"
158#endif
159
160
161 idLen = strlen(iBuff) +
sizeof(XrdXrootdMonHeader) +
sizeof(
kXR_int32);
162 idRec = (char *)malloc(idLen+1);
163 mP = (XrdXrootdMonMap *)idRec;
167 strcpy(mP->
info, iBuff);
168#if defined(__GNUC__) && __GNUC__ >= 12
169#pragma GCC diagnostic pop
170#endif
171
172
173
174 InetDest1 =
new XrdNetMsg(&
Say, Dest1, &aOK);
175 if (!aOK)
176 {
Say.Emsg(
"Monitor",
"setup monitor collector;", etext);
177 return 0;
178 }
179
180
181
182 if (Dest2)
183 {InetDest2 =
new XrdNetMsg(&
Say, Dest2, &aOK);
184 if (!aOK)
185 {
Say.Emsg(
"Monitor",
"setup monitor collector;", etext);
186 return 0;
187 }
188 }
189
190
191
192 if (idTime)
193 {pthread_t tid;
194 int retc;
196 {
Say.Emsg(
"Init", retc,
"create monitor ident thread");
return 0;}
197 }
198
199
200
201 return 1;
202}
XrdOucPup XrdCmsParser::Pup & Say
void * XrdFrmMonitorID(void *parg)
const kXR_char XROOTD_MON_MAPIDNT
static char * Ident(long long &mySID, char *iBuff, int iBlen, const char *iHost, const char *iProg, const char *iName, int Port)
static int Run(pthread_t *, void *(*proc)(void *), void *arg, int opts=0, const char *desc=0)