diff options
Diffstat (limited to 'source3/utils/net_rpc_samsync.c')
-rw-r--r-- | source3/utils/net_rpc_samsync.c | 82 |
1 files changed, 52 insertions, 30 deletions
diff --git a/source3/utils/net_rpc_samsync.c b/source3/utils/net_rpc_samsync.c index f6483bdba2..61c60b2d04 100644 --- a/source3/utils/net_rpc_samsync.c +++ b/source3/utils/net_rpc_samsync.c @@ -343,6 +343,54 @@ static NTSTATUS display_sam_entries(TALLOC_CTX *mem_ctx, return NT_STATUS_OK; } +const char *samsync_debug_str(TALLOC_CTX *mem_ctx, + enum net_samsync_mode mode, + enum netr_SamDatabaseID database_id) +{ + const char *action = NULL; + const char *str = NULL; + + switch (mode) { + case NET_SAMSYNC_MODE_DUMP: + action = "Dumping (to stdout)"; + break; + case NET_SAMSYNC_MODE_FETCH_PASSDB: + action = "Fetching (to passdb)"; + break; + case NET_SAMSYNC_MODE_FETCH_LDIF: + action = "Fetching (to ldif)"; + break; + default: + action = "Unknown"; + break; + } + + switch (database_id) { + case SAM_DATABASE_DOMAIN: + str = talloc_asprintf(mem_ctx, "%s DOMAIN database", + action); + break; + case SAM_DATABASE_BUILTIN: + str = talloc_asprintf(mem_ctx, "%s BUILTIN database", + action); + break; + case SAM_DATABASE_PRIVS: + str = talloc_asprintf(mem_ctx, "%s PRIVS database", + action); + break; + default: + str = talloc_asprintf(mem_ctx, "%s unknown database type %u", + action, database_id); + break; + } + + if (!str) { + return NULL; + } + + return str; +} + typedef NTSTATUS (*samsync_fn_t)(TALLOC_CTX *, enum netr_SamDatabaseID, struct netr_DELTA_ENUM_ARRAY *, @@ -362,8 +410,8 @@ static NTSTATUS process_database(struct rpc_pipe_client *pipe_hnd, struct netr_Authenticator return_authenticator; uint16_t restart_state = 0; uint32_t sync_context = 0; + const char *debug_str; DATA_BLOB session_key; - const char *action = NULL; ZERO_STRUCT(return_authenticator); @@ -371,35 +419,9 @@ static NTSTATUS process_database(struct rpc_pipe_client *pipe_hnd, return NT_STATUS_NO_MEMORY; } - switch (ctx->mode) { - case NET_SAMSYNC_MODE_DUMP: - action = "Dumping (to stdout)"; - break; - case NET_SAMSYNC_MODE_FETCH_PASSDB: - action = "Fetching (to passdb)"; - break; - case NET_SAMSYNC_MODE_FETCH_LDIF: - action = "Fetching (to ldif)"; - break; - default: - action = "Unknown"; - break; - } - - switch (database_id) { - case SAM_DATABASE_DOMAIN: - d_fprintf(stderr, "%s DOMAIN database\n", action); - break; - case SAM_DATABASE_BUILTIN: - d_fprintf(stderr, "%s BUILTIN database\n", action); - break; - case SAM_DATABASE_PRIVS: - d_fprintf(stderr, "%s PRIVS databases\n", action); - break; - default: - d_fprintf(stderr, "%s unknown database type %u\n", - action, database_id); - break; + debug_str = samsync_debug_str(mem_ctx, ctx->mode, database_id); + if (debug_str) { + d_fprintf(stderr, "%s\n", debug_str); } do { |