[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Mon Jun 20 00:13:04 MDT 2011


The branch, master has been updated
       via  a1f04e8 libcli/util Rename common map_nt_error_from_unix to avoid duplicate symbol
       via  018f4a5 libcli/util Bring samba4 unix -> nt_status code in common.
       via  a63189e s3-libcli Remove unused error mapping tables
       via  ee90e01 s3-winbind Move winbind privileged socket dir into state_path()
       via  6c9a780 build: Put lockdir and cachedir in FHS-like locations by default
       via  edd3e8b s4-build Change default paths and --with flags for a 4.0 release
      from  01ce078 s4-upgradeprovision: propose the use of findprovisionranges if no ranges are present

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit a1f04e8abc761ef1ba211420ff1dbda50fcf527d
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jun 20 14:55:32 2011 +1000

    libcli/util Rename common map_nt_error_from_unix to avoid duplicate symbol
    
    The two error tables need to be combined, but for now seperate the names.
    
    (As the common parts of the tree now use the _common function,
    errmap_unix.c must be included in the s3 autoconf build).
    
    Andrew Bartlett
    
    Autobuild-User: Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date: Mon Jun 20 08:12:03 CEST 2011 on sn-devel-104

commit 018f4a5889743f742a59e9ad72056b2ea09adfe9
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jun 20 14:03:26 2011 +1000

    libcli/util Bring samba4 unix -> nt_status code in common.
    
    Due to library link orders, this is already the function that is being
    used.  However we still need to sort out the duplicate symbol issues,
    probably by renaming things.
    
    Andrew Bartlett

commit a63189e9f03fb84206a0c8460c5325815a31d62a
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jun 20 13:24:38 2011 +1000

    s3-libcli Remove unused error mapping tables
    
    The functions which uesed these tables have since moved in common.
    
    Andrew Bartlett

commit ee90e0103094cd0289c42cc1f25fe4960b3c436b
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Mon Jun 20 10:13:09 2011 +1000

    s3-winbind Move winbind privileged socket dir into state_path()
    
    On default installs, this will be the same as the old lock_path(), but
    lock_path() is now a directory that can safely be mapped to /var/locks
    and removed by the OS on reboot.  It is important that the directory
    permissions of this directory be preserved, as they may be customised.
    
    Andrew Bartlett

commit 6c9a78074a429773cefd1a3c798b7e3ad7d4c325
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jun 15 14:40:51 2011 +1000

    build: Put lockdir and cachedir in FHS-like locations by default
    
    This does not move statedir, leaving it in PREFIX/var/locks because
    state files such as idmap are dangerous to move, as they might
    re-create, causing chaos.
    
    This isn't ideal, but I don't have a better solution right now.
    
    Andrew Bartlett

commit edd3e8b03aa0bca85d4a9a62b35471e76a1f9390
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Tue Jun 14 17:01:02 2011 +1000

    s4-build Change default paths and --with flags for a 4.0 release
    
    The following changes are made since Samba 3.6:
    
    * --with-ncalrpcdir and --with-nmbdsocketdir are replaced with --with-socket-dir
      (with ntp_signd, winbindd, nmbd subdirs)
    
    * This moves the winbind socket out of /tmp.  Distributions have moved
      this out of /tmp for quite some time now, and /var/run in the FHS
      blessed location these days.  --with-socketdir should point to
      /var/run in a distribution package.
    
    * Configuration files are expected in PREFIX/etc instead of PREFIX/lib
      (they need to be moved manually)
    
    * SWAT data files have moved to PREFIX/share/swat (alongside
      PREFIX/share/setup containing samba4 provision templates).
    
    * The --with-fhs option is no longer available (it was never very
      useful, and major distributions (Debian, OpenSuSE, Fedora) either
      specified every option (overriding the effect) or didn't specify it
      at all.
    
    * PID files are now in PREFIX/var/run, moved from PREFIX/var/locks
    
    * The ncalrpc and nmbd sockets are now in PREFIX/var/run by default
    
    The following changes are made for users of Samba3 binaries built with the top level build in master
    
    * 'state' files are now expected to be in their Samba 3.6 location
      PREFIX/var/locks (and will need to be moved manually)
    
    Andrew Bartlett
    
    Signed-off-by: Andrew Tridgell <tridge at samba.org>

-----------------------------------------------------------------------

Summary of changes:
 lib/torture/torture.c                         |    4 +-
 libcli/auth/msrpc_parse.c                     |    6 +-
 libcli/auth/wscript_build                     |    2 +-
 libcli/cldap/cldap.c                          |    8 +-
 libcli/echo/echo.c                            |   10 +-
 libcli/nbt/namerefresh.c                      |    2 +-
 libcli/nbt/nameregister.c                     |    4 +-
 libcli/util/errmap_unix.c                     |  157 ++++++
 libcli/util/error.h                           |    2 +-
 libcli/util/tstream.c                         |    2 +-
 libcli/util/wscript_build                     |   11 +-
 libgpo/gpext/gpext.c                          |    2 +-
 libgpo/gpo_ini.c                              |    2 +-
 librpc/rpc/binding_handle.c                   |    4 +-
 librpc/rpc/dcerpc_util.c                      |    2 +-
 source3/Makefile.in                           |    2 +-
 source3/winbindd/winbindd.c                   |    2 +-
 source3/wscript_build                         |    3 +-
 source4/auth/kerberos/kerberos_pac.c          |    4 +-
 source4/auth/kerberos/wscript_build           |    2 +-
 source4/cldap_server/cldap_server.c           |    2 +-
 source4/dns_server/dns_server.c               |    4 +-
 source4/dsdb/dns/dns_update.c                 |    8 +-
 source4/dsdb/wscript_build                    |    2 +-
 source4/dynconfig/wscript                     |   78 +--
 source4/echo_server/echo_server.c             |    4 +-
 source4/kdc/kdc.c                             |    4 +-
 source4/ldap_server/ldap_extended.c           |    2 +-
 source4/lib/ldb-samba/wscript_build           |    2 +-
 source4/lib/socket/socket.c                   |    2 +-
 source4/lib/socket/socket_ip.c                |   58 +-
 source4/lib/socket/socket_unix.c              |   16 +-
 source4/libcli/resolve/dns_ex.c               |    4 +-
 source4/libcli/smb2/connect.c                 |    2 +-
 source4/libcli/smb2/session.c                 |    2 +-
 source4/libcli/smb_composite/smb2.c           |    2 +-
 source4/libcli/util/errormap.c                |  706 -------------------------
 source4/libcli/wrepl/winsrepl.c               |   10 +-
 source4/libcli/wscript_build                  |    9 -
 source4/libnet/libnet_become_dc.c             |    2 +-
 source4/libnet/libnet_site.c                  |    2 +-
 source4/libnet/libnet_unbecome_dc.c           |    2 +-
 source4/ntvfs/cifs_posix_cli/vfs_cifs_posix.c |   34 +-
 source4/ntvfs/ipc/vfs_ipc.c                   |   14 +-
 source4/ntvfs/posix/pvfs_util.c               |    2 +-
 source4/ntvfs/simple/vfs_simple.c             |   34 +-
 source4/ntvfs/sysdep/inotify.c                |    6 +-
 source4/ntvfs/sysdep/sys_lease_linux.c        |    4 +-
 source4/rpc_server/dcerpc_server.c            |    4 +-
 source4/smbd/service_named_pipe.c             |    4 +-
 wscript_build                                 |    2 +-
 51 files changed, 332 insertions(+), 926 deletions(-)
 create mode 100644 libcli/util/errmap_unix.c
 delete mode 100644 source4/libcli/util/errormap.c


Changeset truncated at 500 lines:

diff --git a/lib/torture/torture.c b/lib/torture/torture.c
index a0b35bf..cee6bdb 100644
--- a/lib/torture/torture.c
+++ b/lib/torture/torture.c
@@ -88,7 +88,7 @@ _PUBLIC_ NTSTATUS torture_temp_dir(struct torture_context *tctx,
 	NT_STATUS_HAVE_NO_MEMORY(*tempdir);
 
 	if (mkdtemp(*tempdir) == NULL) {
-		return map_nt_error_from_unix(errno);
+		return map_nt_error_from_unix_common(errno);
 	}
 
 	return NT_STATUS_OK;
@@ -154,7 +154,7 @@ _PUBLIC_ NTSTATUS torture_deltree_outputdir(struct torture_context *tctx)
 
 	if (local_deltree(tctx->outputdir) == -1) {
 		if (errno != 0) {
-			return map_nt_error_from_unix(errno);
+			return map_nt_error_from_unix_common(errno);
 		}
 		return NT_STATUS_UNSUCCESSFUL;
 	}
diff --git a/libcli/auth/msrpc_parse.c b/libcli/auth/msrpc_parse.c
index bdbba3d..8b64e98 100644
--- a/libcli/auth/msrpc_parse.c
+++ b/libcli/auth/msrpc_parse.c
@@ -78,7 +78,7 @@ NTSTATUS msrpc_gen(TALLOC_CTX *mem_ctx,
 				s, &n);
 			if (!ret) {
 				va_end(ap);
-				return map_nt_error_from_unix(errno);
+				return map_nt_error_from_unix_common(errno);
 			}
 			pointers[i].length = n;
 			pointers[i].length -= 2;
@@ -92,7 +92,7 @@ NTSTATUS msrpc_gen(TALLOC_CTX *mem_ctx,
 				s, &n);
 			if (!ret) {
 				va_end(ap);
-				return map_nt_error_from_unix(errno);
+				return map_nt_error_from_unix_common(errno);
 			}
 			pointers[i].length = n;
 			pointers[i].length -= 1;
@@ -108,7 +108,7 @@ NTSTATUS msrpc_gen(TALLOC_CTX *mem_ctx,
 				s, &n);
 			if (!ret) {
 				va_end(ap);
-				return map_nt_error_from_unix(errno);
+				return map_nt_error_from_unix_common(errno);
 			}
 			pointers[i].length = n;
 			pointers[i].length -= 2;
diff --git a/libcli/auth/wscript_build b/libcli/auth/wscript_build
index ab6ca4f..acb1ce3 100644
--- a/libcli/auth/wscript_build
+++ b/libcli/auth/wscript_build
@@ -2,7 +2,7 @@
 
 bld.SAMBA_LIBRARY('cliauth',
                   source='',
-                  deps='NTLMSSP_COMMON MSRPC_PARSE LIBCLI_AUTH COMMON_SCHANNEL PAM_ERRORS SPNEGO_PARSE KRB5_WRAP',
+                  deps='NTLMSSP_COMMON MSRPC_PARSE LIBCLI_AUTH COMMON_SCHANNEL PAM_ERRORS SPNEGO_PARSE KRB5_WRAP errors',
                   private_library=True,
                   grouping_library=True)
 
diff --git a/libcli/cldap/cldap.c b/libcli/cldap/cldap.c
index 37b4f49..59c54ea 100644
--- a/libcli/cldap/cldap.c
+++ b/libcli/cldap/cldap.c
@@ -284,7 +284,7 @@ static bool cldap_socket_recv_dgram(struct cldap_socket *c,
 nomem:
 	in->recv_errno = ENOMEM;
 error:
-	status = map_nt_error_from_unix(in->recv_errno);
+	status = map_nt_error_from_unix_common(in->recv_errno);
 nterror:
 	/* in connected mode the first pending search gets the error */
 	if (!c->connected) {
@@ -337,7 +337,7 @@ NTSTATUS cldap_socket_init(TALLOC_CTX *mem_ctx,
 							NULL, 0,
 							&any);
 		if (ret != 0) {
-			status = map_nt_error_from_unix(errno);
+			status = map_nt_error_from_unix_common(errno);
 			goto nterror;
 		}
 		local_addr = any;
@@ -351,7 +351,7 @@ NTSTATUS cldap_socket_init(TALLOC_CTX *mem_ctx,
 	ret = tdgram_inet_udp_socket(local_addr, remote_addr,
 				     c, &c->sock);
 	if (ret != 0) {
-		status = map_nt_error_from_unix(errno);
+		status = map_nt_error_from_unix_common(errno);
 		goto nterror;
 	}
 	talloc_free(any);
@@ -669,7 +669,7 @@ static void cldap_search_state_queue_done(struct tevent_req *subreq)
 	talloc_free(subreq);
 	if (ret == -1) {
 		NTSTATUS status;
-		status = map_nt_error_from_unix(sys_errno);
+		status = map_nt_error_from_unix_common(sys_errno);
 		DLIST_REMOVE(state->caller.cldap->searches.list, state);
 		ZERO_STRUCT(state->caller.cldap);
 		tevent_req_nterror(req, status);
diff --git a/libcli/echo/echo.c b/libcli/echo/echo.c
index 271f71b..b6005cb 100644
--- a/libcli/echo/echo.c
+++ b/libcli/echo/echo.c
@@ -75,20 +75,20 @@ struct tevent_req *echo_request_send(TALLOC_CTX *mem_ctx,
 	ret = tsocket_address_inet_from_strings(state, "ip", NULL, 0,
 						&local_addr);
 	if (ret != 0) {
-		tevent_req_nterror(req, map_nt_error_from_unix(ret));
+		tevent_req_nterror(req, map_nt_error_from_unix_common(ret));
 		return tevent_req_post(req, ev);
 	}
 
 	ret = tsocket_address_inet_from_strings(state, "ip", server_addr_string,
 						ECHO_PORT, &server_addr);
 	if (ret != 0) {
-		tevent_req_nterror(req, map_nt_error_from_unix(ret));
+		tevent_req_nterror(req, map_nt_error_from_unix_common(ret));
 		return tevent_req_post(req, ev);
 	}
 
 	ret = tdgram_inet_udp_socket(local_addr, server_addr, state, &dgram);
 	if (ret != 0) {
-		tevent_req_nterror(req, map_nt_error_from_unix(ret));
+		tevent_req_nterror(req, map_nt_error_from_unix_common(ret));
 		return tevent_req_post(req, ev);
 	}
 
@@ -132,7 +132,7 @@ static void echo_request_get_reply(struct tevent_req *subreq)
 	TALLOC_FREE(subreq);
 
 	if (len == -1 && err != 0) {
-		tevent_req_nterror(req, map_nt_error_from_unix(err));
+		tevent_req_nterror(req, map_nt_error_from_unix_common(err));
 		return;
 	}
 
@@ -168,7 +168,7 @@ static void echo_request_done(struct tevent_req *subreq)
 	TALLOC_FREE(subreq);
 
 	if (len == -1 && err != 0) {
-		tevent_req_nterror(req, map_nt_error_from_unix(err));
+		tevent_req_nterror(req, map_nt_error_from_unix_common(err));
 		return;
 	}
 
diff --git a/libcli/nbt/namerefresh.c b/libcli/nbt/namerefresh.c
index 79c6c1f..b525356 100644
--- a/libcli/nbt/namerefresh.c
+++ b/libcli/nbt/namerefresh.c
@@ -331,7 +331,7 @@ _PUBLIC_ NTSTATUS nbt_name_refresh_wins(struct nbt_name_socket *nbtsock,
 	}
 
 	if (!tevent_req_poll(subreq, ev)) {
-		status = map_nt_error_from_unix(errno);
+		status = map_nt_error_from_unix_common(errno);
 		talloc_free(frame);
 		return status;
 	}
diff --git a/libcli/nbt/nameregister.c b/libcli/nbt/nameregister.c
index 204fb6f..ff5418c 100644
--- a/libcli/nbt/nameregister.c
+++ b/libcli/nbt/nameregister.c
@@ -283,7 +283,7 @@ NTSTATUS nbt_name_register_bcast(struct nbt_name_socket *nbtsock,
 	}
 
 	if (!tevent_req_poll(subreq, ev)) {
-		status = map_nt_error_from_unix(errno);
+		status = map_nt_error_from_unix_common(errno);
 		talloc_free(frame);
 		return status;
 	}
@@ -498,7 +498,7 @@ _PUBLIC_ NTSTATUS nbt_name_register_wins(struct nbt_name_socket *nbtsock,
 	}
 
 	if (!tevent_req_poll(subreq, ev)) {
-		status = map_nt_error_from_unix(errno);
+		status = map_nt_error_from_unix_common(errno);
 		talloc_free(frame);
 		return status;
 	}
diff --git a/libcli/util/errmap_unix.c b/libcli/util/errmap_unix.c
new file mode 100644
index 0000000..8f9f898
--- /dev/null
+++ b/libcli/util/errmap_unix.c
@@ -0,0 +1,157 @@
+/* 
+ *  Unix SMB/CIFS implementation.
+ *  error mapping functions
+ *  Copyright (C) Andrew Tridgell 2001
+ *  Copyright (C) Andrew Bartlett 2001
+ *  Copyright (C) Tim Potter 2000
+ *  
+ *  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"
+
+/* Mapping between Unix, and NT error numbers */
+
+static const struct {
+	int unix_error;
+	NTSTATUS nt_error;
+} unix_nt_errmap[] = {
+	{ EAGAIN,       STATUS_MORE_ENTRIES },
+	{ EINTR,        STATUS_MORE_ENTRIES },
+	{ ENOBUFS,      STATUS_MORE_ENTRIES },
+#ifdef EWOULDBLOCK
+	{ EWOULDBLOCK,  STATUS_MORE_ENTRIES },
+#endif
+	{ EINPROGRESS,  NT_STATUS_MORE_PROCESSING_REQUIRED },
+	{ EPERM,        NT_STATUS_ACCESS_DENIED },
+	{ EACCES,       NT_STATUS_ACCESS_DENIED },
+	{ ENOENT,       NT_STATUS_OBJECT_NAME_NOT_FOUND },
+	{ ENOTDIR,      NT_STATUS_NOT_A_DIRECTORY },
+	{ EIO,          NT_STATUS_IO_DEVICE_ERROR },
+	{ EBADF,        NT_STATUS_INVALID_HANDLE },
+	{ EINVAL,       NT_STATUS_INVALID_PARAMETER },
+	{ EEXIST,       NT_STATUS_OBJECT_NAME_COLLISION},
+	{ ENFILE,       NT_STATUS_TOO_MANY_OPENED_FILES },
+	{ EMFILE,       NT_STATUS_TOO_MANY_OPENED_FILES },
+	{ ENOSPC,       NT_STATUS_DISK_FULL },
+	{ ENOTSOCK,     NT_STATUS_INVALID_HANDLE },
+	{ EFAULT,       NT_STATUS_INVALID_PARAMETER },
+	{ EMSGSIZE,     NT_STATUS_INVALID_BUFFER_SIZE },
+	{ ENOMEM,       NT_STATUS_NO_MEMORY },
+	{ EISDIR,       NT_STATUS_FILE_IS_A_DIRECTORY},
+#ifdef EPIPE
+	{ EPIPE,        NT_STATUS_CONNECTION_DISCONNECTED },
+#endif
+	{ EBUSY,        NT_STATUS_SHARING_VIOLATION },
+	{ ENOSYS,	NT_STATUS_INVALID_SYSTEM_SERVICE },
+#ifdef EOPNOTSUPP
+	{ EOPNOTSUPP,   NT_STATUS_NOT_SUPPORTED},
+#endif
+	{ EMLINK,       NT_STATUS_TOO_MANY_LINKS },
+	{ ENOSYS,       NT_STATUS_NOT_SUPPORTED },
+#ifdef ELOOP
+	{ ELOOP,        NT_STATUS_OBJECT_PATH_NOT_FOUND },
+#endif
+#ifdef ENODATA
+	{ ENODATA,      NT_STATUS_NOT_FOUND },
+#endif
+#ifdef EFTYPE
+	{ EFTYPE,       NT_STATUS_OBJECT_PATH_NOT_FOUND },
+#endif
+#ifdef EDQUOT
+	{ EDQUOT,       NT_STATUS_DISK_FULL }, /* Windows apps need this, not NT_STATUS_QUOTA_EXCEEDED */
+#endif
+#ifdef ENOTEMPTY
+	{ ENOTEMPTY,    NT_STATUS_DIRECTORY_NOT_EMPTY },
+#endif
+#ifdef EXDEV
+	{ EXDEV,        NT_STATUS_NOT_SAME_DEVICE },
+#endif
+#ifdef EROFS
+	{ EROFS,        NT_STATUS_MEDIA_WRITE_PROTECTED },
+#endif
+#ifdef ENAMETOOLONG
+	{ ENAMETOOLONG, NT_STATUS_NAME_TOO_LONG },
+#endif
+#ifdef EFBIG
+	{ EFBIG,        NT_STATUS_DISK_FULL },
+#endif
+#ifdef EADDRINUSE
+	{ EADDRINUSE,   NT_STATUS_ADDRESS_ALREADY_ASSOCIATED},
+#endif
+#ifdef ENETUNREACH
+	{ ENETUNREACH,  NT_STATUS_NETWORK_UNREACHABLE},
+#endif
+#ifdef EHOSTUNREACH
+        { EHOSTUNREACH, NT_STATUS_HOST_UNREACHABLE},
+#endif
+#ifdef ECONNREFUSED
+	{ ECONNREFUSED, NT_STATUS_CONNECTION_REFUSED},
+#endif
+#ifdef EADDRNOTAVAIL
+	{ EADDRNOTAVAIL,NT_STATUS_ADDRESS_NOT_ASSOCIATED },
+#endif
+#ifdef ETIMEDOUT
+	{ ETIMEDOUT,    NT_STATUS_IO_TIMEOUT},
+#endif
+#ifdef ESOCKTNOSUPPORT
+	{ ESOCKTNOSUPPORT,NT_STATUS_INVALID_PARAMETER_MIX },
+#endif
+#ifdef EAFNOSUPPORT
+	{ EAFNOSUPPORT,	NT_STATUS_INVALID_PARAMETER_MIX },
+#endif
+#ifdef ECONNABORTED
+	{ ECONNABORTED, NT_STATUS_CONNECTION_ABORTED},
+#endif
+#ifdef ECONNRESET
+	{ ECONNRESET,   NT_STATUS_CONNECTION_RESET},
+#endif
+#ifdef ENOPROTOOPT
+	{ ENOPROTOOPT,	NT_STATUS_INVALID_PARAMETER_MIX },
+#endif
+#ifdef ENODEV
+	{ ENODEV,	NT_STATUS_NO_SUCH_DEVICE },
+#endif
+#ifdef ENOATTR
+	{ ENOATTR,      NT_STATUS_NOT_FOUND },
+#endif
+#ifdef ECANCELED
+	{ ECANCELED,    NT_STATUS_CANCELLED},
+#endif
+#ifdef ENOTSUP
+        { ENOTSUP,      NT_STATUS_NOT_SUPPORTED},
+#endif
+
+	{ 0, NT_STATUS_UNSUCCESSFUL }
+};
+
+
+/*********************************************************************
+ Map an NT error code from a Unix error code.
+*********************************************************************/
+NTSTATUS map_nt_error_from_unix_common(int unix_error)
+{
+	int i;
+
+	/* Look through list */
+	for (i=0;i<ARRAY_SIZE(unix_nt_errmap);i++) {
+		if (unix_nt_errmap[i].unix_error == unix_error) {
+			return unix_nt_errmap[i].nt_error;
+		}
+	}
+
+	/* Default return */
+	return NT_STATUS_UNSUCCESSFUL;
+}
+
diff --git a/libcli/util/error.h b/libcli/util/error.h
index 771d7a6..5c4dc10 100644
--- a/libcli/util/error.h
+++ b/libcli/util/error.h
@@ -41,7 +41,7 @@ WERROR ntstatus_to_werror(NTSTATUS error);
 /*********************************************************************
  Map an NT error code from a Unix error code.
 *********************************************************************/
-NTSTATUS map_nt_error_from_unix(int unix_error);
+NTSTATUS map_nt_error_from_unix_common(int unix_error);
 
 NTSTATUS nt_status_squash(NTSTATUS nt_status);
 
diff --git a/libcli/util/tstream.c b/libcli/util/tstream.c
index b287597..12cef9b 100644
--- a/libcli/util/tstream.c
+++ b/libcli/util/tstream.c
@@ -106,7 +106,7 @@ static void tstream_read_pdu_blob_done(struct tevent_req *subreq)
 	ret = tstream_readv_recv(subreq, &sys_errno);
 	TALLOC_FREE(subreq);
 	if (ret == -1) {
-		status = map_nt_error_from_unix(sys_errno);
+		status = map_nt_error_from_unix_common(sys_errno);
 		tevent_req_nterror(req, status);
 		return;
 	}
diff --git a/libcli/util/wscript_build b/libcli/util/wscript_build
index d87f0ba..a364d30 100644
--- a/libcli/util/wscript_build
+++ b/libcli/util/wscript_build
@@ -1,8 +1,11 @@
 #!/usr/bin/env python
 
 
-bld.SAMBA_SUBSYSTEM('LIBCLI_ERRORS',
-	source='doserr.c errormap.c nterr.c',
-	public_deps='talloc samba-util-common'
-	)
+bld.SAMBA_LIBRARY('errors',
+                  public_headers='error.h ntstatus.h doserr.h werror.h',
+                  header_path='core',
+                  source='doserr.c errormap.c nterr.c errmap_unix.c',
+                  public_deps='talloc samba-util-common',
+                  private_library=True
+                  )
 
diff --git a/libgpo/gpext/gpext.c b/libgpo/gpext/gpext.c
index 640aae6..42ab622 100644
--- a/libgpo/gpext/gpext.c
+++ b/libgpo/gpext/gpext.c
@@ -495,7 +495,7 @@ static NTSTATUS gp_glob_ext_list(TALLOC_CTX *mem_ctx,
 	dir = sys_opendir(modules_path(talloc_tos(), 
 				       SAMBA_SUBSYSTEM_GPEXT));
 	if (!dir) {
-		return map_nt_error_from_unix(errno);
+		return map_nt_error_from_unix_common(errno);
 	}
 
 	while ((dirent = sys_readdir(dir))) {
diff --git a/libgpo/gpo_ini.c b/libgpo/gpo_ini.c
index a4bff0e..4941624 100644
--- a/libgpo/gpo_ini.c
+++ b/libgpo/gpo_ini.c
@@ -108,7 +108,7 @@ static NTSTATUS convert_file_from_ucs2(TALLOC_CTX *mem_ctx,
 	}
 
 	if (write(tmp_fd, data_out, converted_size) != converted_size) {
-		status = map_nt_error_from_unix(errno);
+		status = map_nt_error_from_unix_common(errno);
 		goto out;
 	}
 
diff --git a/librpc/rpc/binding_handle.c b/librpc/rpc/binding_handle.c
index 6c2d8a8..1e90827 100644
--- a/librpc/rpc/binding_handle.c
+++ b/librpc/rpc/binding_handle.c
@@ -227,7 +227,7 @@ NTSTATUS dcerpc_binding_handle_raw_call(struct dcerpc_binding_handle *h,
 	}
 
 	if (!tevent_req_poll(subreq, ev)) {
-		status = map_nt_error_from_unix(errno);
+		status = map_nt_error_from_unix_common(errno);
 		talloc_free(frame);
 		return status;
 	}
@@ -540,7 +540,7 @@ NTSTATUS dcerpc_binding_handle_call(struct dcerpc_binding_handle *h,
 	}
 
 	if (!tevent_req_poll(subreq, ev)) {
-		status = map_nt_error_from_unix(errno);
+		status = map_nt_error_from_unix_common(errno);
 		talloc_free(frame);
 		return status;
 	}
diff --git a/librpc/rpc/dcerpc_util.c b/librpc/rpc/dcerpc_util.c
index a405ca8..de292c8 100644
--- a/librpc/rpc/dcerpc_util.c
+++ b/librpc/rpc/dcerpc_util.c
@@ -266,7 +266,7 @@ static void dcerpc_read_ncacn_packet_done(struct tevent_req *subreq)
 	ret = tstream_readv_pdu_recv(subreq, &sys_errno);
 	TALLOC_FREE(subreq);
 	if (ret == -1) {
-		status = map_nt_error_from_unix(sys_errno);
+		status = map_nt_error_from_unix_common(sys_errno);
 		tevent_req_nterror(req, status);
 		return;
 	}
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 6c17947..3df9ab4 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -465,7 +465,7 @@ LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
 	  lib/util.o lib/util_malloc.o lib/namearray.o lib/util_cmdline.o lib/util_names.o \
 	  lib/util_sock.o lib/sock_exec.o lib/util_sec.o \
 	  lib/substitute.o lib/substitute_generic.o ../lib/util/substitute.o lib/dbwrap_util.o \
-	  lib/ms_fnmatch.o ../lib/util/ms_fnmatch.o lib/errmap_unix.o \
+	  lib/ms_fnmatch.o ../lib/util/ms_fnmatch.o lib/errmap_unix.o ../libcli/util/errmap_unix.o \
 	  lib/tallocmsg.o lib/dmallocmsg.o \
 	  libsmb/clisigning.o libsmb/smb_signing.o \
 	  ../lib/util/charset/iconv.o intl/lang_tdb.o \
diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c
index 3d29e3f..1646821 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -951,7 +951,7 @@ const char *get_winbind_pipe_dir(void)
 
 char *get_winbind_priv_pipe_dir(void)
 {
-	return lock_path(WINBINDD_PRIV_SOCKET_SUBDIR);
+	return state_path(WINBINDD_PRIV_SOCKET_SUBDIR);
 }
 
 static bool winbindd_setup_listeners(void)
diff --git a/source3/wscript_build b/source3/wscript_build
index 99e8d95..e3160e6 100755
--- a/source3/wscript_build
+++ b/source3/wscript_build
@@ -1066,7 +1066,7 @@ bld.SAMBA3_SUBSYSTEM('ldb3',
 
 bld.SAMBA3_SUBSYSTEM('errors3',
                      source='libsmb/errormap.c libsmb/smberr.c lib/errmap_unix.c',
-                     deps='LIBCLI_ERRORS')
+                     deps='errors')
 
 bld.SAMBA3_SUBSYSTEM('LIBCLI_SAMR',
                     source=LIBCLI_SAMR_SRC,
@@ -1412,7 +1412,6 @@ bld.INSTALL_FILES('${SWATDIR}', swat_files, base_name='../swat')
 
 if not bld.env.toplevel_build:
     bld.SAMBA3_SUBSYSTEM('POPT_SAMBA', source='', deps='POPT_SAMBA3')


-- 
Samba Shared Repository


More information about the samba-cvs mailing list