1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-25 23:21:54 +03:00
Commit Graph

238 Commits

Author SHA1 Message Date
Tim Prouty
e129384d7c s3: Plumb smb_filename through SMB_VFS_STAT and SMB_VFS_LSTAT
This patch introduces two new temporary helper functions
vfs_stat_smb_fname and vfs_lstat_smb_fname.  They basically allowed me
to call the new smb_filename version of stat, while avoiding plumbing
it through callers that are still too inconvenient.  As the conversion
moves along, I will be able to remove callers of this, with the goal
being to remove all callers.

There was also a bug in create_synthetic_smb_fname_split (also a
temporary utility function) that caused it to incorrectly handle
filenames with ':'s in them when in posix mode.  This is now fixed.
2009-06-24 21:15:25 -07:00
Stefan Metzmacher
a02265cdc4 s3:smbd: make make_connection_snum() non static
metze
2009-06-03 17:54:38 +02:00
Stefan Metzmacher
c862018008 s3:smbd: move tcon specific globals to struct smbd_server_connection
metze
2009-06-03 17:54:38 +02:00
Stefan Metzmacher
75d03970b7 s3:smbd: move more session specific globals to struct smbd_server_connection
metze
2009-06-03 17:54:37 +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
796764d92b Increase debug level of "create_connection_server_info failed" message
I don't think we should unconditionally send every refused connection attempt
to a share to syslog, that's where all debug level 0 messages end up.
2009-05-04 12:41:54 +02:00
Michael Adam
077bcc1125 s3:smbd/service: switch load_registry_service/shares to use loadparm routines
instead of reading the registry directly with tdb and activating the
configure options by hand.

This eliminates the need for repeating checks done in loadparm.
For instance it disables registry shares without path in the server
as is the case with text based shares.

Michael
2009-04-29 02:20:19 +02:00
Stefan Metzmacher
c16c90a1cb s3:smbd: use new simplified snb_signing code in the server
We keep the seqnum/mid mapping in the smb_request structure.

This also moves one global variable into the
smbd_server_connection struct.

metze
2009-03-23 12:21:13 +01:00
Jeremy Allison
35f4ea221e Fix bug #6155 - "force group" is no longer working as expected.
We need to store the "force group" uid separately from the
conn->server_info token as we need to apply it separately also.
Volker PLEASE CHECK !
Jeremy.
2009-03-03 16:08:56 -08:00
Stefan Metzmacher
3dde0cbb76 s3:smbd: move all globals and static variables in globals.[ch]
The goal is to move all this variables into a big context structure.

metze
2009-01-08 12:22:21 +01:00
Michael Adam
5318e73e93 smbd: prevent access to root filesystem when connecting with empty service name
This only applies to a setup with "registry shares = yes"

Michael
(cherry picked from commit 288fa94ac7)
(cherry picked from commit e85526b184)
2009-01-05 11:07:59 +01:00
Volker Lendecke
6f840dd678 Remove unused make_connection_with_chdir() 2008-11-24 11:39:03 +01:00
Volker Lendecke
a781b78417 Remove smb_np_struct 2008-10-13 20:59:33 +02:00
Volker Lendecke
3c516937e8 Fix a debug message
(This used to be commit 8dd94d448b)
2008-06-26 13:32:11 +02:00
Volker Lendecke
40f5eab5eb Wrap the unix token info in a unix_user_token in auth_serversupplied_info
No functional change, this is a preparation for more current_user ref removal
(This used to be commit dcaedf345e)
2008-06-19 18:51:37 +02:00
Jeremy Allison
ae51353107 Re-enable the evil "aio write behind" parameter.
Jeremy.
(This used to be commit 5d22ca00bc)
2008-05-26 21:13:05 -07:00
Volker Lendecke
50ab871813 Remove some references to get_current_username() and current_user_info
(This used to be commit 344d69f95e)
2008-05-25 11:43:57 +02:00
Volker Lendecke
320fadd8fc Remove the reference to current_user_info from share_access.c
This required to pass around the domain a bit
(This used to be commit 17b0db20d2)
2008-05-25 11:43:57 +02:00
Volker Lendecke
5bda9a8af0 Remove "user" from connection_struct
(This used to be commit 368454a27c)
2008-05-10 11:17:01 +02:00
Volker Lendecke
53a623d8a6 Remove the unix token info from connection_struct
(This used to be commit 2834dacc8d)
2008-05-10 11:17:01 +02:00
Volker Lendecke
776caa081b Replace nt_user_token with server_info in connection_struct
(This used to be commit a3738aef59)
2008-05-10 11:17:01 +02:00
Volker Lendecke
322896f8dd find_forced_group can directly change the token in server_info
Now that we have a token that is correctly set up with gids already, this saves
manual translation of the SIDs to GIDs.
(This used to be commit 6136a6d9d7)
2008-05-10 11:17:00 +02:00
Volker Lendecke
d2157f1342 Add an error return in find_forced_group()
(This used to be commit 93ce0705c1)
2008-05-10 11:17:00 +02:00
Volker Lendecke
39bd6a9595 Do not unnecessarily mess with the results in find_forced_group()
(This used to be commit 6d9860d09b)
2008-05-10 11:17:00 +02:00
Volker Lendecke
ddcea20947 Replace find_forced_user by a direct call to make_serverinfo_from_username
(This used to be commit 7991e6764b)
2008-05-10 11:17:00 +02:00
Volker Lendecke
ca25800287 Simplify make_connection_snum: Copy connection_struct info from server_info
(This used to be commit 5aa3cdf355)
2008-05-10 11:17:00 +02:00
Volker Lendecke
90995202c0 Add "server_info" to connection_struct
This will replace all the user identity stuff in connection_struct, for now it
is just a source where the other fields in connection_struct are filled from.
(This used to be commit 0f53f9e7db)
2008-05-10 11:17:00 +02:00
Volker Lendecke
f93e232535 Remove unused "force_group" from connection_struct
(This used to be commit 03944f8d89)
2008-05-10 11:17:00 +02:00
Volker Lendecke
39a318aee4 "status" -> "pstatus" in make_connection_snum
(This used to be commit 3ce395e61e)
2008-05-10 11:17:00 +02:00
Volker Lendecke
270a3f2a6f Add create_connection_server_info() -- not used yet
(This used to be commit 50bf075f75)
2008-05-10 11:17:00 +02:00
Volker Lendecke
4f731150bd Use talloc_tos() for a temporary getpwnam_alloc in make_connection_snum
(This used to be commit 1843ea64ab)
2008-05-07 14:47:29 +02:00
Volker Lendecke
193b63f326 Use talloc_stackframe() in find_forced_group
(This used to be commit 27a9bbc645)
2008-05-07 14:47:29 +02:00
Volker Lendecke
bec1dfab27 Remove "userdom_struct user" from "struct user_struct"
(This used to be commit 420de03523)
2008-05-05 18:28:59 +02:00
Volker Lendecke
71ff1ba2de Remove "guest" from "struct user_struct"
(This used to be commit 570a6b80fe)
2008-05-05 18:28:59 +02:00
Volker Lendecke
c6d209f834 Remove the unix token info from "struct user_struct"
(This used to be commit aa2299d42a)
2008-05-05 18:28:58 +02:00
Volker Lendecke
bb3755968f Remove "nt_user_token" from "struct user_struct"
(This used to be commit 51d5d512f2)
2008-05-05 18:28:58 +02:00
Volker Lendecke
d62563342e Remove connection_struct->mem_ctx, connection_struct is its own parent
(This used to be commit 559180f7d3)
2008-05-05 11:23:13 +02:00
Michael Adam
6476313b6d Add a debug message.
Michael
(This used to be commit a398070448)
2008-03-12 02:12:34 +01:00
Michael Adam
67536eddc3 registry shares: prevent creating regular share called "global".
This is a first quick fix.
Registry shares should be rewritten to use libnet_conf.

Michael
(This used to be commit 71bd0bd0ea)
2008-03-11 11:15:50 +01:00
Volker Lendecke
9a22653222 Add SMB_VFS_FS_CAPABILITIES
It turns out that this is a necessary operation, separate from statvfs. statvfs
can fail during tcon, so conn->fs_capabilities would never see that we support
streams on a particular share.

James, can you check that I got the darwin variant right? Thanks!
(This used to be commit 3ad798d803)
2008-01-21 16:14:27 +01:00
Michael Adam
b92c3e281c Add handling of [homes] and [printers] via registry shares.
Now homes and printers shares can be accessed through the
registry meachanism on demand in pure registry configurations
with "config backend = registry" without the need to
have a special handler for these two.

Michael
(This used to be commit eec3248ef9)
2008-01-16 17:10:02 +01:00
Jeremy Allison
253fbf1a6e Make use of talloc_pool in the main codepaths. Remove the sub-contexts.
Jeremy.
(This used to be commit bc932b8ad4)
2008-01-09 17:11:04 -08:00
Jeremy Allison
afce2b245a Add the capability to set "smb encrypt = required"
on a share (or global) and have the server reply with
ACCESS_DENIED for all non-encrypted traffic (except
that used to query encryption requirements and set
encryption state).
Jeremy.
(This used to be commit d241bfa577)
2007-12-27 23:51:03 -08:00
James Peach
1176e04c76 Cache the underlying filesystem capabilities at connection time.
This change alters the Samba connection code to cache the filesystem
capabilities when a new client connects. This can be used to enable
filesystem specific optimisations is a general manner.
(This used to be commit de3c5b808a)
2007-12-22 14:01:25 -08:00
Volker Lendecke
e518e19bc0 Remove Get_Pwnam and its associated static variable
All callers are replaced by Get_Pwnam_alloc
(This used to be commit 735f593154)
2007-12-19 21:09:10 +01:00
Volker Lendecke
900288a2b8 Replace sid_string_static by sid_string_dbg in DEBUGs
(This used to be commit bb35e794ec)
2007-12-15 22:09:36 +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
Jeremy Allison
54d65bfb9a Fix the build when realpath doesn't take null
as a last arg.
Jeremy.
(This used to be commit 6312522538)
2007-11-10 15:02:08 -08:00
Jeremy Allison
acc0218f13 Remove pstring from service.c.
Jeremy.
(This used to be commit cdd9e5cc83)
2007-11-10 14:43:39 -08:00
Volker Lendecke
ec1ecd92c9 Make load_registry_service return the share number
(This used to be commit 934964c90f)
2007-11-05 02:45:14 +01:00