From: Christian Brauner Date: Thu, 15 Jun 2017 17:08:22 +0000 (+0200) Subject: network: add arg to config clear method X-Git-Tag: lxc-2.1.0~96^2~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2647140368c523f59881feba090143ccbbc1442c;p=thirdparty%2Flxc.git network: add arg to config clear method Signed-off-by: Christian Brauner --- diff --git a/src/lxc/confile.c b/src/lxc/confile.c index 3d002fbe9..863417da7 100644 --- a/src/lxc/confile.c +++ b/src/lxc/confile.c @@ -67,118 +67,119 @@ lxc_log_define(lxc_confile, lxc); static int set_config_personality(const char *, const char *, struct lxc_conf *, void *); static int get_config_personality(const char *, char *, int, struct lxc_conf *); -static int clr_config_personality(const char *, struct lxc_conf *); +static int clr_config_personality(const char *, struct lxc_conf *, void *); static int set_config_pts(const char *, const char *, struct lxc_conf *, void *); static int get_config_pts(const char *, char *, int, struct lxc_conf *); -static int clr_config_pts(const char *, struct lxc_conf *); +static int clr_config_pts(const char *, struct lxc_conf *, void *); static int set_config_tty(const char *, const char *, struct lxc_conf *, void *); static int get_config_tty(const char *, char *, int, struct lxc_conf *); -static int clr_config_tty(const char *, struct lxc_conf *); +static int clr_config_tty(const char *, struct lxc_conf *, void *); static int set_config_ttydir(const char *, const char *, struct lxc_conf *, void *); static int get_config_ttydir(const char *, char *, int, struct lxc_conf *); -static int clr_config_ttydir(const char *, struct lxc_conf *); +static int clr_config_ttydir(const char *, struct lxc_conf *, void *); static int set_config_kmsg(const char *, const char *, struct lxc_conf *, void *); static int get_config_kmsg(const char *, char *, int, struct lxc_conf *); -static int clr_config_kmsg(const char *, struct lxc_conf *); +static int clr_config_kmsg(const char *, struct lxc_conf *, void *); static int set_config_lsm_aa_profile(const char *, const char *, struct lxc_conf *, void *); static int get_config_lsm_aa_profile(const char *, char *, int, struct lxc_conf *); -static int clr_config_lsm_aa_profile(const char *, struct lxc_conf *); +static int clr_config_lsm_aa_profile(const char *, struct lxc_conf *, void *); static int set_config_lsm_aa_incomplete(const char *, const char *, struct lxc_conf *, void *); static int get_config_lsm_aa_incomplete(const char *, char *, int, struct lxc_conf *); -static int clr_config_lsm_aa_incomplete(const char *, struct lxc_conf *); +static int clr_config_lsm_aa_incomplete(const char *, struct lxc_conf *, + void *); static int set_config_lsm_se_context(const char *, const char *, struct lxc_conf *, void *); static int get_config_lsm_se_context(const char *, char *, int, struct lxc_conf *); -static int clr_config_lsm_se_context(const char *, struct lxc_conf *); +static int clr_config_lsm_se_context(const char *, struct lxc_conf *, void *); static int set_config_cgroup(const char *, const char *, struct lxc_conf *, void *); static int get_config_cgroup(const char *, char *, int, struct lxc_conf *); -static int clr_config_cgroup(const char *, struct lxc_conf *); +static int clr_config_cgroup(const char *, struct lxc_conf *, void *); static int set_config_idmaps(const char *, const char *, struct lxc_conf *, void *); static int get_config_idmaps(const char *, char *, int, struct lxc_conf *); -static int clr_config_idmaps(const char *, struct lxc_conf *); +static int clr_config_idmaps(const char *, struct lxc_conf *, void *); static int set_config_loglevel(const char *, const char *, struct lxc_conf *, void *); static int get_config_loglevel(const char *, char *, int, struct lxc_conf *); -static int clr_config_loglevel(const char *, struct lxc_conf *); +static int clr_config_loglevel(const char *, struct lxc_conf *, void *); static int set_config_logfile(const char *, const char *, struct lxc_conf *, void *); static int get_config_logfile(const char *, char *, int, struct lxc_conf *); -static int clr_config_logfile(const char *, struct lxc_conf *); +static int clr_config_logfile(const char *, struct lxc_conf *, void *); static int set_config_mount(const char *, const char *, struct lxc_conf *, void *); static int get_config_mount(const char *, char *, int, struct lxc_conf *); -static int clr_config_mount(const char *, struct lxc_conf *); +static int clr_config_mount(const char *, struct lxc_conf *, void *); static int set_config_mount_auto(const char *, const char *, struct lxc_conf *, void *); static int get_config_mount_auto(const char *, char *, int, struct lxc_conf *); -static int clr_config_mount_auto(const char *, struct lxc_conf *); +static int clr_config_mount_auto(const char *, struct lxc_conf *, void *); static int set_config_fstab(const char *, const char *, struct lxc_conf *, void *); static int get_config_fstab(const char *, char *, int, struct lxc_conf *); -static int clr_config_fstab(const char *, struct lxc_conf *); +static int clr_config_fstab(const char *, struct lxc_conf *, void *); static int set_config_rootfs_mount(const char *, const char *, struct lxc_conf *, void *); static int get_config_rootfs_mount(const char *, char *, int, struct lxc_conf *); -static int clr_config_rootfs_mount(const char *, struct lxc_conf *); +static int clr_config_rootfs_mount(const char *, struct lxc_conf *, void *); static int set_config_rootfs_options(const char *, const char *, struct lxc_conf *, void *); static int get_config_rootfs_options(const char *, char *, int, struct lxc_conf *); -static int clr_config_rootfs_options(const char *, struct lxc_conf *); +static int clr_config_rootfs_options(const char *, struct lxc_conf *, void *); static int set_config_rootfs_backend(const char *, const char *, struct lxc_conf *, void *); static int get_config_rootfs_backend(const char *, char *, int, struct lxc_conf *); -static int clr_config_rootfs_backend(const char *, struct lxc_conf *); +static int clr_config_rootfs_backend(const char *, struct lxc_conf *, void *); static int set_config_rootfs(const char *, const char *, struct lxc_conf *, void *); static int get_config_rootfs(const char *, char *, int, struct lxc_conf *); -static int clr_config_rootfs(const char *, struct lxc_conf *); +static int clr_config_rootfs(const char *, struct lxc_conf *, void *); static int set_config_pivotdir(const char *, const char *, struct lxc_conf *, void *); static int get_config_pivotdir(const char *, char *, int, struct lxc_conf *); -static int clr_config_pivotdir(const char *, struct lxc_conf *); +static int clr_config_pivotdir(const char *, struct lxc_conf *, void *); static int set_config_utsname(const char *, const char *, struct lxc_conf *, void *); static int get_config_utsname(const char *, char *, int, struct lxc_conf *); -static int clr_config_utsname(const char *, struct lxc_conf *); +static int clr_config_utsname(const char *, struct lxc_conf *, void *); static int set_config_hooks(const char *, const char *, struct lxc_conf *, void *); static int get_config_hooks(const char *, char *, int, struct lxc_conf *); -static int clr_config_hooks(const char *, struct lxc_conf *); +static int clr_config_hooks(const char *, struct lxc_conf *, void *); static int set_config_network_type(const char *, const char *, struct lxc_conf *, void *); @@ -214,121 +215,121 @@ static int set_config_network_nic(const char *, const char *, struct lxc_conf *, void *); static int get_config_network_item(const char *, char *, int, struct lxc_conf *); -static int clr_config_network_item(const char *, struct lxc_conf *); +static int clr_config_network_item(const char *, struct lxc_conf *, void *); static int set_config_network(const char *, const char *, struct lxc_conf *, void *); static int get_config_network(const char *, char *, int, struct lxc_conf *); -static int clr_config_network(const char *, struct lxc_conf *); +static int clr_config_network(const char *, struct lxc_conf *, void *); static int set_config_cap_drop(const char *, const char *, struct lxc_conf *, void *); static int get_config_cap_drop(const char *, char *, int, struct lxc_conf *); -static int clr_config_cap_drop(const char *, struct lxc_conf *); +static int clr_config_cap_drop(const char *, struct lxc_conf *, void *); static int set_config_cap_keep(const char *, const char *, struct lxc_conf *, void *); static int get_config_cap_keep(const char *, char *, int, struct lxc_conf *); -static int clr_config_cap_keep(const char *, struct lxc_conf *); +static int clr_config_cap_keep(const char *, struct lxc_conf *, void *); static int set_config_console_logfile(const char *, const char *, struct lxc_conf *, void *); static int get_config_console_logfile(const char *, char *, int, struct lxc_conf *); -static int clr_config_console_logfile(const char *, struct lxc_conf *); +static int clr_config_console_logfile(const char *, struct lxc_conf *, void *); static int set_config_console(const char *, const char *, struct lxc_conf *, void *); static int get_config_console(const char *, char *, int, struct lxc_conf *); -static int clr_config_console(const char *, struct lxc_conf *); +static int clr_config_console(const char *, struct lxc_conf *, void *); static int set_config_seccomp(const char *, const char *, struct lxc_conf *, void *); static int get_config_seccomp(const char *, char *, int, struct lxc_conf *); -static int clr_config_seccomp(const char *, struct lxc_conf *); +static int clr_config_seccomp(const char *, struct lxc_conf *, void *); static int set_config_includefiles(const char *, const char *, struct lxc_conf *, void *); static int get_config_includefiles(const char *, char *, int, struct lxc_conf *); -static int clr_config_includefiles(const char *, struct lxc_conf *); +static int clr_config_includefiles(const char *, struct lxc_conf *, void *); static int set_config_autodev(const char *, const char *, struct lxc_conf *, void *); static int get_config_autodev(const char *, char *, int, struct lxc_conf *); -static int clr_config_autodev(const char *, struct lxc_conf *); +static int clr_config_autodev(const char *, struct lxc_conf *, void *); static int set_config_haltsignal(const char *, const char *, struct lxc_conf *, void *); static int get_config_haltsignal(const char *, char *, int, struct lxc_conf *); -static int clr_config_haltsignal(const char *, struct lxc_conf *); +static int clr_config_haltsignal(const char *, struct lxc_conf *, void *); static int set_config_rebootsignal(const char *, const char *, struct lxc_conf *, void *); static int get_config_rebootsignal(const char *, char *, int, struct lxc_conf *); -static int clr_config_rebootsignal(const char *, struct lxc_conf *); +static int clr_config_rebootsignal(const char *, struct lxc_conf *, void *); static int set_config_stopsignal(const char *, const char *, struct lxc_conf *, void *); static int get_config_stopsignal(const char *, char *, int, struct lxc_conf *); -static int clr_config_stopsignal(const char *, struct lxc_conf *); +static int clr_config_stopsignal(const char *, struct lxc_conf *, void *); static int set_config_start(const char *, const char *, struct lxc_conf *, void *); static int get_config_start(const char *, char *, int, struct lxc_conf *); -static int clr_config_start(const char *, struct lxc_conf *); +static int clr_config_start(const char *, struct lxc_conf *, void *); static int set_config_monitor(const char *, const char *, struct lxc_conf *, void *); static int get_config_monitor(const char *, char *, int, struct lxc_conf *); -static int clr_config_monitor(const char *, struct lxc_conf *); +static int clr_config_monitor(const char *, struct lxc_conf *, void *); static int set_config_group(const char *, const char *, struct lxc_conf *, void *); static int get_config_group(const char *, char *, int, struct lxc_conf *); -static int clr_config_group(const char *, struct lxc_conf *); +static int clr_config_group(const char *, struct lxc_conf *, void *); static int set_config_environment(const char *, const char *, struct lxc_conf *, void *); static int get_config_environment(const char *, char *, int, struct lxc_conf *); -static int clr_config_environment(const char *, struct lxc_conf *); +static int clr_config_environment(const char *, struct lxc_conf *, void *); static int set_config_init_cmd(const char *, const char *, struct lxc_conf *, void *); static int get_config_init_cmd(const char *, char *, int, struct lxc_conf *); -static int clr_config_init_cmd(const char *, struct lxc_conf *); +static int clr_config_init_cmd(const char *, struct lxc_conf *, void *); static int set_config_init_uid(const char *, const char *, struct lxc_conf *, void *); static int get_config_init_uid(const char *, char *, int, struct lxc_conf *); -static int clr_config_init_uid(const char *, struct lxc_conf *); +static int clr_config_init_uid(const char *, struct lxc_conf *, void *); static int set_config_init_gid(const char *, const char *, struct lxc_conf *, void *); static int get_config_init_gid(const char *, char *, int, struct lxc_conf *); -static int clr_config_init_gid(const char *, struct lxc_conf *); +static int clr_config_init_gid(const char *, struct lxc_conf *, void *); static int set_config_ephemeral(const char *, const char *, struct lxc_conf *, void *); static int get_config_ephemeral(const char *, char *, int, struct lxc_conf *); -static int clr_config_ephemeral(const char *, struct lxc_conf *); +static int clr_config_ephemeral(const char *, struct lxc_conf *, void *); static int set_config_syslog(const char *, const char *, struct lxc_conf *, void *); static int get_config_syslog(const char *, char *, int, struct lxc_conf *); -static int clr_config_syslog(const char *, struct lxc_conf *); +static int clr_config_syslog(const char *, struct lxc_conf *, void *); static int set_config_no_new_privs(const char *, const char *, struct lxc_conf *, void *); static int get_config_no_new_privs(const char *, char *, int, struct lxc_conf *); -static int clr_config_no_new_privs(const char *, struct lxc_conf *); +static int clr_config_no_new_privs(const char *, struct lxc_conf *, void *); static int set_config_limit(const char *, const char *, struct lxc_conf *, void *); static int get_config_limit(const char *, char *, int, struct lxc_conf *); -static int clr_config_limit(const char *, struct lxc_conf *); +static int clr_config_limit(const char *, struct lxc_conf *, void *); static struct lxc_config_t config[] = { { "lxc.arch", set_config_personality, get_config_personality, clr_config_personality, }, @@ -1131,7 +1132,7 @@ static int set_config_network_ipv4(const char *key, const char *value, char *addr = NULL, *bcast = NULL, *prefix = NULL; if (lxc_config_value_empty(value)) - return clr_config_network_item(key, lxc_conf); + return clr_config_network_item(key, lxc_conf, NULL); /* lxc.network.* without an index */ if (!data) @@ -2146,7 +2147,7 @@ static int set_config_fstab(const char *key, const char *value, struct lxc_conf *lxc_conf, void *data) { if (lxc_config_value_empty(value)) { - clr_config_fstab(key, lxc_conf); + clr_config_fstab(key, lxc_conf, NULL); return -1; } @@ -2470,7 +2471,7 @@ static int set_config_includefiles(const char *key, const char *value, { /* Set config value to default. */ if (lxc_config_value_empty(value)) { - clr_config_includefiles(key, lxc_conf); + clr_config_includefiles(key, lxc_conf, NULL); return 0; } @@ -2529,7 +2530,7 @@ static int set_config_utsname(const char *key, const char *value, struct utsname *utsname; if (lxc_config_value_empty(value)) { - clr_config_utsname(key, lxc_conf); + clr_config_utsname(key, lxc_conf, NULL); return 0; } @@ -3980,38 +3981,44 @@ static int get_config_limit(const char *key, char *retv, int inlen, } /* Callbacks to clear config items. */ -static inline int clr_config_personality(const char *key, struct lxc_conf *c) +static inline int clr_config_personality(const char *key, struct lxc_conf *c, + void *data) { c->personality = -1; return 0; } -static inline int clr_config_pts(const char *key, struct lxc_conf *c) +static inline int clr_config_pts(const char *key, struct lxc_conf *c, + void *data) { c->pts = 0; return 0; } -static inline int clr_config_tty(const char *key, struct lxc_conf *c) +static inline int clr_config_tty(const char *key, struct lxc_conf *c, + void *data) { c->tty = 0; return 0; } -static inline int clr_config_ttydir(const char *key, struct lxc_conf *c) +static inline int clr_config_ttydir(const char *key, struct lxc_conf *c, + void *data) { free(c->ttydir); c->ttydir = NULL; return 0; } -static inline int clr_config_kmsg(const char *key, struct lxc_conf *c) +static inline int clr_config_kmsg(const char *key, struct lxc_conf *c, + void *data) { c->kmsg = 0; return 0; } -static inline int clr_config_lsm_aa_profile(const char *key, struct lxc_conf *c) +static inline int clr_config_lsm_aa_profile(const char *key, struct lxc_conf *c, + void *data) { free(c->lsm_aa_profile); c->lsm_aa_profile = NULL; @@ -4019,125 +4026,145 @@ static inline int clr_config_lsm_aa_profile(const char *key, struct lxc_conf *c) } static inline int clr_config_lsm_aa_incomplete(const char *key, - struct lxc_conf *c) + struct lxc_conf *c, void *data) { c->lsm_aa_allow_incomplete = 0; return 0; } -static inline int clr_config_lsm_se_context(const char *key, struct lxc_conf *c) +static inline int clr_config_lsm_se_context(const char *key, struct lxc_conf *c, + void *data) { free(c->lsm_se_context); c->lsm_se_context = NULL; return 0; } -static inline int clr_config_cgroup(const char *key, struct lxc_conf *c) +static inline int clr_config_cgroup(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_cgroups(c, key); } -static inline int clr_config_idmaps(const char *key, struct lxc_conf *c) +static inline int clr_config_idmaps(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_idmaps(c); } -static inline int clr_config_loglevel(const char *key, struct lxc_conf *c) +static inline int clr_config_loglevel(const char *key, struct lxc_conf *c, + void *data) { c->loglevel = LXC_LOG_LEVEL_NOTSET; return 0; } -static inline int clr_config_logfile(const char *key, struct lxc_conf *c) +static inline int clr_config_logfile(const char *key, struct lxc_conf *c, + void *data) { free(c->logfile); c->logfile = NULL; return 0; } -static inline int clr_config_mount(const char *key, struct lxc_conf *c) +static inline int clr_config_mount(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_mount_entries(c); } -static inline int clr_config_mount_auto(const char *key, struct lxc_conf *c) +static inline int clr_config_mount_auto(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_automounts(c); } -static inline int clr_config_fstab(const char *key, struct lxc_conf *c) +static inline int clr_config_fstab(const char *key, struct lxc_conf *c, + void *data) { free(c->fstab); c->fstab = NULL; return 0; } -static inline int clr_config_rootfs(const char *key, struct lxc_conf *c) +static inline int clr_config_rootfs(const char *key, struct lxc_conf *c, + void *data) { free(c->rootfs.path); c->rootfs.path = NULL; return 0; } -static inline int clr_config_rootfs_mount(const char *key, struct lxc_conf *c) +static inline int clr_config_rootfs_mount(const char *key, struct lxc_conf *c, + void *data) { free(c->rootfs.mount); c->rootfs.mount = NULL; return 0; } -static inline int clr_config_rootfs_options(const char *key, struct lxc_conf *c) +static inline int clr_config_rootfs_options(const char *key, struct lxc_conf *c, + void *data) { free(c->rootfs.options); c->rootfs.options = NULL; return 0; } -static inline int clr_config_rootfs_backend(const char *key, struct lxc_conf *c) +static inline int clr_config_rootfs_backend(const char *key, struct lxc_conf *c, + void *data) { free(c->rootfs.bdev_type); c->rootfs.bdev_type = NULL; return 0; } -static inline int clr_config_pivotdir(const char *key, struct lxc_conf *c) +static inline int clr_config_pivotdir(const char *key, struct lxc_conf *c, + void *data) { return 0; } -static inline int clr_config_utsname(const char *key, struct lxc_conf *c) +static inline int clr_config_utsname(const char *key, struct lxc_conf *c, + void *data) { free(c->utsname); c->utsname = NULL; return 0; } -static inline int clr_config_hooks(const char *key, struct lxc_conf *c) +static inline int clr_config_hooks(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_hooks(c, key); } -static inline int clr_config_network_item(const char *key, struct lxc_conf *c) +static inline int clr_config_network_item(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_nic(c, key + 12); } -static inline int clr_config_network(const char *key, struct lxc_conf *c) +static inline int clr_config_network(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_config_network(c); } -static inline int clr_config_cap_drop(const char *key, struct lxc_conf *c) +static inline int clr_config_cap_drop(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_config_caps(c); } -static inline int clr_config_cap_keep(const char *key, struct lxc_conf *c) +static inline int clr_config_cap_keep(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_config_keepcaps(c); } -static inline int clr_config_console(const char *key, struct lxc_conf *c) +static inline int clr_config_console(const char *key, struct lxc_conf *c, + void *data) { free(c->console.path); c->console.path = NULL; @@ -4145,45 +4172,51 @@ static inline int clr_config_console(const char *key, struct lxc_conf *c) } static inline int clr_config_console_logfile(const char *key, - struct lxc_conf *c) + struct lxc_conf *c, void *data) { free(c->console.log_path); c->console.log_path = NULL; return 0; } -static inline int clr_config_seccomp(const char *key, struct lxc_conf *c) +static inline int clr_config_seccomp(const char *key, struct lxc_conf *c, + void *data) { free(c->seccomp); c->seccomp = NULL; return 0; } -static inline int clr_config_autodev(const char *key, struct lxc_conf *c) +static inline int clr_config_autodev(const char *key, struct lxc_conf *c, + void *data) { c->autodev = 1; return 0; } -static inline int clr_config_haltsignal(const char *key, struct lxc_conf *c) +static inline int clr_config_haltsignal(const char *key, struct lxc_conf *c, + void *data) { c->haltsignal = 0; return 0; } -static inline int clr_config_rebootsignal(const char *key, struct lxc_conf *c) +static inline int clr_config_rebootsignal(const char *key, struct lxc_conf *c, + void *data) { c->rebootsignal = 0; return 0; } -static inline int clr_config_stopsignal(const char *key, struct lxc_conf *c) +static inline int clr_config_stopsignal(const char *key, struct lxc_conf *c, + void *data) { c->stopsignal = 0; return 0; } -static inline int clr_config_start(const char *key, struct lxc_conf *c) +static inline int clr_config_start(const char *key, struct lxc_conf *c, + void *data) { if (strcmp(key + 10, "auto") == 0) c->start_auto = 0; @@ -4195,66 +4228,77 @@ static inline int clr_config_start(const char *key, struct lxc_conf *c) return 0; } -static inline int clr_config_syslog(const char *key, struct lxc_conf *c) +static inline int clr_config_syslog(const char *key, struct lxc_conf *c, + void *data) { free(c->syslog); c->syslog = NULL; return 0; } -static inline int clr_config_monitor(const char *key, struct lxc_conf *c) +static inline int clr_config_monitor(const char *key, struct lxc_conf *c, + void *data) { c->monitor_unshare = 0; return 0; } -static inline int clr_config_group(const char *key, struct lxc_conf *c) +static inline int clr_config_group(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_groups(c); } -static inline int clr_config_environment(const char *key, struct lxc_conf *c) +static inline int clr_config_environment(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_environment(c); } -static inline int clr_config_init_cmd(const char *key, struct lxc_conf *c) +static inline int clr_config_init_cmd(const char *key, struct lxc_conf *c, + void *data) { free(c->init_cmd); c->init_cmd = NULL; return 0; } -static inline int clr_config_init_uid(const char *key, struct lxc_conf *c) +static inline int clr_config_init_uid(const char *key, struct lxc_conf *c, + void *data) { c->init_uid = 0; return 0; } -static inline int clr_config_init_gid(const char *key, struct lxc_conf *c) +static inline int clr_config_init_gid(const char *key, struct lxc_conf *c, + void *data) { c->init_gid = 0; return 0; } -static inline int clr_config_ephemeral(const char *key, struct lxc_conf *c) +static inline int clr_config_ephemeral(const char *key, struct lxc_conf *c, + void *data) { c->ephemeral = 0; return 0; } -static inline int clr_config_no_new_privs(const char *key, struct lxc_conf *c) +static inline int clr_config_no_new_privs(const char *key, struct lxc_conf *c, + void *data) { c->no_new_privs = false; return 0; } -static inline int clr_config_limit(const char *key, struct lxc_conf *c) +static inline int clr_config_limit(const char *key, struct lxc_conf *c, + void *data) { return lxc_clear_limits(c, key); } -static inline int clr_config_includefiles(const char *key, struct lxc_conf *c) +static inline int clr_config_includefiles(const char *key, struct lxc_conf *c, + void *data) { lxc_clear_includes(c); return 0; diff --git a/src/lxc/confile.h b/src/lxc/confile.h index 7714fd60d..5dab2d9f9 100644 --- a/src/lxc/confile.h +++ b/src/lxc/confile.h @@ -34,7 +34,7 @@ struct lxc_list; typedef int (*config_set_cb)(const char *, const char *, struct lxc_conf *, void *data); typedef int (*config_get_cb)(const char *, char *, int, struct lxc_conf *); -typedef int (*config_clr_cb)(const char *key, struct lxc_conf *c); +typedef int (*config_clr_cb)(const char *, struct lxc_conf *c, void *data); struct lxc_config_t { char *name; config_set_cb set; diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index 3387dbbf3..8e2535911 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -1722,7 +1722,7 @@ static bool do_lxcapi_clear_config_item(struct lxc_container *c, * implemented. */ if (config && config->clr) - ret = config->clr(key, c->lxc_conf); + ret = config->clr(key, c->lxc_conf, NULL); if (!ret) do_clear_unexp_config_line(c->lxc_conf, key);