s3: Add sync read_smb
authorVolker Lendecke <vl@samba.org>
Thu, 19 May 2011 06:36:54 +0000 (08:36 +0200)
committerVolker Lendecke <vl@samba.org>
Thu, 19 May 2011 11:46:47 +0000 (13:46 +0200)
source3/libsmb/read_smb.c
source3/libsmb/read_smb.h

index 5397fdb5ea6cd8996ffa36ed3b67464249ae7509..f530633c9f83d04d8c61806ee30d3387b2741dcb 100644 (file)
@@ -108,3 +108,27 @@ ssize_t read_smb_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
        *pbuf = talloc_move(mem_ctx, &state->buf);
        return talloc_get_size(*pbuf);
 }
+
+ssize_t read_smb(int fd, TALLOC_CTX *mem_ctx, uint8_t **pbuf, int *perrno)
+{
+       TALLOC_CTX *frame = talloc_stackframe();
+       struct event_context *ev;
+       struct tevent_req *req;
+       ssize_t ret = -1;
+
+       ev = event_context_init(frame);
+       if (ev == NULL) {
+               goto fail;
+       }
+       req = read_smb_send(frame, ev, fd);
+       if (req == NULL) {
+               goto fail;
+       }
+       if (!tevent_req_poll(req, ev)) {
+               goto fail;
+       }
+       ret = read_smb_recv(req, mem_ctx, pbuf, perrno);
+ fail:
+       TALLOC_FREE(frame);
+       return ret;
+}
index ae4dfdd63aa01e92c9c216c04fc8ada4da10f5d8..b0846c1ec3cfbc118b42a1f6211cc624c6239cfc 100644 (file)
@@ -29,5 +29,6 @@ struct tevent_req *read_smb_send(TALLOC_CTX *mem_ctx,
 
 ssize_t read_smb_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
                      uint8_t **pbuf, int *perrno);
+ssize_t read_smb(int fd, TALLOC_CTX *mem_ctx, uint8_t **pbuf, int *perrno);
 
 #endif