int no_options2; /* PR_O2_* */
struct {
- char *file; /* file where the section appears */
+ const char *file; /* file where the section appears */
struct eb32_node id; /* place in the tree of used IDs */
int line; /* line where the section appears */
struct eb_root used_listener_id;/* list of listener IDs in use */
out:
if (id && !p->id)
p->id = strdup(id);
- free(p->conf.file);
- p->conf.args.file = p->conf.file = strdup(file);
+ drop_file_name(&p->conf.file);
+ p->conf.args.file = p->conf.file = copy_file_name(file);
if (linenum != -1)
p->conf.args.line = p->conf.line = linenum;
mworker_proxy->mode = PR_MODE_CLI;
mworker_proxy->maxconn = 10; /* default to 10 concurrent connections */
mworker_proxy->timeout.client = 0; /* no timeout */
- mworker_proxy->conf.file = strdup("MASTER");
+ mworker_proxy->conf.file = copy_file_name("MASTER");
mworker_proxy->conf.line = 0;
mworker_proxy->accept = frontend_accept;
mworker_proxy-> lbprm.algo = BE_LB_ALGO_NONE;
init_new_proxy(px);
px->next = cfg_log_forward;
cfg_log_forward = px;
- px->conf.file = strdup(file);
+ px->conf.file = copy_file_name(file);
px->conf.line = linenum;
px->mode = PR_MODE_SYSLOG;
px->fe_counters.last_change = ns_to_sec(now_ns);
struct lf_expr *lf, *lfb;
ha_free(&px->id);
- ha_free(&px->conf.file);
+ drop_file_name(&px->conf.file);
ha_free(&px->check_command);
ha_free(&px->check_path);
ha_free(&px->cookie_name);
}
}
- curproxy->conf.args.file = curproxy->conf.file = strdup(file);
+ curproxy->conf.args.file = curproxy->conf.file = copy_file_name(file);
curproxy->conf.args.line = curproxy->conf.line = linenum;
return curproxy;
resolvers_setup_proxy(p);
p->parent = r;
p->id = strdup(id);
- p->conf.args.file = p->conf.file = strdup(file);
+ p->conf.args.file = p->conf.file = copy_file_name(file);
p->conf.args.line = p->conf.line = linenum;
r->px = p;