The branch, master has been updated
       via  593549fc004de05aea23e17c59f9a12254eff33d (commit)
       via  2d89b52be8104261aa8f028f49210f016cbf4742 (commit)
       via  519458a2fa01ae7e8eadebbe1d7895740861c468 (commit)
      from  93310970e307c766a7fccbd38aaa82b376c1769e (commit)

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


- Log -----------------------------------------------------------------
commit 593549fc004de05aea23e17c59f9a12254eff33d
Author: Jelmer Vernooij <[EMAIL PROTECTED]>
Date:   Fri Oct 17 12:49:11 2008 +0200

    Fix build of 'everything'

commit 2d89b52be8104261aa8f028f49210f016cbf4742
Author: Jelmer Vernooij <[EMAIL PROTECTED]>
Date:   Fri Oct 17 12:48:19 2008 +0200

    Use separate make variables for libutil and libcrypto.

commit 519458a2fa01ae7e8eadebbe1d7895740861c468
Author: Jelmer Vernooij <[EMAIL PROTECTED]>
Date:   Fri Oct 17 12:26:46 2008 +0200

    Use shared util.c.

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

Summary of changes:
 lib/util/config.mk                    |    1 +
 lib/util/util.c                       |  165 ++++++-----------
 lib/util/util.h                       |    2 +-
 lib/util/util_net.c                   |  128 +++++++++++++
 source3/Makefile.in                   |   28 ++-
 source3/client/client.c               |    6 +-
 source3/client/smbspool.c             |    2 +-
 source3/groupdb/mapping_ldb.c         |    4 +-
 source3/include/proto.h               |    8 +-
 source3/lib/smbconf/smbconf_txt.c     |    2 +-
 source3/lib/util.c                    |  328 +--------------------------------
 source3/librpc/ndr/util.c             |   14 --
 source3/nmbd/nmbd.c                   |    4 +-
 source3/nmbd/nmbd_processlogon.c      |    2 +-
 source3/param/loadparm.c              |    2 +-
 source3/registry/reg_perfcount.c      |    2 +-
 source3/rpc_client/cli_pipe.c         |    2 +-
 source3/rpc_server/srv_eventlog_lib.c |    2 +-
 source3/smbd/server.c                 |    4 +-
 source3/torture/torture.c             |    2 +-
 source3/torture/vfstest.c             |    2 +-
 source3/utils/testparm.c              |    4 +-
 source3/web/cgi.c                     |    2 +-
 source3/web/swat.c                    |    4 +-
 source3/winbindd/idmap_tdb.c          |    2 +-
 source3/winbindd/winbindd.c           |    4 +-
 source4/smbd/pidfile.c                |    2 +-
 27 files changed, 242 insertions(+), 486 deletions(-)
 create mode 100644 lib/util/util_net.c


Changeset truncated at 500 lines:

diff --git a/lib/util/config.mk b/lib/util/config.mk
index 6873c1b..aa3c94c 100644
--- a/lib/util/config.mk
+++ b/lib/util/config.mk
@@ -18,6 +18,7 @@ LIBSAMBA-UTIL_OBJ_FILES = $(addprefix $(libutilsrcdir)/, \
                util_file.o \
                data_blob.o \
                util.o \
+               util_net.o \
                fsusage.o \
                ms_fnmatch.o \
                mutex.o \
diff --git a/lib/util/util.c b/lib/util/util.c
index 4c5ae97..fc55629 100644
--- a/lib/util/util.c
+++ b/lib/util/util.c
@@ -25,6 +25,10 @@
 #include "system/network.h"
 #include "system/filesys.h"
 #include "system/locale.h"
+#undef malloc
+#undef strcasecmp
+#undef strdup
+#undef realloc
 
 /**
  * @file
@@ -217,112 +221,10 @@ _PUBLIC_ char *get_myname(void)
 }
 
 /**
- Return true if a string could be a pure IP address.
-**/
-
-_PUBLIC_ bool is_ipaddress(const char *str)
-{
-       bool pure_address = true;
-       int i;
-
-       if (str == NULL) return false;
-
-       for (i=0; pure_address && str[i]; i++)
-               if (!(isdigit((int)str[i]) || str[i] == '.'))
-                       pure_address = false;
-
-       /* Check that a pure number is not misinterpreted as an IP */
-       pure_address = pure_address && (strchr(str, '.') != NULL);
-
-       return pure_address;
-}
-
-/**
- Interpret an internet address or name into an IP address in 4 byte form.
-**/
-_PUBLIC_ uint32_t interpret_addr(const char *str)
-{
-       struct hostent *hp;
-       uint32_t res;
-
-       if (str == NULL || *str == 0 ||
-           strcmp(str,"0.0.0.0") == 0) {
-               return 0;
-       }
-       if (strcmp(str,"255.255.255.255") == 0) {
-               return 0xFFFFFFFF;
-       }
-       /* recognise 'localhost' as a special name. This fixes problems with
-          some hosts that don't have localhost in /etc/hosts */
-       if (strcasecmp(str,"localhost") == 0) {
-               str = "127.0.0.1";
-       }
-
-       /* if it's in the form of an IP address then get the lib to interpret 
it */
-       if (is_ipaddress(str)) {
-               res = inet_addr(str);
-       } else {
-               /* otherwise assume it's a network name of some sort and use 
-                       sys_gethostbyname */
-               if ((hp = sys_gethostbyname(str)) == 0) {
-                       DEBUG(3,("sys_gethostbyname: Unknown host. %s\n",str));
-                       return 0;
-               }
-
-               if(hp->h_addr == NULL) {
-                       DEBUG(3,("sys_gethostbyname: host address is invalid 
for host %s\n",str));
-                       return 0;
-               }
-               memcpy((char *)&res,(char *)hp->h_addr, 4);
-       }
-
-       if (res == (uint32_t)-1)
-               return(0);
-
-       return(res);
-}
-
-/**
- A convenient addition to interpret_addr().
-**/
-_PUBLIC_ struct in_addr interpret_addr2(const char *str)
-{
-       struct in_addr ret;
-       uint32_t a = interpret_addr(str);
-       ret.s_addr = a;
-       return ret;
-}
-
-/**
- Check if an IP is the 0.0.0.0.
-**/
-
-_PUBLIC_ bool is_zero_ip(struct in_addr ip)
-{
-       return ip.s_addr == 0;
-}
-
-/**
- Are two IPs on the same subnet?
-**/
-
-_PUBLIC_ bool same_net(struct in_addr ip1, struct in_addr ip2, struct in_addr 
mask)
-{
-       uint32_t net1,net2,nmask;
-
-       nmask = ntohl(mask.s_addr);
-       net1  = ntohl(ip1.s_addr);
-       net2  = ntohl(ip2.s_addr);
-            
-       return((net1 & nmask) == (net2 & nmask));
-}
-
-
-/**
  Check if a process exists. Does this work on all unixes?
 **/
 
-_PUBLIC_ bool process_exists(pid_t pid)
+_PUBLIC_ bool process_exists_by_pid(pid_t pid)
 {
        /* Doing kill with a non-positive pid causes messages to be
         * sent to places we don't want. */
@@ -381,7 +283,7 @@ _PUBLIC_ bool fcntl_lock(int fd, int op, off_t offset, 
off_t count, int type)
 }
 
 
-static void print_asc(int level, const uint8_t *buf,int len)
+void print_asc(int level, const uint8_t *buf,int len)
 {
        int i;
        for (i=0;i<len;i++)
@@ -509,15 +411,64 @@ _PUBLIC_ void *smb_xmemdup(const void *p, size_t size)
  strdup that aborts on malloc fail.
 **/
 
-_PUBLIC_ char *smb_xstrdup(const char *s)
+char *smb_xstrdup(const char *s)
 {
+#if defined(PARANOID_MALLOC_CHECKER)
+#ifdef strdup
+#undef strdup
+#endif
+#endif
+
+#ifndef HAVE_STRDUP
+#define strdup rep_strdup
+#endif
+
        char *s1 = strdup(s);
-       if (!s1)
-               smb_panic("smb_xstrdup: malloc fail\n");
+#if defined(PARANOID_MALLOC_CHECKER)
+#ifdef strdup
+#undef strdup
+#endif
+#define strdup(s) __ERROR_DONT_USE_STRDUP_DIRECTLY
+#endif
+       if (!s1) {
+               smb_panic("smb_xstrdup: malloc failed");
+       }
+       return s1;
+
+}
+
+/**
+ strndup that aborts on malloc fail.
+**/
+
+char *smb_xstrndup(const char *s, size_t n)
+{
+#if defined(PARANOID_MALLOC_CHECKER)
+#ifdef strndup
+#undef strndup
+#endif
+#endif
+
+#if (defined(BROKEN_STRNDUP) || !defined(HAVE_STRNDUP))
+#undef HAVE_STRNDUP
+#define strndup rep_strndup
+#endif
+
+       char *s1 = strndup(s, n);
+#if defined(PARANOID_MALLOC_CHECKER)
+#ifdef strndup
+#undef strndup
+#endif
+#define strndup(s,n) __ERROR_DONT_USE_STRNDUP_DIRECTLY
+#endif
+       if (!s1) {
+               smb_panic("smb_xstrndup: malloc failed");
+       }
        return s1;
 }
 
 
+
 /**
  Like strdup but for memory.
 **/
diff --git a/lib/util/util.h b/lib/util/util.h
index e4a5a0c..47adf06 100644
--- a/lib/util/util.h
+++ b/lib/util/util.h
@@ -574,7 +574,7 @@ _PUBLIC_ bool same_net(struct in_addr ip1,struct in_addr 
ip2,struct in_addr mask
 /**
  Check if a process exists. Does this work on all unixes?
 **/
-_PUBLIC_ bool process_exists(pid_t pid);
+_PUBLIC_ bool process_exists_by_pid(pid_t pid);
 
 /**
  Simple routine to do POSIX file locking. Cruft in NFS and 64->32 bit mapping
diff --git a/lib/util/util_net.c b/lib/util/util_net.c
new file mode 100644
index 0000000..7718d02
--- /dev/null
+++ b/lib/util/util_net.c
@@ -0,0 +1,128 @@
+/* 
+   Unix SMB/CIFS implementation.
+   Samba utility functions
+   Copyright (C) Jelmer Vernooij <[EMAIL PROTECTED]> 2008
+   Copyright (C) Andrew Tridgell 1992-1998
+   Copyright (C) Jeremy Allison 2001-2002
+   Copyright (C) Simo Sorce 2001
+   Copyright (C) Jim McDonough ([EMAIL PROTECTED])  2003.
+   Copyright (C) James J Myers 2003
+    
+   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"
+
+/**
+ Interpret an internet address or name into an IP address in 4 byte form.
+**/
+_PUBLIC_ uint32_t interpret_addr(const char *str)
+{
+       struct hostent *hp;
+       uint32_t res;
+
+       if (str == NULL || *str == 0 ||
+           strcmp(str,"0.0.0.0") == 0) {
+               return 0;
+       }
+       if (strcmp(str,"255.255.255.255") == 0) {
+               return 0xFFFFFFFF;
+       }
+       /* recognise 'localhost' as a special name. This fixes problems with
+          some hosts that don't have localhost in /etc/hosts */
+       if (strcasecmp(str,"localhost") == 0) {
+               str = "127.0.0.1";
+       }
+
+       /* if it's in the form of an IP address then get the lib to interpret 
it */
+       if (is_ipaddress(str)) {
+               res = inet_addr(str);
+       } else {
+               /* otherwise assume it's a network name of some sort and use 
+                       sys_gethostbyname */
+               if ((hp = sys_gethostbyname(str)) == 0) {
+                       DEBUG(3,("sys_gethostbyname: Unknown host. %s\n",str));
+                       return 0;
+               }
+
+               if(hp->h_addr == NULL) {
+                       DEBUG(3,("sys_gethostbyname: host address is invalid 
for host %s\n",str));
+                       return 0;
+               }
+               memcpy((char *)&res,(char *)hp->h_addr, 4);
+       }
+
+       if (res == (uint32_t)-1)
+               return(0);
+
+       return(res);
+}
+
+/**
+ A convenient addition to interpret_addr().
+**/
+_PUBLIC_ struct in_addr interpret_addr2(const char *str)
+{
+       struct in_addr ret;
+       uint32_t a = interpret_addr(str);
+       ret.s_addr = a;
+       return ret;
+}
+
+/**
+ Check if an IP is the 0.0.0.0.
+**/
+
+_PUBLIC_ bool is_zero_ip(struct in_addr ip)
+{
+       return ip.s_addr == 0;
+}
+
+/**
+ Are two IPs on the same subnet?
+**/
+
+_PUBLIC_ bool same_net(struct in_addr ip1, struct in_addr ip2, struct in_addr 
mask)
+{
+       uint32_t net1,net2,nmask;
+
+       nmask = ntohl(mask.s_addr);
+       net1  = ntohl(ip1.s_addr);
+       net2  = ntohl(ip2.s_addr);
+            
+       return((net1 & nmask) == (net2 & nmask));
+}
+
+/**
+ Return true if a string could be a pure IP address.
+**/
+
+_PUBLIC_ bool is_ipaddress(const char *str)
+{
+       bool pure_address = true;
+       int i;
+
+       if (str == NULL) return false;
+
+       for (i=0; pure_address && str[i]; i++)
+               if (!(isdigit((int)str[i]) || str[i] == '.'))
+                       pure_address = false;
+
+       /* Check that a pure number is not misinterpreted as an IP */
+       pure_address = pure_address && (strchr(str, '.') != NULL);
+
+       return pure_address;
+}
+
+
diff --git a/source3/Makefile.in b/source3/Makefile.in
index 2665b05..1b460f4 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -315,29 +315,35 @@ LIBSAMBAUTIL_OBJ = @LIBTALLOC_STATIC@ \
                $(SOCKET_WRAPPER_OBJ) \
                $(NSS_WRAPPER_OBJ)
 
-LIB_OBJ = $(LIBSAMBAUTIL_OBJ) \
+UTIL_OBJ = ../lib/util/rbtree.o ../lib/util/signal.o ../lib/util/time.o \
+                  ../lib/util/xfile.o ../lib/util/util_strlist.o  \
+                  ../lib/util/util_file.o ../lib/util/data_blob.o \
+                  ../lib/util/util.o ../lib/util/fsusage.o 
+
+CRYPTO_OBJ = ../lib/crypto/crc32.o ../lib/crypto/md5.o \
+                        ../lib/crypto/hmacmd5.o ../lib/crypto/arcfour.o \
+                        ../lib/crypto/md4.o
+
+LIB_OBJ = $(LIBSAMBAUTIL_OBJ) $(UTIL_OBJ) $(CRYPTO_OBJ) \
          lib/messages.o librpc/gen_ndr/ndr_messaging.o lib/messages_local.o \
          lib/messages_ctdbd.o lib/packet.o lib/ctdbd_conn.o lib/talloc_stack.o 
\
-         lib/interfaces.o ../lib/util/rbtree.o lib/memcache.o \
+         lib/interfaces.o lib/memcache.o \
          lib/util_transfer_file.o lib/async_req.o \
          lib/async_sock.o \
          $(TDB_LIB_OBJ) \
          $(VERSION_OBJ) lib/charcnv.o lib/debug.o lib/fault.o \
-         lib/interface.o ../lib/crypto/md4.o \
-         lib/pidfile.o \
-         ../lib/util/signal.o lib/system.o lib/sendfile.o lib/recvfile.o 
lib/time.o \
-         ../lib/util/time.o \
+         lib/interface.o lib/pidfile.o \
+         lib/system.o lib/sendfile.o lib/recvfile.o lib/time.o \
          lib/ufc.o lib/genrand.o lib/username.o \
          lib/util_pw.o lib/access.o lib/smbrun.o \
-         lib/bitmap.o ../lib/crypto/crc32.o lib/dprintf.o $(UTIL_REG_OBJ) \
-         ../lib/util/xfile.o ../lib/util/util_strlist.o lib/wins_srv.o \
+         lib/bitmap.o lib/dprintf.o $(UTIL_REG_OBJ) \
+         lib/wins_srv.o \
          lib/util_str.o lib/clobber.o lib/util_sid.o lib/util_uuid.o \
-         lib/util_unistr.o ../lib/util/util_file.o lib/util_file.o 
../lib/util/data_blob.o \
+         lib/util_unistr.o lib/util_file.o \
          lib/util.o lib/util_sock.o lib/sock_exec.o lib/util_sec.o \
-         lib/substitute.o ../lib/util/fsusage.o lib/dbwrap_util.o \
+         lib/substitute.o lib/dbwrap_util.o \
          lib/ms_fnmatch.o lib/select.o lib/errmap_unix.o \
          lib/tallocmsg.o lib/dmallocmsg.o libsmb/smb_signing.o \
-         ../lib/crypto/md5.o ../lib/crypto/hmacmd5.o ../lib/crypto/arcfour.o \
          lib/iconv.o lib/pam_errors.o intl/lang_tdb.o lib/conn_tdb.o \
          lib/adt_tree.o lib/gencache.o \
          lib/module.o lib/events.o lib/ldap_escape.o @CHARSET_STATIC@ \
diff --git a/source3/client/client.c b/source3/client/client.c
index 0fbf56f..26badc4 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -1203,7 +1203,7 @@ static void do_mget(file_info *finfo, const char *dir)
                strlower_m(finfo->name);
        }
 
-       if (!directory_exist(finfo->name,NULL) &&
+       if (!directory_exist(finfo->name) &&
            mkdir(finfo->name,0777) != 0) {
                d_printf("failed to create directory %s\n",finfo->name);
                client_set_cur_dir(saved_curdir);
@@ -1752,7 +1752,7 @@ static int cmd_put(void)
                SMB_STRUCT_STAT st;
                /* allow '-' to represent stdin
                   jdblair, 24.jun.98 */
-               if (!file_exist(lname,&st) &&
+               if (!file_exist_stat(lname,&st) &&
                    (strcmp(lname,"-"))) {
                        d_printf("%s does not exist\n",lname);
                        return 1;
@@ -3566,7 +3566,7 @@ static int cmd_reput(void)
                return 1;
        }
 
-       if (!file_exist(local_name, &st)) {
+       if (!file_exist_stat(local_name, &st)) {
                d_printf("%s does not exist\n", local_name);
                return 1;
        }
diff --git a/source3/client/smbspool.c b/source3/client/smbspool.c
index 4a17371..1910ccd 100644
--- a/source3/client/smbspool.c
+++ b/source3/client/smbspool.c
@@ -482,7 +482,7 @@ smb_connect(const char *workgroup,  /* I - Workgroup */
        /*
          * Get the names and addresses of the client and server...
          */
-       myname = get_myname(talloc_tos());
+       myname = talloc_get_myname(talloc_tos());
        if (!myname) {
                return NULL;
        }
diff --git a/source3/groupdb/mapping_ldb.c b/source3/groupdb/mapping_ldb.c
index 7ce879f..1a6b99f 100644
--- a/source3/groupdb/mapping_ldb.c
+++ b/source3/groupdb/mapping_ldb.c
@@ -63,7 +63,7 @@ static bool init_group_mapping(void)
        /* Ensure this db is created read/write for root only. */
        ldb_set_create_perms(ldb, 0600);
 
-       existed = file_exist(db_path, NULL);
+       existed = file_exist(db_path);
 
        if (lp_parm_bool(-1, "groupmap", "nosync", False)) {
                flags |= LDB_FLG_NOSYNC;
@@ -99,7 +99,7 @@ static bool init_group_mapping(void)
 
        /* possibly upgrade */
        tdb_path = state_path("group_mapping.tdb");
-       if (file_exist(tdb_path, NULL) && !mapping_upgrade(tdb_path)) {
+       if (file_exist(tdb_path) && !mapping_upgrade(tdb_path)) {
                unlink(state_path("group_mapping.ldb"));
                goto failed;
        }
diff --git a/source3/include/proto.h b/source3/include/proto.h
index dd9f022..cb21f89 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -1232,10 +1232,12 @@ const char *tmpdir(void);
 bool add_gid_to_array_unique(TALLOC_CTX *mem_ctx, gid_t gid,
                             gid_t **gids, size_t *num_gids);
 const char *get_numlist(const char *p, uint32 **num, int *count);
-bool file_exist(const char *fname,SMB_STRUCT_STAT *sbuf);
+bool file_exist_stat(const char *fname,SMB_STRUCT_STAT *sbuf);
+bool file_exist(const char *fname);
 bool socket_exist(const char *fname);
 time_t file_modtime(const char *fname);
-bool directory_exist(char *dname,SMB_STRUCT_STAT *st);
+bool directory_exist_stat(char *dname,SMB_STRUCT_STAT *st);
+bool directory_exist(char *dname);
 SMB_OFF_T get_file_size(char *file_name);
 char *attrib_string(uint16 mode);


-- 
Samba Shared Repository

Reply via email to