XRootD
Loading...
Searching...
No Matches
XrdFrmConfig.cc File Reference
#include <unistd.h>
#include <cctype>
#include <dirent.h>
#include <cstring>
#include <cstdio>
#include <fcntl.h>
#include <sys/param.h>
#include <sys/types.h>
#include <sys/stat.h>
#include "XrdVersion.hh"
#include "Xrd/XrdInfo.hh"
#include "XrdFrc/XrdFrcTrace.hh"
#include "XrdFrc/XrdFrcUtils.hh"
#include "XrdFrm/XrdFrmCns.hh"
#include "XrdFrm/XrdFrmConfig.hh"
#include "XrdFrm/XrdFrmMonitor.hh"
#include "XrdNet/XrdNetAddr.hh"
#include "XrdNet/XrdNetCmsNotify.hh"
#include "XrdOfs/XrdOfsConfigPI.hh"
#include "XrdOss/XrdOss.hh"
#include "XrdOss/XrdOssSpace.hh"
#include "XrdOuc/XrdOuca2x.hh"
#include "XrdOuc/XrdOucEnv.hh"
#include "XrdOuc/XrdOucExport.hh"
#include "XrdOuc/XrdOucMsubs.hh"
#include "XrdOuc/XrdOucN2NLoader.hh"
#include "XrdOuc/XrdOucProg.hh"
#include "XrdOuc/XrdOucSiteName.hh"
#include "XrdOuc/XrdOucStream.hh"
#include "XrdOuc/XrdOucPList.hh"
#include "XrdOuc/XrdOucTList.hh"
#include "XrdOuc/XrdOucTokenizer.hh"
#include "XrdOuc/XrdOucUtils.hh"
#include "XrdSys/XrdSysError.hh"
#include "XrdSys/XrdSysHeaders.hh"
#include "XrdSys/XrdSysLogger.hh"
#include "XrdSys/XrdSysTimer.hh"
#include "XrdSys/XrdSysPlatform.hh"
#include "XrdSys/XrdSysPthread.hh"
#include "XrdSys/XrdSysUtils.hh"
+ Include dependency graph for XrdFrmConfig.cc:

Go to the source code of this file.

Classes

class  XrdFrmConfigSE
 

Macros

#define PARSEPI(x)   return !OfsCfg->Parse(XrdOfsConfigPI:: x);
 

Functions

void * XrdFrmConfigMum (void *parg)
 

Macro Definition Documentation

◆ PARSEPI

#define PARSEPI ( x)    return !OfsCfg->Parse(XrdOfsConfigPI:: x);

Definition at line 1001 of file XrdFrmConfig.cc.

Function Documentation

◆ XrdFrmConfigMum()

void * XrdFrmConfigMum ( void * parg)

Definition at line 98 of file XrdFrmConfig.cc.

99{
100 XrdFrmConfigSE *theSE = (XrdFrmConfigSE *)parg;
101 char *bp = theSE->Buff;
102 int n, bleft = sizeof(theSE->Buff)-2;
103
104// Let the calling thread continue at this point
105//
106 theSE->mySem.Post();
107
108// Read everything we can
109//
110 do {if ((n = read(theSE->myFD, bp, bleft)) <= 0)
111 {if (!n || (n < 0 && errno != EINTR)) break;}
112 bp += n;
113 } while ((bleft -= n));
114
115// Refalgomize everything
116//
117 dup2(theSE->seFD, STDERR_FILENO);
118 close(theSE->seFD);
119
120// Check if we should add a newline character
121//
122 if (theSE->Buff[bp-(theSE->Buff)-1L] != '\n') *bp++ = '\n';
123 theSE->BLen = bp-(theSE->Buff);
124
125// All done
126//
127 theSE->mySem.Post();
128 return (void *)0;
129}
#define close(a)
Definition XrdPosix.hh:48
#define read(a, b, c)
Definition XrdPosix.hh:82
char Buff[32000]
XrdSysSemaphore mySem

References XrdFrmConfigSE::BLen, XrdFrmConfigSE::Buff, close, XrdFrmConfigSE::myFD, XrdFrmConfigSE::mySem, XrdSysSemaphore::Post(), read, and XrdFrmConfigSE::seFD.

+ Here is the call graph for this function: