diff options
-rw-r--r-- | config.c | 10 | ||||
-rw-r--r-- | config.h | 2 | ||||
-rw-r--r-- | main.c | 4 | ||||
-rw-r--r-- | netifd.h | 2 | ||||
-rw-r--r-- | ubus.c | 6 |
5 files changed, 16 insertions, 8 deletions
@@ -393,16 +393,20 @@ config_init_wireless(void) vlist_flush(&wdev->interfaces); } -void +int config_init_all(void) { + int ret = 0; + uci_network = config_init_package("network"); if (!uci_network) { fprintf(stderr, "Failed to load network config\n"); - return; + return -1; } uci_wireless = config_init_package("wireless"); + if (!uci_wireless) + ret = -1; vlist_update(&interfaces); config_init = true; @@ -426,4 +430,6 @@ config_init_all(void) interface_refresh_assignments(false); interface_start_pending(); wireless_start_pending(); + + return ret; } @@ -19,6 +19,6 @@ extern bool config_init; -void config_init_all(void); +int config_init_all(void); #endif @@ -208,9 +208,9 @@ static void netifd_do_restart(struct uloop_timeout *timeout) execvp(global_argv[0], global_argv); } -void netifd_reload(void) +int netifd_reload(void) { - config_init_all(); + return config_init_all(); } void netifd_restart(void) @@ -98,6 +98,6 @@ struct interface; extern const char *main_path; extern const char *config_path; void netifd_restart(void); -void netifd_reload(void); +int netifd_reload(void); #endif @@ -44,8 +44,10 @@ netifd_handle_reload(struct ubus_context *ctx, struct ubus_object *obj, struct ubus_request_data *req, const char *method, struct blob_attr *msg) { - netifd_reload(); - return 0; + if (netifd_reload()) + return UBUS_STATUS_UNKNOWN_ERROR; + + return UBUS_STATUS_OK; } enum { |