libwbclient: Add async call framework.
authorKai Blin <kai@samba.org>
Thu, 16 Apr 2009 12:53:36 +0000 (14:53 +0200)
committerKai Blin <kai@samba.org>
Sat, 30 May 2009 07:17:37 +0000 (09:17 +0200)
19 files changed:
lib/async_req/async_sock.c
lib/async_req/config.mk
nsswitch/config.mk
nsswitch/libwbclient/config.mk [new file with mode: 0644]
nsswitch/libwbclient/libwbclient.h
nsswitch/libwbclient/wb_reqtrans.c [moved from source3/lib/wb_reqtrans.c with 96% similarity]
nsswitch/libwbclient/wbc_async.c [moved from source3/lib/wbclient.c with 97% similarity]
nsswitch/libwbclient/wbc_async.h [moved from source3/include/wbc_async.h with 96% similarity]
nsswitch/libwbclient/wbclient.c
nsswitch/libwbclient/wbclient_internal.h
nsswitch/winbind_struct_protocol.h
source3/Makefile.in
source3/samba4.mk
source3/torture/torture.c
source4/Makefile
source4/libcli/wbclient/config.mk
source4/main.mk
source4/ntvfs/posix/config.mk
source4/rpc_server/config.mk

index 598a126467d75411206bc3d3271a0ca7b32de5a9..09eec10fc5e5d6258bc4f1350620c9683478a641 100644 (file)
@@ -426,7 +426,7 @@ static void writev_handler(struct tevent_context *ev, struct tevent_fd *fde,
                to_write += state->iov[i].iov_len;
        }
 
-       written = sys_writev(state->fd, state->iov, state->count);
+       written = writev(state->fd, state->iov, state->count);
        if (written == -1) {
                tevent_req_error(req, errno);
                return;
@@ -570,7 +570,7 @@ static void read_packet_handler(struct tevent_context *ev,
                return;
        }
 
-       tmp = TALLOC_REALLOC_ARRAY(state, state->buf, uint8_t, total+more);
+       tmp = talloc_realloc(state, state->buf, uint8_t, total+more);
        if (tevent_req_nomem(tmp, req)) {
                return;
        }
index bf0fd6a2db7054518f33f0002d6aaa553668a4fe..1f4b557ce44e3f291517c5fc6ae4d43929157c7c 100644 (file)
@@ -1,3 +1,4 @@
 [SUBSYSTEM::LIBASYNC_REQ]
+PUBLIC_DEPENDENCIES = LIBREPLACE_NETWORK
 
 LIBASYNC_REQ_OBJ_FILES = $(addprefix ../lib/async_req/, async_sock.o)
index 3a4f054d1f9f2b24095d80532ec8a030502564af..264032e530e30f231d357e93011db1666de7cda0 100644 (file)
@@ -26,7 +26,11 @@ PRIVATE_DEPENDENCIES = \
                LIBCLI_AUTH \
                LIBPOPT \
                POPT_SAMBA \
-               LIBWINBIND-CLIENT
+               LIBWINBIND-CLIENT \
+               LIBWBCLIENT \
+               LIBTEVENT \
+               UTIL_TEVENT \
+               LIBASYNC_REQ
 # End BINARY nsstest
 #################################
 
diff --git a/nsswitch/libwbclient/config.mk b/nsswitch/libwbclient/config.mk
new file mode 100644 (file)
index 0000000..ffdab15
--- /dev/null
@@ -0,0 +1,15 @@
+[SUBSYSTEM::LIBWBCLIENT]
+PUBLIC_DEPENDENCIES = LIBASYNC_REQ \
+                     LIBTEVENT \
+                     LIBTALLOC \
+                     UTIL_TEVENT
+
+LIBWBCLIENT_OBJ_FILES = $(addprefix $(libwbclientsrcdir)/, wbc_async.o \
+                                                               wbc_guid.o \
+                                                               wbc_idmap.o \
+                                                               wbclient.o \
+                                                               wbc_pam.o \
+                                                               wbc_pwd.o \
+                                                               wbc_sid.o \
+                                                               wbc_util.o \
+                                                               wb_reqtrans.o )
index 74cba7e7966a3627ae89b683e956394c96b3e39f..5a25cf462c7807ef711f63a680d02f33882bc916 100644 (file)
@@ -36,6 +36,7 @@
 /* Public headers */
 
 #include "wbclient.h"
+#include "wbc_async.h"
 
 /* Private headers */
 
similarity index 96%
rename from source3/lib/wb_reqtrans.c
rename to nsswitch/libwbclient/wb_reqtrans.c
index 7088925927451ad60fae2b4f34ec22064d6b7425..84ed7198f2f21f98f7c1734b7f37e268bf5fc3e1 100644 (file)
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "includes.h"
-#include "wbc_async.h"
-
+#include "replace.h"
+#include "system/filesys.h"
+#include "system/network.h"
+#include <talloc.h>
+#include <tevent.h>
+struct fd_event;
+struct event_context;
+#include "lib/async_req/async_sock.h"
+#include "lib/util/tevent_unix.h"
+#include "nsswitch/winbind_struct_protocol.h"
+#include "nsswitch/libwbclient/wbclient.h"
+#include "nsswitch/libwbclient/wbc_async.h"
+
+#ifdef DBGC_CLASS
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_WINBIND
+#endif
 
 struct req_read_state {
        struct winbindd_request *wb_req;
similarity index 97%
rename from source3/lib/wbclient.c
rename to nsswitch/libwbclient/wbc_async.c
index d0070ea349d0341443bfc587fbdcdf21c55d31c1..141c9816aabfe5114146b9837ba3f866dfc775dd 100644 (file)
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "includes.h"
-#include "wbc_async.h"
+#include "replace.h"
+#include "system/filesys.h"
+#include "system/network.h"
+#include <talloc.h>
+#include <tevent.h>
+struct fd_event;
+struct event_context;
+#include "lib/async_req/async_sock.h"
+#include "nsswitch/winbind_struct_protocol.h"
+#include "nsswitch/libwbclient/wbclient.h"
+#include "nsswitch/libwbclient/wbc_async.h"
 
 wbcErr map_wbc_err_from_errno(int error)
 {
similarity index 96%
rename from source3/include/wbc_async.h
rename to nsswitch/libwbclient/wbc_async.h
index 96c5f8c3486964413f131dfb3727453938a14572..a2e0eed4480b4ff78643364d516125c9456d0416 100644 (file)
 #ifndef _WBC_ASYNC_H_
 #define _WBC_ASYNC_H_
 
+#include <talloc.h>
+#include <tevent.h>
 #include "nsswitch/libwbclient/wbclient.h"
 
 struct wb_context;
+struct winbindd_request;
+struct winbindd_response;
 
 struct tevent_req *wb_trans_send(TALLOC_CTX *mem_ctx,
                                 struct tevent_context *ev,
index f5c72315f2e117ea87bb46c1d5de48a3dae03935..77b7e12d0400263fef116123e172a798376241a3 100644 (file)
@@ -22,6 +22,8 @@
 
 /* Required Headers */
 
+#include "lib/talloc/talloc.h"
+#include "lib/tevent/tevent.h"
 #include "libwbclient.h"
 
 /* From wb_common.c */
index fc03c5409b41ff51ef0a5b4529b877ae66b14a01..2d103ab3df83d500309fcca9a5c30556296b0462 100644 (file)
@@ -28,5 +28,4 @@ wbcErr wbcRequestResponse(int cmd,
                          struct winbindd_request *request,
                          struct winbindd_response *response);
 
-
 #endif      /* _WBCLIENT_INTERNAL_H */
index 11b2069c3a89e77f9086783950247914a55a77a6..1785c309066f9ea449dab7f1f9dce9a31b48a860 100644 (file)
 #define SAFE_FREE(x) do { if(x) {free(x); x=NULL;} } while(0)
 #endif
 
+#ifndef FSTRING_LEN
+#define FSTRING_LEN 256
+typedef char fstring[FSTRING_LEN];
+#endif
+
 #ifndef _WINBINDD_NTDOM_H
 #define _WINBINDD_NTDOM_H
 
index 72fce60faa0e3779c092daa767eb1bd4c12989f8..613e1277704b2df6a7b56d2ba2bcb4b351633c69 100644 (file)
@@ -992,7 +992,7 @@ SMBTORTURE_OBJ1 = torture/torture.o torture/nbio.o torture/scanner.o torture/uta
 
 SMBTORTURE_OBJ = $(SMBTORTURE_OBJ1) $(PARAM_OBJ) \
        $(LIBSMB_OBJ) $(LDB_OBJ) $(KRBCLIENT_OBJ) $(LIB_NONSMBD_OBJ) \
-       lib/wb_reqtrans.o lib/wbclient.o \
+       @LIBWBCLIENT_STATIC@ \
        $(LIBNDR_GEN_OBJ0)
 
 MASKTEST_OBJ = torture/masktest.o $(PARAM_OBJ) $(LIBSMB_OBJ) $(LDB_OBJ) $(KRBCLIENT_OBJ) \
@@ -1876,7 +1876,10 @@ LIBWBCLIENT_OBJ0 = ../nsswitch/libwbclient/wbclient.o \
                  ../nsswitch/libwbclient/wbc_idmap.o \
                  ../nsswitch/libwbclient/wbc_sid.o \
                  ../nsswitch/libwbclient/wbc_guid.o \
-                 ../nsswitch/libwbclient/wbc_pam.o
+                 ../nsswitch/libwbclient/wbc_pam.o \
+                 ../nsswitch/libwbclient/wb_reqtrans.o \
+                 ../nsswitch/libwbclient/wbc_async.o
+
 LIBWBCLIENT_OBJ = $(LIBWBCLIENT_OBJ0) \
                  $(WBCOMMON_OBJ) \
                  $(LIBREPLACE_OBJ)
@@ -1887,7 +1890,8 @@ LIBWBCLIENT_SHARED_TARGET_SONAME=$(LIBWBCLIENT_SHARED_TARGET).$(LIBWBCLIENT_SOVE
 LIBWBCLIENT_STATIC_TARGET=@LIBWBCLIENT_STATIC_TARGET@
 LIBWBCLIENT=@LIBWBCLIENT_STATIC@ @LIBWBCLIENT_SHARED@
 LIBWBCLIENT_SYMS=$(srcdir)/exports/libwbclient.@SYMSEXT@
-LIBWBCLIENT_HEADERS=$(srcdir)/../nsswitch/libwbclient/wbclient.h
+LIBWBCLIENT_HEADERS=$(srcdir)/../nsswitch/libwbclient/wbclient.h \
+                   $(srcdir)/../nsswitch/libwbclient/wbc_async.h
 
 $(LIBWBCLIENT_SYMS): $(LIBWBCLIENT_HEADERS)
        @$(MKSYMS_SH) $(AWK) $@ $(LIBWBCLIENT_HEADERS)
index 3f661bdd14e83e7ef96fe60f279b9c6a0055d9c6..e63a8453c0e7fbab0be0dfb4a1e171a0adc36519 100644 (file)
@@ -74,6 +74,7 @@ clustersrcdir := $(samba4srcdir)/cluster
 libnetsrcdir := $(samba4srcdir)/libnet
 authsrcdir := $(samba4srcdir)/auth
 nsswitchsrcdir := $(samba4srcdir)/../nsswitch
+libwbclientsrcdir := $(nsswitchsrcdir)/libwbclient
 libsrcdir := $(samba4srcdir)/lib
 libsocketsrcdir := $(samba4srcdir)/lib/socket
 libcharsetsrcdir := $(samba4srcdir)/../lib/util/charset
index cfd3d640f9f15a4d86ac79ef4d56a6c4699f4718..30e7e8cbc53ca8fe4e915a188b854b84706980b8 100644 (file)
@@ -18,7 +18,7 @@
 */
 
 #include "includes.h"
-#include "wbc_async.h"
+#include "nsswitch/libwbclient/wbc_async.h"
 
 extern char *optarg;
 extern int optind;
index 7bc48b9fe4bb4cd71d2c423a9474aa25f7046cd0..2a3ad2def1d6c62fd88b1c61259fa94b21e67097 100644 (file)
@@ -58,6 +58,7 @@ clustersrcdir := cluster
 libnetsrcdir := libnet
 authsrcdir := auth
 nsswitchsrcdir := ../nsswitch
+libwbclientsrcdir := ../nsswitch/libwbclient
 libsrcdir := lib
 libsocketsrcdir := lib/socket
 libcharsetsrcdir := ../lib/util/charset
index 00df5dbb22d298925498a5faa049f5781c0fea79..af4d3eff82df336d03f89af79b4b582fddef1359 100644 (file)
@@ -1,5 +1,5 @@
-[SUBSYSTEM::LIBWBCLIENT]
+[SUBSYSTEM::LIBWBCLIENT_OLD]
 PUBLIC_DEPENDENCIES = LIBSAMBA-ERRORS LIBEVENTS
 PRIVATE_DEPENDENCIES = NDR_WINBIND MESSAGING
 
-LIBWBCLIENT_OBJ_FILES = $(libclisrcdir)/wbclient/wbclient.o
+LIBWBCLIENT_OLD_OBJ_FILES = $(libclisrcdir)/wbclient/wbclient.o
index 2e74ba9a5bbbb36f36a706ebbf1f64531324049f..b4a82017c8eb14a29b260e11ceade265d2c5323f 100644 (file)
@@ -7,6 +7,7 @@ mkinclude smbd/process_model.mk
 mkinclude libnet/config.mk
 mkinclude auth/config.mk
 mkinclude ../nsswitch/config.mk
+mkinclude ../nsswitch/libwbclient/config.mk
 mkinclude lib/samba3/config.mk
 mkinclude lib/socket/config.mk
 mkinclude ../lib/util/charset/config.mk
index 1d7949214ac26dd395e9528bcfeda99d5a7e5181..1aaef3f1d4305897f94f41220173e45ea0537951 100644 (file)
@@ -42,7 +42,7 @@ OUTPUT_TYPE = MERGED_OBJ
 INIT_FUNCTION = ntvfs_posix_init 
 #PRIVATE_DEPENDENCIES = pvfs_acl_xattr pvfs_acl_nfs4
 PRIVATE_DEPENDENCIES = NDR_XATTR WRAP_XATTR BLKID ntvfs_common MESSAGING \
-                       LIBWBCLIENT pvfs_acl pvfs_aio
+                       LIBWBCLIENT_OLD pvfs_acl pvfs_aio
 # End MODULE ntvfs_posix
 ################################################
 
index dfc3d17bedef67a44f0dada4a11c3daf5f8ef24a..f3dc0741253a4213ed2e8e252100d33a5c3961fb 100644 (file)
@@ -85,7 +85,7 @@ PRIVATE_DEPENDENCIES = \
                SAMDB \
                NDR_UNIXINFO \
                NSS_WRAPPER \
-               LIBWBCLIENT
+               LIBWBCLIENT_OLD
 # End MODULE dcerpc_unixinfo
 ################################################