diff options
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/rpc-lib/src/rpcsvc.h | 3 | ||||
-rw-r--r-- | rpc/rpc-transport/socket/src/socket.c | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/rpc/rpc-lib/src/rpcsvc.h b/rpc/rpc-lib/src/rpcsvc.h index 95f2c4e8461..847ec1b336e 100644 --- a/rpc/rpc-lib/src/rpcsvc.h +++ b/rpc/rpc-lib/src/rpcsvc.h @@ -278,7 +278,8 @@ struct rpcsvc_request { typedef int (*rpcsvc_actor) (rpcsvc_request_t *req); typedef int (*rpcsvc_vector_actor) (rpcsvc_request_t *req, struct iovec *vec, int count, struct iobref *iobref); -typedef int (*rpcsvc_vector_sizer) (int state, ssize_t *readsize, char *addr); +typedef int (*rpcsvc_vector_sizer) (int state, ssize_t *readsize, + char *base_addr, char *curr_addr); /* Every protocol actor will also need to specify the function the RPC layer * will use to serialize or encode the message into XDR format just before diff --git a/rpc/rpc-transport/socket/src/socket.c b/rpc/rpc-transport/socket/src/socket.c index 5e65755d813..2476b13f7ee 100644 --- a/rpc/rpc-transport/socket/src/socket.c +++ b/rpc/rpc-transport/socket/src/socket.c @@ -875,7 +875,8 @@ sp_state_read_verfbytes: proghdr_buf = priv->incoming.frag.fragcurrent; priv->incoming.frag.call_body.request.vector_sizer_state = vector_sizer (priv->incoming.frag.call_body.request.vector_sizer_state, - &readsize, proghdr_buf); + &readsize, proghdr_buf, + priv->incoming.frag.fragcurrent); __socket_proto_init_pending (priv, readsize); priv->incoming.frag.call_body.request.vector_state = SP_STATE_READING_PROGHDR; @@ -887,7 +888,8 @@ sp_state_read_verfbytes: sp_state_reading_proghdr: priv->incoming.frag.call_body.request.vector_sizer_state = vector_sizer (priv->incoming.frag.call_body.request.vector_sizer_state, - &readsize, proghdr_buf); + &readsize, proghdr_buf, + priv->incoming.frag.fragcurrent); if (readsize == 0) { priv->incoming.frag.call_body.request.vector_state = SP_STATE_READ_PROGHDR; |