[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Wed Aug 1 10:26:02 MDT 2012
The branch, master has been updated
via b93e6ef s3:smbd: add a optional_support helper variable to reply_tcon_and_X()
via 3fb6549 s3:smbd: make use of TCONX_FLAG_DISCONNECT_TID define
via 3682eb8 s3:libsmb: add a optional_support helper variable
via 137d65b s3:libsmb: add a tcon_flags helper variable
via d3aaa1e libcli/smb: move some TCON related defines to smb_constants.h
via 8e1c6d4 s3:rpc_client: rename pipe_auth_data->user_session_key to transport_session_key
via 0ec50e8 s3:libsmb: remove unused cli_state->user_session_key
via 0068a9f s3:utils/net_rpc*: make use of cli_get_session_key()
via 616206a s3:libnet_join: make use of cli_get_session_key() in libnet_join_joindomain_rpc()
via 8b42f52 s3:rpc_client: make use of smbXcli_session_application_key()
via 00cde56 s4:libcli/raw: remove unused smbcli_session->user_session_key
via 7977d90 s4:librpc/dcerpc_smb2: sync smb2_session_key() with smb_session_key()
via 286e249 s4:librpc/dcerpc_smb: make use of smbXcli_session_application_key()
via 2f4f214 libcli/smb: remove unused smb2cli_session_application_key()
via 803fb40 s4:librpc/dcerpc_smb2: make use of smbXcli_session_application_key()
via 5f25567 libcli/smb: add smbXcli_session_application_key()
via ac1452c s4:libcli/smb_composite: make use of smb1cli_session_set_session_key()
via 1a9a910 s4:libcli/smb_composite: always use set_user_session_key() helper
via c9eac1a s3:libsmb: make use of smb1cli_session_set_session_key()
via 7af537e libcli/smb: allow resetting of the smb1 application_key
via 68c1eec libcli/smb: let smb1cli_session_set_id() reset the application_key
via c3cb672 libcli/smb: add smb1cli_session_set_session_key()
via 9b9ef92 s3:ctdbd_conn: use unitX_t types consistently throughout the module
from d4bce35 Add two flags to allow for handling of Extended Signatures (Session Key Protection) on a TCON_AND_X request and response.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit b93e6ef5e70bd90a06ae80b209a10456ca461a62
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 12:01:07 2012 +0200
s3:smbd: add a optional_support helper variable to reply_tcon_and_X()
metze
Autobuild-User(master): Stefan Metzmacher <metze at samba.org>
Autobuild-Date(master): Wed Aug 1 18:25:26 CEST 2012 on sn-devel-104
commit 3fb6549db0b12565413a89ef0662e7e8af3b389a
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 11:48:30 2012 +0200
s3:smbd: make use of TCONX_FLAG_DISCONNECT_TID define
metze
commit 3682eb80ab071ced87bb64def776a2a8722cb2b1
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 11:46:22 2012 +0200
s3:libsmb: add a optional_support helper variable
metze
commit 137d65b39790fec10f908e25633b80d22e54e0b6
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 11:45:36 2012 +0200
s3:libsmb: add a tcon_flags helper variable
metze
commit d3aaa1ebc822d3384f1821302585921d44028649
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 11:33:27 2012 +0200
libcli/smb: move some TCON related defines to smb_constants.h
metze
commit 8e1c6d42327faae5df6e384cf9573bf4dc925038
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 11:00:02 2012 +0200
s3:rpc_client: rename pipe_auth_data->user_session_key to transport_session_key
metze
commit 0ec50e8a2feddb1389f7143c35f7f2c3444cf6b9
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 10:50:30 2012 +0200
s3:libsmb: remove unused cli_state->user_session_key
metze
commit 0068a9fd930331e6f2ee49aa79489c333ae4e722
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 10:48:53 2012 +0200
s3:utils/net_rpc*: make use of cli_get_session_key()
metze
commit 616206a806761bb19bd7b6025d6068a867510bf5
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 10:30:06 2012 +0200
s3:libnet_join: make use of cli_get_session_key() in libnet_join_joindomain_rpc()
metze
commit 8b42f526f47bc8075b5a6f81b2293787ccb066bc
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 10:18:22 2012 +0200
s3:rpc_client: make use of smbXcli_session_application_key()
metze
commit 00cde56bfdf09cf71d2435f02280b44c2bb35183
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 09:41:53 2012 +0200
s4:libcli/raw: remove unused smbcli_session->user_session_key
metze
commit 7977d90f1e88d0c23b4a14ffd15bf8c077c9d701
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 09:10:09 2012 +0200
s4:librpc/dcerpc_smb2: sync smb2_session_key() with smb_session_key()
metze
commit 286e249737a40a575a9f13d8af4ef5e4e273c873
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 09:09:34 2012 +0200
s4:librpc/dcerpc_smb: make use of smbXcli_session_application_key()
metze
commit 2f4f2144f424d45d3077a7363ec733ff17999cd8
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 09:01:01 2012 +0200
libcli/smb: remove unused smb2cli_session_application_key()
metze
commit 803fb404493931d348049266de18ffd59ada3403
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 08:59:57 2012 +0200
s4:librpc/dcerpc_smb2: make use of smbXcli_session_application_key()
metze
commit 5f25567c2efd24a27bbb30f35a593bd3d9c3784f
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 08:59:01 2012 +0200
libcli/smb: add smbXcli_session_application_key()
metze
commit ac1452c4f927af621b33cb1c544b30dcf29c1903
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 08:57:40 2012 +0200
s4:libcli/smb_composite: make use of smb1cli_session_set_session_key()
metze
commit 1a9a910ce3e6b1fd6f756cb075bd2fdba465af9d
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 08:55:49 2012 +0200
s4:libcli/smb_composite: always use set_user_session_key() helper
metze
commit c9eac1af1462aa09dd20cdccda5807edaefb5cb7
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 08:54:51 2012 +0200
s3:libsmb: make use of smb1cli_session_set_session_key()
metze
commit 7af537e66f0e73ee629b3457ee78a11101f4e1c9
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 14:14:39 2012 +0200
libcli/smb: allow resetting of the smb1 application_key
We need this untill we have fixed all callers...
metze
commit 68c1eec11d0cd29821025dbea7c9b55ee31897d0
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 13:25:18 2012 +0200
libcli/smb: let smb1cli_session_set_id() reset the application_key
We have some callers which reuse smbXcli_session,
e.g. cli_state_set_uid()
metze
commit c3cb672d3810cb2fb0076fac3b949df5f2462451
Author: Stefan Metzmacher <metze at samba.org>
Date: Wed Aug 1 08:53:30 2012 +0200
libcli/smb: add smb1cli_session_set_session_key()
metze
commit 9b9ef9270129c162988785fdd7d0308f2df86604
Author: Michael Adam <obnox at samba.org>
Date: Mon Jul 30 09:31:59 2012 -0400
s3:ctdbd_conn: use unitX_t types consistently throughout the module
Signed-off-by: Stefan Metzmacher <metze at samba.org>
-----------------------------------------------------------------------
Summary of changes:
libcli/smb/smbXcli_base.c | 87 +++++++++++++++++++++++------
libcli/smb/smbXcli_base.h | 8 ++-
libcli/smb/smb_constants.h | 13 +++++
source3/include/client.h | 4 --
source3/include/ctdbd_conn.h | 18 +++---
source3/include/smb.h | 9 ---
source3/lib/ctdbd_conn.c | 44 ++++++++--------
source3/libnet/libnet_join.c | 14 ++++-
source3/librpc/rpc/dcerpc.h | 2 +-
source3/libsmb/cliconnect.c | 53 +++++++++++-------
source3/libsmb/clientgen.c | 2 -
source3/rpc_client/cli_pipe.c | 23 ++++++--
source3/smbd/reply.c | 13 +++--
source3/utils/net_rpc.c | 11 ++++-
source3/utils/net_rpc_join.c | 11 ++++-
source3/utils/net_rpc_trust.c | 24 +++++++--
source4/libcli/raw/libcliraw.h | 2 -
source4/libcli/raw/smb.h | 4 --
source4/libcli/smb_composite/connect.c | 1 -
source4/libcli/smb_composite/sesssetup.c | 38 ++++++++------
source4/librpc/rpc/dcerpc_smb.c | 19 +++++--
source4/librpc/rpc/dcerpc_smb2.c | 4 +-
22 files changed, 269 insertions(+), 135 deletions(-)
Changeset truncated at 500 lines:
diff --git a/libcli/smb/smbXcli_base.c b/libcli/smb/smbXcli_base.c
index a363b44..37c738e 100644
--- a/libcli/smb/smbXcli_base.c
+++ b/libcli/smb/smbXcli_base.c
@@ -148,6 +148,7 @@ struct smbXcli_session {
struct {
uint16_t session_id;
+ DATA_BLOB application_key;
} smb1;
struct smb2cli_session *smb2;
@@ -4293,6 +4294,36 @@ struct smbXcli_session *smbXcli_session_create(TALLOC_CTX *mem_ctx,
return session;
}
+NTSTATUS smbXcli_session_application_key(struct smbXcli_session *session,
+ TALLOC_CTX *mem_ctx,
+ DATA_BLOB *key)
+{
+ const DATA_BLOB *application_key;
+
+ *key = data_blob_null;
+
+ if (session->conn == NULL) {
+ return NT_STATUS_NO_USER_SESSION_KEY;
+ }
+
+ if (session->conn->protocol >= PROTOCOL_SMB2_02) {
+ application_key = &session->smb2->application_key;
+ } else {
+ application_key = &session->smb1.application_key;
+ }
+
+ if (application_key->length == 0) {
+ return NT_STATUS_NO_USER_SESSION_KEY;
+ }
+
+ *key = data_blob_dup_talloc(mem_ctx, *application_key);
+ if (key->data == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ return NT_STATUS_OK;
+}
+
uint16_t smb1cli_session_current_id(struct smbXcli_session *session)
{
return session->smb1.session_id;
@@ -4304,6 +4335,44 @@ void smb1cli_session_set_id(struct smbXcli_session *session,
session->smb1.session_id = session_id;
}
+NTSTATUS smb1cli_session_set_session_key(struct smbXcli_session *session,
+ const DATA_BLOB _session_key)
+{
+ struct smbXcli_conn *conn = session->conn;
+ uint8_t session_key[16];
+
+ if (conn == NULL) {
+ return NT_STATUS_INVALID_PARAMETER_MIX;
+ }
+
+ if (session->smb1.application_key.length != 0) {
+ /*
+ * TODO: do not allow this...
+ *
+ * return NT_STATUS_INVALID_PARAMETER_MIX;
+ */
+ data_blob_clear_free(&session->smb1.application_key);
+ }
+
+ if (_session_key.length == 0) {
+ return NT_STATUS_OK;
+ }
+
+ ZERO_STRUCT(session_key);
+ memcpy(session_key, _session_key.data,
+ MIN(_session_key.length, sizeof(session_key)));
+
+ session->smb1.application_key = data_blob_talloc(session,
+ session_key,
+ sizeof(session_key));
+ ZERO_STRUCT(session_key);
+ if (session->smb1.application_key.data == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ return NT_STATUS_OK;
+}
+
uint8_t smb2cli_session_security_mode(struct smbXcli_session *session)
{
struct smbXcli_conn *conn = session->conn;
@@ -4331,24 +4400,6 @@ uint16_t smb2cli_session_get_flags(struct smbXcli_session *session)
return session->smb2->session_flags;
}
-NTSTATUS smb2cli_session_application_key(struct smbXcli_session *session,
- TALLOC_CTX *mem_ctx,
- DATA_BLOB *key)
-{
- *key = data_blob_null;
-
- if (session->smb2->application_key.length == 0) {
- return NT_STATUS_NO_USER_SESSION_KEY;
- }
-
- *key = data_blob_dup_talloc(mem_ctx, session->smb2->application_key);
- if (key->data == NULL) {
- return NT_STATUS_NO_MEMORY;
- }
-
- return NT_STATUS_OK;
-}
-
void smb2cli_session_set_id_and_flags(struct smbXcli_session *session,
uint64_t session_id,
uint16_t session_flags)
diff --git a/libcli/smb/smbXcli_base.h b/libcli/smb/smbXcli_base.h
index c55bf53..3f78cd5 100644
--- a/libcli/smb/smbXcli_base.h
+++ b/libcli/smb/smbXcli_base.h
@@ -248,15 +248,17 @@ NTSTATUS smbXcli_negprot(struct smbXcli_conn *conn,
struct smbXcli_session *smbXcli_session_create(TALLOC_CTX *mem_ctx,
struct smbXcli_conn *conn);
+NTSTATUS smbXcli_session_application_key(struct smbXcli_session *session,
+ TALLOC_CTX *mem_ctx,
+ DATA_BLOB *key);
uint16_t smb1cli_session_current_id(struct smbXcli_session* session);
void smb1cli_session_set_id(struct smbXcli_session* session,
uint16_t session_id);
+NTSTATUS smb1cli_session_set_session_key(struct smbXcli_session *session,
+ const DATA_BLOB _session_key);
uint8_t smb2cli_session_security_mode(struct smbXcli_session *session);
uint64_t smb2cli_session_current_id(struct smbXcli_session *session);
uint16_t smb2cli_session_get_flags(struct smbXcli_session *session);
-NTSTATUS smb2cli_session_application_key(struct smbXcli_session *session,
- TALLOC_CTX *mem_ctx,
- DATA_BLOB *key);
void smb2cli_session_set_id_and_flags(struct smbXcli_session *session,
uint64_t session_id,
uint16_t session_flags);
diff --git a/libcli/smb/smb_constants.h b/libcli/smb/smb_constants.h
index aaf87c1..8cb3b6e 100644
--- a/libcli/smb/smb_constants.h
+++ b/libcli/smb/smb_constants.h
@@ -262,6 +262,19 @@ enum csc_policy {
CSC_POLICY_DISABLE=3
};
+/* TCONX Flag (smb_vwv2). [MS-SMB] 2.2.4.7.1 */
+#define TCONX_FLAG_DISCONNECT_TID 0x0001
+#define TCONX_FLAG_EXTENDED_SIGNATURES 0x0004
+#define TCONX_FLAG_EXTENDED_RESPONSE 0x0008
+
+/* this is used on a TConX. [MS-SMB] 2.2.4.7.2 */
+#define SMB_SUPPORT_SEARCH_BITS 0x0001
+#define SMB_SHARE_IN_DFS 0x0002
+#define SMB_CSC_MASK 0x000C
+#define SMB_CSC_POLICY_SHIFT 2
+#define SMB_UNIQUE_FILE_NAME 0x0010
+#define SMB_EXTENDED_SIGNATURES 0x0020
+
/* NT Flags2 bits - cifs6.txt section 3.1.2 */
#define FLAGS2_LONG_PATH_COMPONENTS 0x0001
#define FLAGS2_EXTENDED_ATTRIBUTES 0x0002
diff --git a/source3/include/client.h b/source3/include/client.h
index 748f78e..f6aacea 100644
--- a/source3/include/client.h
+++ b/source3/include/client.h
@@ -77,10 +77,6 @@ struct cli_state {
bool dfsroot;
bool backup_intent;
- /* the session key for this CLI, outside
- any per-pipe authenticaion */
- DATA_BLOB user_session_key;
-
/* The list of pipes currently open on this connection. */
struct rpc_pipe_client *pipe_list;
diff --git a/source3/include/ctdbd_conn.h b/source3/include/ctdbd_conn.h
index b1a58cb..5778a92 100644
--- a/source3/include/ctdbd_conn.h
+++ b/source3/include/ctdbd_conn.h
@@ -29,7 +29,7 @@ struct messaging_rec;
NTSTATUS ctdbd_messaging_connection(TALLOC_CTX *mem_ctx,
struct ctdbd_connection **pconn);
-uint32 ctdbd_vnn(const struct ctdbd_connection *conn);
+uint32_t ctdbd_vnn(const struct ctdbd_connection *conn);
NTSTATUS ctdbd_register_msg_ctx(struct ctdbd_connection *conn,
struct messaging_context *msg_ctx);
@@ -38,13 +38,13 @@ struct messaging_context *ctdb_conn_msg_ctx(struct ctdbd_connection *conn);
int ctdbd_conn_get_fd(struct ctdbd_connection *conn);
NTSTATUS ctdbd_messaging_send(struct ctdbd_connection *conn,
- uint32 dst_vnn, uint64 dst_srvid,
+ uint32_t dst_vnn, uint64_t dst_srvid,
struct messaging_rec *msg);
NTSTATUS ctdbd_messaging_send_blob(struct ctdbd_connection *conn,
- uint32 dst_vnn, uint64 dst_srvid,
+ uint32_t dst_vnn, uint64_t dst_srvid,
const uint8_t *buf, size_t buflen);
-bool ctdbd_process_exists(struct ctdbd_connection *conn, uint32 vnn,
+bool ctdbd_process_exists(struct ctdbd_connection *conn, uint32_t vnn,
pid_t pid);
bool ctdb_processes_exist(struct ctdbd_connection *conn,
const struct server_id *pids, int num_pids,
@@ -59,14 +59,14 @@ char *ctdbd_dbpath(struct ctdbd_connection *conn,
NTSTATUS ctdbd_db_attach(struct ctdbd_connection *conn, const char *name,
uint32_t *db_id, int tdb_flags);
-NTSTATUS ctdbd_migrate(struct ctdbd_connection *conn, uint32 db_id,
+NTSTATUS ctdbd_migrate(struct ctdbd_connection *conn, uint32_t db_id,
TDB_DATA key);
-NTSTATUS ctdbd_fetch(struct ctdbd_connection *conn, uint32 db_id,
+NTSTATUS ctdbd_fetch(struct ctdbd_connection *conn, uint32_t db_id,
TDB_DATA key, TALLOC_CTX *mem_ctx, TDB_DATA *data,
bool local_copy);
-NTSTATUS ctdbd_traverse(uint32 db_id,
+NTSTATUS ctdbd_traverse(uint32_t db_id,
void (*fn)(TDB_DATA key, TDB_DATA data,
void *private_data),
void *private_data);
@@ -80,8 +80,8 @@ NTSTATUS ctdbd_register_ips(struct ctdbd_connection *conn,
NTSTATUS ctdbd_register_reconfigure(struct ctdbd_connection *conn);
-NTSTATUS ctdbd_control_local(struct ctdbd_connection *conn, uint32 opcode,
- uint64_t srvid, uint32_t flags, TDB_DATA data,
+NTSTATUS ctdbd_control_local(struct ctdbd_connection *conn, uint32_t opcode,
+ uint64_t srvid, uint32_t flags, TDB_DATA data,
TALLOC_CTX *mem_ctx, TDB_DATA *outdata,
int *cstatus);
NTSTATUS ctdb_watch_us(struct ctdbd_connection *conn);
diff --git a/source3/include/smb.h b/source3/include/smb.h
index 310cbbb..c6e6fb3 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -399,10 +399,6 @@ Offset Data length.
#define smb_ntcreate_ImpersonationLevel (smb_vwv0 + 43)
#define smb_ntcreate_SecurityFlags (smb_vwv0 + 47)
-/* this is used on a TConX. I'm not sure the name is very helpful though */
-#define SMB_SUPPORT_SEARCH_BITS 0x0001
-#define SMB_SHARE_IN_DFS 0x0002
-
/* Named pipe write mode flags. Used in writeX calls. */
#define PIPE_RAW_MODE 0x4
#define PIPE_START_MESSAGE 0x8
@@ -621,11 +617,6 @@ char *strdup(char *s);
#define BROWSER_ELECTION_VERSION 0x010f
#define BROWSER_CONSTANT 0xaa55
-/* TCONX Flag (smb_vwv2). */
-#define TCONX_FLAG_EXTENDED_RESPONSE 0x8
-#define TCONX_FLAG_EXTENDED_SIGNATURES 0x4
-#define SMB_EXTENDED_SIGNATURES 0x20
-
/* File Status Flags. See:
http://msdn.microsoft.com/en-us/library/cc246334(PROT.13).aspx
diff --git a/source3/lib/ctdbd_conn.c b/source3/lib/ctdbd_conn.c
index 9bd5178..4bad3f0 100644
--- a/source3/lib/ctdbd_conn.c
+++ b/source3/lib/ctdbd_conn.c
@@ -53,9 +53,9 @@
struct ctdbd_connection {
struct messaging_context *msg_ctx;
- uint32 reqid;
- uint32 our_vnn;
- uint64 rand_srvid;
+ uint32_t reqid;
+ uint32_t our_vnn;
+ uint64_t rand_srvid;
struct ctdb_packet_context *pkt;
struct fd_event *fde;
@@ -73,8 +73,8 @@ static uint32_t ctdbd_next_reqid(struct ctdbd_connection *conn)
}
static NTSTATUS ctdbd_control(struct ctdbd_connection *conn,
- uint32_t vnn, uint32 opcode,
- uint64_t srvid, uint32_t flags, TDB_DATA data,
+ uint32_t vnn, uint32_t opcode,
+ uint64_t srvid, uint32_t flags, TDB_DATA data,
TALLOC_CTX *mem_ctx, TDB_DATA *outdata,
int *cstatus);
@@ -120,7 +120,7 @@ NTSTATUS register_with_ctdbd(struct ctdbd_connection *conn, uint64_t srvid)
/*
* get our vnn from the cluster
*/
-static NTSTATUS get_cluster_vnn(struct ctdbd_connection *conn, uint32 *vnn)
+static NTSTATUS get_cluster_vnn(struct ctdbd_connection *conn, uint32_t *vnn)
{
int32_t cstatus=-1;
NTSTATUS status;
@@ -187,7 +187,7 @@ fail:
return ret;
}
-uint32 ctdbd_vnn(const struct ctdbd_connection *conn)
+uint32_t ctdbd_vnn(const struct ctdbd_connection *conn)
{
return conn->our_vnn;
}
@@ -240,13 +240,13 @@ static bool ctdb_req_complete(const uint8_t *buf, size_t available,
size_t *length,
void *private_data)
{
- uint32 msglen;
+ uint32_t msglen;
if (available < sizeof(msglen)) {
return False;
}
- msglen = *((const uint32 *)buf);
+ msglen = *((const uint32_t *)buf);
DEBUG(11, ("msglen = %d\n", msglen));
@@ -371,7 +371,7 @@ static NTSTATUS ctdb_packet_fd_read_sync(struct ctdb_packet_context *ctx)
* messages that might come in between.
*/
-static NTSTATUS ctdb_read_req(struct ctdbd_connection *conn, uint32 reqid,
+static NTSTATUS ctdb_read_req(struct ctdbd_connection *conn, uint32_t reqid,
TALLOC_CTX *mem_ctx, void *result)
{
struct ctdb_req_header *hdr;
@@ -740,7 +740,7 @@ NTSTATUS ctdbd_register_msg_ctx(struct ctdbd_connection *conn,
*/
NTSTATUS ctdbd_messaging_send(struct ctdbd_connection *conn,
- uint32 dst_vnn, uint64 dst_srvid,
+ uint32_t dst_vnn, uint64_t dst_srvid,
struct messaging_rec *msg)
{
DATA_BLOB blob;
@@ -764,7 +764,7 @@ NTSTATUS ctdbd_messaging_send(struct ctdbd_connection *conn,
}
NTSTATUS ctdbd_messaging_send_blob(struct ctdbd_connection *conn,
- uint32 dst_vnn, uint64 dst_srvid,
+ uint32_t dst_vnn, uint64_t dst_srvid,
const uint8_t *buf, size_t buflen)
{
struct ctdb_req_message r;
@@ -806,9 +806,9 @@ NTSTATUS ctdbd_messaging_send_blob(struct ctdbd_connection *conn,
* send/recv a generic ctdb control message
*/
static NTSTATUS ctdbd_control(struct ctdbd_connection *conn,
- uint32_t vnn, uint32 opcode,
- uint64_t srvid, uint32_t flags,
- TDB_DATA data,
+ uint32_t vnn, uint32_t opcode,
+ uint64_t srvid, uint32_t flags,
+ TDB_DATA data,
TALLOC_CTX *mem_ctx, TDB_DATA *outdata,
int *cstatus)
{
@@ -904,7 +904,7 @@ static NTSTATUS ctdbd_control(struct ctdbd_connection *conn,
/*
* see if a remote process exists
*/
-bool ctdbd_process_exists(struct ctdbd_connection *conn, uint32 vnn, pid_t pid)
+bool ctdbd_process_exists(struct ctdbd_connection *conn, uint32_t vnn, pid_t pid)
{
struct server_id id;
bool result;
@@ -1328,7 +1328,7 @@ NTSTATUS ctdbd_db_attach(struct ctdbd_connection *conn,
/*
* force the migration of a record to this node
*/
-NTSTATUS ctdbd_migrate(struct ctdbd_connection *conn, uint32 db_id,
+NTSTATUS ctdbd_migrate(struct ctdbd_connection *conn, uint32_t db_id,
TDB_DATA key)
{
struct ctdb_req_call req;
@@ -1390,7 +1390,7 @@ NTSTATUS ctdbd_migrate(struct ctdbd_connection *conn, uint32 db_id,
/*
* remotely fetch a record (read-only)
*/
-NTSTATUS ctdbd_fetch(struct ctdbd_connection *conn, uint32 db_id,
+NTSTATUS ctdbd_fetch(struct ctdbd_connection *conn, uint32_t db_id,
TDB_DATA key, TALLOC_CTX *mem_ctx, TDB_DATA *data,
bool local_copy)
{
@@ -1536,7 +1536,7 @@ static NTSTATUS ctdb_traverse_handler(uint8_t *buf, size_t length,
everything in-line.
*/
-NTSTATUS ctdbd_traverse(uint32 db_id,
+NTSTATUS ctdbd_traverse(uint32_t db_id,
void (*fn)(TDB_DATA key, TDB_DATA data,
void *private_data),
void *private_data)
@@ -1745,8 +1745,8 @@ NTSTATUS ctdbd_register_reconfigure(struct ctdbd_connection *conn)
/*
call a control on the local node
*/
-NTSTATUS ctdbd_control_local(struct ctdbd_connection *conn, uint32 opcode,
- uint64_t srvid, uint32_t flags, TDB_DATA data,
+NTSTATUS ctdbd_control_local(struct ctdbd_connection *conn, uint32_t opcode,
+ uint64_t srvid, uint32_t flags, TDB_DATA data,
TALLOC_CTX *mem_ctx, TDB_DATA *outdata,
int *cstatus)
{
@@ -1800,7 +1800,7 @@ NTSTATUS ctdb_unwatch(struct ctdbd_connection *conn)
#else
NTSTATUS ctdbd_messaging_send_blob(struct ctdbd_connection *conn,
- uint32 dst_vnn, uint64 dst_srvid,
+ uint32_t dst_vnn, uint64_t dst_srvid,
const uint8_t *buf, size_t buflen)
{
return NT_STATUS_NOT_IMPLEMENTED;
diff --git a/source3/libnet/libnet_join.c b/source3/libnet/libnet_join.c
index c9b2282..399c13a 100644
--- a/source3/libnet/libnet_join.c
+++ b/source3/libnet/libnet_join.c
@@ -853,6 +853,7 @@ static NTSTATUS libnet_join_joindomain_rpc(TALLOC_CTX *mem_ctx,
union samr_UserInfo user_info;
struct dcerpc_binding_handle *b = NULL;
+ DATA_BLOB session_key = data_blob_null;
struct samr_CryptPassword crypt_pwd;
struct samr_CryptPasswordEx crypt_pwd_ex;
@@ -888,6 +889,13 @@ static NTSTATUS libnet_join_joindomain_rpc(TALLOC_CTX *mem_ctx,
b = pipe_hnd->binding_handle;
+ status = cli_get_session_key(mem_ctx, pipe_hnd, &session_key);
+ if (!NT_STATUS_IS_OK(status)) {
+ DEBUG(0,("Error getting session_key of SAM pipe. Error was %s\n",
+ nt_errstr(status)));
+ goto done;
+ }
+
status = dcerpc_samr_Connect2(b, mem_ctx,
pipe_hnd->desthost,
SAMR_ACCESS_ENUM_DOMAINS
@@ -1064,7 +1072,7 @@ static NTSTATUS libnet_join_joindomain_rpc(TALLOC_CTX *mem_ctx,
/* Set password on machine account - first try level 26 */
init_samr_CryptPasswordEx(r->in.machine_password,
- &cli->user_session_key,
+ &session_key,
&crypt_pwd_ex);
user_info.info26.password = crypt_pwd_ex;
@@ -1081,7 +1089,7 @@ static NTSTATUS libnet_join_joindomain_rpc(TALLOC_CTX *mem_ctx,
/* retry with level 24 */
init_samr_CryptPassword(r->in.machine_password,
- &cli->user_session_key,
+ &session_key,
&crypt_pwd);
user_info.info24.password = crypt_pwd;
@@ -1125,6 +1133,8 @@ static NTSTATUS libnet_join_joindomain_rpc(TALLOC_CTX *mem_ctx,
return status;
}
+ data_blob_clear_free(&session_key);
+
if (is_valid_policy_hnd(&sam_pol)) {
dcerpc_samr_Close(b, mem_ctx, &sam_pol, &result);
}
diff --git a/source3/librpc/rpc/dcerpc.h b/source3/librpc/rpc/dcerpc.h
index a91b06e..b3ae3b4 100644
--- a/source3/librpc/rpc/dcerpc.h
+++ b/source3/librpc/rpc/dcerpc.h
@@ -45,7 +45,7 @@ struct pipe_auth_data {
/* Only the client code uses these 3 for now */
char *domain;
char *user_name;
- DATA_BLOB user_session_key;
+ DATA_BLOB transport_session_key;
};
/* The following definitions come from librpc/rpc/dcerpc_helpers.c */
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index 17b5af6..9850511 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -72,18 +72,6 @@ static NTSTATUS smb_bytes_talloc_string(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list