Lots and lots of whitespace and code style fixes
This commit is contained in:
58
confparser.c
58
confparser.c
@@ -8,8 +8,8 @@
|
||||
#include "confparser.h"
|
||||
#include "enum_functions.h"
|
||||
|
||||
static int test_conf_perms();
|
||||
static int test_conf_syntax();
|
||||
static int test_conf_perms(void);
|
||||
static int test_conf_syntax(void);
|
||||
|
||||
struct conf_table conf = {
|
||||
0, /* isvalid initial state */
|
||||
@@ -97,7 +97,8 @@ void confexport(void)
|
||||
);
|
||||
}
|
||||
|
||||
static int fopen_and_mkdir(const char *dir) {
|
||||
static int fopen_and_mkdir(const char *dir)
|
||||
{
|
||||
char tmp[256];
|
||||
char *p = NULL;
|
||||
size_t len;
|
||||
@@ -155,12 +156,10 @@ static int test_conf_perms(void)
|
||||
if (s.st_uid != 0) {
|
||||
enumtostr(confresult, CONF_DIR_UID_INSECURE);
|
||||
log(WARNING, confresult);
|
||||
}
|
||||
else if (s.st_gid != 0) {
|
||||
} else if (s.st_gid != 0) {
|
||||
enumtostr(confresult, CONF_DIR_GID_INSECURE);
|
||||
log(WARNING, confresult);
|
||||
}
|
||||
else if ( (S_IROTH & s.st_mode) ||
|
||||
} else if ((S_IROTH & s.st_mode) ||
|
||||
(S_IWOTH & s.st_mode)) {
|
||||
enumtostr(confresult, CONF_DIR_PERM_INSECURE);
|
||||
log(WARNING, confresult);
|
||||
@@ -189,12 +188,10 @@ static int test_conf_perms(void)
|
||||
if (s.st_uid != 0) {
|
||||
enumtostr(confresult, CONF_FILE_UID_INSECURE);
|
||||
log(WARNING, confresult);
|
||||
}
|
||||
else if (s.st_gid != 0) {
|
||||
} else if (s.st_gid != 0) {
|
||||
enumtostr(confresult, CONF_FILE_GID_INSECURE);
|
||||
log(WARNING, confresult);
|
||||
}
|
||||
else if ( (S_IROTH & s.st_mode) ||
|
||||
} else if ((S_IROTH & s.st_mode) ||
|
||||
(S_IWOTH & s.st_mode)) {
|
||||
enumtostr(confresult, CONF_FILE_PERM_INSECURE);
|
||||
log(WARNING, confresult);
|
||||
@@ -281,7 +278,8 @@ static int test_conf_syntax(void)
|
||||
if ((signed int)strspn(tmp + 1, "1234567890") == i) {
|
||||
i = atoi(tmp + 1);
|
||||
if (i > 0 && i < 65536) {
|
||||
strcpy(conf.rmps.agent_port, tmp + 1);
|
||||
strcpy(conf.rmps.agent_port,
|
||||
tmp + 1);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -295,7 +293,8 @@ static int test_conf_syntax(void)
|
||||
if ((signed int)strspn(tmp + 1, "1234567890") == i) {
|
||||
i = atoi(tmp + 1);
|
||||
if (i > 0 && i < 65536) {
|
||||
strcpy(conf.rmps.client_port, tmp + 1);
|
||||
strcpy(conf.rmps.client_port,
|
||||
tmp + 1);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
@@ -313,9 +312,11 @@ static int test_conf_syntax(void)
|
||||
} else if (!strcmp(buf, "rmps.pidfile")) {
|
||||
strcpy(conf.rmps.pidfile, tmp + 1);
|
||||
/*if (fopen_and_mkdir(conf.rmps.pidfile) != 0)
|
||||
failed = 1;*/
|
||||
* failed = 1;
|
||||
*/
|
||||
} else if (!strcmp(buf, "rmps.loglevel")) {
|
||||
if (strlen(tmp + 1) == 1 && (tmp[1] > '0' && tmp[1] < '5'))
|
||||
if (strlen(tmp + 1) == 1 &&
|
||||
(tmp[1] > '0' && tmp[1] < '5'))
|
||||
conf.rmps.loglevel = tmp[1] - '0';
|
||||
else
|
||||
failed = 1;
|
||||
@@ -323,21 +324,18 @@ static int test_conf_syntax(void)
|
||||
if (access(tmp + 1, F_OK) == -1) {
|
||||
log(ERROR, "%s is missing", tmp + 1);
|
||||
failed = 1;
|
||||
}
|
||||
else if (access(tmp + 1, R_OK) == -1) {
|
||||
} else if (access(tmp + 1, R_OK) == -1) {
|
||||
log(ERROR, "%s is not readable", tmp + 1);
|
||||
failed = 1;
|
||||
} else
|
||||
strncpy(conf.rmps.agent_tls_crt,
|
||||
tmp + 1,
|
||||
sizeof(conf.rmps.agent_tls_crt));
|
||||
}
|
||||
else if (!strcmp(buf, "rmps.agent_tls_key")) {
|
||||
} else if (!strcmp(buf, "rmps.agent_tls_key")) {
|
||||
if (access(tmp + 1, F_OK) == -1) {
|
||||
log(ERROR, "%s is missing", tmp + 1);
|
||||
failed = 1;
|
||||
}
|
||||
else if (access(tmp + 1, R_OK) == -1) {
|
||||
} else if (access(tmp + 1, R_OK) == -1) {
|
||||
log(ERROR, "%s is not readable", tmp + 1);
|
||||
failed = 1;
|
||||
} else
|
||||
@@ -345,23 +343,23 @@ static int test_conf_syntax(void)
|
||||
tmp + 1,
|
||||
sizeof(conf.rmps.agent_tls_key));
|
||||
} else if (!strcmp(buf, "rmps.cipherlist")) {
|
||||
strncpy(conf.rmps.cipherlist, tmp + 1, sizeof(conf.rmps.cipherlist));
|
||||
strncpy(conf.rmps.cipherlist,
|
||||
tmp + 1, sizeof(conf.rmps.cipherlist));
|
||||
} else if (!strcmp(buf, "rmps.cafile")) {
|
||||
if (access(tmp + 1, F_OK) == -1) {
|
||||
log(ERROR, "%s is missing", tmp + 1);
|
||||
failed = 1;
|
||||
}
|
||||
else if (access(tmp + 1, R_OK) == -1) {
|
||||
} else if (access(tmp + 1, R_OK) == -1) {
|
||||
log(ERROR, "%s is not readable\n", tmp + 1);
|
||||
failed = 1;
|
||||
} else
|
||||
strncpy(conf.rmps.cafile, tmp + 1, sizeof(conf.rmps.cafile));
|
||||
strncpy(conf.rmps.cafile,
|
||||
tmp + 1, sizeof(conf.rmps.cafile));
|
||||
} else if (!strcmp(buf, "rmps.client_tls_crt")) {
|
||||
if (access(tmp + 1, F_OK) == -1) {
|
||||
log(ERROR, "%s is missing", tmp + 1);
|
||||
failed = 1;
|
||||
}
|
||||
else if (access(tmp + 1, R_OK) == -1) {
|
||||
} else if (access(tmp + 1, R_OK) == -1) {
|
||||
log(ERROR, "%s is not readable", tmp + 1);
|
||||
failed = 1;
|
||||
} else
|
||||
@@ -372,8 +370,7 @@ static int test_conf_syntax(void)
|
||||
if (access(tmp + 1, F_OK) == -1) {
|
||||
log(ERROR, "%s is missing", tmp + 1);
|
||||
failed = 1;
|
||||
}
|
||||
else if (access(tmp + 1, R_OK) == -1) {
|
||||
} else if (access(tmp + 1, R_OK) == -1) {
|
||||
log(ERROR, "%s is not readable", tmp + 1);
|
||||
failed = 1;
|
||||
} else
|
||||
@@ -381,7 +378,8 @@ static int test_conf_syntax(void)
|
||||
tmp + 1,
|
||||
sizeof(conf.rmps.client_tls_key));
|
||||
} else
|
||||
log(ERROR, "Unknown config entry on line %d: %s", j, buf);
|
||||
log(ERROR, "Unknown config entry on line %d: %s",
|
||||
j, buf);
|
||||
if (!ok) {
|
||||
log(ERROR,
|
||||
"Invalid value for \"%s\", line %d: \"%s\"",
|
||||
|
||||
@@ -21,7 +21,7 @@ struct conf_rmps {
|
||||
char client_port[6];
|
||||
char logfile[MAXPATHSIZE];
|
||||
char errlog[MAXPATHSIZE];
|
||||
LOG_LEVEL loglevel;
|
||||
enum LOG_LEVEL loglevel;
|
||||
char pidfile[MAXPATHSIZE];
|
||||
char agent_tls_crt[MAXPATHSIZE];
|
||||
char agent_tls_key[MAXPATHSIZE];
|
||||
|
||||
6
log.c
6
log.c
@@ -35,7 +35,7 @@ static void set_fpts(void)
|
||||
fdout = stdout;
|
||||
}
|
||||
|
||||
void log(LOG_LEVEL lvl, char *fmt, ... )
|
||||
void log(enum LOG_LEVEL lvl, char *fmt, ...)
|
||||
{
|
||||
char fmt_with_pfx[1024];
|
||||
|
||||
@@ -45,11 +45,13 @@ void log(LOG_LEVEL lvl, char *fmt, ... )
|
||||
if (lvl <= conf.rmps.loglevel) {
|
||||
va_list list;
|
||||
FILE *fp;
|
||||
static const char *prefixes[] = {
|
||||
|
||||
static const char * const prefixes[] = {
|
||||
"ERROR", "WARNING", "INFO", "VERBOSE"
|
||||
};
|
||||
time_t t = time(NULL);
|
||||
struct tm tm;
|
||||
|
||||
localtime_r(&t, &tm);
|
||||
if (lvl == ERROR || lvl == WARNING)
|
||||
fp = fderr;
|
||||
|
||||
7
log.h
7
log.h
@@ -4,14 +4,15 @@
|
||||
#undef log
|
||||
#define log log_trace
|
||||
|
||||
typedef enum {
|
||||
enum LOG_LEVEL {
|
||||
ERROR = 1, /* Errors only */
|
||||
WARNING, /* Errors & warnings */
|
||||
INFO, /* Errors, warnings & events */
|
||||
VERBOSE, /* Errors, warnings, events & more? */
|
||||
} LOG_LEVEL;
|
||||
};
|
||||
|
||||
void log_ssl(void);
|
||||
void log(LOG_LEVEL lvl, char *fmt, ... );
|
||||
void log(enum LOG_LEVEL lvl, char *fmt, ...);
|
||||
|
||||
#endif /* LOG_TRACE_H */
|
||||
|
||||
|
||||
18
main.c
18
main.c
@@ -11,8 +11,7 @@
|
||||
static void usage(char *argv)
|
||||
{
|
||||
log(ERROR,
|
||||
"Usage:\n%s start|stop|restart [--daemonize=yes|no]\n",
|
||||
argv );
|
||||
"Usage:\n%s start|stop|restart [--daemonize=yes|no]\n", argv);
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
@@ -36,7 +35,8 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
if (argc == 3) {
|
||||
if (!strcmp("--daemonize=yes", argv[2]));
|
||||
if (!strcmp("--daemonize=yes", argv[2]))
|
||||
fork_flag = 1;
|
||||
else if (!strcmp("--daemonize=no", argv[2]))
|
||||
fork_flag = 0;
|
||||
else {
|
||||
@@ -55,6 +55,7 @@ int main(int argc, char *argv[])
|
||||
char buf[10];
|
||||
int pid;
|
||||
FILE *fp;
|
||||
|
||||
if (task == 2)
|
||||
log(VERBOSE, "We got a stop signal!");
|
||||
else if (task == 3)
|
||||
@@ -65,7 +66,8 @@ int main(int argc, char *argv[])
|
||||
switch (errno) {
|
||||
case EEXIST:
|
||||
if (!fgets(buf, 10, fp)) {
|
||||
log(ERROR, "Failed to read %s!", conf.rmps.pidfile);
|
||||
log(ERROR, "Failed to read %s!",
|
||||
conf.rmps.pidfile);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
pid = strtol(buf, NULL, 10);
|
||||
@@ -81,15 +83,13 @@ int main(int argc, char *argv[])
|
||||
break;
|
||||
default:
|
||||
log(ERROR,
|
||||
"Unhandled errno while opening PID: %d. Exiting!",
|
||||
errno
|
||||
);
|
||||
"Failed to open PID file (errno: %d. Exiting!",
|
||||
errno);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
if (task == 1 || task == 3) {
|
||||
if (task == 1 || task == 3)
|
||||
launch_rmps(&conf, fork_flag);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
31
rmps.c
31
rmps.c
@@ -70,11 +70,11 @@ static void set_env(void)
|
||||
|
||||
/* Set signal mask - signals we want to block */
|
||||
sigemptyset(&new_sigset);
|
||||
sigaddset(&new_sigset, SIGCHLD); /* ignore child - i.e. we don't need to wait for it */
|
||||
sigaddset(&new_sigset, SIGCHLD); /* ignore child */
|
||||
sigaddset(&new_sigset, SIGTSTP); /* ignore Tty stop signals */
|
||||
sigaddset(&new_sigset, SIGTTOU); /* ignore Tty background writes */
|
||||
sigaddset(&new_sigset, SIGTTIN); /* ignore Tty background reads */
|
||||
sigprocmask(SIG_BLOCK, &new_sigset, NULL); /* Block the above specified signals */
|
||||
sigprocmask(SIG_BLOCK, &new_sigset, NULL); /* Block above signals */
|
||||
|
||||
/* Set up a signal handler */
|
||||
new_sigaction.sa_handler = signal_handler;
|
||||
@@ -157,6 +157,7 @@ static void spawn_pidfile(const char *pidfile)
|
||||
static inline int set_reuse_addr(int sockfd)
|
||||
{
|
||||
int yes = 1;
|
||||
|
||||
return setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR,
|
||||
&yes, sizeof(yes));
|
||||
}
|
||||
@@ -176,7 +177,8 @@ static int open_listener(int port)
|
||||
goto exit;
|
||||
}
|
||||
if (set_reuse_addr(sd) < 0) {
|
||||
log(ERROR, "Failed to set reuse on address - Aborting...", port);
|
||||
log(ERROR,
|
||||
"Failed to set reuse on address - Aborting...", port);
|
||||
goto exit;
|
||||
}
|
||||
if (bind(sd, (struct sockaddr *)&addr, sizeof(addr)) != 0) {
|
||||
@@ -184,7 +186,9 @@ static int open_listener(int port)
|
||||
goto exit;
|
||||
}
|
||||
if (listen(sd, 10) != 0) {
|
||||
log(ERROR, "Failed to start listener on port %d - Aborting...", port);
|
||||
log(ERROR,
|
||||
"Failed to start listener on port %d - Aborting...",
|
||||
port);
|
||||
goto exit;
|
||||
}
|
||||
return sd;
|
||||
@@ -204,7 +208,8 @@ static SSL_CTX* init_server_ctx(const char *cipherlist, int mode)
|
||||
SSL_load_error_strings(); /* load all error messages */
|
||||
SSL_library_init();
|
||||
|
||||
ctx = SSL_CTX_new(TLSv1_2_method()); /* create new context from method */
|
||||
/* create new context from method */
|
||||
ctx = SSL_CTX_new(TLSv1_2_method());
|
||||
if (ctx == NULL) {
|
||||
log(ERROR, "SSL_CTX_new() returned NULL - Aborting...");
|
||||
log(ERROR, "RMPS failed to start, shutting down...");
|
||||
@@ -244,16 +249,17 @@ void load_certificates(SSL_CTX* ctx, const char *certfile,
|
||||
}
|
||||
/* verify private key */
|
||||
if (!SSL_CTX_check_private_key(ctx)) {
|
||||
log(ERROR, "Private key does not match the public certificate.");
|
||||
log(ERROR,
|
||||
"Private key does not match the public certificate.");
|
||||
log(INFO, "RMPS failed to start, shutting down...");
|
||||
atexit(cleanup);
|
||||
}
|
||||
if (cafile != NULL) {
|
||||
SSL_CTX_set_client_CA_list(ctx, SSL_load_client_CA_file(cafile));
|
||||
SSL_CTX_set_client_CA_list(ctx,
|
||||
SSL_load_client_CA_file(cafile));
|
||||
SSL_CTX_load_verify_locations(ctx, cafile, NULL);
|
||||
//SSL_CTX_set_verify_depth(ctx, 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void launch_rmps(struct conf_table *conf, int fork_flag)
|
||||
@@ -281,17 +287,20 @@ void launch_rmps(struct conf_table *conf, int fork_flag)
|
||||
log(VERBOSE, "Loading agent certs and keys.");
|
||||
load_certificates(pool_args[0].ctx, conf->rmps.agent_tls_crt,
|
||||
conf->rmps.agent_tls_key, conf->rmps.cafile);
|
||||
log(VERBOSE, "Starting agent listener on port: %d", atoi(conf->rmps.agent_port));
|
||||
log(VERBOSE, "Starting agent listener on port: %d",
|
||||
atoi(conf->rmps.agent_port));
|
||||
pool_args[0].srv = open_listener(atoi(conf->rmps.agent_port));
|
||||
pool_args[0].size = conf->rmps.agent_poolsize;
|
||||
log(VERBOSE, "Creating agent thread pool (mutex).");
|
||||
pthread_create(&pool[0], NULL, agent_pool, &pool_args[0]);
|
||||
|
||||
pool_args[1].ctx = init_server_ctx(conf->rmps.cipherlist, SSL_VERIFY_NONE);
|
||||
pool_args[1].ctx = init_server_ctx(conf->rmps.cipherlist,
|
||||
SSL_VERIFY_NONE);
|
||||
log(VERBOSE, "Loading client certs and keys.");
|
||||
load_certificates(pool_args[1].ctx, conf->rmps.client_tls_crt,
|
||||
conf->rmps.client_tls_key, conf->rmps.cafile);
|
||||
log(VERBOSE, "Starting client listener on port: %d", atoi(conf->rmps.client_port));
|
||||
log(VERBOSE, "Starting client listener on port: %d",
|
||||
atoi(conf->rmps.client_port));
|
||||
pool_args[1].srv = open_listener(atoi(conf->rmps.client_port));
|
||||
pool_args[1].size = conf->rmps.client_poolsize;
|
||||
log(VERBOSE, "Creating client thread pool (mutex).");
|
||||
|
||||
Reference in New Issue
Block a user