[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-286-g2fdbafb

Stefan Metzmacher metze at samba.org
Thu Mar 12 10:04:18 GMT 2009


The branch, master has been updated
       via  2fdbafbf5475e8936fb5bc3e3bafc7ee19a9b705 (commit)
      from  a0a9c5d1709e81a1503c7326147b3d77ab4328c9 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 2fdbafbf5475e8936fb5bc3e3bafc7ee19a9b705
Author: Stefan Metzmacher <metze at samba.org>
Date:   Thu Mar 12 09:02:02 2009 +0100

    Revert "s3:libsmb: add an option to cli_push to let the caller provide the buffers"
    
    This reverts commit 9579a6f193f570e4ce2af80f4aac7c2f25ae5b22.
    
    It's confusing to have a boolean to alter the behavior of cli_push
    and as the new feature isn't used yet I revert it.
    
    We can readd a extra function later.
    
    metze

-----------------------------------------------------------------------

Summary of changes:
 source3/client/client.c       |   10 ++++------
 source3/include/proto.h       |    9 ++-------
 source3/libsmb/clireadwrite.c |   33 ++++++++-------------------------
 source3/torture/torture.c     |    8 +++-----
 4 files changed, 17 insertions(+), 43 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/client/client.c b/source3/client/client.c
index 67a2458..aaa9e35 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -220,9 +220,7 @@ struct push_state {
 	SMB_OFF_T nread;
 };
 
-static size_t push_source(uint8_t *inbuf, size_t n,
-			  const uint8_t **outbuf,
-			  void *priv)
+static size_t push_source(uint8_t *buf, size_t n, void *priv)
 {
 	struct push_state *state = (struct push_state *)priv;
 	int result;
@@ -231,7 +229,7 @@ static size_t push_source(uint8_t *inbuf, size_t n,
 		return 0;
 	}
 
-	result = readfile(inbuf, n, state->f);
+	result = readfile(buf, n, state->f);
 	state->nread += result;
 	return result;
 }
@@ -1683,8 +1681,8 @@ static int do_put(const char *rname, const char *lname, bool reput)
 	state.f = f;
 	state.nread = 0;
 
-	status = cli_push(targetcli, fnum, 0, 0, io_bufsize,
-			  false, push_source, &state);
+	status = cli_push(targetcli, fnum, 0, 0, io_bufsize, push_source,
+			  &state);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_fprintf(stderr, "cli_push returned %s\n", nt_errstr(status));
 	}
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 794a006..a1cafb6 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -2790,18 +2790,13 @@ struct async_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
 				struct cli_state *cli,
 				uint16_t fnum, uint16_t mode,
 				off_t start_offset, size_t window_size,
-				bool caller_buffers,
-				size_t (*source)(uint8_t *inbuf, size_t n,
-						 const uint8_t **outbuf,
+				size_t (*source)(uint8_t *buf, size_t n,
 						 void *priv),
 				void *priv);
 NTSTATUS cli_push_recv(struct async_req *req);
 NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode,
 		  off_t start_offset, size_t window_size,
-		  bool caller_buffers,
-		  size_t (*source)(uint8_t *inbuf, size_t n,
-				   const uint8_t **outbuf,
-				   void *priv),
+		  size_t (*source)(uint8_t *buf, size_t n, void *priv),
 		  void *priv);
 
 /* The following definitions come from libsmb/clisecdesc.c  */
diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c
index 7e7cf0d..f2f447b 100644
--- a/source3/libsmb/clireadwrite.c
+++ b/source3/libsmb/clireadwrite.c
@@ -930,11 +930,8 @@ struct cli_push_state {
 	uint16_t mode;
 	off_t start_offset;
 	size_t window_size;
-	bool caller_buffers;
 
-	size_t (*source)(uint8_t *inbuf, size_t n,
-			 const uint8_t **outbuf,
-			 void *priv);
+	size_t (*source)(uint8_t *buf, size_t n, void *priv);
 	void *priv;
 
 	bool eof;
@@ -966,21 +963,13 @@ static bool cli_push_write_setup(struct async_req *req,
 	substate->req = req;
 	substate->idx = idx;
 	substate->ofs = state->next_offset;
-	if (state->caller_buffers) {
-		substate->buf = NULL;
-	} else {
-		substate->buf = talloc_array(substate, uint8_t,
-					     state->chunk_size);
-		if (!substate->buf) {
-			talloc_free(substate);
-			return false;
-		}
+	substate->buf = talloc_array(substate, uint8_t, state->chunk_size);
+	if (!substate->buf) {
+		talloc_free(substate);
+		return false;
 	}
-
-	/* source function can overwrite substate->buf... */
 	substate->size = state->source(substate->buf,
 				       state->chunk_size,
-				       (const uint8_t **)&substate->buf,
 				       state->priv);
 	if (substate->size == 0) {
 		state->eof = true;
@@ -1013,9 +1002,7 @@ struct async_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
 				struct cli_state *cli,
 				uint16_t fnum, uint16_t mode,
 				off_t start_offset, size_t window_size,
-				bool caller_buffers,
-				size_t (*source)(uint8_t *inbuf, size_t n,
-						 const uint8_t **outbuf,
+				size_t (*source)(uint8_t *buf, size_t n,
 						 void *priv),
 				void *priv)
 {
@@ -1032,7 +1019,6 @@ struct async_req *cli_push_send(TALLOC_CTX *mem_ctx, struct event_context *ev,
 	state->fnum = fnum;
 	state->start_offset = start_offset;
 	state->mode = mode;
-	state->caller_buffers = caller_buffers;
 	state->source = source;
 	state->priv = priv;
 	state->eof = false;
@@ -1122,10 +1108,7 @@ NTSTATUS cli_push_recv(struct async_req *req)
 
 NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode,
 		  off_t start_offset, size_t window_size,
-		  bool caller_buffers,
-		  size_t (*source)(uint8_t *inbuf, size_t n,
-				   const uint8_t **outbuf,
-				   void *priv),
+		  size_t (*source)(uint8_t *buf, size_t n, void *priv),
 		  void *priv)
 {
 	TALLOC_CTX *frame = talloc_stackframe();
@@ -1146,7 +1129,7 @@ NTSTATUS cli_push(struct cli_state *cli, uint16_t fnum, uint16_t mode,
 	}
 
 	req = cli_push_send(frame, ev, cli, fnum, mode, start_offset,
-			    window_size, caller_buffers, source, priv);
+			    window_size, source, priv);
 	if (req == NULL) {
 		goto nomem;
 	}
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index 12a4aec..10e541f 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -5117,9 +5117,7 @@ static bool run_chain1(int dummy)
 	return True;
 }
 
-static size_t null_source(uint8_t *inbuf, size_t n,
-			  const uint8_t **outbuf,
-			  void *priv)
+static size_t null_source(uint8_t *buf, size_t n, void *priv)
 {
 	size_t *to_pull = (size_t *)priv;
 	size_t thistime = *to_pull;
@@ -5129,7 +5127,7 @@ static size_t null_source(uint8_t *inbuf, size_t n,
 		return 0;
 	}
 
-	memset(inbuf, 0, thistime);
+	memset(buf, 0, thistime);
 	*to_pull -= thistime;
 	return thistime;
 }
@@ -5172,7 +5170,7 @@ static bool run_windows_write(int dummy)
 		}
 
 		status = cli_push(cli1, fnum, 0, i * torture_blocksize, torture_blocksize,
-				  false, null_source, &to_pull);
+				  null_source, &to_pull);
 		if (!NT_STATUS_IS_OK(status)) {
 			printf("cli_push returned: %s\n", nt_errstr(status));
 			goto fail;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list