+static void netifd_add_interface_errors(struct blob_buf *b, struct interface *iface)
+{
+ struct interface_error *error;
+ void *e, *e2, *e3;
+ int i;
+
+ e = blobmsg_open_array(b, "errors");
+ list_for_each_entry(error, &iface->errors, list) {
+ e2 = blobmsg_open_table(b, NULL);
+
+ blobmsg_add_string(b, "subsystem", error->subsystem);
+ blobmsg_add_string(b, "code", error->code);
+ if (error->data[0]) {
+ e3 = blobmsg_open_array(b, "data");
+ for (i = 0; error->data[i]; i++)
+ blobmsg_add_string(b, NULL, error->data[i]);
+ blobmsg_close_array(b, e3);
+ }
+
+ blobmsg_close_table(b, e2);
+ }
+ blobmsg_close_array(b, e);
+}
+