From 0ff7e0c998bb4fbc67925be762b528ae6585c4f3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=BCnther=20Deschner?= Date: Fri, 1 Oct 2010 10:34:14 +0200 Subject: [PATCH] samba: share readline wrappers among all buildsystems. Guenther --- .../lib => libcli}/smbreadline/readline.m4 | 2 +- .../smbreadline/smbreadline.c | 18 ++++++++++++------ .../lib => libcli}/smbreadline/smbreadline.h | 3 ++- .../lib => libcli}/smbreadline/wscript_build | 0 .../smbreadline/wscript_configure | 0 source3/Makefile.in | 2 +- source3/client/client.c | 2 ++ source3/include/proto.h | 8 -------- source3/rpcclient/rpcclient.c | 1 + source3/torture/vfstest.c | 1 + source3/utils/net_rpc_shell.c | 1 + source3/wscript | 1 + source3/wscript_build | 15 +++++---------- source4/Makefile.in | 2 +- source4/client/client.c | 2 +- source4/configure.ac | 2 +- source4/lib/registry/tools/regshell.c | 2 +- source4/torture/shell.c | 2 +- source4/torture/smbtorture.c | 2 +- source4/wscript | 2 +- source4/wscript_build | 2 +- 21 files changed, 35 insertions(+), 35 deletions(-) rename {source4/lib => libcli}/smbreadline/readline.m4 (98%) rename source3/lib/readline.c => libcli/smbreadline/smbreadline.c (95%) rename {source4/lib => libcli}/smbreadline/smbreadline.h (71%) rename {source4/lib => libcli}/smbreadline/wscript_build (100%) rename {source4/lib => libcli}/smbreadline/wscript_configure (100%) diff --git a/source4/lib/smbreadline/readline.m4 b/libcli/smbreadline/readline.m4 similarity index 98% rename from source4/lib/smbreadline/readline.m4 rename to libcli/smbreadline/readline.m4 index 06d60caae18..f450cacac99 100644 --- a/source4/lib/smbreadline/readline.m4 +++ b/libcli/smbreadline/readline.m4 @@ -63,7 +63,7 @@ AC_ARG_WITH(readline, # code will generate warnings on one of them unless we have a few # special cases. AC_CHECK_LIB(readline, rl_completion_matches, - [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1, + [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1, [Do we have rl_completion_matches?])], [], [$TERMLIBS]) diff --git a/source3/lib/readline.c b/libcli/smbreadline/smbreadline.c similarity index 95% rename from source3/lib/readline.c rename to libcli/smbreadline/smbreadline.c index f20fc0f1dbc..f8441ac5a34 100644 --- a/source3/lib/readline.c +++ b/libcli/smbreadline/smbreadline.c @@ -1,25 +1,31 @@ -/* +/* Unix SMB/CIFS implementation. Samba readline wrapper implementation Copyright (C) Simo Sorce 2001 Copyright (C) Andrew Tridgell 2001 - + 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 . */ #include "includes.h" #include "../lib/util/select.h" +#include "system/filesys.h" +#include "system/select.h" +#include "system/readline.h" +#include "libcli/smbreadline/smbreadline.h" + +#undef malloc #ifdef HAVE_LIBREADLINE # ifdef HAVE_READLINE_READLINE_H @@ -61,7 +67,7 @@ void smb_readline_done(void) Display the prompt and wait for input. Call callback() regularly ****************************************************************************/ -static char *smb_readline_replacement(const char *prompt, void (*callback)(void), +static char *smb_readline_replacement(const char *prompt, void (*callback)(void), char **(completion_fn)(const char *text, int start, int end)) { fd_set fds; @@ -76,7 +82,7 @@ static char *smb_readline_replacement(const char *prompt, void (*callback)(void) x_fflush(x_stdout); } - line = (char *)SMB_MALLOC(BUFSIZ); + line = (char *)malloc(BUFSIZ); if (!line) { return NULL; } diff --git a/source4/lib/smbreadline/smbreadline.h b/libcli/smbreadline/smbreadline.h similarity index 71% rename from source4/lib/smbreadline/smbreadline.h rename to libcli/smbreadline/smbreadline.h index cde2b47a240..102106f2626 100644 --- a/source4/lib/smbreadline/smbreadline.h +++ b/libcli/smbreadline/smbreadline.h @@ -1,9 +1,10 @@ #ifndef __SMBREADLINE_H__ #define __SMBREADLINE_H__ -char *smb_readline(const char *prompt, void (*callback)(void), +char *smb_readline(const char *prompt, void (*callback)(void), char **(completion_fn)(const char *text, int start, int end)); const char *smb_readline_get_line_buffer(void); void smb_readline_ca_char(char c); +void smb_readline_done(void); #endif /* __SMBREADLINE_H__ */ diff --git a/source4/lib/smbreadline/wscript_build b/libcli/smbreadline/wscript_build similarity index 100% rename from source4/lib/smbreadline/wscript_build rename to libcli/smbreadline/wscript_build diff --git a/source4/lib/smbreadline/wscript_configure b/libcli/smbreadline/wscript_configure similarity index 100% rename from source4/lib/smbreadline/wscript_configure rename to libcli/smbreadline/wscript_configure diff --git a/source3/Makefile.in b/source3/Makefile.in index 139ea70909d..8be50fc5199 100644 --- a/source3/Makefile.in +++ b/source3/Makefile.in @@ -481,7 +481,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \ LIB_DUMMY_OBJ = lib/dummysmbd.o lib/dummyroot.o LIB_NONSMBD_OBJ = $(LIB_OBJ) $(LIB_DUMMY_OBJ) -READLINE_OBJ = lib/readline.o +READLINE_OBJ = ../libcli/smbreadline/smbreadline.o # Also depends on $(SECRETS_OBJ) $(LIBSAMBA_OBJ) # Be sure to include them into your application diff --git a/source3/client/client.c b/source3/client/client.c index e79ea161915..a24b7e31442 100644 --- a/source3/client/client.c +++ b/source3/client/client.c @@ -26,6 +26,8 @@ #include "client/client_proto.h" #include "../librpc/gen_ndr/cli_srvsvc.h" #include "../lib/util/select.h" +#include "system/readline.h" +#include "../libcli/smbreadline/smbreadline.h" #ifndef REGISTER #define REGISTER 0 diff --git a/source3/include/proto.h b/source3/include/proto.h index 4f4ea996e6a..7fb0a3d0882 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -654,14 +654,6 @@ void privilege_set_free(PRIVILEGE_SET *priv_set); bool is_privileged_sid( const struct dom_sid *sid ); bool grant_all_privileges( const struct dom_sid *sid ); -/* The following definitions come from lib/readline.c */ - -void smb_readline_done(void); -char *smb_readline(const char *prompt, void (*callback)(void), - char **(completion_fn)(const char *text, int start, int end)); -const char *smb_readline_get_line_buffer(void); -void smb_readline_ca_char(char c); - /* The following definitions come from lib/recvfile.c */ ssize_t sys_recvfile(int fromfd, diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index a1faca78d83..b0412ef1d25 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -27,6 +27,7 @@ #include "rpc_client/cli_lsarpc.h" #include "../librpc/gen_ndr/ndr_netlogon.h" #include "rpc_client/cli_netlogon.h" +#include "../libcli/smbreadline/smbreadline.h" enum pipe_auth_type_spnego { PIPE_AUTH_TYPE_SPNEGO_NONE = 0, diff --git a/source3/torture/vfstest.c b/source3/torture/vfstest.c index 923b5479aba..76025eef1fc 100644 --- a/source3/torture/vfstest.c +++ b/source3/torture/vfstest.c @@ -26,6 +26,7 @@ #include "includes.h" #include "popt_common.h" #include "vfstest.h" +#include "../libcli/smbreadline/smbreadline.h" /* List to hold groups of commands */ static struct cmd_list { diff --git a/source3/utils/net_rpc_shell.c b/source3/utils/net_rpc_shell.c index d005da63e79..82f9f29cedf 100644 --- a/source3/utils/net_rpc_shell.c +++ b/source3/utils/net_rpc_shell.c @@ -23,6 +23,7 @@ #include "utils/net.h" #include "../librpc/gen_ndr/ndr_samr.h" #include "lib/netapi/netapi.h" +#include "../libcli/smbreadline/smbreadline.h" static NTSTATUS rpc_sh_info(struct net_context *c, TALLOC_CTX *mem_ctx, struct rpc_sh_ctx *ctx, diff --git a/source3/wscript b/source3/wscript index 909008b2346..d39bedb13a4 100644 --- a/source3/wscript +++ b/source3/wscript @@ -87,6 +87,7 @@ def configure(conf): conf.RECURSE('../lib/nss_wrapper') conf.RECURSE('../lib/socket_wrapper') conf.RECURSE('../lib/zlib') + conf.RECURSE('../libcli/smbreadline') conf.CHECK_HEADERS('execinfo.h libexc.h libunwind.h netdb.h') diff --git a/source3/wscript_build b/source3/wscript_build index 0d70a936ecc..f724729f3bb 100644 --- a/source3/wscript_build +++ b/source3/wscript_build @@ -215,8 +215,6 @@ LIB_SRC = '''${LIBSAMBAUTIL_SRC} ${UTIL_SRC} LIB_DUMMY_SRC = '''lib/dummysmbd.c lib/dummyroot.c''' LIB_NONSMBD_SRC = '''${LIB_DUMMY_SRC}''' -READLINE_SRC = '''lib/readline.c''' - POPT_LIB_SRC = '''lib/popt_common.c''' PARAM_WITHOUT_REG_SRC = '''param/loadparm.c param/util.c param/loadparm_server_role.c @@ -986,6 +984,7 @@ t.env.BUILDDIR = bld.path.abspath() bld.SETUP_BUILD_GROUPS() bld.RECURSE('../lib/replace') +bld.RECURSE('../libcli/smbreadline') print "SBINDIR=%s" % bld.env.SBINDIR bld.RECURSE('build') @@ -1220,10 +1219,6 @@ bld.SAMBA_SUBSYSTEM('PROFILE', source='${PROFILE_SRC}', vars=locals()) -bld.SAMBA_SUBSYSTEM('READLINE', - source=READLINE_SRC, - vars=locals()) - bld.SAMBA_SUBSYSTEM('PRINTBASE', source=PRINTBASE_SRC, vars=locals()) @@ -1359,21 +1354,21 @@ bld.SAMBA_BINARY('rpcclient/rpcclient', source=RPCCLIENT_SRC, deps='''talloc tdb cap resolv POPT_SAMBA PASSDB LIBSMB LIB_NONSMBD PARAM_WITHOUT_REG libwbclient PARAM KRBCLIENT LIBMSRPC_GEN LIBMSRPC - LIBADS READLINE DISPLAY_SEC DCUTIL''', + LIBADS SMBREADLINE DISPLAY_SEC DCUTIL''', vars=locals()) bld.SAMBA_BINARY('smbclient', source=CLIENT_SRC, deps='''talloc tdb cap resolv POPT_SAMBA PASSDB LIBSMB LIB_NONSMBD PARAM_WITHOUT_REG libwbclient PARAM KRBCLIENT LIBMSRPC_GEN - LIBMSRPC READLINE DISPLAY_SEC SOCKET_WRAPPER''', + LIBMSRPC SMBREADLINE DISPLAY_SEC SOCKET_WRAPPER''', vars=locals()) bld.SAMBA_BINARY('net', source=NET_SRC, deps='''talloc tdb libnetapi libaddns cap resolv POPT_SAMBA PASSDB LIBSMB LIB_NONSMBD PARAM_WITHOUT_REG libwbclient PARAM KRBCLIENT LIBMSRPC_GEN LIBMSRPC LIBGPO LIBADS LIBADS_SERVER LIBADS_PRINTER - LOCALE_DIR LIBAFS LIBAFS_SETTOKEN READLINE PASSWD_UTIL LIBNET + LOCALE_DIR LIBAFS LIBAFS_SETTOKEN SMBREADLINE PASSWD_UTIL LIBNET LIBNET_DSSYNC LIBNET_SAMSYNC LIBEVENTLOG DISPLAY_SEC DCUTIL REGFIO NDR_NTPRINTING''', vars=locals()) @@ -1507,7 +1502,7 @@ bld.SAMBA_BINARY('pdbtest', bld.SAMBA_BINARY('vfstest', source=VFSTEST_SRC, - deps='''SMBD_BASE READLINE''', + deps='''SMBD_BASE SMBREADLINE''', vars=locals()) bld.SAMBA_BINARY('smbiconv', diff --git a/source4/Makefile.in b/source4/Makefile.in index 40f35e0308d..7c4f1416ff0 100644 --- a/source4/Makefile.in +++ b/source4/Makefile.in @@ -68,7 +68,7 @@ tdbsrcdir := ../lib/tdb ldbsrcdir := lib/ldb libtlssrcdir := lib/tls libregistrysrcdir := lib/registry -smbreadlinesrcdir := lib/smbreadline +smbreadlinesrcdir := ../libcli/smbreadline libmessagingsrcdir := lib/messaging libteventsrcdir := ../lib/tevent libeventssrcdir := lib/events diff --git a/source4/client/client.c b/source4/client/client.c index ee5357f1bf7..93d6f344953 100644 --- a/source4/client/client.c +++ b/source4/client/client.c @@ -45,7 +45,7 @@ #include "system/time.h" /* needed by some systems for asctime() */ #include "libcli/resolve/resolve.h" #include "libcli/security/security.h" -#include "lib/smbreadline/smbreadline.h" +#include "../libcli/smbreadline/smbreadline.h" #include "librpc/gen_ndr/ndr_nbt.h" #include "param/param.h" #include "libcli/raw/raw_proto.h" diff --git a/source4/configure.ac b/source4/configure.ac index f415d0bbb4b..bdbbb30d718 100644 --- a/source4/configure.ac +++ b/source4/configure.ac @@ -12,7 +12,7 @@ AC_DEFINE(CONFIG_H_IS_FROM_SAMBA,1,[Marker for samba's config.h.]) # Configuration rules. m4_include(build/m4/env.m4) m4_include(../lib/replace/samba.m4) -m4_include(lib/smbreadline/readline.m4) +m4_include(../libcli/smbreadline/readline.m4) m4_include(heimdal_build/config.m4) m4_include(../lib/util/fault.m4) m4_include(../lib/util/signal.m4) diff --git a/source4/lib/registry/tools/regshell.c b/source4/lib/registry/tools/regshell.c index 993fe3d7917..6bd7fd3b8bd 100644 --- a/source4/lib/registry/tools/regshell.c +++ b/source4/lib/registry/tools/regshell.c @@ -24,7 +24,7 @@ #include "lib/cmdline/popt_common.h" #include "lib/events/events.h" #include "system/time.h" -#include "lib/smbreadline/smbreadline.h" +#include "../libcli/smbreadline/smbreadline.h" #include "librpc/gen_ndr/ndr_security.h" #include "lib/registry/tools/common.h" #include "param/param.h" diff --git a/source4/torture/shell.c b/source4/torture/shell.c index 03c670a9023..4c098a97486 100644 --- a/source4/torture/shell.c +++ b/source4/torture/shell.c @@ -21,7 +21,7 @@ #include "includes.h" #include "system/readline.h" -#include "lib/smbreadline/smbreadline.h" +#include "../libcli/smbreadline/smbreadline.h" #include "lib/cmdline/popt_common.h" #include "auth/credentials/credentials.h" #include "torture/smbtorture.h" diff --git a/source4/torture/smbtorture.c b/source4/torture/smbtorture.c index 940ce85c740..8989bdf8d29 100644 --- a/source4/torture/smbtorture.c +++ b/source4/torture/smbtorture.c @@ -24,7 +24,7 @@ #include "system/wait.h" #include "system/filesys.h" #include "system/readline.h" -#include "lib/smbreadline/smbreadline.h" +#include "../libcli/smbreadline/smbreadline.h" #include "libcli/libcli.h" #include "lib/events/events.h" diff --git a/source4/wscript b/source4/wscript index 64502b3f4f1..806c58a4f2e 100644 --- a/source4/wscript +++ b/source4/wscript @@ -109,7 +109,7 @@ def configure(conf): conf.RECURSE('../lib/uid_wrapper') conf.RECURSE('../lib/popt') conf.RECURSE('../lib/subunit/c') - conf.RECURSE('lib/smbreadline') + conf.RECURSE('../libcli/smbreadline') conf.RECURSE('../pidl') conf.RECURSE('selftest') diff --git a/source4/wscript_build b/source4/wscript_build index 110ca3ea2f4..a4236643e97 100644 --- a/source4/wscript_build +++ b/source4/wscript_build @@ -110,7 +110,7 @@ bld.RECURSE('../libcli/samsync') bld.RECURSE('lib/policy') bld.RECURSE('../libcli/named_pipe_auth') bld.RECURSE('heimdal_build') -bld.RECURSE('lib/smbreadline') +bld.RECURSE('../libcli/smbreadline') bld.RECURSE('../codepages') bld.RECURSE('setup') bld.RECURSE('scripting') -- 2.34.1