Previously, data_length was handled as integer in some places.
But, data_length of a request/response data type is uint32_t,
so there were some bad behaviors.

This patch fixes to handle data_length as uint32_t.

Signed-off-by: Teruaki Ishizaki <[email protected]>
---
 include/net.h   |    2 +-
 lib/net.c       |    3 ++-
 sheep/request.c |    3 ++-
 3 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/include/net.h b/include/net.h
index b8c6ab8..ee2bacb 100644
--- a/include/net.h
+++ b/include/net.h
@@ -39,7 +39,7 @@ int conn_tx_off(struct connection *conn);
 int conn_tx_on(struct connection *conn);
 int conn_rx_off(struct connection *conn);
 int conn_rx_on(struct connection *conn);
-int do_read(int sockfd, void *buf, int len,
+int do_read(int sockfd, void *buf, uint32_t len,
            bool (*need_retry)(uint32_t), uint32_t, uint32_t);
 int rx(struct connection *conn, enum conn_state next_state);
 int tx(struct connection *conn, enum conn_state next_state);
diff --git a/lib/net.c b/lib/net.c
index 02b328e..5b34a1c 100644
--- a/lib/net.c
+++ b/lib/net.c
@@ -210,7 +210,8 @@ success:
        return fd;
 }
 
-int do_read(int sockfd, void *buf, int len, bool (*need_retry)(uint32_t epoch),
+int do_read(int sockfd, void *buf, uint32_t len,
+           bool (*need_retry)(uint32_t epoch),
            uint32_t epoch, uint32_t max_count)
 {
        int ret, repeat = max_count;
diff --git a/sheep/request.c b/sheep/request.c
index af68fbf..2f86c67 100644
--- a/sheep/request.c
+++ b/sheep/request.c
@@ -683,7 +683,8 @@ worker_fn int exec_local_req_async(struct sd_req *rq, void 
*data,
        return SD_RES_SUCCESS;
 }
 
-static struct request *alloc_request(struct client_info *ci, int data_length)
+static struct request *alloc_request(struct client_info *ci,
+                                    uint32_t data_length)
 {
        struct request *req;
 
-- 
1.7.1

-- 
sheepdog mailing list
[email protected]
https://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to