[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Fri Jun 14 14:28:03 MDT 2013
The branch, master has been updated
via 9f25ad4 librpc: Shorten dcerpc_binding_handle_call a bit
via 7982d2a librpc: Use tevent_req_poll_ntstatus
via 20bede7 libsmbclient: Fix typos
via fffb701 tsocket: Add some const
via cf86f3e gencache: Simplify gencache_init a bit
from c71d6ec genrand: Slightly simplify do_reseed
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 9f25ad44a93da09b3a7c14a4a1a0e78c5a1b529c
Author: Volker Lendecke <vl at samba.org>
Date: Thu Jun 6 11:37:59 2013 +0200
librpc: Shorten dcerpc_binding_handle_call a bit
... saves 200 bytes on 64 bit Linux with -O3
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
Autobuild-Date(master): Fri Jun 14 22:27:43 CEST 2013 on sn-devel-104
commit 7982d2aff89c7ff8a2371163bad5f9f88be6af46
Author: Volker Lendecke <vl at samba.org>
Date: Thu Jun 6 11:31:37 2013 +0200
librpc: Use tevent_req_poll_ntstatus
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 20bede7baa3576aa0f97ceb2533db6e33d587b69
Author: Volker Lendecke <vl at samba.org>
Date: Thu May 16 10:26:09 2013 +0200
libsmbclient: Fix typos
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit fffb70168d8031dc1999fab963263ac7d3a2442a
Author: Volker Lendecke <vl at samba.org>
Date: Tue Jun 11 19:36:09 2013 +0200
tsocket: Add some const
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit cf86f3e81b4e228d5f85cac283c51ca7d5e0cd16
Author: Volker Lendecke <vl at samba.org>
Date: Tue Jun 11 21:03:22 2013 +0200
gencache: Simplify gencache_init a bit
Use the implicit cleanup facility CLEAR_IF_FIRST provides
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
-----------------------------------------------------------------------
Summary of changes:
lib/tsocket/tsocket.h | 4 ++--
lib/tsocket/tsocket_bsd.c | 2 +-
librpc/rpc/binding_handle.c | 22 +++++++---------------
source3/include/libsmbclient.h | 8 ++++----
source3/lib/gencache.c | 29 ++++++++++++++++-------------
5 files changed, 30 insertions(+), 35 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/tsocket/tsocket.h b/lib/tsocket/tsocket.h
index 98f864e..6b0eef6 100644
--- a/lib/tsocket/tsocket.h
+++ b/lib/tsocket/tsocket.h
@@ -897,12 +897,12 @@ struct sockaddr;
* @return 0 on success, -1 on error with errno set.
*/
int tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
- struct sockaddr *sa,
+ const struct sockaddr *sa,
size_t sa_socklen,
struct tsocket_address **addr);
#else
int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
- struct sockaddr *sa,
+ const struct sockaddr *sa,
size_t sa_socklen,
struct tsocket_address **_addr,
const char *location);
diff --git a/lib/tsocket/tsocket_bsd.c b/lib/tsocket/tsocket_bsd.c
index 89e5f4c..4417f8e 100644
--- a/lib/tsocket/tsocket_bsd.c
+++ b/lib/tsocket/tsocket_bsd.c
@@ -209,7 +209,7 @@ struct tsocket_address_bsd {
};
int _tsocket_address_bsd_from_sockaddr(TALLOC_CTX *mem_ctx,
- struct sockaddr *sa,
+ const struct sockaddr *sa,
size_t sa_socklen,
struct tsocket_address **_addr,
const char *location)
diff --git a/librpc/rpc/binding_handle.c b/librpc/rpc/binding_handle.c
index 89ada1d..9354bbd 100644
--- a/librpc/rpc/binding_handle.c
+++ b/librpc/rpc/binding_handle.c
@@ -515,7 +515,7 @@ NTSTATUS dcerpc_binding_handle_call(struct dcerpc_binding_handle *h,
TALLOC_CTX *frame = talloc_stackframe();
struct tevent_context *ev;
struct tevent_req *subreq;
- NTSTATUS status;
+ NTSTATUS status = NT_STATUS_NO_MEMORY;
/*
* TODO: allow only one sync call
@@ -527,30 +527,22 @@ NTSTATUS dcerpc_binding_handle_call(struct dcerpc_binding_handle *h,
ev = samba_tevent_context_init(frame);
}
if (ev == NULL) {
- talloc_free(frame);
- return NT_STATUS_NO_MEMORY;
+ goto fail;
}
subreq = dcerpc_binding_handle_call_send(frame, ev,
h, object, table,
opnum, r_mem, r_ptr);
if (subreq == NULL) {
- talloc_free(frame);
- return NT_STATUS_NO_MEMORY;
+ goto fail;
}
- if (!tevent_req_poll(subreq, ev)) {
- status = map_nt_error_from_unix_common(errno);
- talloc_free(frame);
- return status;
+ if (!tevent_req_poll_ntstatus(subreq, ev, &status)) {
+ goto fail;
}
status = dcerpc_binding_handle_call_recv(subreq);
- if (!NT_STATUS_IS_OK(status)) {
- talloc_free(frame);
- return status;
- }
-
+fail:
TALLOC_FREE(frame);
- return NT_STATUS_OK;
+ return status;
}
diff --git a/source3/include/libsmbclient.h b/source3/include/libsmbclient.h
index 5846e9b..137aebe 100644
--- a/source3/include/libsmbclient.h
+++ b/source3/include/libsmbclient.h
@@ -276,9 +276,9 @@ typedef struct _SMBCCTX SMBCCTX;
/**@ingroup callback
* Authentication callback function type (traditional method)
- *
+ *
* Type for the the authentication function called by the library to
- * obtain authentication credentals
+ * obtain authentication credentials
*
* For kerberos support the function should just be called without
* prompting the user for credentials. Which means a simple 'return'
@@ -315,9 +315,9 @@ typedef void (*smbc_get_auth_data_fn)(const char *srv,
char *pw, int pwlen);
/**@ingroup callback
* Authentication callback function type (method that includes context)
- *
+ *
* Type for the the authentication function called by the library to
- * obtain authentication credentals
+ * obtain authentication credentials
*
* For kerberos support the function should just be called without
* prompting the user for credentials. Which means a simple 'return'
diff --git a/source3/lib/gencache.c b/source3/lib/gencache.c
index 8ace4d9..08adf21 100644
--- a/source3/lib/gencache.c
+++ b/source3/lib/gencache.c
@@ -58,7 +58,6 @@ static bool gencache_init(void)
{
char* cache_fname = NULL;
int open_flags = O_RDWR|O_CREAT;
- bool first_try = true;
/* skip file open if it's already opened */
if (cache) return True;
@@ -67,24 +66,28 @@ static bool gencache_init(void)
DEBUG(5, ("Opening cache file at %s\n", cache_fname));
-again:
cache = tdb_open_log(cache_fname, 0, TDB_DEFAULT|TDB_INCOMPATIBLE_HASH, open_flags, 0644);
if (cache) {
int ret;
ret = tdb_check(cache, NULL, NULL);
if (ret != 0) {
tdb_close(cache);
- cache = NULL;
- if (!first_try) {
- DEBUG(0, ("gencache_init: tdb_check(%s) failed\n",
- cache_fname));
- return false;
- }
- first_try = false;
- DEBUG(0, ("gencache_init: tdb_check(%s) failed - retry after truncate\n",
- cache_fname));
- truncate(cache_fname, 0);
- goto again;
+
+ /*
+ * Retry with CLEAR_IF_FIRST.
+ *
+ * Warning: Converting this to dbwrap won't work
+ * directly. gencache.c does transactions on this tdb,
+ * and dbwrap forbids this for CLEAR_IF_FIRST
+ * databases. tdb does allow transactions on
+ * CLEAR_IF_FIRST databases, so lets use it here to
+ * clean up a broken database.
+ */
+ cache = tdb_open_log(cache_fname, 0,
+ TDB_DEFAULT|
+ TDB_INCOMPATIBLE_HASH|
+ TDB_CLEAR_IF_FIRST,
+ open_flags, 0644);
}
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list