[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