env init probe
This commit is contained in:
parent
c2e418676b
commit
27b4c624b3
@ -20,6 +20,8 @@
|
|||||||
#include "nodelist.h"
|
#include "nodelist.h"
|
||||||
#include "session.h"
|
#include "session.h"
|
||||||
|
|
||||||
|
char ** sessenv;
|
||||||
|
|
||||||
/* PID of our child process (if use fork) */
|
/* PID of our child process (if use fork) */
|
||||||
pid_t child_pid = 0;
|
pid_t child_pid = 0;
|
||||||
|
|
||||||
@ -254,6 +256,10 @@ int main(int argc, char *argv[], char *envp[])
|
|||||||
int ch = 0;
|
int ch = 0;
|
||||||
opts.runmode = MODE_UNDEFINED;
|
opts.runmode = MODE_UNDEFINED;
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
int argsz = 0;
|
||||||
|
|
||||||
|
|
||||||
memset(&opts, '\0', sizeof(s_bforce_opts));
|
memset(&opts, '\0', sizeof(s_bforce_opts));
|
||||||
|
|
||||||
// parsing
|
// parsing
|
||||||
@ -453,7 +459,7 @@ int main(int argc, char *argv[], char *envp[])
|
|||||||
/* Reopen log file if it was defined in config */
|
/* Reopen log file if it was defined in config */
|
||||||
if( log_reopen(log_getfilename(LOG_FILE_SESSION), NULL, NULL) )
|
if( log_reopen(log_getfilename(LOG_FILE_SESSION), NULL, NULL) )
|
||||||
{
|
{
|
||||||
log("can't continue without logging");
|
DEB((D_CONFIG, "can't continue without logging"));
|
||||||
gotoexit(BFERR_FATALERROR);
|
gotoexit(BFERR_FATALERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -461,6 +467,21 @@ int main(int argc, char *argv[], char *envp[])
|
|||||||
//snprintf(runmode_str, 20, "Run mode: %d", opts.runmode);
|
//snprintf(runmode_str, 20, "Run mode: %d", opts.runmode);
|
||||||
//log(runmode_str);
|
//log(runmode_str);
|
||||||
|
|
||||||
|
/* Init environment table for childs */
|
||||||
|
argsz = 4096;
|
||||||
|
//argsz = sysconf(_SC_ARG_MAX);
|
||||||
|
DEB((D_CONFIG, "Limits: %d\n",argsz));
|
||||||
|
sessenv = malloc(sizeof(sessenv)*argsz);
|
||||||
|
sessenv[0] = NULL;
|
||||||
|
i=0;
|
||||||
|
while (envp[i]) {
|
||||||
|
sessenv[i] = malloc(strlen(envp[i])+2);
|
||||||
|
strcpy(sessenv[i], envp[i]);
|
||||||
|
sessenv[i++] = NULL;
|
||||||
|
DEB((D_FREE, "session ENV: %s\n", sessenv[(i-1)]));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
switch( opts.runmode )
|
switch( opts.runmode )
|
||||||
{
|
{
|
||||||
case MODE_DAEMON:
|
case MODE_DAEMON:
|
||||||
@ -488,6 +509,14 @@ default:
|
|||||||
|
|
||||||
exit:
|
exit:
|
||||||
|
|
||||||
|
/* de-init sessenv */
|
||||||
|
i=0;
|
||||||
|
while(sessenv[i]) {
|
||||||
|
DEB((D_FREE, "De-init session ENV: %s\n", sessenv[(i)]));
|
||||||
|
free(sessenv[i]);
|
||||||
|
}
|
||||||
|
free(sessenv);
|
||||||
|
|
||||||
deinit_conf();
|
deinit_conf();
|
||||||
deinit_opts(&opts);
|
deinit_opts(&opts);
|
||||||
|
|
||||||
|
@ -82,10 +82,10 @@ void exec_options_init(s_exec_options *eopt)
|
|||||||
eopt->umask = EXEC_DEFAULT_UMASK;
|
eopt->umask = EXEC_DEFAULT_UMASK;
|
||||||
eopt->envp[0] = NULL;
|
eopt->envp[0] = NULL;
|
||||||
|
|
||||||
while(environ[i]) {
|
while(sessenv[i]) {
|
||||||
log("EXEC: Added ENV variable: %s\n", environ[i]);
|
log("EXEC: Added ENV variable: %s\n", sessenv[i]);
|
||||||
eopt->envp[i] = xmalloc(strlen(environ[i]) + 2);
|
eopt->envp[i] = xmalloc(strlen(sessenv[i]) + 2);
|
||||||
sprintf(eopt->envp[i], environ[i++]);
|
sprintf(eopt->envp[i], sessenv[i++]);
|
||||||
eopt->envp[i] = NULL;
|
eopt->envp[i] = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,6 +175,9 @@ typedef struct {
|
|||||||
#define MODE_ANSWER (5)
|
#define MODE_ANSWER (5)
|
||||||
#define MODE_DAEMON (6)
|
#define MODE_DAEMON (6)
|
||||||
|
|
||||||
|
/* Environment for use with external tools as default */
|
||||||
|
extern char ** sessenv;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Global variables
|
* Global variables
|
||||||
|
Loading…
x
Reference in New Issue
Block a user