summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGünther Deschner <gd@samba.org>2007-12-21 16:02:35 +0100
committerGünther Deschner <gd@samba.org>2007-12-21 16:02:35 +0100
commit27a58bd50cfd749cdcfa90fe7abeaf15dc09bbf3 (patch)
tree755455d02d584e6c3c10e6c3ae25586115841447
parenteddd190921f2b322a227044a5c8067397f80c0f5 (diff)
downloadsamba-27a58bd50cfd749cdcfa90fe7abeaf15dc09bbf3.tar.gz
samba-27a58bd50cfd749cdcfa90fe7abeaf15dc09bbf3.tar.bz2
samba-27a58bd50cfd749cdcfa90fe7abeaf15dc09bbf3.zip
Add getdc.c, a libnetapi example (incl. Makefile).
Guenther (This used to be commit faedc78fc78527ee3bf05e1177ea43653aea67b2)
-rw-r--r--source3/configure.in5
-rw-r--r--source3/lib/netapi/examples/Makefile.in34
-rw-r--r--source3/lib/netapi/examples/getdc.c57
3 files changed, 95 insertions, 1 deletions
diff --git a/source3/configure.in b/source3/configure.in
index 57b74a3db5..a9053d9a08 100644
--- a/source3/configure.in
+++ b/source3/configure.in
@@ -6603,7 +6603,10 @@ AC_SUBST(builddir)
SMBD_LIBS="$samba_dmapi_libs"
AC_SUBST(SMBD_LIBS)
-AC_OUTPUT(Makefile library-versions script/findsmb smbadduser script/gen-8bit-gap.sh script/installbin.sh script/uninstallbin.sh)
+AC_OUTPUT(Makefile library-versions
+ script/findsmb smbadduser script/gen-8bit-gap.sh script/installbin.sh script/uninstallbin.sh
+ lib/netapi/examples/Makefile
+ )
#################################################
# Print very concise instructions on building/use
diff --git a/source3/lib/netapi/examples/Makefile.in b/source3/lib/netapi/examples/Makefile.in
new file mode 100644
index 0000000000..79f9187d84
--- /dev/null
+++ b/source3/lib/netapi/examples/Makefile.in
@@ -0,0 +1,34 @@
+KRB5LIBS=@KRB5_LIBS@
+LDAP_LIBS=@LDAP_LIBS@
+LIBS=@LIBS@ -lnetapi
+DEVELOPER_CFLAGS=@DEVELOPER_CFLAGS@
+FLAGS=@CFLAGS@
+CC=@CC@
+LDFLAGS=@PIE_LDFLAGS@ @LDFLAGS@
+DYNEXP=@DYNEXP@
+
+# Compile a source file.
+COMPILE_CC = $(CC) -I. $(FLAGS) $(PICFLAG) -c $< -o $@
+COMPILE = $(COMPILE_CC)
+
+.c.o:
+ @if (: >> $@ || : > $@) >/dev/null 2>&1; then rm -f $@; else \
+ dir=`echo $@ | sed 's,/[^/]*$$,,;s,^$$,.,'` $(MAKEDIR); fi
+ @echo Compiling $*.c
+ @$(COMPILE) && exit 0;\
+ echo "The following command failed:" 1>&2;\
+ echo "$(COMPILE_CC)" 1>&2;\
+ $(COMPILE_CC) >/dev/null 2>&1
+
+GETDC_OBJ = getdc.o
+
+PROGS = getdc
+
+all: $(PROGS)
+
+getdc: $(GETDC_OBJ)
+ @echo Linking $@
+ @$(CC) $(FLAGS) -o $@ $(GETDC_OBJ) $(LDFLAGS) $(DYNEXP) $(LIBS) $(KRB5LIBS) $(LDAP_LIBS)
+
+clean:
+ @rm -f $(PROGS)
diff --git a/source3/lib/netapi/examples/getdc.c b/source3/lib/netapi/examples/getdc.c
new file mode 100644
index 0000000000..ed6a8bd05d
--- /dev/null
+++ b/source3/lib/netapi/examples/getdc.c
@@ -0,0 +1,57 @@
+/*
+ * Unix SMB/CIFS implementation.
+ * GetDCName query
+ * Copyright (C) Guenther Deschner 2007
+ *
+ * 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 <sys/types.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <libnetapi.h>
+
+int main(int argc, char **argv)
+{
+ NET_API_STATUS status;
+ struct libnetapi_ctx *ctx = NULL;
+ uint8_t *buffer;
+
+ if (argc < 3) {
+ printf("usage: getdc <hostname> <domain>\n");
+ return -1;
+ }
+
+ status = libnetapi_init(&ctx);
+ if (status != 0) {
+ return status;
+ }
+
+ libnetapi_set_username(ctx, "");
+ libnetapi_set_password(ctx, "");
+
+ status = NetGetDCName(argv[1], argv[2], &buffer);
+ if (status != 0) {
+ printf("GetDcName failed with: %s\n", libnetapi_errstr(ctx, status));
+ } else {
+ printf("%s\n", (char *)buffer);
+ }
+
+ libnetapi_free(ctx);
+
+ return status;
+}