diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2013-02-18 23:35:54 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2013-02-18 23:35:54 +0000 |
commit | 255a4f8ce34c027a4e903ec795214f8280c1e17d (patch) | |
tree | 557bbd7326b6060c58028c33c46f637dced526c0 | |
parent | e2b26d910c7614cceef20282ee6991b1468238fc (diff) | |
download | rtmux-255a4f8ce34c027a4e903ec795214f8280c1e17d.tar.gz rtmux-255a4f8ce34c027a4e903ec795214f8280c1e17d.tar.bz2 rtmux-255a4f8ce34c027a4e903ec795214f8280c1e17d.zip |
load_cfg can actually use the same context now they are reference counted.
-rw-r--r-- | cfg.c | 23 |
1 files changed, 8 insertions, 15 deletions
@@ -73,14 +73,13 @@ cfg_add_cause(struct causelist *causes, const char *fmt, ...) * causes. Note that causes must be initialised by the caller! */ enum cmd_retval -load_cfg(const char *path, struct cmd_ctx *ctxin, struct causelist *causes) +load_cfg(const char *path, struct cmd_ctx *ctx, struct causelist *causes) { FILE *f; u_int n; char *buf, *copy, *line, *cause; size_t len, oldlen; struct cmd_list *cmdlist; - struct cmd_ctx *ctx; enum cmd_retval retval; if ((f = fopen(path, "rb")) == NULL) { @@ -90,21 +89,15 @@ load_cfg(const char *path, struct cmd_ctx *ctxin, struct causelist *causes) cfg_references++; - ctx = cmd_get_ctx(); - if (ctxin == NULL) { - ctx->msgdata = NULL; - ctx->curclient = NULL; - ctx->cmdclient = NULL; - } else { - ctx->msgdata = ctxin->msgdata; - ctx->curclient = ctxin->curclient; - ctx->cmdclient = ctxin->cmdclient; + if (ctx != NULL) + cmd_ref_ctx(ctx); + else { + ctx = cmd_get_ctx(); + ctx->error = cfg_error; + ctx->print = cfg_print; + ctx->info = cfg_print; } - ctx->error = cfg_error; - ctx->print = cfg_print; - ctx->info = cfg_print; - n = 0; line = NULL; retval = CMD_RETURN_NORMAL; |