.handle_file = rule_handle_file,
};
+static void hotplug_handler_debug(struct blob_attr *data)
+{
+ char *str;
+
+ if (debug < 3)
+ return;
+
+ str = blobmsg_format_json(data, true);
+ DEBUG(3, "%s\n", str);
+ free(str);
+}
+
static void hotplug_handler(struct uloop_fd *u, unsigned int ev)
{
int i = 0;
i += l;
}
blobmsg_close_table(&b, index);
- DEBUG(3, "%s\n", blobmsg_format_json(b.head, true));
+ hotplug_handler_debug(b.head);
json_script_run(&jctx, rule_file, blob_data(b.head));
}
void hotplug(char *rules)
{
struct sockaddr_nl nls;
+ int nlbufsize = 512 * 1024;
rule_file = strdup(rules);
memset(&nls,0,sizeof(struct sockaddr_nl));
exit(1);
}
+ if (setsockopt(hotplug_fd.fd, SOL_SOCKET, SO_RCVBUFFORCE, &nlbufsize, sizeof(nlbufsize))) {
+ ERROR("Failed to resize receive buffer: %s\n", strerror(errno));
+ exit(1);
+ }
+
json_script_init(&jctx);
queue_proc.cb = queue_proc_cb;
uloop_fd_add(&hotplug_fd, ULOOP_READ);