Add getdc.c, a libnetapi example (incl. Makefile).
authorGünther Deschner <gd@samba.org>
Fri, 21 Dec 2007 15:02:35 +0000 (16:02 +0100)
committerGünther Deschner <gd@samba.org>
Fri, 21 Dec 2007 15:02:35 +0000 (16:02 +0100)
Guenther
(This used to be commit faedc78fc78527ee3bf05e1177ea43653aea67b2)

source3/configure.in
source3/lib/netapi/examples/Makefile.in [new file with mode: 0644]
source3/lib/netapi/examples/getdc.c [new file with mode: 0644]

index 57b74a3db5aa16a8742345adc1cec90a5864c05e..a9053d9a08fc6e14c9a2157555cc9df0fefd95b6 100644 (file)
@@ -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 (file)
index 0000000..79f9187
--- /dev/null
@@ -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 (file)
index 0000000..ed6a8bd
--- /dev/null
@@ -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;
+}