1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00
Commit Graph

265 Commits

Author SHA1 Message Date
Andrew Bartlett
43e9be8894 build: Remove sys_lseek wrapper 2012-04-05 02:39:08 +02:00
Andrew Bartlett
5c89d12ca4 build: Remove sys_ftruncate wrapper 2012-04-05 02:39:08 +02:00
Andrew Bartlett
473b974a06 build: do not use HAVE_EXPLICIT_LARGEFILE_SUPPORT and *64() fucntions any more 2012-04-05 02:39:08 +02:00
Jelmer Vernooij
c9fb33697d use usleep rather than sys_usleep in various places, in anticipation of usleep moving to libreplace. 2012-03-24 22:41:05 +01:00
Jelmer Vernooij
c0288e0612 lib/util: Remove obsolete sys_getpid() and sys_fork().
The performance of these is minimal (these days) and they can return
invalid results when used as part of applications that do not use
sys_fork().

Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sat Mar 24 21:55:41 CET 2012 on sn-devel-104
2012-03-24 21:55:40 +01:00
Andrew Bartlett
476d503d24 lib/util: Remove unused sys_sendto()
Found by callcatcher.

Andrew Bartlett

Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Fri Feb 17 13:48:05 CET 2012 on sn-devel-104
2012-02-17 13:48:05 +01:00
Andrew Bartlett
245d47f233 lib/util: Remove unused sys_recv()
Found by callcatcher.

Andrew Bartlett
2012-02-17 12:19:30 +01:00
Andrew Bartlett
846a697e20 s3-lib Remove unused sys_fcntl_long() 2012-02-17 12:19:29 +01:00
Andrew Bartlett
59d1faa1a3 s3-lib Remove unused sys_fseek() 2012-02-17 12:19:29 +01:00
Volker Lendecke
bbde298241 s3: Use ARRAY_SIZE in bsd_attr_list 2012-02-02 20:35:27 +01:00
Jeremy Allison
d6950d4ec9 Comment out sys_get_number_of_cores() as we're no longer using this. 2012-01-06 14:55:30 -08:00
Jeremy Allison
e8a7d9c822 Add a sys_get_number_of_cores() function that calls sysconf or sysctl
and tunes the aio threads.
2012-01-06 02:42:25 +01:00
Andreas Schneider
7cb08171ce Include uid_wrapper correctly. 2011-10-27 13:32:02 +02:00
Brad Smith
d810ada39c Fix sys_fseek wrapper
Signed-off-by: Günther Deschner <gd@samba.org>
2011-10-14 17:52:36 +02:00
Volker Lendecke
1184e7de59 s3: Use the uid_wrapper
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Signed-off-by: Andreas Schneider <asn@samba.org>
2011-10-06 12:15:27 +02:00
Richard Sharpe
de8eb77e91 Export init_stat_ex_from_stat for use in VFS modules.
Signed-off-by: Günther Deschner <gd@samba.org>

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Fri Jun 10 13:23:37 CEST 2011 on sn-devel-104
2011-06-10 13:23:37 +02:00
Andrew Bartlett
3d15137653 s3-talloc Change TALLOC_ARRAY() to talloc_array()
Using the standard macro makes it easier to move code into common, as
TALLOC_ARRAY isn't standard talloc.
2011-06-09 12:40:08 +02:00
Jeremy Allison
1cee71713f Change sys_getcd() to take no arguments and always return malloc'ed memory (or NULL).
Part of the efforts to remove PATH_MAX on modern systems.
2011-06-01 02:54:51 +02:00
Andrew Bartlett
52399f3177 lib/util Move sys_memalign into lib/util/system.c 2011-05-31 02:57:19 +02:00
Jeremy Allison
2938fe6f90 Fold null terminator into listlen length, change to strlcpy. 2011-05-04 12:12:14 -07:00
Günther Deschner
4fa2bac6e7 s3-system: move LOCK_ defines to lib/system.c
Guenther
2011-05-03 21:03:47 +02:00
Andrew Bartlett
fbea52f74a lib/util Move more network utility functions from source3 into lib/util
This will help with the merge of the interfaces layer.

Andrew Bartlett
2011-05-03 07:37:07 +02:00
Günther Deschner
0e771263ee s3-includes: only include system/filesys.h when needed.
Guenther
2011-03-30 01:13:07 +02:00
Günther Deschner
49fcf653b1 s3-includes: only include system/passwd.h when needed.
Guenther
2011-03-30 01:13:07 +02:00
Günther Deschner
21a78b88cc s3-includes: only include system/capability.h when needed.
Guenther
2011-03-30 01:13:06 +02:00
Günther Deschner
89ca4875cd s3-includes: only include system/syslog.h when needed.
Guenther
2011-03-30 01:13:06 +02:00
Günther Deschner
64421129b6 lib/util/util_pw: share sys_get{pw,gr} group of calls.
Guenther
2011-03-30 01:13:06 +02:00
Jeremy Allison
c8a242d9fc dirfd doesn't exist in some platforms.
Hack that should get the buildfarm back to green.
Ensure dirfd() needs to be defined before we properly return fdopendir.
This will do until we get a proper dirfd() defined in libreplace.

From http://www.gnu.org/software/hello/manual/gnulib/dirfd.html

This function is missing on some platforms: AIX 7.1, HP-UX 11, OSF/1 5.1, Solaris 10, mingw.

Jeremy.

Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Sat Feb 26 04:19:55 CET 2011 on sn-devel-104
2011-02-26 04:19:55 +01:00
Günther Deschner
80b4e1e985 s3: move some defines to a better place.
Guenther
2011-02-14 11:47:19 +01:00
Günther Deschner
fa0c6c1a9e s3-system: fix malloc/talloc mismatch in sys_popen().
Guenther
2011-02-10 18:37:18 +01:00
Jeremy Allison
c377b0e718 Fix up some buildfarm warnings. 2011-02-09 21:21:04 +01:00
Jeremy Allison
1911d483e5 Add fdopendir(). 2011-02-08 15:05:59 -08:00
Jeremy Allison
8998f4b013 Added call out to a Linux-compatible fallocate() when we need to extend a file
allocation extent without changing end-of-file size.

Autobuild-User: Jeremy Allison <jra@samba.org>
Autobuild-Date: Tue Dec 21 02:41:24 CET 2010 on sn-devel-104
2010-12-21 02:41:23 +01:00
Volker Lendecke
d39fedaa69 s3: FreeBSD has getpeereid(), use it 2010-12-19 23:25:06 +01:00
Jeremy Allison
e071fd711d Fix read/write calls over sockets to cope with EAGAIN/EWOULDBLOCK for non-blocking sockets. 2010-12-15 01:38:16 +01:00
Volker Lendecke
fb167a6028 s3: Fix a C++ warning 2010-08-01 18:16:19 +02:00
Björn Jacke
687c42ee65 s3: fix calculation of st_blocks in init_stat_ex_from_stat
this is just relevant for the very rare systems that don't have the st_blocks
struct member. This is a fixup of the fix for bug 7474.

Thanks to Joachim Schmitz for spotting this!
2010-06-09 15:27:38 +02:00
Björn Jacke
711a30aa61 s3: fix build on platforms without st_blocks and st_blksize stat struct members
This fixes bug 7474.
2010-06-07 23:16:48 +02:00
Karolin Seeger
56b13ee8ed Revert "Fix bug #7067 - Linux asynchronous IO (aio) can cause smbd to fail to respond to a read or write."
This reverts commit a6ae7a552f.

This fixes bug #7222 (All users have full rigths on all shares) (CVE-2010-0728).
(cherry picked from commit 1c9494c76c)
2010-03-08 16:55:07 -08:00
Björn Jacke
c0ebca237c s3: optimize strict allocate for XFS on IRIX 2010-02-18 22:45:46 +01:00
Jeremy Allison
899bd0005f Fix bug #7067 - Linux asynchronous IO (aio) can cause smbd to fail to respond to a read or write.
Only works on Linux kernels 2.6.26 and above. Grants CAP_KILL capability
to allow Linux threads under different euids to send signals to each other.

Jeremy.
2010-01-26 16:51:57 -08:00
Björn Jacke
0d53ce7e07 s3: make sys_posix_fallocate more generic
this is in preparation for other preallocation methods to be introduced.
2009-12-08 21:16:31 +01:00
Volker Lendecke
743155f3be s3: Fix explicit stat64 support 2009-12-05 14:40:16 +01:00
Björn Jacke
3264a98ff1 s3: check if glibc has broken posix_fallocate 2009-12-04 23:29:56 +01:00
Björn Jacke
95c1862610 s3: prefer posix_fallocate for doing "strict allocate"
posix_fallocate is more efficient than manual zero'ing the file. When
preallocation in kernel space is supported it's extremely fast. Support for
preallocation at fs layer via posix_fallocate and fallocate at kernel site
can be found in Linux kernel 2.6.23/glibc 2.10 with ext4, XFS and OCFS2. Other
systems that I know of which support fast preallocation in kernel space are
AIX 6.1 with JFS2 and recent Solaris versions with ZFS maybe UFS2, too.

People who have a system with preallocation in kernel space might want to set
"strict allocate = yes". This reduces file fragentation and it's also safer for
setups with quota being turned on.

As of today most systems still don't have preallocation in kernel space, and
that's why "strict allocate = no" will stay the default for now.
2009-12-02 21:21:43 +01:00
Volker Lendecke
44ce5603dd s3: Pass the "fake dir create times" parameter to sys_*stat
Step 0 to restore it as a per-share paramter
2009-11-29 11:22:01 +01:00
Jeremy Allison
a770caed0f Remove "store create time" code, cause create time to be stored
in the "user.DOSATTRIB" EA. From the docs:
In Samba 3.5.0 and above the "user.DOSATTRIB" extended attribute has been extended to store
the create time for a file as well as the DOS attributes. This is done in a backwards compatible
way so files created by Samba 3.5.0 and above can still have the DOS attribute read from this
extended attribute by earlier versions of Samba, but they will not be able to read the create
time stored there. Storing the create time separately from the normal filesystem meta-data
allows Samba to faithfully reproduce NTFS semantics on top of a POSIX filesystem.
Passes make test but will need more testing.
Jeremy.
2009-11-17 14:55:02 -08:00
Volker Lendecke
bf4e8ba048 s3: Fix a memleak in sys_popen
Found with "dfree command" set
2009-11-15 12:49:47 +01:00
Abhidnya P Chirmule
ac774c4969 s3: Add access_mask to the flock VFS call 2009-10-06 18:52:06 +02:00
Jeremy Allison
c9dca82ed7 Refactor the use of create_time and change time to go
through functions. Will aid in making us pass RAW-SETFILEINFO.
Jeremy.
2009-08-10 15:07:53 -07:00
Jeremy Allison
eba2eb45e2 Fix a typo reading uninitialized memory. Caught by valgrind.
Jeremy.
2009-07-17 18:05:10 -07:00
Jeremy Allison
400c18a8c4 Rename update_stat_ex_writetime() -> update_stat_ex_mtime()
to better describe what we're doing here.
Jeremy
2009-07-08 18:05:30 -07:00
Jeremy Allison
c9c3d4312d The migration to struct stat_ex broke the calculation of
create time from the existing timestamps (for systems
that need to do this). Once the write time is changed
via a sticky write, the create time might need to be
recalculated. To do this I needed to add a bool into
struct stat_ex to remember if the st_ex_btime field
was calculated, or read from the OS. Also fixed the
returning of modified write timestamps in the return
from NTCreateX, SMBattr and SMBattrE (which weren't
taking into account the modified timestamp stored
in the open file table). Attempting to fix an issue
with Excel 2003 and offline files. Volker and Metze,
please review.
Jeremy
2009-07-08 17:51:35 -07:00
Jeremy Allison
58daaa3d1e When faking a create time, use the full timespec values, not time_t.
Jeremy.
2009-07-08 12:28:01 -07:00
Björn Jacke
7cdad30b96 s3: correct check for usleep value boundaries 2009-06-03 18:06:43 +02:00
Volker Lendecke
dd0506d15d Attempt to fix the build on NetBSD 2009-05-26 23:20:34 +02:00
Volker Lendecke
49ca690b4b Introduce "struct stat_ex" as a replacement for SMB_STRUCT_STAT
This patch introduces

struct stat_ex {
        dev_t           st_ex_dev;
        ino_t           st_ex_ino;
        mode_t          st_ex_mode;
        nlink_t         st_ex_nlink;
        uid_t           st_ex_uid;
        gid_t           st_ex_gid;
        dev_t           st_ex_rdev;
        off_t           st_ex_size;
        struct timespec st_ex_atime;
        struct timespec st_ex_mtime;
        struct timespec st_ex_ctime;
        struct timespec st_ex_btime; /* birthtime */
        blksize_t       st_ex_blksize;
        blkcnt_t        st_ex_blocks;
};
typedef struct stat_ex SMB_STRUCT_STAT;

It is really large because due to the friendly libc headers playing macro
tricks with fields like st_ino, so I renamed them to st_ex_xxx.

Why this change? To support birthtime, we already have quite a few #ifdef's at
places where it does not really belong. With a stat struct that we control, we
can consolidate the nanosecond timestamps and the birthtime deep in the VFS
stat calls.

At this moment it is triggered by a request to support the birthtime field for
GPFS. GPFS does not extend the system level struct stat, but instead has a
separate call that gets us the additional information beyond posix. Without
being able to do that within the VFS stat calls, that support would have to be
scattered around the main smbd code.

It will very likely break all the onefs modules, but I think the changes will
be reasonably easy to do.
2009-05-26 17:48:23 +02:00
Volker Lendecke
979f13b19e Fix some nonempty blank lines 2009-05-14 12:14:57 +02:00
Steven Danneman
8d63c596a0 Refactored sys_fork() and sys_pid() into shared util library
This fixes a bug in 116ce19b, where we didn't clear the pid cache in
become_daemon() and thus the /var/run/smbd.pid didn't match the actual
pid of the parent process.

Currently S4 will clear the pid cache on fork but doesn't yet take
advantage of the pid cache by using sys_pid() instead of the direct
get_pid().
2009-02-23 21:17:12 -08:00
Jeremy Allison
faa1100d22 More warning fixes for Solaris.
Jeremy.
2009-02-23 16:22:43 -08:00
Volker Lendecke
86cb14db2b Add code to test write_data_iov a bit 2008-12-29 13:24:28 +01:00
Volker Lendecke
6251b97e02 Add sys_writev 2008-12-29 13:24:27 +01:00
Jelmer Vernooij
31fa08dcbd Merge branch 'master' of /home/jelmer/samba3
Conflicts:
	lib/replace/README
	lib/replace/libreplace.m4
	lib/replace/replace.c
	source3/include/proto.h
	source3/lib/system.c
2008-11-01 04:02:47 +01:00
Jelmer Vernooij
5a56c0adf2 Use dup2() replacement from libreplace. 2008-11-01 03:58:14 +01:00
Jelmer Vernooij
7b186c48d3 Remove sys_dl*() - stubs are already provided by libreplace. 2008-11-01 03:49:49 +01:00
Jelmer Vernooij
6a2caa34b2 Remove sys_chroot() - libreplace already provides an alternative. 2008-11-01 03:46:09 +01:00
Jelmer Vernooij
a6d537bb6c Move sys_realpath() to libreplace. 2008-11-01 03:42:27 +01:00
Jelmer Vernooij
38d67363ac Move sys_lchown() to libreplace. 2008-11-01 03:39:20 +01:00
Jelmer Vernooij
e8cda43e17 Move sys_symlink() to libreplace. 2008-11-01 03:35:58 +01:00
Jelmer Vernooij
dbda9adfaf Move sys_readlink() to libreplace. 2008-11-01 03:33:39 +01:00
Jelmer Vernooij
bbbe6ab722 Move sys_link to libreplace. 2008-11-01 03:30:47 +01:00
Jelmer Vernooij
161d70a57a Move sys_chown() to rep_chown(). 2008-11-01 03:27:45 +01:00
Günther Deschner
611072fc1c Fix Bug #5285. (libcap header mismatch)
Can someone with gpfs available test this ? The only codepath using this
function is the modules/gpfs.c module. The fix resolves at least the build
issues Samba has with recent kernel / libcap versions by using the portable
cap_get_proc()/cap_set_proc() interface (instead of using capget/capset).

Guenther
(This used to be commit 1779551412)
2008-05-28 13:22:52 +02:00
Volker Lendecke
014bfd35f8 Some systems do not have XATTR_ defined
(This used to be commit 2cac1d3919)
2008-01-20 00:44:14 +01:00
Jeremy Allison
632ab7dc2e Many systems don't have sa_len as part of struct sockaddr.
Revert 5c347cb46d
"Choose a better default for sockaddr length.".
Jeremy.
(This used to be commit 677ac6adc3)
2007-12-09 14:59:07 -08:00
James Peach
8892c7a235 Choose a better default for sockaddr length.
(This used to be commit 5c347cb46d)
2007-12-09 14:02:23 -08:00
James Peach
daba3f8b54 Fix connect(2) callers to use correct sockaddr size.
Some systems (eg Mac OSX 10.5) require the length passed to match
the socket address family. This introduces sys_connect() that does
the right thing, and replaces all uses oc connect(2) with sys_connect().

Note that there are some LGPL callers that still call connect(2)
directly.
(This used to be commit e1bfdc17c4)
2007-12-09 13:28:00 -08:00
Jeremy Allison
acf15ae730 Don't build rpctorture anymore - not maintained. Just remove.
Remove all vestiges of pstring (except for smbctool as noted
in previous commit).
Jeremy
(This used to be commit 4c32a22ac5)
2007-12-07 12:26:32 -08:00
Michael Adam
66887ddfba Remove workaround for broken capabilites.h from lib/system.c - now in lib/replace.
Michael
(This used to be commit a3fbb53232)
2007-12-03 16:54:13 +01:00
Tomoki AONO
02571885a9 1. lib/system.c (xattr code for Solaris) could not be
built against c90 compilers. (declaration after
statement.) Sample patch attached.
(This used to be commit 102a247df9)
2007-11-26 09:00:33 +01:00
Jeremy Allison
2b3c44e4fb Always define PATH_MAX. Makes code simpler (removes
a bunch of #defines). Remove pstring from msdfs.c.
Jeremy.
(This used to be commit e203ba2227)
2007-11-10 22:31:34 -08:00
Stefan Metzmacher
fdc27be1be remove faked_create_user() BUILD_FARM hack as we have nss_wrapper now
metze
(This used to be commit fc98c19048)
2007-11-09 09:53:02 +01:00
Jeremy Allison
e075b3692b Fix Solaris by ensuring we use the IPv4 or IPv6 length
in any getnameinfo calls.
Jeremy
(This used to be commit 4d7badb0c4)
2007-11-02 10:25:34 -07:00
Jeremy Allison
30191d1a57 RIP BOOL. Convert BOOL -> bool. I found a few interesting
bugs in various places whilst doing this (places that assumed
BOOL == int). I also need to fix the Samba4 pidl generation
(next checkin).
Jeremy.
(This used to be commit f35a266b3c)
2007-10-18 17:40:25 -07:00
Jeremy Allison
666f50b01f Move to protocol independent code in most of lib/util_sock.c
We don't use gethostbyname any more except in one case where
we're looking for host aliases (I don't know how to do that
with getaddrinfo yet). New function should be getaddrinfo().
Next step will be fixing lib/access.c, and then changing
libsmb/namequery.c to cope with IPv6 address returns.
Jeremy.
(This used to be commit 4a56b697b6)
2007-10-15 16:11:48 -07:00
Jeremy Allison
941544a951 r25505: Add a replacement (IPv4 only) implementation of getaddrinfo/freeaddrinfo
under the 2 clause *BSD license for future use in IPv6 code. Original
code was from PostgreSQL and I've maintained their license even though
I've rewritten large parts of it (I probably should donate this back
to them).
Jeremy.
(This used to be commit 760d993340)
2007-10-10 12:31:10 -05:00
Jeremy Allison
2548e43164 r25172: Remove commented out code we will never enable.
Jeremy.
(This used to be commit 6032fbc358)
2007-10-10 12:30:48 -05:00
Jeremy Allison
12f61e09d9 r25117: The mega-patch Jerry was waiting for. Remove all pstrings from
the main server code paths. We should now be able to cope with
paths up to PATH_MAX length now.
Final job will be to add the TALLOC_CTX * parameter to
unix_convert to make it explicit (for Volker).
Jeremy.
(This used to be commit 7f0db75fb0)
2007-10-10 12:30:41 -05:00
Volker Lendecke
06dd8d28ae r24547: Fix #4897, patch from David S. Collier-Brown <davecb@spamcop.net> -- Thanks!
(This used to be commit 4a90264d17)
2007-10-10 12:29:56 -05:00
Stefan Metzmacher
9342df7027 r24304: patch from Bjoern JAcke <bj@SerNet.DE>:
attached patches add EA support for Solaris. If no one disagrees, can
someone check this in please?

metze
(This used to be commit 81e5afc363)
2007-10-10 12:29:25 -05:00
Andrew Tridgell
5e54558c6d r23784: use the GPLv3 boilerplate as recommended by the FSF and the license text
(This used to be commit b0132e94fc)
2007-10-10 12:28:22 -05:00
Jeremy Allison
d824b98f80 r23779: Change from v2 or later to v3 or later.
Jeremy.
(This used to be commit 407e6e695b)
2007-10-10 12:28:20 -05:00
Volker Lendecke
3d3035bcfe r23658: One pstring a day....
This one was particularly tasty, it was a static one. So 1k less
footprint per process.
(This used to be commit 83865e3288)
2007-10-10 12:23:42 -05:00
James Peach
0e67063cbc r23576: Fix some confusion between HAVE_BROKEN_GETGROUPS and USE_BSD_SETGROUPS.
(This used to be commit 8f6cf4b8c2)
2007-10-10 12:23:31 -05:00
Michael Adam
f7f3b72b21 r23566: Fix the sys_bsd_setgroups function. The actual workaround was inactive.
Michael
(This used to be commit 4b5d9b2ba7)
2007-10-10 12:23:30 -05:00
James Peach
274782432b r23475: Fix the prototype for sys_broken_setgroups and log *BSD group list
truncation a bit more verbosely.
(This used to be commit e3ea997289)
2007-10-10 12:23:19 -05:00
James Peach
2cbe284e59 r23470: Fix supplementary group list truncation for *BSD. We need to pass
the correct group list length and only truncate to NGROUPS_MAX if
it is too long.
(This used to be commit 07f562be7a)
2007-10-10 12:23:18 -05:00
James Peach
74c74f8dcc r23393: Support BSD group semantics by making sure that the effective GID is always
passed as the first GID when calling setgroups(2).
(This used to be commit 6ebaf856c1)
2007-10-10 12:23:12 -05:00
Jeremy Allison
57d6318a0b r23105: Add lchown to the vfs layer. We need this in the POSIX code.
Jeremy.
(This used to be commit 932523cbb5)
2007-10-10 12:22:46 -05:00
Jeremy Allison
f76fe23e11 r21725: Fix for memalign used without test guards. Was
breaking the build on *BSD's. Tested by Herb.
Jeremy.
(This used to be commit 4816af5ce9)
2007-10-10 12:18:26 -05:00