#include <libubox/ustream.h>
#include <libubox/blob.h>
#include <libubox/utils.h>
+#ifdef HAVE_UBUS
+#include <libubus.h>
+#include <json/json.h>
+#endif
#ifdef HAVE_TLS
#include <libubox/ustream-ssl.h>
#endif
const char *cgi_path;
const char *lua_handler;
const char *lua_prefix;
+ const char *ubus_prefix;
+ const char *ubus_socket;
int no_symlinks;
int no_dirlists;
int network_timeout;
void (*handle_request)(struct client *cl, char *url, struct path_info *pi);
};
+#ifdef HAVE_UBUS
+struct dispatch_ubus {
+ struct ubus_request req;
+
+ struct uloop_timeout timeout;
+ struct json_tokener *jstok;
+ struct json_object *jsobj;
+ struct json_object *jsobj_cur;
+ int post_len;
+
+ const char *sid;
+ uint32_t obj;
+ const char *func;
+
+ struct blob_buf buf;
+ bool req_pending;
+ bool array;
+ int array_idx;
+};
+#endif
+
struct dispatch {
int (*data_send)(struct client *cl, const char *data, int len);
void (*data_done)(struct client *cl);
int fd;
} file;
struct dispatch_proc proc;
+#ifdef HAVE_UBUS
+ struct dispatch_ubus ubus;
+#endif
};
};
void (*cb)(struct client *cl, struct path_info *pi, char *url));
int uh_plugin_init(const char *name);
+void uh_plugin_post_init(void);
#endif