#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <syslog.h>
#include <errno.h>
#include <pwd.h>
#include <ios>
#include <fstream>
#include <list>
#include <string>
#include <string.h>
#include <signal.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <grp.h>
#include <dirent.h>
#include "Varargs.h"
#include "rpdconn.h"
#include "rpdpriv.h"
Macros | |
#define | kMAXPATHLEN 4096 |
Functions | |
int | assertdir (const std::string &path, uid_t u, gid_t g, unsigned int mode) |
Make sure that 'path' exists, it is owned by the entity described by {u,g} and its mode is 'mode'. More... | |
int | changeown (const std::string &path, uid_t u, gid_t g) |
Change the ownership of 'path' to the entity described by {u,g}. More... | |
int | completercfile (const std::string &rcfile, const std::string &sessdir, const std::string &stag, const std::string &adminpath) |
Finalize the rc file with the missing pieces. More... | |
int | exportsock (rpdunix *conn) |
Export the descriptor of 'conn' so that it can used in the execv application. More... | |
void | Info (const char *va_(fmt),...) |
Write info message to syslog. More... | |
int | loginuser (const std::string &home, const std::string &user, uid_t uid, gid_t gid) |
Login the user in its space. More... | |
int | main (int argc, char **argv) |
Program executed via system starting proofserv instances. More... | |
int | mvfile (const std::string &from, const std::string &to, uid_t u, gid_t g, unsigned int mode) |
Move file form 'from' to 'to', making sure that it is owned by the entity described by {u,g} and its mode is 'mode' (at the final destination). More... | |
int | redirectoutput (const std::string &logfile) |
Redirect stdout to 'logfile' On success return 0. More... | |
int | setownerships (int euid, const std::string &us, const std::string &gr, const std::string &creds, const std::string &dsrcs, const std::string &ddir, const std::string &ddiro, const std::string &ord, const std::string &stag) |
Set user ownerships on some critical files or directories. More... | |
int | setproofservenv (const std::string &envfile, const std::string &logfile, const std::string &rcfile) |
Initialize the environment following the content of 'envfile'. More... | |
void | start_ps (int argc, char **argv) |
Process a request to start a proofserv process. More... | |
Variables | |
static int | gDebug = 0 |
static FILE * | gLogger = 0 |
static int | gType = 0 |
#define kMAXPATHLEN 4096 |
Definition at line 47 of file proofexecv.cxx.
int assertdir | ( | const std::string & | path, |
uid_t | u, | ||
gid_t | g, | ||
unsigned int | mode | ||
) |
Make sure that 'path' exists, it is owned by the entity described by {u,g} and its mode is 'mode'.
Return 0 in case of success, -1 in case of error
Definition at line 414 of file proofexecv.cxx.
int changeown | ( | const std::string & | path, |
uid_t | u, | ||
gid_t | g | ||
) |
Change the ownership of 'path' to the entity described by {u,g}.
If 'path' is a directory, go through the paths inside it recursively. Return 0 in case of success, -1 in case of error
Definition at line 738 of file proofexecv.cxx.
int completercfile | ( | const std::string & | rcfile, |
const std::string & | sessdir, | ||
const std::string & | stag, | ||
const std::string & | adminpath | ||
) |
Finalize the rc file with the missing pieces.
Definition at line 479 of file proofexecv.cxx.
int exportsock | ( | rpdunix * | conn | ) |
Export the descriptor of 'conn' so that it can used in the execv application.
Make sure it duplicates to a reasonable value first. Return 0 on success, -1 on error
Definition at line 557 of file proofexecv.cxx.
void Info | ( | const char * | va_fmt, |
... | |||
) |
Write info message to syslog.
Definition at line 69 of file proofexecv.cxx.
int loginuser | ( | const std::string & | home, |
const std::string & | user, | ||
uid_t | u, | ||
gid_t | g | ||
) |
Login the user in its space.
Definition at line 365 of file proofexecv.cxx.
int main | ( | int | argc, |
char ** | argv | ||
) |
Program executed via system starting proofserv instances.
It also performs other actions requiring a separate process, e.g. XrdProofAdmin file system requests.
Definition at line 89 of file proofexecv.cxx.
int mvfile | ( | const std::string & | from, |
const std::string & | to, | ||
uid_t | u, | ||
gid_t | g, | ||
unsigned int | mode | ||
) |
Move file form 'from' to 'to', making sure that it is owned by the entity described by {u,g} and its mode is 'mode' (at the final destination).
Return 0 in case of success, -1 in case of error
Definition at line 444 of file proofexecv.cxx.
int redirectoutput | ( | const std::string & | logfile | ) |
Redirect stdout to 'logfile' On success return 0.
Return -1 on failure.
Definition at line 602 of file proofexecv.cxx.
int setownerships | ( | int | euid, |
const std::string & | us, | ||
const std::string & | gr, | ||
const std::string & | creds, | ||
const std::string & | dsrcs, | ||
const std::string & | ddir, | ||
const std::string & | ddiro, | ||
const std::string & | ord, | ||
const std::string & | stag | ||
) |
Set user ownerships on some critical files or directories.
Return 0 on success, -1 if enything goes wrong.
Definition at line 647 of file proofexecv.cxx.
int setproofservenv | ( | const std::string & | envfile, |
const std::string & | logfile, | ||
const std::string & | rcfile | ||
) |
Initialize the environment following the content of 'envfile'.
Definition at line 506 of file proofexecv.cxx.
void start_ps | ( | int | argc, |
char ** | argv | ||
) |
Process a request to start a proofserv process.
Definition at line 124 of file proofexecv.cxx.
|
static |
Definition at line 44 of file proofexecv.cxx.
|
static |
Definition at line 45 of file proofexecv.cxx.
|
static |
Definition at line 43 of file proofexecv.cxx.