37 #include <sys/types.h>
80 case '+':
return &StgBoss;
82 case '&':
return &MigBoss;
83 case '<':
return &GetBoss;
85 case '>':
return &PutBoss;
101 sprintf(buff,
"%s/frm_xfrd.lock",
Config.QPath);
116 Say.
Emsg(
"Config",
"Output copy command not specified; "
117 "auto-migration disabled!");
119 }
else Say.
Emsg(
"Config",
"No migratable paths; "
120 "auto-migration disabled!");
127 || !PutBoss.Start(
Config.QPath,
Config.AdminMode))
return 0;
148 static int udpFD = -1;
162 {udpFD = udpSock->
Detach();
delete udpSock;
165 Say.
Emsg(
"main", retc,
"create udp listner");
172 Request.
Attach(udpFD, 64*1024);
177 while((tp = Request.
GetLine()))
178 {
DEBUG(
": '" <<tp <<
"'");
181 case '!':
if ((tp = Request.
GetToken()))
183 {
if ((bossP = Boss(*tp))) bossP->
Wakeup(1);}
191 Say.
Emsg(
"Server",
"Lost udp connection!");
208 {StgBoss.Wakeup(); GetBoss.Wakeup();
209 MigBoss.Wakeup(); PutBoss.Wakeup();
void * XrdFrmXfrDaemonPong(void *parg)
#define XRDSYSTHREAD_BIND
static int Unique(const char *lkfn, const char *myProg)
static void Migrate(int doinit=1)
void Wakeup(int PushIt=1)
static void Process(XrdOucStream &Request)
static XrdNetSocket * Create(XrdSysError *Say, const char *path, const char *fn, mode_t mode, int isudp=0)
int Attach(int FileDescriptor, int bsz=2047)
char * GetToken(int lowcase=0)
int Emsg(const char *esfx, int ecode, const char *text1, const char *text2=0)
static int Run(pthread_t *, void *(*proc)(void *), void *arg, int opts=0, const char *desc=0)
static void Snooze(int seconds)