[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-801-gdd6251d

Günther Deschner gd at samba.org
Thu Apr 10 19:55:15 GMT 2008


The branch, v3-2-test has been updated
       via  dd6251d51472a96bfc5ba3d62ea788c8924d4c6b (commit)
       via  e9e46cfcbe25366121f680a6d81fe08c128bf00a (commit)
      from  5f8793dd1d8a3694afb7f2d882cfb9990eb40b75 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit dd6251d51472a96bfc5ba3d62ea788c8924d4c6b
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 10 21:52:03 2008 +0200

    Split out private headers in libnetapi.
    
    Guenther

commit e9e46cfcbe25366121f680a6d81fe08c128bf00a
Author: Günther Deschner <gd at samba.org>
Date:   Thu Apr 10 21:41:03 2008 +0200

    Add very basic cli_cm_* based connection handler to libnetapi.
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source/Makefile.in                                 |    1 +
 source/lib/netapi/cm.c                             |   75 ++++++++++++++++++++
 source/lib/netapi/getdc.c                          |    1 +
 source/lib/netapi/joindomain.c                     |    1 +
 source/lib/netapi/libnetapi.c                      |    1 +
 source/lib/netapi/netapi.h                         |   51 +++++++++++--
 .../gpo_ini.h => lib/netapi/netapi_private.h}      |   27 ++++----
 source/lib/netapi/serverinfo.c                     |    1 +
 source/lib/netapi/user.c                           |    1 +
 9 files changed, 137 insertions(+), 22 deletions(-)
 create mode 100644 source/lib/netapi/cm.c
 copy source/{libgpo/gpo_ini.h => lib/netapi/netapi_private.h} (51%)


Changeset truncated at 500 lines:

diff --git a/source/Makefile.in b/source/Makefile.in
index 0fe0b5d..d89278c 100644
--- a/source/Makefile.in
+++ b/source/Makefile.in
@@ -815,6 +815,7 @@ CLIENT_OBJ = $(CLIENT_OBJ1) $(PARAM_OBJ) $(LIBSMB_OBJ) \
 	     $(DISPLAY_SEC_OBJ) 
 
 LIBNETAPI_OBJ1 = lib/netapi/netapi.o \
+		 lib/netapi/cm.o \
 		 librpc/gen_ndr/ndr_libnetapi.o \
 		 lib/netapi/libnetapi.o \
 		 lib/netapi/joindomain.o \
diff --git a/source/lib/netapi/cm.c b/source/lib/netapi/cm.c
new file mode 100644
index 0000000..31446ef
--- /dev/null
+++ b/source/lib/netapi/cm.c
@@ -0,0 +1,75 @@
+/*
+ *  Unix SMB/CIFS implementation.
+ *  NetApi Support
+ *  Copyright (C) Guenther Deschner 2008
+ *
+ *  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 3 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "includes.h"
+
+#include "lib/netapi/netapi.h"
+
+/********************************************************************
+********************************************************************/
+
+WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
+				     const char *server_name,
+				     struct cli_state **cli)
+{
+	struct cli_state *cli_ipc = NULL;
+
+	if (!ctx || !cli || !server_name) {
+		return WERR_INVALID_PARAM;
+	}
+
+	cli_cm_set_signing_state(Undefined);
+	cli_cm_set_use_kerberos();
+
+	if (ctx->password) {
+		cli_cm_set_password(ctx->password);
+	}
+	if (ctx->username) {
+		cli_cm_set_username(ctx->username);
+	}
+
+	if (ctx->username && ctx->username[0] &&
+	    ctx->password && ctx->password[0]) {
+		cli_cm_set_fallback_after_kerberos();
+	}
+
+	cli_ipc = cli_cm_open(ctx, NULL,
+			      server_name, "IPC$",
+			      false, false);
+	if (!cli_ipc) {
+		libnetapi_set_error_string(ctx,
+			"Failed to connect to IPC$ share on %s",
+			server_name);
+		return WERR_CAN_NOT_COMPLETE;
+	}
+
+	*cli = cli_ipc;
+
+	return WERR_OK;
+}
+
+/********************************************************************
+********************************************************************/
+
+WERROR libnetapi_shutdown_cm(struct libnetapi_ctx *ctx)
+{
+	cli_cm_shutdown();
+
+	return WERR_OK;
+}
diff --git a/source/lib/netapi/getdc.c b/source/lib/netapi/getdc.c
index a865474..944cfb2 100644
--- a/source/lib/netapi/getdc.c
+++ b/source/lib/netapi/getdc.c
@@ -21,6 +21,7 @@
 
 #include "librpc/gen_ndr/libnetapi.h"
 #include "lib/netapi/netapi.h"
+#include "lib/netapi/netapi_private.h"
 #include "lib/netapi/libnetapi.h"
 #include "libnet/libnet.h"
 
diff --git a/source/lib/netapi/joindomain.c b/source/lib/netapi/joindomain.c
index 48a6a91..96c2f3d 100644
--- a/source/lib/netapi/joindomain.c
+++ b/source/lib/netapi/joindomain.c
@@ -21,6 +21,7 @@
 
 #include "librpc/gen_ndr/libnetapi.h"
 #include "lib/netapi/netapi.h"
+#include "lib/netapi/netapi_private.h"
 #include "lib/netapi/libnetapi.h"
 #include "libnet/libnet.h"
 
diff --git a/source/lib/netapi/libnetapi.c b/source/lib/netapi/libnetapi.c
index eeff7c5..fd1802f 100644
--- a/source/lib/netapi/libnetapi.c
+++ b/source/lib/netapi/libnetapi.c
@@ -20,6 +20,7 @@
 #include "includes.h"
 #include "librpc/gen_ndr/libnetapi.h"
 #include "lib/netapi/netapi.h"
+#include "lib/netapi/netapi_private.h"
 #include "libnetapi.h"
 #include "librpc/gen_ndr/ndr_libnetapi.h"
 
diff --git a/source/lib/netapi/netapi.h b/source/lib/netapi/netapi.h
index a9b50c4..7b03e41 100644
--- a/source/lib/netapi/netapi.h
+++ b/source/lib/netapi/netapi.h
@@ -95,16 +95,51 @@ struct libnetapi_ctx {
 ****************************************************************/
 
 NET_API_STATUS libnetapi_init(struct libnetapi_ctx **ctx);
-NET_API_STATUS libnetapi_getctx(struct libnetapi_ctx **ctx);
+
+/****************************************************************
+****************************************************************/
+
 NET_API_STATUS libnetapi_free(struct libnetapi_ctx *ctx);
-NET_API_STATUS libnetapi_set_debuglevel(struct libnetapi_ctx *ctx, const char *debuglevel);
-NET_API_STATUS libnetapi_get_debuglevel(struct libnetapi_ctx *ctx, char **debuglevel);
-NET_API_STATUS libnetapi_set_username(struct libnetapi_ctx *ctx, const char *username);
-NET_API_STATUS libnetapi_set_password(struct libnetapi_ctx *ctx, const char *password);
-NET_API_STATUS libnetapi_set_workgroup(struct libnetapi_ctx *ctx, const char *workgroup);
+
+/****************************************************************
+****************************************************************/
+
+NET_API_STATUS libnetapi_getctx(struct libnetapi_ctx **ctx);
+
+/****************************************************************
+****************************************************************/
+
+NET_API_STATUS libnetapi_set_debuglevel(struct libnetapi_ctx *ctx,
+					const char *debuglevel);
+
+/****************************************************************
+****************************************************************/
+
+NET_API_STATUS libnetapi_set_username(struct libnetapi_ctx *ctx,
+				      const char *username);
+
+/****************************************************************
+****************************************************************/
+
+NET_API_STATUS libnetapi_set_password(struct libnetapi_ctx *ctx,
+				      const char *password);
+
+/****************************************************************
+****************************************************************/
+
+NET_API_STATUS libnetapi_set_workgroup(struct libnetapi_ctx *ctx,
+				       const char *workgroup);
+
+/****************************************************************
+****************************************************************/
+
 const char *libnetapi_errstr(NET_API_STATUS status);
-NET_API_STATUS libnetapi_set_error_string(struct libnetapi_ctx *ctx, const char *format, ...);
-const char *libnetapi_get_error_string(struct libnetapi_ctx *ctx, NET_API_STATUS status);
+
+/****************************************************************
+****************************************************************/
+
+const char *libnetapi_get_error_string(struct libnetapi_ctx *ctx,
+				       NET_API_STATUS status);
 
 
 /****************************************************************
diff --git a/source/libgpo/gpo_ini.h b/source/lib/netapi/netapi_private.h
similarity index 51%
copy from source/libgpo/gpo_ini.h
copy to source/lib/netapi/netapi_private.h
index fa03dba..2591a7b 100644
--- a/source/libgpo/gpo_ini.h
+++ b/source/lib/netapi/netapi_private.h
@@ -1,7 +1,7 @@
 /*
  *  Unix SMB/CIFS implementation.
- *  Group Policy Support
- *  Copyright (C) Guenther Deschner 2007
+ *  NetApi Support
+ *  Copyright (C) Guenther Deschner 2008
  *
  *  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
@@ -17,17 +17,16 @@
  *  along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-/* FIXME: get rid of iniparser */
-#include <iniparser.h>
+#ifndef __LIB_NETAPI_PRIVATE_H__
+#define __LIB_NETAPI_PRIVATE_H__
 
-struct gp_inifile_context {
-	TALLOC_CTX *mem_ctx;
-	dictionary *dict;
-	const char *generated_filename;
-};
+NET_API_STATUS libnetapi_get_password(struct libnetapi_ctx *ctx, char **password);
+NET_API_STATUS libnetapi_get_username(struct libnetapi_ctx *ctx, char **username);
+NET_API_STATUS libnetapi_set_error_string(struct libnetapi_ctx *ctx, const char *format, ...);
+NET_API_STATUS libnetapi_get_debuglevel(struct libnetapi_ctx *ctx, char **debuglevel);
 
-/* prototypes */
-
-NTSTATUS gp_inifile_init_context(TALLOC_CTX *mem_ctx, uint32_t flags,
-				 const char *unix_path, const char *suffix,
-				 struct gp_inifile_context **ctx_ret);
+WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
+				     const char *server_name,
+				     struct cli_state **cli);
+WERROR libnetapi_shutdown_cm(struct libnetapi_ctx *ctx);
+#endif
diff --git a/source/lib/netapi/serverinfo.c b/source/lib/netapi/serverinfo.c
index 643b04c..fb5d940 100644
--- a/source/lib/netapi/serverinfo.c
+++ b/source/lib/netapi/serverinfo.c
@@ -21,6 +21,7 @@
 
 #include "librpc/gen_ndr/libnetapi.h"
 #include "lib/netapi/netapi.h"
+#include "lib/netapi/netapi_private.h"
 #include "lib/netapi/libnetapi.h"
 #include "libnet/libnet.h"
 
diff --git a/source/lib/netapi/user.c b/source/lib/netapi/user.c
index 8dcc159..54157a8 100644
--- a/source/lib/netapi/user.c
+++ b/source/lib/netapi/user.c
@@ -21,6 +21,7 @@
 
 #include "librpc/gen_ndr/libnetapi.h"
 #include "lib/netapi/netapi.h"
+#include "lib/netapi/netapi_private.h"
 #include "lib/netapi/libnetapi.h"
 
 /****************************************************************


-- 
Samba Shared Repository


More information about the samba-cvs mailing list