r1878: implemet libnet_context_{init,destroy}
authorStefan Metzmacher <metze@samba.org>
Wed, 18 Aug 2004 11:01:06 +0000 (11:01 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:58:07 +0000 (12:58 -0500)
and implement libnet_Change_Password_generic()

metze
(This used to be commit d48050ae906ecf8d4f78c224042f8f9fe584ad39)

source4/libnet/config.mk
source4/libnet/libnet.c [new file with mode: 0644]
source4/libnet/libnet_passwd.c

index 1918f2e0950c65c0335988f6814b254d55f9a960..c35d18fefed89edf079b16c44fdf103534b0b899 100644 (file)
@@ -1,6 +1,8 @@
 #################################
 # Start SUBSYSTEM LIBNET
 [SUBSYSTEM::LIBNET]
+INIT_OBJ_FILES = \
+               libnet/libnet.o
 ADD_OBJ_FILES = \
                libnet/libnet_passwd.o \
                libnet/libnet_rpc.o
diff --git a/source4/libnet/libnet.c b/source4/libnet/libnet.c
new file mode 100644 (file)
index 0000000..8f49d63
--- /dev/null
@@ -0,0 +1,45 @@
+/* 
+   Unix SMB/CIFS implementation.
+   
+   Copyright (C) Stefan Metzmacher     2004
+   
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "includes.h"
+
+struct libnet_context *libnet_context_init(void)
+{
+       TALLOC_CTX *mem_ctx;
+       struct libnet_context *ctx;
+
+       mem_ctx = talloc_init("libnet_context");
+
+       ctx = talloc_p(mem_ctx, struct libnet_context);
+       if (!ctx) {
+               return NULL;
+       }
+
+       ctx->mem_ctx = mem_ctx;
+
+       return ctx;
+}
+
+void libnet_context_destroy(struct libnet_context **libnetctx)
+{
+       talloc_destroy((*libnetctx)->mem_ctx);
+
+       (*libnetctx) = NULL;
+}
index 6164aed9ad972777120336cc9167ef0973451382..ea61a457baeead1bee577374fdf9158ea1d41b57 100644 (file)
@@ -106,7 +106,20 @@ disconnect:
 
 static NTSTATUS libnet_ChangePassword_generic(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, union libnet_ChangePassword *r)
 {
-       return NT_STATUS_NOT_IMPLEMENTED;
+       NTSTATUS status;
+       union libnet_ChangePassword r2;
+
+       r2.generic.level        = LIBNET_CHANGE_PASSWORD_RPC;
+       r2.rpc.in.account_name  = NULL;
+       r2.rpc.in.domain_name   = NULL;
+       r2.rpc.in.oldpassword   = NULL;
+       r2.rpc.in.newpassword   = NULL;
+
+       status = libnet_ChangePassword(ctx, mem_ctx, &r2);
+
+       r->generic.out.error_string = r2.rpc.out.error_string;
+
+       return status;
 }
 
 NTSTATUS libnet_ChangePassword(struct libnet_context *ctx, TALLOC_CTX *mem_ctx, union libnet_ChangePassword *r)