From: Stefan Metzmacher Date: Wed, 5 Aug 2026 21:16:18 +0000 (+0200) Subject: s3:smbXsrv.idl: change to SMBXSRV_VERSION_1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac8ff61987cb3f8172eb15c64610ede008558feb;p=thirdparty%2Fsamba.git s3:smbXsrv.idl: change to SMBXSRV_VERSION_1 Now that we suppose to support cluster upgrades need to use a stable format. Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme --- diff --git a/source3/include/session.h b/source3/include/session.h index 903208e9b0b..d009e7ceb99 100644 --- a/source3/include/session.h +++ b/source3/include/session.h @@ -44,6 +44,6 @@ struct sessionid { uint16_t cipher; uint16_t signing; uint8_t signing_flags; - const struct smbXsrv_session_global0 *global; + const struct smbXsrv_session_global *global; }; diff --git a/source3/lib/sessionid_tdb.c b/source3/lib/sessionid_tdb.c index 6af2ad9b9e9..ae8f05f701b 100644 --- a/source3/lib/sessionid_tdb.c +++ b/source3/lib/sessionid_tdb.c @@ -33,7 +33,7 @@ struct sessionid_traverse_read_state { void *private_data; }; -static int sessionid_traverse_read_fn(struct smbXsrv_session_global0 *global, +static int sessionid_traverse_read_fn(struct smbXsrv_session_global *global, void *private_data) { struct sessionid_traverse_read_state *state = diff --git a/source3/librpc/idl/smbXsrv.idl b/source3/librpc/idl/smbXsrv.idl index d798af65936..d9a23034a02 100644 --- a/source3/librpc/idl/smbXsrv.idl +++ b/source3/librpc/idl/smbXsrv.idl @@ -42,29 +42,29 @@ interface smbXsrv */ typedef [public, v1_enum] enum { /* - * NOTE: Version 0 is designed to be unstable and the format + * NOTE: Version 0 was designed to be unstable and the format * may change during development. */ - SMBXSRV_VERSION_0 = 0x00000000 + SMBXSRV_VERSION_1 = 0x00000001 } smbXsrv_version_values; - const uint32 SMBXSRV_VERSION_CURRENT = SMBXSRV_VERSION_0; + const uint32 SMBXSRV_VERSION_CURRENT = SMBXSRV_VERSION_1; typedef struct { server_id server_id; smbXsrv_version_values min_version; smbXsrv_version_values max_version; smbXsrv_version_values current_version; - } smbXsrv_version_node0; + } smbXsrv_version_node; typedef struct { [range(1, 1024)] uint32 num_nodes; - smbXsrv_version_node0 nodes[num_nodes]; - } smbXsrv_version_global0; + smbXsrv_version_node nodes[num_nodes]; + } smbXsrv_version_global; typedef union { - [case(0)] smbXsrv_version_global0 *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_version_global *info1; + [default] ; } smbXsrv_version_globalU; typedef [public] struct { @@ -84,11 +84,11 @@ interface smbXsrv NTTIME initial_connect_time; GUID client_guid; boolean8 stored; - } smbXsrv_client_global0; + } smbXsrv_client_global; typedef union { - [case(0)] smbXsrv_client_global0 *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_client_global *info1; + [default] ; } smbXsrv_client_globalU; typedef [public] struct { @@ -102,7 +102,7 @@ interface smbXsrv [ignore] struct tevent_context *raw_ev_ctx; [ignore] struct messaging_context *msg_ctx; - [ref] smbXsrv_client_global0 *global; + [ref] smbXsrv_client_global *global; /* * There's just one 'sconn' per client. @@ -144,8 +144,8 @@ interface smbXsrv } smbXsrv_client; typedef union { - [case(0)] smbXsrv_client *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_client *info1; + [default] ; } smbXsrv_clientU; typedef [public] struct { @@ -167,11 +167,11 @@ interface smbXsrv NTTIME client_connect_time; uint8 transport_type; DATA_BLOB negotiate_request; - } smbXsrv_connection_pass0; + } smbXsrv_connection_pass; typedef union { - [case(0)] smbXsrv_connection_pass0 *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_connection_pass *info1; + [default] ; } smbXsrv_connection_passU; typedef [public] struct { @@ -190,11 +190,11 @@ interface smbXsrv NTTIME xconn_connect_time; server_id dst_server_id; NTTIME client_connect_time; - } smbXsrv_connection_drop0; + } smbXsrv_connection_drop; typedef union { - [case(0)] smbXsrv_connection_drop0 *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_connection_drop *info1; + [default] ; } smbXsrv_connection_dropU; typedef [public] struct { @@ -232,7 +232,7 @@ interface smbXsrv uint16 signing_algo; uint16 encryption_cipher; uint8 transport_type; - } smbXsrv_channel_global0; + } smbXsrv_channel_global; typedef struct { [ignore] db_record *db_rec; @@ -262,12 +262,12 @@ interface smbXsrv [noprint] DATA_BLOB application_key_blob; [ignore] smb2_signing_key *application_key; [range(1, 1024)] uint32 num_channels; - smbXsrv_channel_global0 channels[num_channels]; - } smbXsrv_session_global0; + smbXsrv_channel_global channels[num_channels]; + } smbXsrv_session_global; typedef union { - [case(0)] smbXsrv_session_global0 *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_session_global *info1; + [default] ; } smbXsrv_session_globalU; typedef [public] struct { @@ -279,19 +279,19 @@ interface smbXsrv /* * The main server code should just work with * 'struct smbXsrv_session' and never use - * smbXsrv_session0, smbXsrv_sessionU + * smbXsrv_session1, smbXsrv_sessionU * and smbXsrv_sessionB directly. * * If we need to change the smbXsrv_session, * we can just rename smbXsrv_session - * to smbXsrv_session0 and add a new + * to smbXsrv_session1 and add a new * smbXsrv_session for version 1 * and could implement transparent mapping. */ typedef struct { - [ignore] smbXsrv_session_auth0 *prev; - [max_recursion(20000)] smbXsrv_session_auth0 *next; + [ignore] smbXsrv_session_auth *prev; + [max_recursion(20000)] smbXsrv_session_auth *next; [ignore] smbXsrv_session *session; [ignore] smbXsrv_connection *connection; [ignore] gensec_security *gensec; @@ -301,14 +301,14 @@ interface smbXsrv NTTIME creation_time; NTTIME idle_time; hyper channel_id; - } smbXsrv_session_auth0; + } smbXsrv_session_auth; typedef struct { [ignore] smbXsrv_session_table *table; [ignore] db_record *db_rec; [ignore] smbXsrv_client *client; uint32 local_id; - [ref] smbXsrv_session_global0 *global; + [ref] smbXsrv_session_global *global; NTSTATUS status; NTTIME idle_time; hyper nonce_high_random; @@ -317,12 +317,12 @@ interface smbXsrv hyper nonce_low; [ignore] smbXsrv_tcon_table *tcon_table; [ignore] uint32 homes_snum; - smbXsrv_session_auth0 *pending_auth; + smbXsrv_session_auth *pending_auth; } smbXsrv_session; typedef union { - [case(0)] smbXsrv_session *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_session *info1; + [default] ; } smbXsrv_sessionU; typedef [public] struct { @@ -340,11 +340,11 @@ interface smbXsrv hyper old_session_wire_id; NTTIME old_creation_time; hyper new_session_wire_id; - } smbXsrv_session_close0; + } smbXsrv_session_close; typedef union { - [case(0)] smbXsrv_session_close0 *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_session_close *info1; + [default] ; } smbXsrv_session_closeU; typedef [public] struct { @@ -368,11 +368,11 @@ interface smbXsrv */ uint32 session_global_id; smbXsrv_signing_flags signing_flags; - } smbXsrv_tcon_global0; + } smbXsrv_tcon_global; typedef union { - [case(0)] smbXsrv_tcon_global0 *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_tcon_global *info1; + [default] ; } smbXsrv_tcon_globalU; typedef [public] struct { @@ -384,12 +384,12 @@ interface smbXsrv /* * The main server code should just work with * 'struct smbXsrv_tcon' and never use - * smbXsrv_tcon0, smbXsrv_tconU + * smbXsrv_tcon1, smbXsrv_tconU * and smbXsrv_tconB directly. * * If we need to change the smbXsrv_tcon, * we can just rename smbXsrv_tcon - * to smbXsrv_tcon0 and add a new + * to smbXsrv_tcon1 and add a new * smbXsrv_tcon for version 1 * and could implement transparent mapping. */ @@ -397,7 +397,7 @@ interface smbXsrv [ignore] smbXsrv_tcon_table *table; [ignore] db_record *db_rec; uint32 local_id; - [ref] smbXsrv_tcon_global0 *global; + [ref] smbXsrv_tcon_global *global; NTSTATUS status; NTTIME idle_time; uint8 share_type; @@ -408,8 +408,8 @@ interface smbXsrv } smbXsrv_tcon; typedef union { - [case(0)] smbXsrv_tcon *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_tcon *info1; + [default] ; } smbXsrv_tconU; typedef [public] struct { @@ -450,11 +450,11 @@ interface smbXsrv uint16 channel_sequence; hyper channel_generation; [flag(NDR_PAHEX)] uint8 lock_sequence_array[64]; - } smbXsrv_open_global0; + } smbXsrv_open_global; typedef union { - [case(0)] smbXsrv_open_global0 *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_open_global *info1; + [default] ; } smbXsrv_open_globalU; typedef [public] struct { @@ -467,19 +467,19 @@ interface smbXsrv /* * The main server code should just work with * 'struct smbXsrv_open' and never use - * smbXsrv_open0, smbXsrv_openU + * smbXsrv_open1, smbXsrv_openU * and smbXsrv_openB directly. * * If we need to change the smbXsrv_open, * we can just rename smbXsrv_open - * to smbXsrv_open0 and add a new + * to smbXsrv_open1 and add a new * smbXsrv_open for version 1 * and could implement transparent mapping. */ typedef struct { [ignore] smbXsrv_open_table *table; uint32 local_id; - [ref] smbXsrv_open_global0 *global; + [ref] smbXsrv_open_global *global; smbXsrv_session *session; smbXsrv_tcon *tcon; NTSTATUS status; @@ -491,8 +491,8 @@ interface smbXsrv } smbXsrv_open; typedef union { - [case(0)] smbXsrv_open *info0; - [default] hyper *dummy; + [case(1),ref] smbXsrv_open *info1; + [default] ; } smbXsrv_openU; typedef [public] struct { diff --git a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c index e7383a3925e..0e422dd1bc2 100644 --- a/source3/rpc_server/srvsvc/srv_srvsvc_nt.c +++ b/source3/rpc_server/srvsvc/srv_srvsvc_nt.c @@ -584,7 +584,7 @@ static bool is_enumeration_allowed(struct pipes_struct *p, Count an entry against the respective service. ****************************************************************************/ -static int count_for_all_fn(struct smbXsrv_tcon_global0 *tcon, void *udp) +static int count_for_all_fn(struct smbXsrv_tcon_global *tcon, void *udp) { union srvsvc_NetShareCtr *ctr = udp; @@ -1174,7 +1174,7 @@ static void count_share_opens(struct srvsvc_NetConnInfo1 *arr, process an entry from the connection db. ****************************************************************************/ -static int share_conn_fn(struct smbXsrv_tcon_global0 *tcon, +static int share_conn_fn(struct smbXsrv_tcon_global *tcon, void *data) { struct share_conn_stat *scs = data; diff --git a/source3/smbd/connection.c b/source3/smbd/connection.c index 8dea205e4c7..869ca907334 100644 --- a/source3/smbd/connection.c +++ b/source3/smbd/connection.c @@ -35,7 +35,7 @@ struct count_stat { Count the entries belonging to a service in the connection db. ****************************************************************************/ -static int count_fn(struct smbXsrv_tcon_global0 *tcon, +static int count_fn(struct smbXsrv_tcon_global *tcon, void *udp) { struct count_stat *cs = (struct count_stat *)udp; diff --git a/source3/smbd/durable.c b/source3/smbd/durable.c index c9cff52b268..1aad8d52d4d 100644 --- a/source3/smbd/durable.c +++ b/source3/smbd/durable.c @@ -545,7 +545,7 @@ static bool share_mode_entry_durable_reconnect_cb( void *private_data) { struct durable_reconnect_state *state = private_data; - struct smbXsrv_open_global0 *global = state->op->global; + struct smbXsrv_open_global *global = state->op->global; uint64_t id = global->open_persistent_id; if (e->share_file_id != id) { diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h index 231af2b1b76..923827415ba 100644 --- a/source3/smbd/globals.h +++ b/source3/smbd/globals.h @@ -576,9 +576,9 @@ NTSTATUS smb2srv_tcon_lookup(struct smbXsrv_session *session, uint32_t tree_id, NTTIME now, struct smbXsrv_tcon **tcon); NTSTATUS smb2srv_tcon_disconnect_all(struct smbXsrv_session *session); -struct smbXsrv_tcon_global0; +struct smbXsrv_tcon_global; NTSTATUS smbXsrv_tcon_global_traverse( - int (*fn)(struct smbXsrv_tcon_global0 *, void *), + int (*fn)(struct smbXsrv_tcon_global *, void *), void *private_data); diff --git a/source3/smbd/scavenger.c b/source3/smbd/scavenger.c index d725af9f06c..6db95ef2f98 100644 --- a/source3/smbd/scavenger.c +++ b/source3/smbd/scavenger.c @@ -649,7 +649,7 @@ static void scavenger_add_timer(struct smbd_scavenger_state *state, TALLOC_CTX *frame = talloc_stackframe(); struct tevent_timer *te; struct scavenger_timer_context *ctx; - const struct smbXsrv_open_global0 *global = NULL; + const struct smbXsrv_open_global *global = NULL; struct timeval until; struct file_id_buf idbuf; NTTIME disconnect_time = 0; diff --git a/source3/smbd/smb1_sesssetup.c b/source3/smbd/smb1_sesssetup.c index fde52d721fc..db21a9ce038 100644 --- a/source3/smbd/smb1_sesssetup.c +++ b/source3/smbd/smb1_sesssetup.c @@ -103,7 +103,7 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req) struct smbXsrv_session *session = NULL; uint16_t smb_bufsize = SVAL(req->vwv+2, 0); uint32_t client_caps = IVAL(req->vwv+10, 0); - struct smbXsrv_session_auth0 *auth; + struct smbXsrv_session_auth *auth = NULL; DEBUG(3,("Doing spnego session setup\n")); @@ -498,7 +498,7 @@ struct shutdown_state { struct messaging_context *msg_ctx; }; -static int shutdown_other_smbds(struct smbXsrv_session_global0 *session, +static int shutdown_other_smbds(struct smbXsrv_session_global *session, void *private_data) { struct shutdown_state *state = (struct shutdown_state *)private_data; diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index 1aaebd92c82..5b01cff3516 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -2238,7 +2238,7 @@ struct smb2_signing_key *smbd_smb2_signing_key(struct smbXsrv_session *session, struct smbXsrv_connection *xconn, bool *_has_channel) { - struct smbXsrv_channel_global0 *c = NULL; + struct smbXsrv_channel_global *c = NULL; NTSTATUS status; struct smb2_signing_key *key = NULL; bool has_channel = false; @@ -4410,7 +4410,7 @@ static NTSTATUS smbXsrv_pending_break_submit(struct smbXsrv_pending_break *pb) } if (session != NULL) { - struct smbXsrv_channel_global0 *c = NULL; + struct smbXsrv_channel_global *c = NULL; /* * Having a session means we're handling diff --git a/source3/smbd/smb2_sesssetup.c b/source3/smbd/smb2_sesssetup.c index a3dd5bac02b..b6d250255b7 100644 --- a/source3/smbd/smb2_sesssetup.c +++ b/source3/smbd/smb2_sesssetup.c @@ -192,7 +192,7 @@ static void smbd_smb2_request_sesssetup_done(struct tevent_req *subreq) } static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session, - struct smbXsrv_session_auth0 **_auth, + struct smbXsrv_session_auth **_auth, struct smbd_smb2_request *smb2req, uint8_t in_security_mode, struct auth_session_info *session_info, @@ -202,7 +202,7 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session, NTSTATUS status; bool guest = false; struct smbXsrv_session *x = session; - struct smbXsrv_session_auth0 *auth = *_auth; + struct smbXsrv_session_auth *auth = *_auth; struct smbXsrv_connection *xconn = smb2req->xconn; size_t i; struct smb2_signing_derivations derivations = { @@ -444,7 +444,7 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session, &session_info); session->global->auth_session_info_seqnum += 1; for (i=0; i < session->global->num_channels; i++) { - struct smbXsrv_channel_global0 *_c = + struct smbXsrv_channel_global *_c = &session->global->channels[i]; _c->auth_session_info_seqnum = @@ -486,7 +486,7 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session, } static NTSTATUS smbd_smb2_reauth_generic_return(struct smbXsrv_session *session, - struct smbXsrv_session_auth0 **_auth, + struct smbXsrv_session_auth **_auth, struct smbd_smb2_request *smb2req, struct auth_session_info *session_info, uint16_t *out_session_flags, @@ -494,7 +494,7 @@ static NTSTATUS smbd_smb2_reauth_generic_return(struct smbXsrv_session *session, { NTSTATUS status; struct smbXsrv_session *x = session; - struct smbXsrv_session_auth0 *auth = *_auth; + struct smbXsrv_session_auth *auth = *_auth; struct smbXsrv_connection *xconn = smb2req->xconn; size_t i; @@ -526,7 +526,7 @@ static NTSTATUS smbd_smb2_reauth_generic_return(struct smbXsrv_session *session, &session_info); session->global->auth_session_info_seqnum += 1; for (i=0; i < session->global->num_channels; i++) { - struct smbXsrv_channel_global0 *_c = + struct smbXsrv_channel_global *_c = &session->global->channels[i]; _c->auth_session_info_seqnum = @@ -553,7 +553,7 @@ static NTSTATUS smbd_smb2_reauth_generic_return(struct smbXsrv_session *session, } static NTSTATUS smbd_smb2_bind_auth_return(struct smbXsrv_session *session, - struct smbXsrv_session_auth0 **_auth, + struct smbXsrv_session_auth **_auth, struct smbd_smb2_request *smb2req, struct auth_session_info *session_info, uint16_t *out_session_flags, @@ -561,9 +561,9 @@ static NTSTATUS smbd_smb2_bind_auth_return(struct smbXsrv_session *session, { NTSTATUS status; struct smbXsrv_session *x = session; - struct smbXsrv_session_auth0 *auth = *_auth; + struct smbXsrv_session_auth *auth = *_auth; struct smbXsrv_connection *xconn = smb2req->xconn; - struct smbXsrv_channel_global0 *c = NULL; + struct smbXsrv_channel_global *c = NULL; size_t i; struct smb2_signing_derivations derivations = { .signing = NULL, @@ -669,7 +669,7 @@ struct smbd_smb2_session_setup_state { uint64_t in_previous_session_id; DATA_BLOB in_security_buffer; struct smbXsrv_session *session; - struct smbXsrv_session_auth0 *auth; + struct smbXsrv_session_auth *auth; struct auth_session_info *session_info; uint16_t out_session_flags; DATA_BLOB out_security_buffer; @@ -694,7 +694,7 @@ static struct tevent_req *smbd_smb2_session_setup_send(TALLOC_CTX *mem_ctx, NTSTATUS status; NTTIME now = timeval_to_nttime(&smb2req->request_time); struct tevent_req *subreq; - struct smbXsrv_channel_global0 *c = NULL; + struct smbXsrv_channel_global *c = NULL; enum security_user_level seclvl; req = tevent_req_create(mem_ctx, &state, diff --git a/source3/smbd/smbXsrv_client.c b/source3/smbd/smbXsrv_client.c index c0afcdb8475..d61b77e47b7 100644 --- a/source3/smbd/smbXsrv_client.c +++ b/source3/smbd/smbXsrv_client.c @@ -166,7 +166,7 @@ static NTSTATUS smbXsrv_client_table_create(TALLOC_CTX *mem_ctx, return NT_STATUS_OK; } -static int smbXsrv_client_global_destructor(struct smbXsrv_client_global0 *global) +static int smbXsrv_client_global_destructor(struct smbXsrv_client_global *global) { return 0; } @@ -176,7 +176,7 @@ static void smbXsrv_client_global_verify_record(struct db_record *db_rec, bool *was_free, TALLOC_CTX *mem_ctx, const struct server_id *dead_server_id, - struct smbXsrv_client_global0 **_g, + struct smbXsrv_client_global **_g, uint32_t *pseqnum) { TDB_DATA key; @@ -184,7 +184,7 @@ static void smbXsrv_client_global_verify_record(struct db_record *db_rec, DATA_BLOB blob; struct smbXsrv_client_globalB global_blob; enum ndr_err_code ndr_err; - struct smbXsrv_client_global0 *global = NULL; + struct smbXsrv_client_global *global = NULL; bool dead = false; bool exists; TALLOC_CTX *frame = talloc_stackframe(); @@ -231,7 +231,7 @@ static void smbXsrv_client_global_verify_record(struct db_record *db_rec, NDR_PRINT_DEBUG(smbXsrv_client_globalB, &global_blob); } - if (global_blob.version != SMBXSRV_VERSION_0) { + if (global_blob.version != SMBXSRV_VERSION_1) { DBG_ERR("key '%s' uses unsupported version %u\n", tdb_data_dbg(key), global_blob.version); @@ -240,7 +240,7 @@ static void smbXsrv_client_global_verify_record(struct db_record *db_rec, return; } - global = global_blob.info.info0; + global = global_blob.info.info1; dead = server_id_equal(dead_server_id, &global->server_id); if (dead) { @@ -284,17 +284,17 @@ static void smbXsrv_client_global_verify_record(struct db_record *db_rec, } static NTSTATUS smb2srv_client_connection_pass(struct smbd_smb2_request *smb2req, - struct smbXsrv_client_global0 *global) + struct smbXsrv_client_global *global) { DATA_BLOB blob; enum ndr_err_code ndr_err; NTSTATUS status; - struct smbXsrv_connection_pass0 pass_info0; + struct smbXsrv_connection_pass pass_info; struct smbXsrv_connection_passB pass_blob; ssize_t reqlen; struct iovec iov; - pass_info0 = (struct smbXsrv_connection_pass0) { + pass_info = (struct smbXsrv_connection_pass) { .client_guid = global->client_guid, .src_server_id = smb2req->xconn->client->global->server_id, .xconn_connect_time = smb2req->xconn->client->global->initial_connect_time, @@ -308,19 +308,19 @@ static NTSTATUS smb2srv_client_connection_pass(struct smbd_smb2_request *smb2req return NT_STATUS_INVALID_BUFFER_SIZE; } - pass_info0.negotiate_request.length = reqlen; - pass_info0.negotiate_request.data = talloc_array(talloc_tos(), uint8_t, - reqlen); - if (pass_info0.negotiate_request.data == NULL) { + pass_info.negotiate_request.length = reqlen; + pass_info.negotiate_request.data = talloc_array(talloc_tos(), uint8_t, + reqlen); + if (pass_info.negotiate_request.data == NULL) { return NT_STATUS_NO_MEMORY; } iov_buf(smb2req->in.vector, smb2req->in.vector_count, - pass_info0.negotiate_request.data, - pass_info0.negotiate_request.length); + pass_info.negotiate_request.data, + pass_info.negotiate_request.length); ZERO_STRUCT(pass_blob); pass_blob.version = smbXsrv_version_global_current(); - pass_blob.info.info0 = &pass_info0; + pass_blob.info.info1 = &pass_info; if (DEBUGLVL(DBGLVL_DEBUG)) { NDR_PRINT_DEBUG(smbXsrv_connection_passB, &pass_blob); @@ -328,7 +328,7 @@ static NTSTATUS smb2srv_client_connection_pass(struct smbd_smb2_request *smb2req ndr_err = ndr_push_struct_blob(&blob, talloc_tos(), &pass_blob, (ndr_push_flags_fn_t)ndr_push_smbXsrv_connection_passB); - data_blob_free(&pass_info0.negotiate_request); + data_blob_free(&pass_info.negotiate_request); if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) { status = ndr_map_error2ntstatus(ndr_err); return status; @@ -351,16 +351,16 @@ static NTSTATUS smb2srv_client_connection_pass(struct smbd_smb2_request *smb2req } static NTSTATUS smb2srv_client_connection_drop(struct smbd_smb2_request *smb2req, - struct smbXsrv_client_global0 *global) + struct smbXsrv_client_global *global) { DATA_BLOB blob; enum ndr_err_code ndr_err; NTSTATUS status; - struct smbXsrv_connection_drop0 drop_info0; + struct smbXsrv_connection_drop drop_info; struct smbXsrv_connection_dropB drop_blob; struct iovec iov; - drop_info0 = (struct smbXsrv_connection_drop0) { + drop_info = (struct smbXsrv_connection_drop) { .client_guid = global->client_guid, .src_server_id = smb2req->xconn->client->global->server_id, .xconn_connect_time = smb2req->xconn->client->global->initial_connect_time, @@ -370,7 +370,7 @@ static NTSTATUS smb2srv_client_connection_drop(struct smbd_smb2_request *smb2req ZERO_STRUCT(drop_blob); drop_blob.version = smbXsrv_version_global_current(); - drop_blob.info.info0 = &drop_info0; + drop_blob.info.info1 = &drop_info; if (DEBUGLVL(DBGLVL_DEBUG)) { NDR_PRINT_DEBUG(smbXsrv_connection_dropB, &drop_blob); @@ -399,7 +399,7 @@ static NTSTATUS smb2srv_client_connection_drop(struct smbd_smb2_request *smb2req return NT_STATUS_OK; } -static NTSTATUS smbXsrv_client_global_store(struct smbXsrv_client_global0 *global) +static NTSTATUS smbXsrv_client_global_store(struct smbXsrv_client_global *global) { struct smbXsrv_client_globalB global_blob; DATA_BLOB blob = data_blob_null; @@ -410,7 +410,7 @@ static NTSTATUS smbXsrv_client_global_store(struct smbXsrv_client_global0 *globa bool saved_stored = global->stored; /* - * TODO: if we use other versions than '0' + * TODO: if we use other versions than '1' * we would add glue code here, that would be able to * store the information in the old format. */ @@ -428,7 +428,7 @@ static NTSTATUS smbXsrv_client_global_store(struct smbXsrv_client_global0 *globa global_blob = (struct smbXsrv_client_globalB) { .version = smbXsrv_version_global_current(), - .info.info0 = global, + .info.info1 = global, }; if (val.dsize >= 8) { global_blob.seqnum = IVAL(val.dptr, 4); @@ -538,7 +538,7 @@ static void smb2srv_client_mc_negprot_next(struct tevent_req *req) struct smbXsrv_client *client = xconn->client; struct smbXsrv_client_table *table = client->table; struct GUID client_guid = xconn->smb2.client.guid; - struct smbXsrv_client_global0 *global = NULL; + struct smbXsrv_client_global *global = NULL; bool is_free = false; struct tevent_req *subreq = NULL; NTSTATUS status; @@ -591,8 +591,8 @@ verify_again: if (DEBUGLVL(DBGLVL_DEBUG)) { struct smbXsrv_clientB client_blob = { - .version = SMBXSRV_VERSION_0, - .info.info0 = client, + .version = SMBXSRV_VERSION_1, + .info.info1 = client, }; struct GUID_txt_buf buf; @@ -759,7 +759,7 @@ static void smb2srv_client_mc_negprot_done(struct tevent_req *subreq) struct messaging_rec *rec = NULL; struct smbXsrv_connection_passB passed_blob; enum ndr_err_code ndr_err; - struct smbXsrv_connection_pass0 *passed_info0 = NULL; + struct smbXsrv_connection_pass *passed_info = NULL; NTSTATUS status; int ret; @@ -791,28 +791,28 @@ static void smb2srv_client_mc_negprot_done(struct tevent_req *subreq) NDR_PRINT_DEBUG(smbXsrv_connection_passB, &passed_blob); } - if (passed_blob.version != SMBXSRV_VERSION_0) { + if (passed_blob.version != SMBXSRV_VERSION_1) { DBG_ERR("ignore invalid version %u\n", passed_blob.version); NDR_PRINT_DEBUG(smbXsrv_connection_passB, &passed_blob); tevent_req_nterror(req, NT_STATUS_INTERNAL_ERROR); return; } - passed_info0 = passed_blob.info.info0; - if (passed_info0 == NULL) { + passed_info = passed_blob.info.info1; + if (passed_info == NULL) { DBG_ERR("ignore NULL info %u\n", passed_blob.version); NDR_PRINT_DEBUG(smbXsrv_connection_passB, &passed_blob); tevent_req_nterror(req, NT_STATUS_INTERNAL_ERROR); return; } - if (!GUID_equal(&xconn->smb2.client.guid, &passed_info0->client_guid)) { + if (!GUID_equal(&xconn->smb2.client.guid, &passed_info->client_guid)) { struct GUID_txt_buf buf1, buf2; DBG_ERR("client's client_guid [%s] != passed guid [%s]\n", GUID_buf_string(&xconn->smb2.client.guid, &buf1), - GUID_buf_string(&passed_info0->client_guid, + GUID_buf_string(&passed_info->client_guid, &buf2)); NDR_PRINT_DEBUG(smbXsrv_connection_passB, &passed_blob); tevent_req_nterror(req, NT_STATUS_INTERNAL_ERROR); @@ -820,7 +820,7 @@ static void smb2srv_client_mc_negprot_done(struct tevent_req *subreq) } if (client->global->initial_connect_time != - passed_info0->xconn_connect_time) + passed_info->xconn_connect_time) { DBG_ERR("client's initial connect time [%s] (%llu) != " "passed xconn connect time [%s] (%llu)\n", @@ -828,16 +828,16 @@ static void smb2srv_client_mc_negprot_done(struct tevent_req *subreq) client->global->initial_connect_time), (unsigned long long)client->global->initial_connect_time, nt_time_string(talloc_tos(), - passed_info0->xconn_connect_time), - (unsigned long long)passed_info0->xconn_connect_time); + passed_info->xconn_connect_time), + (unsigned long long)passed_info->xconn_connect_time); NDR_PRINT_DEBUG(smbXsrv_connection_passB, &passed_blob); tevent_req_nterror(req, NT_STATUS_INTERNAL_ERROR); return; } - if (passed_info0->negotiate_request.length != 0) { + if (passed_info->negotiate_request.length != 0) { DBG_ERR("negotiate_request.length[%zu]\n", - passed_info0->negotiate_request.length); + passed_info->negotiate_request.length); NDR_PRINT_DEBUG(smbXsrv_connection_passB, &passed_blob); tevent_req_nterror(req, NT_STATUS_INTERNAL_ERROR); return; @@ -873,7 +873,7 @@ NTSTATUS smb2srv_client_mc_negprot_recv(struct tevent_req *req) return tevent_req_simple_recv_ntstatus(req); } -static NTSTATUS smbXsrv_client_global_remove(struct smbXsrv_client_global0 *global) +static NTSTATUS smbXsrv_client_global_remove(struct smbXsrv_client_global *global) { TDB_DATA key; NTSTATUS status; @@ -934,7 +934,7 @@ NTSTATUS smbXsrv_client_create(TALLOC_CTX *mem_ctx, { struct smbXsrv_client_table *table; struct smbXsrv_client *client = NULL; - struct smbXsrv_client_global0 *global = NULL; + struct smbXsrv_client_global *global = NULL; NTSTATUS status; struct tevent_req *subreq = NULL; @@ -967,7 +967,7 @@ NTSTATUS smbXsrv_client_create(TALLOC_CTX *mem_ctx, client->table = talloc_move(client, &table); table = client->table; - global = talloc_zero(client, struct smbXsrv_client_global0); + global = talloc_zero(client, struct smbXsrv_client_global); if (global == NULL) { TALLOC_FREE(client); return NT_STATUS_NO_MEMORY; @@ -985,8 +985,8 @@ NTSTATUS smbXsrv_client_create(TALLOC_CTX *mem_ctx, if (DEBUGLVL(DBGLVL_DEBUG)) { struct smbXsrv_clientB client_blob = { - .version = SMBXSRV_VERSION_0, - .info.info0 = client, + .version = SMBXSRV_VERSION_1, + .info.info1 = client, }; struct GUID_txt_buf buf; @@ -1024,24 +1024,24 @@ NTSTATUS smbXsrv_client_create(TALLOC_CTX *mem_ctx, } static NTSTATUS smb2srv_client_connection_passed(struct smbXsrv_client *client, - const struct smbXsrv_connection_pass0 *recv_info0) + const struct smbXsrv_connection_pass *recv_info) { DATA_BLOB blob; enum ndr_err_code ndr_err; NTSTATUS status; - struct smbXsrv_connection_pass0 passed_info0; + struct smbXsrv_connection_pass passed_info; struct smbXsrv_connection_passB passed_blob; struct iovec iov; /* * We echo back the message with a cleared negotiate_request */ - passed_info0 = *recv_info0; - passed_info0.negotiate_request = data_blob_null; + passed_info = *recv_info; + passed_info.negotiate_request = data_blob_null; ZERO_STRUCT(passed_blob); passed_blob.version = smbXsrv_version_global_current(); - passed_blob.info.info0 = &passed_info0; + passed_blob.info.info1 = &passed_info; if (DEBUGLVL(DBGLVL_DEBUG)) { NDR_PRINT_DEBUG(smbXsrv_connection_passB, &passed_blob); @@ -1058,7 +1058,7 @@ static NTSTATUS smb2srv_client_connection_passed(struct smbXsrv_client *client, iov.iov_len = blob.length; status = messaging_send_iov(client->msg_ctx, - recv_info0->src_server_id, + recv_info->src_server_id, MSG_SMBXSRV_CONNECTION_PASSED, &iov, 1, NULL, 0); @@ -1093,7 +1093,7 @@ static void smbXsrv_client_connection_pass_loop(struct tevent_req *subreq) struct messaging_rec *rec = NULL; struct smbXsrv_connection_passB pass_blob; enum ndr_err_code ndr_err; - struct smbXsrv_connection_pass0 *pass_info0 = NULL; + struct smbXsrv_connection_pass *pass_info = NULL; NTSTATUS status; int sock_fd = -1; uint64_t seq_low; @@ -1127,27 +1127,27 @@ static void smbXsrv_client_connection_pass_loop(struct tevent_req *subreq) NDR_PRINT_DEBUG(smbXsrv_connection_passB, &pass_blob); } - if (pass_blob.version != SMBXSRV_VERSION_0) { + if (pass_blob.version != SMBXSRV_VERSION_1) { DBG_ERR("ignore invalid version %u\n", pass_blob.version); NDR_PRINT_DEBUG(smbXsrv_connection_passB, &pass_blob); goto next; } - pass_info0 = pass_blob.info.info0; - if (pass_info0 == NULL) { + pass_info = pass_blob.info.info1; + if (pass_info == NULL) { DBG_ERR("ignore NULL info %u\n", pass_blob.version); NDR_PRINT_DEBUG(smbXsrv_connection_passB, &pass_blob); goto next; } - if (!GUID_equal(&client->global->client_guid, &pass_info0->client_guid)) + if (!GUID_equal(&client->global->client_guid, &pass_info->client_guid)) { struct GUID_txt_buf buf1, buf2; DBG_WARNING("client's client_guid [%s] != passed guid [%s]\n", GUID_buf_string(&client->global->client_guid, &buf1), - GUID_buf_string(&pass_info0->client_guid, + GUID_buf_string(&pass_info->client_guid, &buf2)); if (DEBUGLVL(DBGLVL_WARNING)) { NDR_PRINT_DEBUG(smbXsrv_connection_passB, &pass_blob); @@ -1156,7 +1156,7 @@ static void smbXsrv_client_connection_pass_loop(struct tevent_req *subreq) } if (client->global->initial_connect_time != - pass_info0->client_connect_time) + pass_info->client_connect_time) { DBG_WARNING("client's initial connect time [%s] (%llu) != " "passed initial connect time [%s] (%llu)\n", @@ -1164,24 +1164,24 @@ static void smbXsrv_client_connection_pass_loop(struct tevent_req *subreq) client->global->initial_connect_time), (unsigned long long)client->global->initial_connect_time, nt_time_string(talloc_tos(), - pass_info0->client_connect_time), - (unsigned long long)pass_info0->client_connect_time); + pass_info->client_connect_time), + (unsigned long long)pass_info->client_connect_time); if (DEBUGLVL(DBGLVL_WARNING)) { NDR_PRINT_DEBUG(smbXsrv_connection_passB, &pass_blob); } goto next; } - if (pass_info0->negotiate_request.length < SMB2_HDR_BODY) { + if (pass_info->negotiate_request.length < SMB2_HDR_BODY) { DBG_WARNING("negotiate_request.length[%zu]\n", - pass_info0->negotiate_request.length); + pass_info->negotiate_request.length); if (DEBUGLVL(DBGLVL_WARNING)) { NDR_PRINT_DEBUG(smbXsrv_connection_passB, &pass_blob); } goto next; } - status = smb2srv_client_connection_passed(client, pass_info0); + status = smb2srv_client_connection_passed(client, pass_info); if (NT_STATUS_EQUAL(status, NT_STATUS_OBJECT_NAME_NOT_FOUND)) { /* * We hit a race where, the client dropped the connection @@ -1202,8 +1202,8 @@ static void smbXsrv_client_connection_pass_loop(struct tevent_req *subreq) status = smbd_add_connection(client, sock_fd, - pass_info0->transport_type, - pass_info0->xconn_connect_time, + pass_info->transport_type, + pass_info->xconn_connect_time, &xconn); if (NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_ACCESS_DENIED)) { rec->num_fds = 0; @@ -1219,13 +1219,13 @@ static void smbXsrv_client_connection_pass_loop(struct tevent_req *subreq) /* * Set seq_low to mid received in negprot */ - seq_low = BVAL(pass_info0->negotiate_request.data, + seq_low = BVAL(pass_info->negotiate_request.data, SMB2_HDR_MESSAGE_ID); xconn->smb2.client.guid_verified = true; smbd_smb2_process_negprot(xconn, seq_low, - pass_info0->negotiate_request.data, - pass_info0->negotiate_request.length); + pass_info->negotiate_request.data, + pass_info->negotiate_request.length); next: if (rec != NULL) { @@ -1277,7 +1277,7 @@ static void smbXsrv_client_connection_drop_loop(struct tevent_req *subreq) struct messaging_rec *rec = NULL; struct smbXsrv_connection_dropB drop_blob; enum ndr_err_code ndr_err; - struct smbXsrv_connection_drop0 *drop_info0 = NULL; + struct smbXsrv_connection_drop *drop_info = NULL; struct server_id_buf src_server_id_buf = {}; NTSTATUS status; @@ -1307,27 +1307,27 @@ static void smbXsrv_client_connection_drop_loop(struct tevent_req *subreq) NDR_PRINT_DEBUG(smbXsrv_connection_dropB, &drop_blob); } - if (drop_blob.version != SMBXSRV_VERSION_0) { + if (drop_blob.version != SMBXSRV_VERSION_1) { DBG_ERR("ignore invalid version %u\n", drop_blob.version); NDR_PRINT_DEBUG(smbXsrv_connection_dropB, &drop_blob); goto next; } - drop_info0 = drop_blob.info.info0; - if (drop_info0 == NULL) { + drop_info = drop_blob.info.info1; + if (drop_info == NULL) { DBG_ERR("ignore NULL info %u\n", drop_blob.version); NDR_PRINT_DEBUG(smbXsrv_connection_dropB, &drop_blob); goto next; } - if (!GUID_equal(&client->global->client_guid, &drop_info0->client_guid)) + if (!GUID_equal(&client->global->client_guid, &drop_info->client_guid)) { struct GUID_txt_buf buf1, buf2; DBG_WARNING("client's client_guid [%s] != dropped guid [%s]\n", GUID_buf_string(&client->global->client_guid, &buf1), - GUID_buf_string(&drop_info0->client_guid, + GUID_buf_string(&drop_info->client_guid, &buf2)); if (DEBUGLVL(DBGLVL_WARNING)) { NDR_PRINT_DEBUG(smbXsrv_connection_dropB, &drop_blob); @@ -1336,7 +1336,7 @@ static void smbXsrv_client_connection_drop_loop(struct tevent_req *subreq) } if (client->global->initial_connect_time != - drop_info0->client_connect_time) + drop_info->client_connect_time) { DBG_WARNING("client's initial connect time [%s] (%llu) != " "dropped initial connect time [%s] (%llu)\n", @@ -1344,8 +1344,8 @@ static void smbXsrv_client_connection_drop_loop(struct tevent_req *subreq) client->global->initial_connect_time), (unsigned long long)client->global->initial_connect_time, nt_time_string(talloc_tos(), - drop_info0->client_connect_time), - (unsigned long long)drop_info0->client_connect_time); + drop_info->client_connect_time), + (unsigned long long)drop_info->client_connect_time); if (DEBUGLVL(DBGLVL_WARNING)) { NDR_PRINT_DEBUG(smbXsrv_connection_dropB, &drop_blob); } @@ -1361,7 +1361,7 @@ static void smbXsrv_client_connection_drop_loop(struct tevent_req *subreq) * The client will have to reopen all sessions, tcons and durable opens. */ smbd_server_disconnect_client(client, - server_id_str_buf(drop_info0->src_server_id, &src_server_id_buf)); + server_id_str_buf(drop_info->src_server_id, &src_server_id_buf)); return; next: @@ -1432,8 +1432,8 @@ NTSTATUS smbXsrv_client_remove(struct smbXsrv_client *client) if (DEBUGLVL(DBGLVL_DEBUG)) { struct smbXsrv_clientB client_blob = { - .version = SMBXSRV_VERSION_0, - .info.info0 = client, + .version = SMBXSRV_VERSION_1, + .info.info1 = client, }; struct GUID_txt_buf buf; diff --git a/source3/smbd/smbXsrv_open.c b/source3/smbd/smbXsrv_open.c index 0c0ab48868b..b8445a2cd2c 100644 --- a/source3/smbd/smbXsrv_open.c +++ b/source3/smbd/smbXsrv_open.c @@ -207,7 +207,7 @@ NTSTATUS smbXsrv_open_global_parse_record( TALLOC_CTX *mem_ctx, TDB_DATA key, TDB_DATA val, - struct smbXsrv_open_global0 **global) + struct smbXsrv_open_global **global) { DATA_BLOB blob = data_blob_const(val.dptr, val.dsize); struct smbXsrv_open_globalB global_blob; @@ -231,7 +231,7 @@ NTSTATUS smbXsrv_open_global_parse_record( NDR_PRINT_DEBUG(smbXsrv_open_globalB, &global_blob); } - if (global_blob.version != SMBXSRV_VERSION_0) { + if (global_blob.version != SMBXSRV_VERSION_1) { status = NT_STATUS_INTERNAL_DB_CORRUPTION; DEBUG(1,("Invalid record in smbXsrv_open_global.tdb:" "key '%s' unsupported version - %d - %s\n", @@ -241,7 +241,7 @@ NTSTATUS smbXsrv_open_global_parse_record( goto done; } - if (global_blob.info.info0 == NULL) { + if (global_blob.info.info1 == NULL) { status = NT_STATUS_INTERNAL_DB_CORRUPTION; DEBUG(1,("Invalid record in smbXsrv_open_global.tdb:" "key '%s' info0 NULL pointer - %s\n", @@ -250,7 +250,7 @@ NTSTATUS smbXsrv_open_global_parse_record( goto done; } - *global = talloc_move(mem_ctx, &global_blob.info.info0); + *global = talloc_move(mem_ctx, &global_blob.info.info1); status = NT_STATUS_OK; done: talloc_free(frame); @@ -261,9 +261,9 @@ static NTSTATUS smbXsrv_open_global_verify_record( TDB_DATA key, TDB_DATA val, TALLOC_CTX *mem_ctx, - struct smbXsrv_open_global0 **_global0) + struct smbXsrv_open_global **_global) { - struct smbXsrv_open_global0 *global0 = NULL; + struct smbXsrv_open_global *global = NULL; struct server_id_buf buf; NTSTATUS status; @@ -271,7 +271,7 @@ static NTSTATUS smbXsrv_open_global_verify_record( return NT_STATUS_NOT_FOUND; } - status = smbXsrv_open_global_parse_record(mem_ctx, key, val, &global0); + status = smbXsrv_open_global_parse_record(mem_ctx, key, val, &global); if (!NT_STATUS_IS_OK(status)) { DBG_WARNING("smbXsrv_open_global_parse_record for %s failed: " "%s\n", @@ -279,20 +279,20 @@ static NTSTATUS smbXsrv_open_global_verify_record( nt_errstr(status)); return status; } - *_global0 = global0; + *_global = global; - if (server_id_is_disconnected(&global0->server_id)) { + if (server_id_is_disconnected(&global->server_id)) { return NT_STATUS_REMOTE_DISCONNECT; } - if (serverid_exists(&global0->server_id)) { + if (serverid_exists(&global->server_id)) { return NT_STATUS_OBJECTID_EXISTS; } - if (global0->persistent) { + if (global->persistent) { return NT_STATUS_REMOTE_DISCONNECT; } DBG_WARNING("smbd %s did not clean up record %s\n", - server_id_str_buf(global0->server_id, &buf), + server_id_str_buf(global->server_id, &buf), tdb_data_dbg(key)); return NT_STATUS_FATAL_APP_EXIT; @@ -300,7 +300,7 @@ static NTSTATUS smbXsrv_open_global_verify_record( struct smbXsrv_open_global_lookup_state { TALLOC_CTX *mem_ctx; - struct smbXsrv_open_global0 *global; + struct smbXsrv_open_global *global; NTSTATUS status; }; @@ -326,7 +326,7 @@ static void smbXsrv_open_global_lookup_fn(struct db_record *rec, NTSTATUS smbXsrv_open_global_lookup( TALLOC_CTX *mem_ctx, uint32_t open_global_id, - const struct smbXsrv_open_global0 **_global) + const struct smbXsrv_open_global **_global) { struct smbXsrv_open_global_key_buf key_buf; TDB_DATA key = smbXsrv_open_global_id_to_key(open_global_id, &key_buf); @@ -359,7 +359,7 @@ static NTSTATUS smbXsrv_open_global_store( struct db_record *rec, TDB_DATA key, TDB_DATA oldval, - struct smbXsrv_open_global0 *global) + struct smbXsrv_open_global *global) { struct smbXsrv_open_globalB global_blob; DATA_BLOB blob = data_blob_null; @@ -369,7 +369,7 @@ static NTSTATUS smbXsrv_open_global_store( int dbwrap_flags = DBWRAP_REPLACE; /* - * TODO: if we use other versions than '0' + * TODO: if we use other versions than '1' * we would add glue code here, that would be able to * store the information in the old format. */ @@ -382,7 +382,7 @@ static NTSTATUS smbXsrv_open_global_store( global_blob.seqnum = IVAL(oldval.dptr, 4); } global_blob.seqnum += 1; - global_blob.info.info0 = global; + global_blob.info.info1 = global; ndr_err = ndr_push_struct_blob(&blob, talloc_tos(), &global_blob, (ndr_push_flags_fn_t)ndr_push_smbXsrv_open_globalB); @@ -417,7 +417,7 @@ static NTSTATUS smbXsrv_open_global_store( struct smbXsrv_open_global_allocate_state { uint32_t id; - struct smbXsrv_open_global0 *global; + struct smbXsrv_open_global *global; NTSTATUS status; }; @@ -425,18 +425,18 @@ static void smbXsrv_open_global_allocate_fn( struct db_record *rec, TDB_DATA oldval, void *private_data) { struct smbXsrv_open_global_allocate_state *state = private_data; - struct smbXsrv_open_global0 *global = state->global; - struct smbXsrv_open_global0 *tmp_global0 = NULL; + struct smbXsrv_open_global *global = state->global; + struct smbXsrv_open_global *tmp_global = NULL; TDB_DATA key = dbwrap_record_get_key(rec); state->status = smbXsrv_open_global_verify_record( - key, oldval, talloc_tos(), &tmp_global0); + key, oldval, talloc_tos(), &tmp_global); if (!NT_STATUS_EQUAL(state->status, NT_STATUS_NOT_FOUND)) { /* * Found an existing record */ - TALLOC_FREE(tmp_global0); + TALLOC_FREE(tmp_global); state->status = NT_STATUS_RETRY; return; } @@ -462,7 +462,7 @@ static void smbXsrv_open_global_allocate_fn( if (NT_STATUS_EQUAL(state->status, NT_STATUS_FATAL_APP_EXIT)) { NTSTATUS status; - TALLOC_FREE(tmp_global0); + TALLOC_FREE(tmp_global); /* * smbd crashed @@ -481,7 +481,7 @@ static void smbXsrv_open_global_allocate_fn( } static NTSTATUS smbXsrv_open_global_allocate( - struct db_context *db, struct smbXsrv_open_global0 *global) + struct db_context *db, struct smbXsrv_open_global *global) { struct smbXsrv_open_global_allocate_state state = { .global = global, @@ -587,7 +587,7 @@ NTSTATUS smbXsrv_open_create(struct smbXsrv_connection *conn, struct smbXsrv_open_table *table = conn->client->open_table; struct auth_session_info *session_info = NULL; struct smbXsrv_open *op = NULL; - struct smbXsrv_open_global0 *global = NULL; + struct smbXsrv_open_global *global = NULL; NTSTATUS status; struct dom_sid *current_sid = NULL; struct security_token *current_token = NULL; @@ -619,7 +619,7 @@ NTSTATUS smbXsrv_open_create(struct smbXsrv_connection *conn, op->session = session; op->tcon = tcon; - global = talloc_zero(op, struct smbXsrv_open_global0); + global = talloc_zero(op, struct smbXsrv_open_global); if (global == NULL) { TALLOC_FREE(op); return NT_STATUS_NO_MEMORY; @@ -674,8 +674,8 @@ NTSTATUS smbXsrv_open_create(struct smbXsrv_connection *conn, if (CHECK_DEBUGLVL(10)) { struct smbXsrv_openB open_blob = { - .version = SMBXSRV_VERSION_0, - .info.info0 = op, + .version = SMBXSRV_VERSION_1, + .info.info1 = op, }; DEBUG(10,("smbXsrv_open_create: global_id (0x%08x) stored\n", @@ -826,7 +826,7 @@ static NTSTATUS smbXsrv_open_clear_replay_cache(struct smbXsrv_open *op) } struct smbXsrv_open_update_state { - struct smbXsrv_open_global0 *global; + struct smbXsrv_open_global *global; NTSTATUS status; }; @@ -875,8 +875,8 @@ NTSTATUS smbXsrv_open_update(struct smbXsrv_open *op) if (CHECK_DEBUGLVL(10)) { struct smbXsrv_openB open_blob = { - .version = SMBXSRV_VERSION_0, - .info.info0 = op, + .version = SMBXSRV_VERSION_1, + .info.info1 = op, }; DEBUG(10,("smbXsrv_open_update: global_id (0x%08x) stored\n", @@ -896,7 +896,7 @@ static void smbXsrv_open_close_fn( struct db_record *rec, TDB_DATA oldval, void *private_data) { struct smbXsrv_open_close_state *state = private_data; - struct smbXsrv_open_global0 *global = state->op->global; + struct smbXsrv_open_global *global = state->op->global; TDB_DATA key = dbwrap_record_get_key(rec); if (global->durable) { @@ -915,8 +915,8 @@ static void smbXsrv_open_close_fn( if (CHECK_DEBUGLVL(10)) { struct smbXsrv_openB open_blob = { - .version = SMBXSRV_VERSION_0, - .info.info0 = state->op, + .version = SMBXSRV_VERSION_1, + .info.info1 = state->op, }; DBG_DEBUG("(0x%08x) stored disconnect\n", @@ -937,7 +937,7 @@ static void smbXsrv_open_close_fn( NTSTATUS smbXsrv_open_close(struct smbXsrv_open *op, NTTIME now) { struct smbXsrv_open_close_state state = { .op = op, }; - struct smbXsrv_open_global0 *global = op->global; + struct smbXsrv_open_global *global = op->global; struct smbXsrv_open_table *table; NTSTATUS status; NTSTATUS error = NT_STATUS_OK; @@ -1158,7 +1158,7 @@ NTSTATUS smb2srv_open_lookup_replay_cache(struct smbXsrv_connection *conn, struct GUID_txt_buf _create_guid_buf; const char *create_guid_str = GUID_buf_string(&create_guid, &_create_guid_buf); struct db_record *db_rec = NULL; - const struct smbXsrv_open_global0 *global = NULL; + const struct smbXsrv_open_global *global = NULL; struct smbXsrv_open *op = NULL; uint32_t open_global_id; struct smbXsrv_open_replay_cache_key_buf key_buf; @@ -1243,7 +1243,7 @@ NTSTATUS smb2srv_open_lookup_replay_cache(struct smbXsrv_connection *conn, } if (CHECK_DEBUGLVL(DBGLVL_DEBUG)) { - NDR_PRINT_DEBUG(smbXsrv_open_global0, global); + NDR_PRINT_DEBUG(smbXsrv_open_global, global); } status = smbXsrv_open_local_lookup(table, @@ -1292,7 +1292,7 @@ static void smb2srv_open_recreate_fn( { struct smb2srv_open_recreate_state *state = private_data; TDB_DATA key = dbwrap_record_get_key(rec); - struct smbXsrv_open_global0 *global = NULL; + struct smbXsrv_open_global *global = NULL; struct GUID_txt_buf buf1, buf2; state->status = smbXsrv_open_global_verify_record( @@ -1463,7 +1463,8 @@ NTSTATUS smb2srv_open_recreate(struct smbXsrv_connection *conn, if (CHECK_DEBUGLVL(10)) { struct smbXsrv_openB open_blob = { - .info.info0 = state.op, + .version = SMBXSRV_VERSION_1, + .info.info1 = state.op, }; DBG_DEBUG("global_id (0x%08x) stored\n", state.op->global->open_global_id); @@ -1484,7 +1485,7 @@ fail: struct smbXsrv_open_global_traverse_state { int (*fn)(struct db_record *rec, - struct smbXsrv_open_global0 *global, + struct smbXsrv_open_global *global, TDB_DATA *rc_open_global_key, void *private_data); void *private_data; @@ -1494,7 +1495,7 @@ static int smbXsrv_open_global_traverse_fn(struct db_record *rec, void *data) { struct smbXsrv_open_global_traverse_state *state = (struct smbXsrv_open_global_traverse_state*)data; - struct smbXsrv_open_global0 *global = NULL; + struct smbXsrv_open_global *global = NULL; TDB_DATA key = dbwrap_record_get_key(rec); TDB_DATA val = dbwrap_record_get_value(rec); NTSTATUS status; @@ -1522,7 +1523,7 @@ static int smbXsrv_open_global_traverse_fn(struct db_record *rec, void *data) NTSTATUS smbXsrv_open_global_traverse( int (*fn)(struct db_record *rec, - struct smbXsrv_open_global0 *global, + struct smbXsrv_open_global *global, TDB_DATA *rc_open_global_key, void *private_data), void *private_data) @@ -1564,7 +1565,7 @@ static void smbXsrv_open_cleanup_fn( struct db_record *rec, TDB_DATA oldval, void *private_data) { struct smbXsrv_open_cleanup_state *state = private_data; - struct smbXsrv_open_global0 *global = NULL; + struct smbXsrv_open_global *global = NULL; TDB_DATA key = dbwrap_record_get_key(rec); bool delete_open = false; @@ -1709,7 +1710,7 @@ NTSTATUS smbXsrv_replay_cleanup(const struct GUID *client_guid, NTSTATUS smbXsrv_open_global_traverse_per_rec_persistent_read( int (*fn)(struct db_record *rec, - struct smbXsrv_open_global0 *global, + struct smbXsrv_open_global *global, TDB_DATA *rc_open_global_key, void *private_data), void *private_data) diff --git a/source3/smbd/smbXsrv_open.h b/source3/smbd/smbXsrv_open.h index 60b17f0dd21..e7b5190a784 100644 --- a/source3/smbd/smbXsrv_open.h +++ b/source3/smbd/smbXsrv_open.h @@ -30,7 +30,7 @@ struct smbXsrv_connection; struct auth_session_info; struct smbXsrv_open; -struct smbXsrv_open_global0; +struct smbXsrv_open_global; struct smbXsrv_client; NTSTATUS smbXsrv_open_global_init(void); @@ -55,11 +55,11 @@ NTSTATUS smb2srv_open_lookup(struct smbXsrv_connection *conn, struct smbXsrv_open **_open); NTSTATUS smbXsrv_open_global_lookup(TALLOC_CTX *mem_ctx, uint32_t open_global_id, - const struct smbXsrv_open_global0 **global); + const struct smbXsrv_open_global **global); NTSTATUS smbXsrv_open_global_parse_record(TALLOC_CTX *mem_ctx, TDB_DATA key, TDB_DATA val, - struct smbXsrv_open_global0 **global); + struct smbXsrv_open_global **global); NTSTATUS smbXsrv_open_purge_replay_cache(struct smbXsrv_client *client, const struct GUID *create_guid); @@ -85,13 +85,13 @@ NTSTATUS smb2srv_open_recreate(struct smbXsrv_connection *conn, struct db_record; NTSTATUS smbXsrv_open_global_traverse( int (*fn)(struct db_record *rec, - struct smbXsrv_open_global0 *global, + struct smbXsrv_open_global *global, TDB_DATA *rc_open_global_key, void *private_data), void *private_data); NTSTATUS smbXsrv_open_global_traverse_per_rec_persistent_read( int (*fn)(struct db_record *rec, - struct smbXsrv_open_global0 *global, + struct smbXsrv_open_global *global, TDB_DATA *rc_open_global_key, void *private_data), void *private_data); diff --git a/source3/smbd/smbXsrv_session.c b/source3/smbd/smbXsrv_session.c index cf1b923103d..031c885b119 100644 --- a/source3/smbd/smbXsrv_session.c +++ b/source3/smbd/smbXsrv_session.c @@ -285,7 +285,7 @@ static void smbXsrv_session_close_loop(struct tevent_req *subreq) struct messaging_rec *rec = NULL; struct smbXsrv_session_closeB close_blob; enum ndr_err_code ndr_err; - struct smbXsrv_session_close0 *close_info0 = NULL; + struct smbXsrv_session_close *close_info = NULL; struct smbXsrv_session *session = NULL; NTSTATUS status; struct timeval tv = timeval_current(); @@ -310,25 +310,25 @@ static void smbXsrv_session_close_loop(struct tevent_req *subreq) NDR_PRINT_DEBUG(smbXsrv_session_closeB, &close_blob); } - if (close_blob.version != SMBXSRV_VERSION_0) { + if (close_blob.version != SMBXSRV_VERSION_1) { DBG_ERR("ignore invalid version %u\n", close_blob.version); NDR_PRINT_DEBUG(smbXsrv_session_closeB, &close_blob); goto next; } - close_info0 = close_blob.info.info0; - if (close_info0 == NULL) { + close_info = close_blob.info.info1; + if (close_info == NULL) { DBG_ERR("ignore NULL info %u\n", close_blob.version); NDR_PRINT_DEBUG(smbXsrv_session_closeB, &close_blob); goto next; } status = smb2srv_session_lookup_client(client, - close_info0->old_session_wire_id, + close_info->old_session_wire_id, now, &session); if (NT_STATUS_EQUAL(status, NT_STATUS_USER_SESSION_DELETED)) { DBG_INFO("old_session_wire_id %" PRIu64 " not found\n", - close_info0->old_session_wire_id); + close_info->old_session_wire_id); if (DEBUGLVL(DBGLVL_INFO)) { NDR_PRINT_DEBUG(smbXsrv_session_closeB, &close_blob); } @@ -338,7 +338,7 @@ static void smbXsrv_session_close_loop(struct tevent_req *subreq) !NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED) && !NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_SESSION_EXPIRED)) { DBG_WARNING("old_session_wire_id %" PRIu64 " - %s\n", - close_info0->old_session_wire_id, + close_info->old_session_wire_id, nt_errstr(status)); if (DEBUGLVL(DBGLVL_WARNING)) { NDR_PRINT_DEBUG(smbXsrv_session_closeB, &close_blob); @@ -346,28 +346,28 @@ static void smbXsrv_session_close_loop(struct tevent_req *subreq) goto next; } - if (session->global->session_global_id != close_info0->old_session_global_id) { + if (session->global->session_global_id != close_info->old_session_global_id) { DBG_WARNING("old_session_wire_id %" PRIu64 " - " "global %" PRIu32 " != %" PRIu32 "\n", - close_info0->old_session_wire_id, + close_info->old_session_wire_id, session->global->session_global_id, - close_info0->old_session_global_id); + close_info->old_session_global_id); if (DEBUGLVL(DBGLVL_WARNING)) { NDR_PRINT_DEBUG(smbXsrv_session_closeB, &close_blob); } goto next; } - if (session->global->creation_time != close_info0->old_creation_time) { + if (session->global->creation_time != close_info->old_creation_time) { DBG_WARNING("old_session_wire_id %" PRIu64 " - " "creation %s (%" PRIu64 ") != %s (%" PRIu64 ")\n", - close_info0->old_session_wire_id, + close_info->old_session_wire_id, nt_time_string(rec, session->global->creation_time), session->global->creation_time, nt_time_string(rec, - close_info0->old_creation_time), - close_info0->old_creation_time); + close_info->old_creation_time), + close_info->old_creation_time); if (DEBUGLVL(DBGLVL_WARNING)) { NDR_PRINT_DEBUG(smbXsrv_session_closeB, &close_blob); } @@ -671,7 +671,7 @@ static NTSTATUS smbXsrv_session_local_lookup(struct smbXsrv_session_table *table * valid on the channel. */ if (conn != NULL) { - struct smbXsrv_channel_global0 *c = NULL; + struct smbXsrv_channel_global *c = NULL; status = smbXsrv_session_find_channel(state.session, conn, &c); if (!NT_STATUS_IS_OK(status)) { @@ -694,7 +694,7 @@ static NTSTATUS smbXsrv_session_local_lookup(struct smbXsrv_session_table *table return state.session->status; } -static int smbXsrv_session_global_destructor(struct smbXsrv_session_global0 *global) +static int smbXsrv_session_global_destructor(struct smbXsrv_session_global *global) { return 0; } @@ -703,21 +703,21 @@ static void smbXsrv_session_global_verify_record(struct db_record *db_rec, bool *is_free, bool *was_free, TALLOC_CTX *mem_ctx, - struct smbXsrv_session_global0 **_g, + struct smbXsrv_session_global **_g, uint32_t *pseqnum); static NTSTATUS smbXsrv_session_global_allocate(struct db_context *db, TALLOC_CTX *mem_ctx, - struct smbXsrv_session_global0 **_global) + struct smbXsrv_session_global **_global) { uint32_t i; - struct smbXsrv_session_global0 *global = NULL; + struct smbXsrv_session_global *global = NULL; uint32_t last_free = 0; const uint32_t min_tries = 3; *_global = NULL; - global = talloc_zero(mem_ctx, struct smbXsrv_session_global0); + global = talloc_zero(mem_ctx, struct smbXsrv_session_global); if (global == NULL) { return NT_STATUS_NO_MEMORY; } @@ -796,7 +796,7 @@ static void smbXsrv_session_global_verify_record(struct db_record *db_rec, bool *is_free, bool *was_free, TALLOC_CTX *mem_ctx, - struct smbXsrv_session_global0 **_g, + struct smbXsrv_session_global **_g, uint32_t *pseqnum) { TDB_DATA key; @@ -804,7 +804,7 @@ static void smbXsrv_session_global_verify_record(struct db_record *db_rec, DATA_BLOB blob; struct smbXsrv_session_globalB global_blob; enum ndr_err_code ndr_err; - struct smbXsrv_session_global0 *global = NULL; + struct smbXsrv_session_global *global = NULL; bool exists; TALLOC_CTX *frame = talloc_stackframe(); @@ -854,7 +854,7 @@ static void smbXsrv_session_global_verify_record(struct db_record *db_rec, NDR_PRINT_DEBUG(smbXsrv_session_globalB, &global_blob); } - if (global_blob.version != SMBXSRV_VERSION_0) { + if (global_blob.version != SMBXSRV_VERSION_1) { DBG_ERR("key '%s' use unsupported version %u\n", tdb_data_dbg(key), global_blob.version); @@ -867,7 +867,7 @@ static void smbXsrv_session_global_verify_record(struct db_record *db_rec, return; } - global = global_blob.info.info0; + global = global_blob.info.info1; #define __BLOB_KEEP_SECRET(__blob) do { \ if ((__blob).length != 0) { \ @@ -911,7 +911,7 @@ static void smbXsrv_session_global_verify_record(struct db_record *db_rec, TALLOC_FREE(frame); } -static NTSTATUS smbXsrv_session_global_store(struct smbXsrv_session_global0 *global) +static NTSTATUS smbXsrv_session_global_store(struct smbXsrv_session_global *global) { struct smbXsrv_session_globalB global_blob; DATA_BLOB blob = data_blob_null; @@ -921,7 +921,7 @@ static NTSTATUS smbXsrv_session_global_store(struct smbXsrv_session_global0 *glo enum ndr_err_code ndr_err; /* - * TODO: if we use other versions than '0' + * TODO: if we use other versions than '1' * we would add glue code here, that would be able to * store the information in the old format. */ @@ -931,7 +931,7 @@ static NTSTATUS smbXsrv_session_global_store(struct smbXsrv_session_global0 *glo global_blob = (struct smbXsrv_session_globalB){ .version = smbXsrv_version_global_current(), - .info.info0 = global, + .info.info1 = global, }; if (val.dsize >= 8) { @@ -1077,9 +1077,9 @@ static void smb2srv_session_close_previous_check(struct tevent_req *req) struct smbXsrv_connection *conn = state->connection; DATA_BLOB blob; struct security_token *previous_token = NULL; - struct smbXsrv_session_global0 *global = NULL; + struct smbXsrv_session_global *global = NULL; enum ndr_err_code ndr_err; - struct smbXsrv_session_close0 close_info0; + struct smbXsrv_session_close close_info; struct smbXsrv_session_closeB close_blob; struct tevent_req *subreq = NULL; NTSTATUS status; @@ -1141,7 +1141,7 @@ static void smb2srv_session_close_previous_check(struct tevent_req *req) smb2srv_session_close_previous_modified, req); - close_info0 = (struct smbXsrv_session_close0){ + close_info = (struct smbXsrv_session_close) { .old_session_global_id = global->session_global_id, .old_session_wire_id = global->session_wire_id, .old_creation_time = global->creation_time, @@ -1150,7 +1150,7 @@ static void smb2srv_session_close_previous_check(struct tevent_req *req) close_blob = (struct smbXsrv_session_closeB){ .version = smbXsrv_version_global_current(), - .info.info0 = &close_info0, + .info.info1 = &close_info, }; ndr_err = ndr_push_struct_blob(&blob, state, &close_blob, @@ -1159,8 +1159,8 @@ static void smb2srv_session_close_previous_check(struct tevent_req *req) status = ndr_map_error2ntstatus(ndr_err); DBG_WARNING("old_session[%" PRIu64 "] " "new_session[%" PRIu64 "] ndr_push - %s\n", - close_info0.old_session_wire_id, - close_info0.new_session_wire_id, + close_info.old_session_wire_id, + close_info.new_session_wire_id, nt_errstr(status)); tevent_req_nterror(req, status); return; @@ -1283,8 +1283,8 @@ NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn, struct smbXsrv_session *session = NULL; void *ptr = NULL; TDB_DATA val; - struct smbXsrv_session_global0 *global = NULL; - struct smbXsrv_channel_global0 *channel = NULL; + struct smbXsrv_session_global *global = NULL; + struct smbXsrv_channel_global *channel = NULL; NTSTATUS status; if (table->local.num_sessions >= table->local.max_sessions) { @@ -1388,8 +1388,8 @@ NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn, if (DEBUGLVL(DBGLVL_DEBUG)) { struct smbXsrv_sessionB session_blob = { - .version = SMBXSRV_VERSION_0, - .info.info0 = session, + .version = SMBXSRV_VERSION_1, + .info.info1 = session, }; DBG_DEBUG("global_id (0x%08x) stored\n", @@ -1404,10 +1404,10 @@ NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn, NTSTATUS smbXsrv_session_add_channel(struct smbXsrv_session *session, struct smbXsrv_connection *conn, NTTIME now, - struct smbXsrv_channel_global0 **_c) + struct smbXsrv_channel_global **_c) { - struct smbXsrv_session_global0 *global = session->global; - struct smbXsrv_channel_global0 *c = NULL; + struct smbXsrv_session_global *global = session->global; + struct smbXsrv_channel_global *c = NULL; if (global->num_channels > 31) { /* @@ -1418,7 +1418,7 @@ NTSTATUS smbXsrv_session_add_channel(struct smbXsrv_session *session, c = talloc_realloc(global, global->channels, - struct smbXsrv_channel_global0, + struct smbXsrv_channel_global, global->num_channels + 1); if (c == NULL) { return NT_STATUS_NO_MEMORY; @@ -1427,7 +1427,7 @@ NTSTATUS smbXsrv_session_add_channel(struct smbXsrv_session *session, c = &global->channels[global->num_channels]; - *c = (struct smbXsrv_channel_global0){ + *c = (struct smbXsrv_channel_global) { .server_id = messaging_server_id(conn->client->msg_ctx), .channel_id = conn->channel_id, .creation_time = now, @@ -1494,8 +1494,8 @@ NTSTATUS smbXsrv_session_update(struct smbXsrv_session *session) if (DEBUGLVL(DBGLVL_DEBUG)) { struct smbXsrv_sessionB session_blob = { - .version = SMBXSRV_VERSION_0, - .info.info0 = session, + .version = SMBXSRV_VERSION_1, + .info.info1 = session, }; DBG_DEBUG("global_id (0x%08x) stored\n", @@ -1508,12 +1508,12 @@ NTSTATUS smbXsrv_session_update(struct smbXsrv_session *session) NTSTATUS smbXsrv_session_find_channel(const struct smbXsrv_session *session, const struct smbXsrv_connection *conn, - struct smbXsrv_channel_global0 **_c) + struct smbXsrv_channel_global **_c) { uint32_t i; for (i=0; i < session->global->num_channels; i++) { - struct smbXsrv_channel_global0 *c = &session->global->channels[i]; + struct smbXsrv_channel_global *c = &session->global->channels[i]; if (c->channel_id != conn->channel_id) { continue; @@ -1533,9 +1533,9 @@ NTSTATUS smbXsrv_session_find_channel(const struct smbXsrv_session *session, NTSTATUS smbXsrv_session_find_auth(const struct smbXsrv_session *session, const struct smbXsrv_connection *conn, NTTIME now, - struct smbXsrv_session_auth0 **_a) + struct smbXsrv_session_auth **_a) { - struct smbXsrv_session_auth0 *a; + struct smbXsrv_session_auth *a = NULL; for (a = session->pending_auth; a != NULL; a = a->next) { if (a->channel_id != conn->channel_id) { @@ -1554,7 +1554,7 @@ NTSTATUS smbXsrv_session_find_auth(const struct smbXsrv_session *session, return NT_STATUS_USER_SESSION_DELETED; } -static int smbXsrv_session_auth0_destructor(struct smbXsrv_session_auth0 *a) +static int smbXsrv_session_auth_destructor(struct smbXsrv_session_auth *a) { if (a->session == NULL) { return 0; @@ -1570,9 +1570,9 @@ NTSTATUS smbXsrv_session_create_auth(struct smbXsrv_session *session, NTTIME now, uint8_t in_flags, uint8_t in_security_mode, - struct smbXsrv_session_auth0 **_a) + struct smbXsrv_session_auth **_a) { - struct smbXsrv_session_auth0 *a; + struct smbXsrv_session_auth *a = NULL; NTSTATUS status; status = smbXsrv_session_find_auth(session, conn, 0, &a); @@ -1580,12 +1580,12 @@ NTSTATUS smbXsrv_session_create_auth(struct smbXsrv_session *session, return NT_STATUS_INTERNAL_ERROR; } - a = talloc(session, struct smbXsrv_session_auth0); + a = talloc(session, struct smbXsrv_session_auth); if (a == NULL) { return NT_STATUS_NO_MEMORY; } - *a = (struct smbXsrv_session_auth0){ + *a = (struct smbXsrv_session_auth) { .session = session, .connection = conn, .in_flags = in_flags, @@ -1604,7 +1604,7 @@ NTSTATUS smbXsrv_session_create_auth(struct smbXsrv_session *session, *a->preauth = conn->smb2.preauth; } - talloc_set_destructor(a, smbXsrv_session_auth0_destructor); + talloc_set_destructor(a, smbXsrv_session_auth_destructor); DLIST_ADD_END(session->pending_auth, a); *_a = a; @@ -1616,8 +1616,8 @@ static void smbXsrv_session_remove_channel_done(struct tevent_req *subreq); NTSTATUS smbXsrv_session_remove_channel(struct smbXsrv_session *session, struct smbXsrv_connection *xconn) { - struct smbXsrv_session_auth0 *a = NULL; - struct smbXsrv_channel_global0 *c = NULL; + struct smbXsrv_session_auth *a = NULL; + struct smbXsrv_channel_global *c = NULL; NTSTATUS status; bool need_update = false; @@ -1631,13 +1631,13 @@ NTSTATUS smbXsrv_session_remove_channel(struct smbXsrv_session *session, } if (a != NULL) { - smbXsrv_session_auth0_destructor(a); + smbXsrv_session_auth_destructor(a); a->connection = NULL; need_update = true; } if (c != NULL) { - struct smbXsrv_session_global0 *global = session->global; + struct smbXsrv_session_global *global = session->global; ptrdiff_t n; n = (c - global->channels); @@ -2470,7 +2470,7 @@ NTSTATUS smb2srv_session_lookup_client(struct smbXsrv_client *client, } struct smbXsrv_session_global_traverse_state { - int (*fn)(struct smbXsrv_session_global0 *, void *); + int (*fn)(struct smbXsrv_session_global *, void *); void *private_data; }; @@ -2496,7 +2496,7 @@ static int smbXsrv_session_global_traverse_fn(struct db_record *rec, void *data) goto done; } - if (global_blob.version != SMBXSRV_VERSION_0) { + if (global_blob.version != SMBXSRV_VERSION_1) { DBG_WARNING("Invalid record in smbXsrv_session_global.tdb:" "key '%s' unsupported version - %d\n", tdb_data_dbg(key), @@ -2504,22 +2504,22 @@ static int smbXsrv_session_global_traverse_fn(struct db_record *rec, void *data) goto done; } - if (global_blob.info.info0 == NULL) { + if (global_blob.info.info1 == NULL) { DBG_WARNING("Invalid record in smbXsrv_tcon_global.tdb:" "key '%s' info0 NULL pointer\n", tdb_data_dbg(key)); goto done; } - global_blob.info.info0->db_rec = rec; - ret = state->fn(global_blob.info.info0, state->private_data); + global_blob.info.info1->db_rec = rec; + ret = state->fn(global_blob.info.info1, state->private_data); done: TALLOC_FREE(frame); return ret; } NTSTATUS smbXsrv_session_global_traverse( - int (*fn)(struct smbXsrv_session_global0 *, void *), + int (*fn)(struct smbXsrv_session_global *, void *), void *private_data) { diff --git a/source3/smbd/smbXsrv_session.h b/source3/smbd/smbXsrv_session.h index 4c1262c700b..82351132a06 100644 --- a/source3/smbd/smbXsrv_session.h +++ b/source3/smbd/smbXsrv_session.h @@ -30,9 +30,9 @@ struct messaging_context; struct smbXsrv_client; struct smbXsrv_connection; struct smbXsrv_session; -struct smbXsrv_session_global0; -struct smbXsrv_channel_global0; -struct smbXsrv_session_auth0; +struct smbXsrv_session_global; +struct smbXsrv_channel_global; +struct smbXsrv_session_auth; NTSTATUS smbXsrv_session_global_init(struct messaging_context *msg_ctx); NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn, @@ -41,24 +41,24 @@ NTSTATUS smbXsrv_session_create(struct smbXsrv_connection *conn, NTSTATUS smbXsrv_session_add_channel(struct smbXsrv_session *session, struct smbXsrv_connection *conn, NTTIME now, - struct smbXsrv_channel_global0 **_c); + struct smbXsrv_channel_global **_c); NTSTATUS smbXsrv_session_remove_channel(struct smbXsrv_session *session, struct smbXsrv_connection *xconn); NTSTATUS smbXsrv_session_disconnect_xconn(struct smbXsrv_connection *xconn); NTSTATUS smbXsrv_session_update(struct smbXsrv_session *session); NTSTATUS smbXsrv_session_find_channel(const struct smbXsrv_session *session, const struct smbXsrv_connection *conn, - struct smbXsrv_channel_global0 **_c); + struct smbXsrv_channel_global **_c); NTSTATUS smbXsrv_session_find_auth(const struct smbXsrv_session *session, const struct smbXsrv_connection *conn, NTTIME now, - struct smbXsrv_session_auth0 **_a); + struct smbXsrv_session_auth **_a); NTSTATUS smbXsrv_session_create_auth(struct smbXsrv_session *session, struct smbXsrv_connection *conn, NTTIME now, uint8_t in_flags, uint8_t in_security_mode, - struct smbXsrv_session_auth0 **_a); + struct smbXsrv_session_auth **_a); struct tevent_req *smb2srv_session_shutdown_send( TALLOC_CTX *mem_ctx, struct tevent_context *ev, @@ -96,7 +96,7 @@ NTSTATUS smbXsrv_session_local_traverse( int (*caller_cb)(struct smbXsrv_session *session, void *caller_data), void *caller_data); NTSTATUS smbXsrv_session_global_traverse( - int (*fn)(struct smbXsrv_session_global0 *, void *), + int (*fn)(struct smbXsrv_session_global *, void *), void *private_data); struct tevent_req *smb2srv_session_close_previous_send( TALLOC_CTX *mem_ctx, diff --git a/source3/smbd/smbXsrv_tcon.c b/source3/smbd/smbXsrv_tcon.c index c451d9121c1..2fb5e0fa647 100644 --- a/source3/smbd/smbXsrv_tcon.c +++ b/source3/smbd/smbXsrv_tcon.c @@ -469,7 +469,7 @@ static NTSTATUS smbXsrv_tcon_local_lookup(struct smbXsrv_tcon_table *table, return state.tcon->status; } -static int smbXsrv_tcon_global_destructor(struct smbXsrv_tcon_global0 *global) +static int smbXsrv_tcon_global_destructor(struct smbXsrv_tcon_global *global) { return 0; } @@ -478,20 +478,20 @@ static void smbXsrv_tcon_global_verify_record(struct db_record *db_rec, bool *is_free, bool *was_free, TALLOC_CTX *mem_ctx, - struct smbXsrv_tcon_global0 **_g); + struct smbXsrv_tcon_global **_g); static NTSTATUS smbXsrv_tcon_global_allocate(struct db_context *db, TALLOC_CTX *mem_ctx, - struct smbXsrv_tcon_global0 **_global) + struct smbXsrv_tcon_global **_global) { uint32_t i; - struct smbXsrv_tcon_global0 *global = NULL; + struct smbXsrv_tcon_global *global = NULL; uint32_t last_free = 0; const uint32_t min_tries = 3; *_global = NULL; - global = talloc_zero(mem_ctx, struct smbXsrv_tcon_global0); + global = talloc_zero(mem_ctx, struct smbXsrv_tcon_global); if (global == NULL) { return NT_STATUS_NO_MEMORY; } @@ -570,14 +570,14 @@ static void smbXsrv_tcon_global_verify_record(struct db_record *db_rec, bool *is_free, bool *was_free, TALLOC_CTX *mem_ctx, - struct smbXsrv_tcon_global0 **_g) + struct smbXsrv_tcon_global **_g) { TDB_DATA key; TDB_DATA val; DATA_BLOB blob; struct smbXsrv_tcon_globalB global_blob; enum ndr_err_code ndr_err; - struct smbXsrv_tcon_global0 *global = NULL; + struct smbXsrv_tcon_global *global = NULL; bool exists; TALLOC_CTX *frame = talloc_stackframe(); @@ -620,7 +620,7 @@ static void smbXsrv_tcon_global_verify_record(struct db_record *db_rec, NDR_PRINT_DEBUG(smbXsrv_tcon_globalB, &global_blob); } - if (global_blob.version != SMBXSRV_VERSION_0) { + if (global_blob.version != SMBXSRV_VERSION_1) { DBG_ERR("key '%s' uses unsupported version %u\n", tdb_data_dbg(key), global_blob.version); @@ -629,7 +629,7 @@ static void smbXsrv_tcon_global_verify_record(struct db_record *db_rec, return; } - global = global_blob.info.info0; + global = global_blob.info.info1; exists = serverid_exists(&global->server_id); if (!exists) { @@ -652,7 +652,7 @@ static void smbXsrv_tcon_global_verify_record(struct db_record *db_rec, TALLOC_FREE(frame); } -static NTSTATUS smbXsrv_tcon_global_store(struct smbXsrv_tcon_global0 *global) +static NTSTATUS smbXsrv_tcon_global_store(struct smbXsrv_tcon_global *global) { struct smbXsrv_tcon_globalB global_blob; DATA_BLOB blob = data_blob_null; @@ -662,7 +662,7 @@ static NTSTATUS smbXsrv_tcon_global_store(struct smbXsrv_tcon_global0 *global) enum ndr_err_code ndr_err; /* - * TODO: if we use other versions than '0' + * TODO: if we use other versions than '1' * we would add glue code here, that would be able to * store the information in the old format. */ @@ -680,7 +680,7 @@ static NTSTATUS smbXsrv_tcon_global_store(struct smbXsrv_tcon_global0 *global) global_blob.seqnum = IVAL(val.dptr, 4); } global_blob.seqnum += 1; - global_blob.info.info0 = global; + global_blob.info.info1 = global; ndr_err = ndr_push_struct_blob(&blob, global->db_rec, &global_blob, (ndr_push_flags_fn_t)ndr_push_smbXsrv_tcon_globalB); @@ -741,7 +741,7 @@ static NTSTATUS smbXsrv_tcon_create(struct smbXsrv_tcon_table *table, struct smbXsrv_tcon *tcon = NULL; void *ptr = NULL; TDB_DATA val; - struct smbXsrv_tcon_global0 *global = NULL; + struct smbXsrv_tcon_global *global = NULL; NTSTATUS status; if (table->local.num_tcons >= table->local.max_tcons) { @@ -835,8 +835,8 @@ static NTSTATUS smbXsrv_tcon_create(struct smbXsrv_tcon_table *table, if (DEBUGLVL(DBGLVL_DEBUG)) { struct smbXsrv_tconB tcon_blob = { - .version = SMBXSRV_VERSION_0, - .info.info0 = tcon, + .version = SMBXSRV_VERSION_1, + .info.info1 = tcon, }; DBG_DEBUG("global_id (0x%08x) stored\n", @@ -878,8 +878,8 @@ NTSTATUS smbXsrv_tcon_update(struct smbXsrv_tcon *tcon) if (DEBUGLVL(DBGLVL_DEBUG)) { struct smbXsrv_tconB tcon_blob = { - .version = SMBXSRV_VERSION_0, - .info.info0 = tcon, + .version = SMBXSRV_VERSION_1, + .info.info1 = tcon, }; DBG_DEBUG("global_id (0x%08x) stored\n", @@ -1194,7 +1194,7 @@ NTSTATUS smb2srv_tcon_disconnect_all(struct smbXsrv_session *session) } struct smbXsrv_tcon_global_traverse_state { - int (*fn)(struct smbXsrv_tcon_global0 *, void *); + int (*fn)(struct smbXsrv_tcon_global *, void *); void *private_data; }; @@ -1220,7 +1220,7 @@ static int smbXsrv_tcon_global_traverse_fn(struct db_record *rec, void *data) goto done; } - if (global_blob.version != SMBXSRV_VERSION_0) { + if (global_blob.version != SMBXSRV_VERSION_1) { DBG_WARNING("Invalid record in smbXsrv_tcon_global.tdb:" "key '%s' unsupported version - %d\n", tdb_data_dbg(key), @@ -1228,22 +1228,22 @@ static int smbXsrv_tcon_global_traverse_fn(struct db_record *rec, void *data) goto done; } - if (global_blob.info.info0 == NULL) { + if (global_blob.info.info1 == NULL) { DBG_WARNING("Invalid record in smbXsrv_tcon_global.tdb:" "key '%s' info0 NULL pointer\n", tdb_data_dbg(key)); goto done; } - global_blob.info.info0->db_rec = rec; - ret = state->fn(global_blob.info.info0, state->private_data); + global_blob.info.info1->db_rec = rec; + ret = state->fn(global_blob.info.info1, state->private_data); done: TALLOC_FREE(frame); return ret; } NTSTATUS smbXsrv_tcon_global_traverse( - int (*fn)(struct smbXsrv_tcon_global0 *, void *), + int (*fn)(struct smbXsrv_tcon_global *, void *), void *private_data) { NTSTATUS status; diff --git a/source3/smbd/smbXsrv_version.c b/source3/smbd/smbXsrv_version.c index 02111126c44..cdbd0b67b54 100644 --- a/source3/smbd/smbXsrv_version.c +++ b/source3/smbd/smbXsrv_version.c @@ -56,11 +56,11 @@ NTSTATUS smbXsrv_version_global_init(const struct server_id *server_id) DATA_BLOB blob; struct smbXsrv_version_globalB global_blob; enum ndr_err_code ndr_err; - struct smbXsrv_version_global0 *global = NULL; + struct smbXsrv_version_global *global = NULL; uint32_t i; uint32_t num_valid = 0; - struct smbXsrv_version_node0 *valid = NULL; - struct smbXsrv_version_node0 *local_node = NULL; + struct smbXsrv_version_node *valid = NULL; + struct smbXsrv_version_node *local_node = NULL; bool exists; NTSTATUS status; const char *key_string = "smbXsrv_version_global"; @@ -110,15 +110,15 @@ NTSTATUS smbXsrv_version_global_init(const struct server_id *server_id) val = dbwrap_record_get_value(db_rec); if (val.dsize == 0) { - global = talloc_zero(frame, struct smbXsrv_version_global0); + global = talloc_zero(frame, struct smbXsrv_version_global); if (global == NULL) { DBG_ERR("talloc_zero failed - %s\n", __location__); TALLOC_FREE(frame); return NT_STATUS_NO_MEMORY; } global_blob = (struct smbXsrv_version_globalB) { - .version = SMBXSRV_VERSION_CURRENT, - .info.info0 = global, + .version = SMBXSRV_VERSION_1, + .info.info1 = global, }; } else { blob = data_blob_const(val.dptr, val.dsize); @@ -134,8 +134,8 @@ NTSTATUS smbXsrv_version_global_init(const struct server_id *server_id) } switch (global_blob.version) { - case SMBXSRV_VERSION_0: - global = global_blob.info.info0; + case SMBXSRV_VERSION_1: + global = global_blob.info.info1; if (global == NULL) { status = NT_STATUS_INTERNAL_DB_CORRUPTION; break; @@ -156,7 +156,7 @@ NTSTATUS smbXsrv_version_global_init(const struct server_id *server_id) } valid = talloc_zero_array(global, - struct smbXsrv_version_node0, + struct smbXsrv_version_node, global->num_nodes + 1); if (valid == NULL) { DBG_ERR("talloc_zero_array failed - %s\n", __location__); @@ -166,7 +166,7 @@ NTSTATUS smbXsrv_version_global_init(const struct server_id *server_id) num_valid = 0; for (i=0; i < global->num_nodes; i++) { - struct smbXsrv_version_node0 *n = &global->nodes[i]; + struct smbXsrv_version_node *n = &global->nodes[i]; exists = serverid_exists(&n->server_id); if (!exists) { @@ -209,9 +209,9 @@ NTSTATUS smbXsrv_version_global_init(const struct server_id *server_id) num_valid++; } - *local_node = (struct smbXsrv_version_node0){ + *local_node = (struct smbXsrv_version_node) { .server_id = *server_id, - .min_version = SMBXSRV_VERSION_0, + .min_version = SMBXSRV_VERSION_1, .max_version = SMBXSRV_VERSION_CURRENT, .current_version = global_blob.version, }; @@ -220,7 +220,7 @@ NTSTATUS smbXsrv_version_global_init(const struct server_id *server_id) global->nodes = valid; global_blob.seqnum += 1; - global_blob.info.info0 = global; + global_blob.info.info1 = global; ndr_err = ndr_push_struct_blob(&blob, db_rec, &global_blob, (ndr_push_flags_fn_t)ndr_push_smbXsrv_version_globalB); diff --git a/source3/smbd/smbd_cleanupd.c b/source3/smbd/smbd_cleanupd.c index 7d33ac8b1ca..313298d2aab 100644 --- a/source3/smbd/smbd_cleanupd.c +++ b/source3/smbd/smbd_cleanupd.c @@ -114,7 +114,7 @@ struct tevent_req *smbd_cleanupd_send(TALLOC_CTX *mem_ctx, } static int cleanup_ph_fn(struct db_record *dbrec, - struct smbXsrv_open_global0 *global, + struct smbXsrv_open_global *global, TDB_DATA *rc_open_global_key, void *private_data) { diff --git a/source3/utils/conn_tdb.c b/source3/utils/conn_tdb.c index ba584eef113..253c9baa038 100644 --- a/source3/utils/conn_tdb.c +++ b/source3/utils/conn_tdb.c @@ -49,7 +49,7 @@ struct connections_forall_session { bool authenticated; }; -static int collect_sessions_fn(struct smbXsrv_session_global0 *global, +static int collect_sessions_fn(struct smbXsrv_session_global *global, void *connections_forall_state) { NTSTATUS status; @@ -89,7 +89,7 @@ static int collect_sessions_fn(struct smbXsrv_session_global0 *global, return 0; } -static int traverse_tcon_fn(struct smbXsrv_tcon_global0 *global, +static int traverse_tcon_fn(struct smbXsrv_tcon_global *global, void *connections_forall_state) { NTSTATUS status; diff --git a/source3/utils/net_serverid.c b/source3/utils/net_serverid.c index 292686ec821..fe1e932a64c 100644 --- a/source3/utils/net_serverid.c +++ b/source3/utils/net_serverid.c @@ -131,7 +131,7 @@ done: return ret; } -static int wipedbs_traverse_sessions(struct smbXsrv_session_global0 *session, +static int wipedbs_traverse_sessions(struct smbXsrv_session_global *session, void *wipedbs_state) { struct wipedbs_state *state = @@ -186,7 +186,7 @@ done: return ret; } -static int wipedbs_traverse_tcon(struct smbXsrv_tcon_global0 *tcon, +static int wipedbs_traverse_tcon(struct smbXsrv_tcon_global *tcon, void *wipedbs_state) { struct wipedbs_state *state = @@ -297,7 +297,7 @@ done: } static int wipedbs_traverse_open(struct db_record *db_rec, - struct smbXsrv_open_global0 *open, + struct smbXsrv_open_global *open, TDB_DATA *rc_open_global_key, void *wipedbs_state) { @@ -569,7 +569,7 @@ static void wipedbs_delete_locking_record( struct wipedbs_delete_state *delete_state) { struct wipedbs_record_marker *cur = delete_state->cur; - struct smbXsrv_open_global0 *global = NULL; + struct smbXsrv_open_global *global = NULL; NTSTATUS status; bool ok; @@ -623,15 +623,15 @@ static void wipedbs_delete_replay_record( return; } - if (global_blob.version != SMBXSRV_VERSION_0) { + if (global_blob.version != SMBXSRV_VERSION_1) { DBG_ERR("Unsupported open record version %u\n", global_blob.version); TALLOC_FREE(mem_ctx); return; } - status = smbXsrv_replay_cleanup(&global_blob.info.info0->client_guid, - &global_blob.info.info0->create_guid); + status = smbXsrv_replay_cleanup(&global_blob.info.info1->client_guid, + &global_blob.info.info1->create_guid); TALLOC_FREE(mem_ctx); if (!NT_STATUS_IS_OK(status)) { DBG_ERR("Replay record cleanup failed\n"); diff --git a/source3/utils/status_json.c b/source3/utils/status_json.c index 04508c16ec2..cfc12180cae 100644 --- a/source3/utils/status_json.c +++ b/source3/utils/status_json.c @@ -327,7 +327,7 @@ failure: } static int add_channel_to_json(struct json_object *parent_json, - const struct smbXsrv_channel_global0 *channel) + const struct smbXsrv_channel_global *channel) { TALLOC_CTX *frame = talloc_stackframe(); struct json_object sub_json; @@ -413,7 +413,7 @@ failure: } static int add_channels_to_json(struct json_object *parent_json, - const struct smbXsrv_session_global0 *global) + const struct smbXsrv_session_global *global) { struct json_object sub_json; uint32_t i; @@ -425,7 +425,7 @@ static int add_channels_to_json(struct json_object *parent_json, } for (i = 0; i < global->num_channels; i++) { - const struct smbXsrv_channel_global0 *c = &global->channels[i]; + const struct smbXsrv_channel_global *c = &global->channels[i]; result = add_channel_to_json(&sub_json, c); if (result < 0) {