summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
Diffstat (limited to 'source3')
-rw-r--r--source3/libnet/libnet_proto.h3
-rw-r--r--source3/libnet/libnet_samsync.c38
-rw-r--r--source3/utils/net_rpc_samsync.c34
3 files changed, 41 insertions, 34 deletions
diff --git a/source3/libnet/libnet_proto.h b/source3/libnet/libnet_proto.h
index b30b94a54b..6f150d1579 100644
--- a/source3/libnet/libnet_proto.h
+++ b/source3/libnet/libnet_proto.h
@@ -59,4 +59,7 @@ NTSTATUS samsync_process_database(struct rpc_pipe_client *pipe_hnd,
enum netr_SamDatabaseID database_id,
samsync_fn_t callback_fn,
struct samsync_context *ctx);
+NTSTATUS pull_netr_AcctLockStr(TALLOC_CTX *mem_ctx,
+ struct lsa_BinaryString *r,
+ struct netr_AcctLockStr **str_p);
#endif /* _LIBNET_PROTO_H_ */
diff --git a/source3/libnet/libnet_samsync.c b/source3/libnet/libnet_samsync.c
index c86c5c12e1..fab77e8398 100644
--- a/source3/libnet/libnet_samsync.c
+++ b/source3/libnet/libnet_samsync.c
@@ -375,3 +375,41 @@ NTSTATUS samsync_process_database(struct rpc_pipe_client *pipe_hnd,
return result;
}
+
+/**
+ * pull_netr_AcctLockStr
+ */
+
+NTSTATUS pull_netr_AcctLockStr(TALLOC_CTX *mem_ctx,
+ struct lsa_BinaryString *r,
+ struct netr_AcctLockStr **str_p)
+{
+ struct netr_AcctLockStr *str;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+
+ if (!mem_ctx || !r || !str_p) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ *str_p = NULL;
+
+ str = TALLOC_ZERO_P(mem_ctx, struct netr_AcctLockStr);
+ if (!str) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ blob = data_blob_const(r->array, r->length);
+
+ ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, str,
+ (ndr_pull_flags_fn_t)ndr_pull_netr_AcctLockStr);
+
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ return ndr_map_error2ntstatus(ndr_err);
+ }
+
+ *str_p = str;
+
+ return NT_STATUS_OK;
+}
+
diff --git a/source3/utils/net_rpc_samsync.c b/source3/utils/net_rpc_samsync.c
index d945be76f1..2ac49270a7 100644
--- a/source3/utils/net_rpc_samsync.c
+++ b/source3/utils/net_rpc_samsync.c
@@ -84,40 +84,6 @@ static void display_account_info(uint32_t rid,
pdb_encode_acct_ctrl(r->acct_flags, NEW_PW_FORMAT_SPACE_PADDED_LEN));
}
-static NTSTATUS pull_netr_AcctLockStr(TALLOC_CTX *mem_ctx,
- struct lsa_BinaryString *r,
- struct netr_AcctLockStr **str_p)
-{
- struct netr_AcctLockStr *str;
- enum ndr_err_code ndr_err;
- DATA_BLOB blob;
-
- if (!mem_ctx || !r || !str_p) {
- return NT_STATUS_INVALID_PARAMETER;
- }
-
- *str_p = NULL;
-
- str = TALLOC_ZERO_P(mem_ctx, struct netr_AcctLockStr);
- if (!str) {
- return NT_STATUS_NO_MEMORY;
- }
-
- blob = data_blob_const(r->array, r->length);
-
- ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, str,
- (ndr_pull_flags_fn_t)ndr_pull_netr_AcctLockStr);
- data_blob_free(&blob);
-
- if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
- return ndr_map_error2ntstatus(ndr_err);
- }
-
- *str_p = str;
-
- return NT_STATUS_OK;
-}
-
static void display_domain_info(struct netr_DELTA_DOMAIN *r)
{
time_t u_logout;