XRootD
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 }
ssize_t read(int fildes, void *buf, size_t nbyte)
#define close(a)
Definition: XrdPosix.hh:43
char Buff[32000]
Definition: XrdFrmConfig.cc:88
XrdSysSemaphore mySem
Definition: XrdFrmConfig.cc:84

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

+ Here is the call graph for this function: