示例#1
0
文件: rrdns.c 项目: jow-/luci-ng
static int
rpc_rrdns_api_init(const struct rpc_daemon_ops *o, struct ubus_context *ctx)
{
    static const struct ubus_method rrdns_methods[] = {
        UBUS_METHOD("lookup", rpc_rrdns_lookup, rpc_lookup_policy),
    };

    static struct ubus_object_type rrdns_type =
        UBUS_OBJECT_TYPE("luci-rpc-rrdns", rrdns_methods);

    static struct ubus_object obj = {
        .name = "luci2.network.rrdns",
        .type = &rrdns_type,
        .methods = rrdns_methods,
        .n_methods = ARRAY_SIZE(rrdns_methods),
    };

    return ubus_add_object(ctx, &obj);
}

struct rpc_plugin rpc_plugin = {
    .init = rpc_rrdns_api_init
};
示例#2
0
	return 0;

error:
	blob_buf_free(&b);
	return -1;

}

static const struct ubus_method easycwmp_methods[] = {
	UBUS_METHOD("notify", easycwmpd_handle_notify, notify_policy),
	UBUS_METHOD("inform", easycwmpd_handle_inform, inform_policy),
	UBUS_METHOD("command", easycwmpd_handle_command, command_policy),
};

static struct ubus_object_type main_object_type =
	UBUS_OBJECT_TYPE("easycwmpd", easycwmp_methods);

static struct ubus_object main_object = {
	.name = "tr069",
	.type = &main_object_type,
	.methods = easycwmp_methods,
	.n_methods = ARRAY_SIZE(easycwmp_methods),
};

int
ubus_init(void)
{
	ctx = ubus_connect(config->local->ubus_socket);
	if (!ctx) return -1;

	ubus_add_uloop(ctx);
示例#3
0
			struct blob_attr *msg)
{
	freecwmp_log_message(NAME, L_NOTICE, "triggered ubus reload\n");
	freecwmp_reload();

	return 0;
}

static const struct ubus_method freecwmp_methods[] = {
	UBUS_METHOD("notify", freecwmpd_handle_notify, notify_policy),
	UBUS_METHOD("inform", freecwmpd_handle_inform, inform_policy),
	{ .name = "reload", .handler = freecwmpd_handle_reload },
};

static struct ubus_object_type main_object_type =
	UBUS_OBJECT_TYPE("freecwmpd", freecwmp_methods);

static struct ubus_object main_object = {
	.name = "tr069",
	.type = &main_object_type,
	.methods = freecwmp_methods,
	.n_methods = ARRAY_SIZE(freecwmp_methods),
};

int
ubus_init(void)
{
	ctx = ubus_connect(config->local->ubus_socket);
	if (!ctx) return -1;

	ubus_add_uloop(ctx);
示例#4
0
文件: vlan.c 项目: sevennothing/lros
}

static struct ubus_method vlan_methods[] = {
	UBUS_METHOD("new", vlan_new, vlan_new_policy),
	UBUS_METHOD("find", vlan_find, vlan_find_policy),
	UBUS_METHOD("delete", vlan_delete, vlan_delete_policy),
	UBUS_METHOD("port", vlan_port, vlan_port_policy), //* vlan 中的端口属性 */

	UBUS_METHOD("mstp", vlan_mstp, vlan_mstp_policy),/* 802.1q 13章 增加MSTP*/

};


static struct ubus_object_type vlan_object_type = 
	UBUS_OBJECT_TYPE("vlan", vlan_methods);


static struct ubus_object vlan_object = {
	.name = "bridge.swVlan",
	.type = &vlan_object_type,
	.methods = vlan_methods,
	.n_methods = ARRAY_SIZE(vlan_methods),
};


void vlan_add_to_ubus(void)
{
	int ret;

	ret = ubus_add_object(ctx, &vlan_object);
示例#5
0
#include <stdio.h>
#include <unistd.h>
#include <libubus.h>

#include "freenetconfd/freenetconfd.h"

#include "ubus.h"

static struct ubus_context *ubus = NULL;
static struct ubus_object main_object;

static const struct ubus_method fnd_methods[] = {};

static struct ubus_object_type main_object_type =
	UBUS_OBJECT_TYPE("freenetconfd", fnd_methods);

static struct ubus_object main_object =
{
	.name = "netconf",
	.type = &main_object_type,
	.methods = fnd_methods,
	.n_methods = ARRAY_SIZE(fnd_methods),
};

int
ubus_init(void)
{
	ubus = ubus_connect(NULL);

	if (!ubus) return -1;
示例#6
0
文件: ubus.c 项目: gaojing2016/backup
    __LOGLEVEL_MAX
};

struct ubus_context *cloudc_ctx;

static const struct blobmsg_policy handle_loglevel_policy[] = {
    [LOGLEVEL] = { .name = "loglevel", .type = BLOBMSG_TYPE_STRING },
};

static const struct ubus_method cloudc_object_methods[] = {
    //{.name = "disable", .handler = handle_cloudc_feature_down},
    UBUS_METHOD("loglevel", handle_loglevel_update, handle_loglevel_policy),
};

static struct ubus_object_type cloudc_object_type =
UBUS_OBJECT_TYPE("cloudc", cloudc_object_methods);

static struct ubus_object cloudc_object = {
    .name = "cloudc",
    .type = &cloudc_object_type,
    .methods = cloudc_object_methods,
    .n_methods = ARRAY_SIZE(cloudc_object_methods),
};

static int handle_loglevel_update(struct ubus_context *ctx, struct ubus_object *obj,
        struct ubus_request_data *req, const char *method,
        struct blob_attr *msg)
{
    struct blob_attr *tb[__LOGLEVEL_MAX];
    char *log_buf = NULL;
    char cmd[128] = {0};
示例#7
0
    }

    ubus_send_reply(ctx, req, buf.head);
    return UBUS_STATUS_OK;
}




static const struct ubus_method apClient_methods[] = {
   // UBUS_METHOD("scan", apClient_scan, scan_policy),
    UBUS_METHOD("connect", apClient_connect, connect_policy),
};

static struct ubus_object_type apClient_object_type =
UBUS_OBJECT_TYPE("rewifi", apClient_methods);

static struct ubus_object apClient_object = {
    .name = "rewifi",
    .type = &apClient_object_type,
    .methods = apClient_methods,
    .n_methods = ARRAY_SIZE(apClient_methods),
};

static void server_main(void)
{
    int ret;

    ret = ubus_add_object(ctx, &apClient_object);
    if (ret) fprintf(stderr, "Failed to add object: %s\n", ubus_strerror(ret));
示例#8
0
            .param  = UM_PARAM_INITER(umc.policy.radio),
            .cfg    = LIST_HEAD_INIT(umc.uci.radio.cfg),
            .tmp    = LIST_HEAD_INIT(umc.uci.radio.tmp),
            .uci_type = UM_UCI_INTF_RADIO,
        },
        .wlan = {
            .param  = UM_PARAM_INITER(umc.policy.wlan),
            .cfg    = LIST_HEAD_INIT(umc.uci.wlan.cfg),
            .tmp    = LIST_HEAD_INIT(umc.uci.wlan.tmp),
            .uci_type = UM_UCI_INTF_WLAN,
        },
    },
    
    .obj = {
        .methods= um_user_object_methods,
        .type   = UBUS_OBJECT_TYPE("umd", um_user_object_methods),
        .object = {
        	.name = "user-manage",
        	.type = &umc.obj.type,
        	.methods = um_user_object_methods,
        	.n_methods = os_count_of(um_user_object_methods),
        }
    },
};



static void
handle_signal(int signo)
{
	uloop_end();
示例#9
0
static struct blob_buf b;
static int notify;
static int error_logged = 0;

static int ubus_handle_metrics(struct ubus_context *ctx, struct ubus_object *obj,
			       struct ubus_request_data *req, const char *method,
			       struct blob_attr *msg);

static void ubus_subscribe_cb(struct ubus_context *ctx, struct ubus_object *obj);

static const struct ubus_method ubus_object_methods[] = {
  UBUS_METHOD_NOARG("metrics", ubus_handle_metrics),
};

static struct ubus_object_type ubus_object_type =
  UBUS_OBJECT_TYPE("dnsmasq", ubus_object_methods);

static struct ubus_object ubus_object = {
  .name = "dnsmasq",
  .type = &ubus_object_type,
  .methods = ubus_object_methods,
  .n_methods = ARRAY_SIZE(ubus_object_methods),
  .subscribe_cb = ubus_subscribe_cb,
};

static void ubus_subscribe_cb(struct ubus_context *ctx, struct ubus_object *obj)
{
  (void)ctx;

  my_syslog(LOG_DEBUG, _("UBus subscription callback: %s subscriber(s)"), obj->has_subscribers ? "1" : "0");
  notify = obj->has_subscribers;
示例#10
0
}


static const struct ubus_method system_methods[] = {
	UBUS_METHOD_NOARG("board", system_board),
	UBUS_METHOD_NOARG("info",  system_info),
	UBUS_METHOD_NOARG("upgrade", system_upgrade),
	UBUS_METHOD("watchdog", watchdog_set, watchdog_policy),
	UBUS_METHOD("signal", proc_signal, signal_policy),

	/* must remain at the end as it ia not always loaded */
	UBUS_METHOD("nandupgrade", nand_set, nand_policy),
};

static struct ubus_object_type system_object_type =
	UBUS_OBJECT_TYPE("system", system_methods);

static struct ubus_object system_object = {
	.name = "system",
	.type = &system_object_type,
	.methods = system_methods,
	.n_methods = ARRAY_SIZE(system_methods),
	.subscribe_cb = procd_subscribe_cb,
};

void
procd_bcast_event(char *event, struct blob_attr *msg)
{
	int ret;

	if (!notify)
示例#11
0
文件: main.c 项目: OnionIoT/ogps
		blobmsg_add_string(&b, "longitude", longitude);
		blobmsg_add_string(&b, "elevation", elevation);
		blobmsg_add_string(&b, "course", course);
		blobmsg_add_string(&b, "speed", speed);
	}
	ubus_send_reply(ctx, req, b.head);

	return UBUS_STATUS_OK;
}

static const struct ubus_method gps_methods[] = {
	UBUS_METHOD_NOARG("info", gps_info),
};

static struct ubus_object_type gps_object_type =
	UBUS_OBJECT_TYPE("gps", gps_methods);

static struct ubus_object gps_object = {
	.name = "gps",
	.type = &gps_object_type,
	.methods = gps_methods,
	.n_methods = ARRAY_SIZE(gps_methods),
};

static void
ubus_connect_handler(struct ubus_context *ctx)
{
	int ret;

	ret = ubus_add_object(ctx, &gps_object);
	if (ret)
示例#12
0
	blobmsg_add_u16(&b,"resCode", resCode);

	req->deferred = false;
	ubus_send_reply(ctx, req, b.head);

	return UBUS_STATUS_OK;
}

static struct ubus_method lowlevel_methods[] = {
	UBUS_METHOD("swRegRD",  sw_reg_read, sw_reg_read_policy),
	UBUS_METHOD("swRegWR",  sw_reg_write, sw_reg_write_policy),
};


static struct ubus_object_type lowlevel_object_type = 
	UBUS_OBJECT_TYPE("lowlevel", lowlevel_methods);


static struct ubus_object lowlevel_object = {
	.name = "lowlevel",
	.type = &lowlevel_object_type,
	.methods = lowlevel_methods,
	.n_methods = ARRAY_SIZE(lowlevel_methods),
};


void lowlevel_add_to_ubus(void)
{
	int ret;

	ret = ubus_add_object(ctx, &lowlevel_object);