session: restore ACL dumping for session get and session list calls
authorJo-Philipp Wich <jow@openwrt.org>
Thu, 12 Sep 2013 10:13:05 +0000 (12:13 +0200)
committerJo-Philipp Wich <jow@openwrt.org>
Thu, 12 Sep 2013 10:13:05 +0000 (12:13 +0200)
session.c

index 1e7dc1df9396789d464fcc74a255fcfc2487783f..dad7bf1ccede4be3fc4f692175f4e964c49f4a04 100644 (file)
--- a/session.c
+++ b/session.c
@@ -203,7 +203,7 @@ rpc_session_dump_acls(struct rpc_session *ses, struct blob_buf *b)
 }
 
 static void
-rpc_session_to_blob(struct rpc_session *ses)
+rpc_session_to_blob(struct rpc_session *ses, bool acls)
 {
        void *c;
 
@@ -213,6 +213,12 @@ rpc_session_to_blob(struct rpc_session *ses)
        blobmsg_add_u32(&buf, "timeout", ses->timeout);
        blobmsg_add_u32(&buf, "expires", uloop_timeout_remaining(&ses->t) / 1000);
 
+       if (acls) {
+               c = blobmsg_open_table(&buf, "acls");
+               rpc_session_dump_acls(ses, &buf);
+               blobmsg_close_table(&buf, c);
+       }
+
        c = blobmsg_open_table(&buf, "data");
        rpc_session_dump_data(ses, &buf);
        blobmsg_close_table(&buf, c);
@@ -222,7 +228,7 @@ static void
 rpc_session_dump(struct rpc_session *ses, struct ubus_context *ctx,
                  struct ubus_request_data *req)
 {
-       rpc_session_to_blob(ses);
+       rpc_session_to_blob(ses, true);
 
        ubus_send_reply(ctx, req, buf.head);
 }
@@ -1296,7 +1302,7 @@ void rpc_session_freeze(void)
                        continue;
 
                snprintf(path, sizeof(path) - 1, RPC_SESSION_DIRECTORY "/%s", ses->id);
-               rpc_session_to_blob(ses);
+               rpc_session_to_blob(ses, false);
                rpc_blob_to_file(path, buf.head);
        }
 }