summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2014-06-20 01:03:08 +0200
committerMichael Adam <obnox@samba.org>2014-09-19 09:15:13 +0200
commit44b3fa6ff86a328ffcd2d98312c81aebaeacdbb1 (patch)
treecf10e64057f2899a76fd4afe8ba5b60d323ed1f2
parent89c6d6712488c8258536756f0e60ae61d09c8565 (diff)
downloadsamba-44b3fa6ff86a328ffcd2d98312c81aebaeacdbb1.tar.gz
samba-44b3fa6ff86a328ffcd2d98312c81aebaeacdbb1.tar.xz
samba-44b3fa6ff86a328ffcd2d98312c81aebaeacdbb1.zip
s3:libsmb: add 'cli_state_client_guid'
This can be used by tests to use the same client guid for multiple connections. Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
-rw-r--r--source3/libsmb/clientgen.c10
-rw-r--r--source3/libsmb/proto.h1
2 files changed, 10 insertions, 1 deletions
diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c
index 8a3881018e..71ec1dcc99 100644
--- a/source3/libsmb/clientgen.c
+++ b/source3/libsmb/clientgen.c
@@ -131,6 +131,8 @@ NTSTATUS cli_init_creds(struct cli_state *cli, const char *username, const char
Set the signing state (used from the command line).
****************************************************************************/
+struct GUID cli_state_client_guid;
+
struct cli_state *cli_state_create(TALLOC_CTX *mem_ctx,
int fd,
const char *remote_name,
@@ -144,7 +146,13 @@ struct cli_state *cli_state_create(TALLOC_CTX *mem_ctx,
bool use_level_II_oplocks = false;
uint32_t smb1_capabilities = 0;
uint32_t smb2_capabilities = 0;
- struct GUID client_guid = GUID_random();
+ struct GUID client_guid;
+
+ if (!GUID_all_zero(&cli_state_client_guid)) {
+ client_guid = cli_state_client_guid;
+ } else {
+ client_guid = GUID_random();
+ }
/* Check the effective uid - make sure we are not setuid */
if (is_setuid_root()) {
diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h
index 63d2df4a37..2efb208398 100644
--- a/source3/libsmb/proto.h
+++ b/source3/libsmb/proto.h
@@ -165,6 +165,7 @@ NTSTATUS cli_set_domain(struct cli_state *cli, const char *domain);
NTSTATUS cli_set_username(struct cli_state *cli, const char *username);
NTSTATUS cli_set_password(struct cli_state *cli, const char *password);
NTSTATUS cli_init_creds(struct cli_state *cli, const char *username, const char *domain, const char *password);
+extern struct GUID cli_state_client_guid;
struct cli_state *cli_state_create(TALLOC_CTX *mem_ctx,
int fd,
const char *remote_name,