diff --git a/dongle.c b/dongle.c
index 3cacbf545a7529c27ba74ec261c24d502c1695b0..870fbb6eac59c4704f6ef79b6f9ebc5b83201dc2 100644
--- a/dongle.c
+++ b/dongle.c
@@ -14,11 +14,43 @@
#include "dongle.h"
-struct ubus_context *global_ctx;
-int debug;
+static void uloop_add_get_devices(struct uloop_timeout *t);
+static int get_devices_from_path(char *input_path);
+static int get_devices(void);
+static int poll_devices(struct uloop_timeout *t);
+static int tag_missing_devices(void);
+static int add_device(struct device *new_dev);
+static int delete_all_devices(void);
+static int delete_device_by_name(char *name);
+static int delete_device(struct device *dev);
+static void free_device(struct device *dev);
+static void free_usb(struct USB *usb);
+static struct device *search_list(char *name);
+static char *get_usb_stat(char *path, char *file);
+static char *get_device_name(char *dir_name);
+static char *get_device_ip(char *device_name);
+static int list_to_blob(struct blob_buf *bb);
+static int print_list(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg);
+static int clear(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg);
+static int test(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg);
+static int remove_device(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg);
+static void init_ubus(void);
+static int publish_object(struct ubus_context *ctx);
+
+static struct ubus_context *global_ctx;
struct device *global_dev;
+int debug;
+
-struct uloop_timeout timeout = {
+static struct uloop_timeout timeout = {
.cb = poll_devices
};
@@ -27,7 +59,7 @@ static struct option long_options[] = {
{0, 0, 0, 0}
};
-const struct blobmsg_policy dev_policy[__DEV_MAX] = {
+static const struct blobmsg_policy dev_policy[__DEV_MAX] = {
[DEV] = {.name = "dev", .type = BLOBMSG_TYPE_STRING},
};
@@ -36,7 +68,7 @@ enum {
__USB_MAX
};
-const struct blobmsg_policy usb_policy[__USB_MAX] = {
+static const struct blobmsg_policy usb_policy[__USB_MAX] = {
[USB_PATH] = {.name = "path", .type = BLOBMSG_TYPE_STRING},
};
@@ -44,7 +76,7 @@ LIST_HEAD(devices);
LIST_HEAD(stack);
LIST_HEAD(visited);
-int parse_args(int argc, char **argv)
+static int parse_args(int argc, char **argv)
{
char ch;
@@ -78,7 +110,7 @@ fail:
return -1;
}
-int poll_devices(struct uloop_timeout *t)
+static int poll_devices(struct uloop_timeout *t)
{
get_devices();
tag_missing_devices();
@@ -88,7 +120,7 @@ int poll_devices(struct uloop_timeout *t)
return 0;
}
-int tag_missing_devices(void)
+static int tag_missing_devices(void)
{
struct device *dev, *tmp;
@@ -110,7 +142,7 @@ int tag_missing_devices(void)
return 0;
}
-int update_device(struct device *dev)
+static int update_device(struct device *dev)
{
struct device *prev_dev;
int rv;
@@ -151,7 +183,7 @@ fail:
return -2;
}
-int add_device(struct device *dev)
+static int add_device(struct device *dev)
{
int rv;
@@ -181,12 +213,12 @@ int add_device(struct device *dev)
already_present:
return -1;
fail_publish:
- dongle_destroy_dynamic_object(dev->ubus_obj);
+ dongle_destroy_dynamic_object(&(dev->ubus_obj));
fail:
return -2;
}
-int delete_all_devices(void)
+static int delete_all_devices(void)
{
struct device *dev, *tmp;
@@ -199,7 +231,7 @@ int delete_all_devices(void)
return 0;
}
-int delete_device_by_name(char *name)
+static int delete_device_by_name(char *name)
{
struct device *dev, *tmp;
@@ -215,7 +247,7 @@ int delete_device_by_name(char *name)
return -1;
}
-int delete_device(struct device *dev)
+static int delete_device(struct device *dev)
{
if (dev->ubus_obj) {
unpublish_ubus_object(global_ctx, dev->ubus_obj);
@@ -229,7 +261,7 @@ int delete_device(struct device *dev)
return 0;
}
-void free_device(struct device *dev)
+static void free_device(struct device *dev)
{
if (!dev)
return;
@@ -239,7 +271,7 @@ void free_device(struct device *dev)
//free(&(dev->usb));
}
-void free_usb(struct USB *usb)
+static void free_usb(struct USB *usb)
{
if (!usb)
return;
@@ -250,7 +282,7 @@ void free_usb(struct USB *usb)
free(usb->if_name);
}
-struct device *search_list(char *name)
+static struct device *search_list(char *name)
{
struct device *dev;
@@ -331,7 +363,7 @@ fail_fopen:
return NULL;
}
-char *get_device_name(char *dir_name)
+static char *get_device_name(char *dir_name)
{
char path[PATH_MAX], *name = NULL;
struct directory *dr, *sub_dr;
@@ -415,7 +447,7 @@ fail_dr:
return NULL;
}
-int get_devices_from_path(char *input_path)
+static int get_devices_from_path(char *input_path)
{
char *path, *name;
struct dirent *de;
@@ -483,7 +515,7 @@ fail_dr:
return -1;
}
-int get_devices(void)
+static int get_devices(void)
{
char devices_path[PATH_MAX], mount_path[PATH_MAX];
struct dirent *de;
@@ -516,7 +548,7 @@ fail_dr:
return -1;
}
-char *get_device_ip(char *device_name)
+static char *get_device_ip(char *device_name)
{
char *iface, *destination, *gateway, *flags, *route, *ipv4_addr = NULL;
int host_flag;
@@ -565,7 +597,7 @@ fail_fopen:
return ipv4_addr;
}
-int list_to_blob(struct blob_buf *bb)
+static int list_to_blob(struct blob_buf *bb)
{
struct device *net_dev;
void *arr, *table;
@@ -618,7 +650,7 @@ fail:
return UBUS_STATUS_UNKNOWN_ERROR;
}
-int print_list(struct ubus_context *ctx, struct ubus_object *obj,
+static int print_list(struct ubus_context *ctx, struct ubus_object *obj,
struct ubus_request_data *req, const char *method,
struct blob_attr *msg)
{
@@ -636,25 +668,25 @@ fail:
return rv;
}
-int clear(struct ubus_context *ctx, struct ubus_object *obj,
- struct ubus_request_data *req, const char *method,
- struct blob_attr *msg)
+static int clear(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg)
{
printf("%d\n", delete_all_devices());
return 0;
}
-int test(struct ubus_context *ctx, struct ubus_object *obj,
- struct ubus_request_data *req, const char *method,
- struct blob_attr *msg)
+static int test(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg)
{
printf("%s\n", get_device_ip("usb0"));
return 0;
}
-int alert(struct ubus_context *ctx, struct ubus_object *obj,
- struct ubus_request_data *req, const char *method,
- struct blob_attr *msg)
+static int alert(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg)
{
struct blob_attr *tb[__USB_MAX];
char *usb_path;
@@ -671,9 +703,9 @@ fail:
return UBUS_STATUS_INVALID_ARGUMENT;
}
-int remove_device(struct ubus_context *ctx, struct ubus_object *obj,
- struct ubus_request_data *req, const char *method,
- struct blob_attr *msg)
+static int remove_device(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg)
{
struct blob_attr *tb[__DEV_MAX];
char *dev;
@@ -691,7 +723,7 @@ fail:
return UBUS_STATUS_INVALID_ARGUMENT;
}
-int update(struct ubus_context *ctx, struct ubus_object *obj,
+static int update(struct ubus_context *ctx, struct ubus_object *obj,
struct ubus_request_data *req, const char *method,
struct blob_attr *msg)
{
@@ -701,31 +733,30 @@ int update(struct ubus_context *ctx, struct ubus_object *obj,
return 0;
}
-struct ubus_method dongle_object_methods[] = {
+static struct ubus_method dongle_object_methods[] = {
UBUS_METHOD_NOARG("test", test),
UBUS_METHOD_NOARG("list", print_list),
UBUS_METHOD_NOARG("clear", clear),
UBUS_METHOD("remove_device", remove_device, dev_policy),
UBUS_METHOD("alert", alert, usb_policy),
- UBUS_METHOD_NOARG("update", update)
- };
+ UBUS_METHOD_NOARG("update", update)};
-struct ubus_object_type dongle_object_type = UBUS_OBJECT_TYPE("dongle", dongle_object_methods);
+static struct ubus_object_type dongle_object_type = UBUS_OBJECT_TYPE("dongle", dongle_object_methods);
-struct ubus_object dongle_object = {
+static struct ubus_object dongle_object = {
.name = "dongle",
.type = &dongle_object_type,
.methods = dongle_object_methods,
.n_methods = ARRAY_SIZE(dongle_object_methods),
};
-void uloop_add_get_devices(struct uloop_timeout *t)
+static void uloop_add_get_devices(struct uloop_timeout *t)
{
uloop_timeout_set(t, 60000);
uloop_timeout_add(t);
}
-void init_ubus(void)
+static void init_ubus(void)
{
global_ctx = ubus_connect(NULL);
if (!global_ctx) {
@@ -735,7 +766,7 @@ void init_ubus(void)
ubus_add_uloop(global_ctx);
}
-int publish_object(struct ubus_context *ctx)
+static int publish_object(struct ubus_context *ctx)
{
int rv;