key = dbwrap_record_get_key(global->db_rec);
val = dbwrap_record_get_value(global->db_rec);
- ZERO_STRUCT(global_blob);
- global_blob.version = smbXsrv_version_global_current();
+ global_blob = (struct smbXsrv_session_globalB){
+ .version = smbXsrv_version_global_current(),
+ .info.info0 = global,
+ };
+
if (val.dsize >= 8) {
global_blob.seqnum = IVAL(val.dptr, 4);
}
global_blob.seqnum += 1;
- global_blob.info.info0 = global;
ndr_err = ndr_push_struct_blob(&blob, global->db_rec, &global_blob,
(ndr_push_flags_fn_t)ndr_push_smbXsrv_session_globalB);
smb2srv_session_close_previous_modified,
req);
- close_info0.old_session_global_id = global->session_global_id;
- close_info0.old_session_wire_id = global->session_wire_id;
- close_info0.old_creation_time = global->creation_time;
- close_info0.new_session_wire_id = state->current_session_id;
+ close_info0 = (struct smbXsrv_session_close0){
+ .old_session_global_id = global->session_global_id,
+ .old_session_wire_id = global->session_wire_id,
+ .old_creation_time = global->creation_time,
+ .new_session_wire_id = state->current_session_id,
+ };
- ZERO_STRUCT(close_blob);
- close_blob.version = smbXsrv_version_global_current();
- close_blob.info.info0 = &close_info0;
+ close_blob = (struct smbXsrv_session_closeB){
+ .version = smbXsrv_version_global_current(),
+ .info.info0 = &close_info0,
+ };
ndr_err = ndr_push_struct_blob(&blob, state, &close_blob,
(ndr_push_flags_fn_t)ndr_push_smbXsrv_session_closeB);
global->channels = c;
c = &global->channels[global->num_channels];
- ZERO_STRUCTP(c);
- c->server_id = messaging_server_id(conn->client->msg_ctx);
- c->channel_id = conn->channel_id;
- c->creation_time = now;
+ *c = (struct smbXsrv_channel_global0){
+ .server_id = messaging_server_id(conn->client->msg_ctx),
+ .channel_id = conn->channel_id,
+ .creation_time = now,
+ .connection = conn,
+ };
+
c->local_address = tsocket_address_string(conn->local_address,
global->channels);
if (c->local_address == NULL) {
if (c->remote_name == NULL) {
return NT_STATUS_NO_MEMORY;
}
- c->connection = conn;
global->num_channels += 1;
return NT_STATUS_INTERNAL_ERROR;
}
- a = talloc_zero(session, struct smbXsrv_session_auth0);
+ a = talloc(session, struct smbXsrv_session_auth0);
if (a == NULL) {
return NT_STATUS_NO_MEMORY;
}
- a->session = session;
- a->connection = conn;
- a->in_flags = in_flags;
- a->in_security_mode = in_security_mode;
- a->creation_time = now;
- a->idle_time = now;
- a->channel_id = conn->channel_id;
+
+ *a = (struct smbXsrv_session_auth0){
+ .session = session,
+ .connection = conn,
+ .in_flags = in_flags,
+ .in_security_mode = in_security_mode,
+ .creation_time = now,
+ .idle_time = now,
+ .channel_id = conn->channel_id,
+ };
if (conn->protocol >= PROTOCOL_SMB3_11) {
a->preauth = talloc(a, struct smbXsrv_preauth);
NTSTATUS smbXsrv_session_logoff_all(struct smbXsrv_client *client)
{
struct smbXsrv_session_table *table = client->session_table;
- struct smbXsrv_session_logoff_all_state state;
+ struct smbXsrv_session_logoff_all_state state = {};
NTSTATUS status;
int count = 0;
return NT_STATUS_OK;
}
- ZERO_STRUCT(state);
-
status = dbwrap_traverse(table->local.db_ctx,
smbXsrv_session_logoff_all_callback,
&state, &count);
{
struct smbXsrv_client *client = xconn->client;
struct smbXsrv_session_table *table = client->session_table;
- struct smbXsrv_session_disconnect_xconn_state state;
+ struct smbXsrv_session_disconnect_xconn_state state = {
+ .xconn = xconn,
+ };
NTSTATUS status;
int count = 0;
return NT_STATUS_OK;
}
- ZERO_STRUCT(state);
- state.xconn = xconn;
-
status = dbwrap_traverse(table->local.db_ctx,
smbXsrv_session_disconnect_xconn_callback,
&state, &count);