diff --git a/mx_flock.c b/mx_flock.c index eb522ad..bdbbaf3 100644 --- a/mx_flock.c +++ b/mx_flock.c @@ -30,7 +30,7 @@ static inline int _flock_open(struct mx_flock *lock, mode_t mode) fd = open(lock->fname, O_RDONLY|O_CREAT|O_NOCTTY|O_CLOEXEC, mode); if (fd < 0) { - mx_log_debug("open(): %m"); + mx_log_err("%s: %m",lock->fname); return -1; } @@ -80,7 +80,7 @@ struct mx_flock *mx_flock(int operation, char *fmt, ...) lock = malloc(sizeof(*lock)); if (!lock) { - mx_log_debug("malloc(): %m"); + mx_log_err("malloc(): %m"); return NULL; } @@ -93,7 +93,7 @@ struct mx_flock *mx_flock(int operation, char *fmt, ...) va_end(ap); if (res == -1) { - mx_log_debug("vasprintf(): %m"); + mx_log_err("vasprintf(): %m"); _flock_free(lock); return NULL; } @@ -111,7 +111,7 @@ struct mx_flock *mx_flock(int operation, char *fmt, ...) if (res < 0) { if (errno == EWOULDBLOCK) return lock; - mx_log_debug("flock(): %m"); + mx_log_err("flock(): %m"); _flock_free(lock); return NULL; } @@ -144,11 +144,11 @@ int mx_funlock(struct mx_flock *lock) res = unlink(lock->fname); if (res < 0) - mx_log_debug("unlink(): %m"); + mx_log_warning("unlink(): %m"); res = flock(lock->fd, LOCK_UN); if (res < 0) - mx_log_debug("flock(): %m"); + mx_log_warning("flock(): %m"); _flock_close(lock); _flock_free(lock); diff --git a/mx_getopt.c b/mx_getopt.c index 3271663..1e5da27 100644 --- a/mx_getopt.c +++ b/mx_getopt.c @@ -349,7 +349,7 @@ static int _mx_getopt_long(struct mx_getopt_ctl *optctl, int *optindex) *optindex = -1; - /* not an option: pop arguement */ + /* not an option: pop argument */ if(!maybe_option) { mx_getopt_pop_current_argument(optctl); diff --git a/mx_util.c b/mx_util.c index efde13f..790fc6b 100644 --- a/mx_util.c +++ b/mx_util.c @@ -1126,7 +1126,7 @@ void mx_strvec_free(char **strvec) return; for (sv = strvec; *sv; sv++) { - free(sv); + free(*sv); } free(strvec); } diff --git a/mxqd.c b/mxqd.c index 9ab4fda..47881c4 100644 --- a/mxqd.c +++ b/mxqd.c @@ -112,7 +112,7 @@ int setup_cronolog(char *cronolog, char *link, char *format) pid = fork(); if (pid < 0) { mx_log_err("cronolog fork failed: %m"); - return 1; + return 0; } else if(pid == 0) { res = dup2(pipe_fd[0], STDIN_FILENO); if (res == -1) { @@ -247,8 +247,7 @@ int server_init(struct mxq_server *server, int argc, char *argv[]) mx_getopt_init(&optctl, argc-1, &argv[1], opts); - optctl.flags = MX_FLAG_STOPONUNKNOWN|MX_FLAG_STOPONNOOPT; -// optctl.flags = MX_FLAG_STOPONUNKNOWN; +// optctl.flags = MX_FLAG_STOPONUNKNOWN|MX_FLAG_STOPONNOOPT; while ((opt=mx_getopt(&optctl, &i)) != MX_GETOPT_END) { if (opt == MX_GETOPT_ERROR) { @@ -404,6 +403,10 @@ int server_init(struct mxq_server *server, int argc, char *argv[]) setup_stdin("/dev/null"); if (!arg_nolog) { + if (access("/var/log",R_OK|W_OK|X_OK)) { + mx_log_err("MAIN: cant write to /var/log: %m"); + exit(EX_IOERR); + } res = setup_cronolog("/usr/sbin/cronolog", "/var/log/mxqd_log", "/var/log/%Y/mxqd_log-%Y-%m"); if (!res) { mx_log_err("MAIN: cronolog setup failed. exiting."); @@ -1369,6 +1372,7 @@ void server_close(struct mxq_server *server) mx_funlock(server->flock); mx_free_null(server->boot_id); + mx_free_null(server->host_id); } int killall(struct mxq_server *server, int sig, unsigned int pgrp) diff --git a/mxqd.h b/mxqd.h index c4db22d..8de7d89 100644 --- a/mxqd.h +++ b/mxqd.h @@ -75,14 +75,11 @@ struct mxq_server { char *host_id; char *hostname; char *server_id; - char *lockfilename; char *pidfilename; struct mx_flock *flock; char *initial_path; char *initial_tmpdir; - - int is_running; }; diff --git a/mysql/create_tables.sql b/mysql/create_tables.sql index c203fa2..ce129e4 100644 --- a/mysql/create_tables.sql +++ b/mysql/create_tables.sql @@ -140,7 +140,7 @@ CREATE TABLE IF NOT EXISTS mxq_server ( host_mtime TIMESTAMP DEFAULT CURRENT_TIMESTAMP, server_start TIMESTAMP DEFAULT 0, - server_stop TIMESTAMP DEFAULT 0, + server_stop TIMESTAMP DEFAULT 0 ); diff --git a/test_mx_util.c b/test_mx_util.c index 5700e80..b4ef240 100644 --- a/test_mx_util.c +++ b/test_mx_util.c @@ -356,6 +356,15 @@ static void test_mx_strscan(void) mx_proc_pid_stat_free(&pps2); } +static void test_mx_strvec() { + char **strvec; + + strvec=mx_strvec_new(); + mx_strvec_push_str(&strvec,strdup("Hallo")); + mx_strvec_push_str(&strvec,strdup("Bla")); + mx_strvec_push_str(&strvec,strdup("lall")); + mx_strvec_free(strvec); +} int main(int argc, char *argv[]) { @@ -372,5 +381,6 @@ int main(int argc, char *argv[]) test_mx_strtobytes(); test_mx_read_first_line_from_file(); test_mx_strscan(); + test_mx_strvec(); return 0; }