Re: [OpenWrt-Devel] [PATCH] [rpcd][v2] file: add md5sum support

2015-04-14 Thread Jo-Philipp Wich
Hi,

 comments inline

dito.

 On 12/04/2015 03:56, Luka Perkov wrote:
 Signed-off-by: Luka Perkov l...@openwrt.org
 ---
 changes in v2:

 * no need to null-terminate string after sprintf()

  file.c | 35 +++
  1 file changed, 35 insertions(+)

 diff --git a/file.c b/file.c
 index 3831c54..9c1b301 100644
 --- a/file.c
 +++ b/file.c
 @@ -27,6 +27,7 @@
  #include sys/wait.h
  #include libubus.h
  #include libubox/blobmsg.h
 +#include libubox/md5.h
  #include libubox/ustream.h
  
  #include rpcd/plugin.h
 @@ -237,6 +238,39 @@ rpc_file_write(struct ubus_context *ctx, struct 
 ubus_object *obj,
  }
  
  static int
 +rpc_file_md5(struct ubus_context *ctx, struct ubus_object *obj,
 + struct ubus_request_data *req, const char *method,
 + struct blob_attr *msg)
 +{ 
 +int rv, i;
 +char *path;
 +struct stat s;
 +uint8_t md5[16];
 +char *wbuf;
 +
 +if (!rpc_check_path(msg, path, s))
 +return rpc_errno_status();
 +
 +if (!S_ISREG(s.st_mode))
 +return UBUS_STATUS_NOT_SUPPORTED;
 
 should this not be - UBUS_STATUS_INVALID_ARGUMENT

I think not supported in response to md5sum of a non-regular file
(like a chardev or directory) makes sense here - imho.

 
 
 +
 +if ((rv = md5sum(path, md5)) = 0)
 +return rpc_errno_status();
 +
 +blob_buf_init(buf, 0);
 +wbuf = blobmsg_alloc_string_buffer(buf, md5, 33);
 +
 +for (i = 0; i  16; i++)
 +sprintf(wbuf + (i * 2), %02x, (uint8_t) md5[i]);
 +blobmsg_add_string_buffer(buf);
 +ubus_send_reply(ctx, req, buf.head);
 +blob_buf_free(buf);
 +
 +return UBUS_STATUS_OK;
 +}
 +
 +static int
  rpc_file_list(struct ubus_context *ctx, struct ubus_object *obj,
struct ubus_request_data *req, const char *method,
struct blob_attr *msg)
 @@ -611,6 +645,7 @@ rpc_file_api_init(const struct rpc_daemon_ops *o, struct 
 ubus_context *ctx)
  UBUS_METHOD(write,   rpc_file_write, rpc_file_rw_policy),
  UBUS_METHOD(list,rpc_file_list,  rpc_file_r_policy),
  UBUS_METHOD(stat,rpc_file_stat,  rpc_file_r_policy),
 +UBUS_METHOD(md5, rpc_file_md5,   rpc_file_r_policy),
  UBUS_METHOD(exec,rpc_file_exec,  rpc_exec_policy),
  };
  

 ___
 openwrt-devel mailing list
 openwrt-devel@lists.openwrt.org
 https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
 
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH] [rpcd][v2] file: add md5sum support

2015-04-14 Thread John Crispin

hi,

comments inline


On 12/04/2015 03:56, Luka Perkov wrote:
 Signed-off-by: Luka Perkov l...@openwrt.org
 ---
 changes in v2:
 
 * no need to null-terminate string after sprintf()
 
  file.c | 35 +++
  1 file changed, 35 insertions(+)
 
 diff --git a/file.c b/file.c
 index 3831c54..9c1b301 100644
 --- a/file.c
 +++ b/file.c
 @@ -27,6 +27,7 @@
  #include sys/wait.h
  #include libubus.h
  #include libubox/blobmsg.h
 +#include libubox/md5.h
  #include libubox/ustream.h
  
  #include rpcd/plugin.h
 @@ -237,6 +238,39 @@ rpc_file_write(struct ubus_context *ctx, struct 
 ubus_object *obj,
  }
  
  static int
 +rpc_file_md5(struct ubus_context *ctx, struct ubus_object *obj,
 + struct ubus_request_data *req, const char *method,
 + struct blob_attr *msg)
 +{ 
 + int rv, i;
 + char *path;
 + struct stat s;
 + uint8_t md5[16];
 + char *wbuf;
 +
 + if (!rpc_check_path(msg, path, s))
 + return rpc_errno_status();
 +
 + if (!S_ISREG(s.st_mode))
 + return UBUS_STATUS_NOT_SUPPORTED;

should this not be - UBUS_STATUS_INVALID_ARGUMENT


 +
 + if ((rv = md5sum(path, md5)) = 0)
 + return rpc_errno_status();
 +
 + blob_buf_init(buf, 0);
 + wbuf = blobmsg_alloc_string_buffer(buf, md5, 33);
 +
 + for (i = 0; i  16; i++)
 + sprintf(wbuf + (i * 2), %02x, (uint8_t) md5[i]);
 + blobmsg_add_string_buffer(buf);
 + ubus_send_reply(ctx, req, buf.head);
 + blob_buf_free(buf);
 +
 + return UBUS_STATUS_OK;
 +}
 +
 +static int
  rpc_file_list(struct ubus_context *ctx, struct ubus_object *obj,
struct ubus_request_data *req, const char *method,
struct blob_attr *msg)
 @@ -611,6 +645,7 @@ rpc_file_api_init(const struct rpc_daemon_ops *o, struct 
 ubus_context *ctx)
   UBUS_METHOD(write,   rpc_file_write, rpc_file_rw_policy),
   UBUS_METHOD(list,rpc_file_list,  rpc_file_r_policy),
   UBUS_METHOD(stat,rpc_file_stat,  rpc_file_r_policy),
 + UBUS_METHOD(md5, rpc_file_md5,   rpc_file_r_policy),
   UBUS_METHOD(exec,rpc_file_exec,  rpc_exec_policy),
   };
  
 
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH] [rpcd][v2] file: add md5sum support

2015-04-14 Thread John Crispin


[...]

 +   if (!S_ISREG(s.st_mode))
 +   return UBUS_STATUS_NOT_SUPPORTED;

 should this not be - UBUS_STATUS_INVALID_ARGUMENT
 
 I think not supported in response to md5sum of a non-regular file
 (like a chardev or directory) makes sense here - imho.
 

your codebase, so your call :-) i'll merge it as is then if that is fine
with you
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH] [rpcd][v2] file: add md5sum support

2015-04-14 Thread Jo-Philipp Wich
Ok, ACK from me then.

Thanks for taking care of the merge.


~ Jow
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] [PATCH] [rpcd][v2] file: add md5sum support

2015-04-11 Thread Luka Perkov
Signed-off-by: Luka Perkov l...@openwrt.org
---
changes in v2:

* no need to null-terminate string after sprintf()

 file.c | 35 +++
 1 file changed, 35 insertions(+)

diff --git a/file.c b/file.c
index 3831c54..9c1b301 100644
--- a/file.c
+++ b/file.c
@@ -27,6 +27,7 @@
 #include sys/wait.h
 #include libubus.h
 #include libubox/blobmsg.h
+#include libubox/md5.h
 #include libubox/ustream.h
 
 #include rpcd/plugin.h
@@ -237,6 +238,39 @@ rpc_file_write(struct ubus_context *ctx, struct 
ubus_object *obj,
 }
 
 static int
+rpc_file_md5(struct ubus_context *ctx, struct ubus_object *obj,
+ struct ubus_request_data *req, const char *method,
+ struct blob_attr *msg)
+{ 
+   int rv, i;
+   char *path;
+   struct stat s;
+   uint8_t md5[16];
+   char *wbuf;
+
+   if (!rpc_check_path(msg, path, s))
+   return rpc_errno_status();
+
+   if (!S_ISREG(s.st_mode))
+   return UBUS_STATUS_NOT_SUPPORTED;
+
+   if ((rv = md5sum(path, md5)) = 0)
+   return rpc_errno_status();
+
+   blob_buf_init(buf, 0);
+   wbuf = blobmsg_alloc_string_buffer(buf, md5, 33);
+
+   for (i = 0; i  16; i++)
+   sprintf(wbuf + (i * 2), %02x, (uint8_t) md5[i]);
+
+   blobmsg_add_string_buffer(buf);
+   ubus_send_reply(ctx, req, buf.head);
+   blob_buf_free(buf);
+
+   return UBUS_STATUS_OK;
+}
+
+static int
 rpc_file_list(struct ubus_context *ctx, struct ubus_object *obj,
   struct ubus_request_data *req, const char *method,
   struct blob_attr *msg)
@@ -611,6 +645,7 @@ rpc_file_api_init(const struct rpc_daemon_ops *o, struct 
ubus_context *ctx)
UBUS_METHOD(write,   rpc_file_write, rpc_file_rw_policy),
UBUS_METHOD(list,rpc_file_list,  rpc_file_r_policy),
UBUS_METHOD(stat,rpc_file_stat,  rpc_file_r_policy),
+   UBUS_METHOD(md5, rpc_file_md5,   rpc_file_r_policy),
UBUS_METHOD(exec,rpc_file_exec,  rpc_exec_policy),
};
 
-- 
2.3.5
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel