summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-08-31 20:20:54 +0000
committerJeremy Allison <jra@samba.org>1998-08-31 20:20:54 +0000
commit693480af8bb2d3e83566af9463ca427f47a879da (patch)
treecb7070685621c8b4ffd651c8108e1450bf3272d9 /source3/smbd
parentd2e0d0f73bfce64665feb386e2cc4032258ad437 (diff)
downloadsamba-693480af8bb2d3e83566af9463ca427f47a879da.tar.gz
samba-693480af8bb2d3e83566af9463ca427f47a879da.tar.bz2
samba-693480af8bb2d3e83566af9463ca427f47a879da.zip
configure.in, configure: include/config.h.in: Added stropts and poll.
include/smb.h: Moved old typedefs of uint8 etc. into include/includes.h where all the other defines live (changed them from typedefs to defines). Other changes : changed from using uint32 to SMB_DEV_T and SMB_INO_T in preparation for moving to size independed (ie. 64 bit clean) device and inode access. Stat call wrapper comes next :-). Jeremy. (This used to be commit 3d9ec96de5e04e83abafe9c5d980bd39eee856ea)
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/close.c4
-rw-r--r--source3/smbd/files.c10
-rw-r--r--source3/smbd/open.c23
-rw-r--r--source3/smbd/oplock.c25
-rw-r--r--source3/smbd/reply.c4
-rw-r--r--source3/smbd/trans2.c5
6 files changed, 42 insertions, 29 deletions
diff --git a/source3/smbd/close.c b/source3/smbd/close.c
index 07b000d7ad..42b16bc7ac 100644
--- a/source3/smbd/close.c
+++ b/source3/smbd/close.c
@@ -99,8 +99,8 @@ static void close_filestruct(files_struct *fsp)
****************************************************************************/
void close_file(files_struct *fsp, BOOL normal_close)
{
- uint32 dev = fsp->fd_ptr->dev;
- uint32 inode = fsp->fd_ptr->inode;
+ SMB_DEV_T dev = fsp->fd_ptr->dev;
+ SMB_INO_T inode = fsp->fd_ptr->inode;
int token;
connection_struct *conn = fsp->conn;
diff --git a/source3/smbd/files.c b/source3/smbd/files.c
index 00de8dfffa..d098677fba 100644
--- a/source3/smbd/files.c
+++ b/source3/smbd/files.c
@@ -125,8 +125,8 @@ file_fd_struct *fd_get_already_open(struct stat *sbuf)
for (fd_ptr=FileFd;fd_ptr;fd_ptr=fd_ptr->next) {
if ((fd_ptr->ref_count > 0) &&
- (((uint32)sbuf->st_dev) == fd_ptr->dev) &&
- (((uint32)sbuf->st_ino) == fd_ptr->inode)) {
+ (sbuf->st_dev == fd_ptr->dev) &&
+ (sbuf->st_ino == fd_ptr->inode)) {
fd_ptr->ref_count++;
DEBUG(3,("Re-used file_fd_struct dev = %x, inode = %x, ref_count = %d\n",
fd_ptr->dev, fd_ptr->inode,
@@ -162,8 +162,8 @@ file_fd_struct *fd_get_new(void)
memset(fd_ptr, 0, sizeof(*fd_ptr));
fd_ptr->fdnum = i;
- fd_ptr->dev = (uint32)-1;
- fd_ptr->inode = (uint32)-1;
+ fd_ptr->dev = (SMB_DEV_T)-1;
+ fd_ptr->inode = (SMB_INO_T)-1;
fd_ptr->fd = -1;
fd_ptr->fd_readonly = -1;
fd_ptr->fd_writeonly = -1;
@@ -254,7 +254,7 @@ void file_close_user(int vuid)
/****************************************************************************
find a fsp given a device, inode and timevalue
****************************************************************************/
-files_struct *file_find_dit(int dev, int inode, struct timeval *tval)
+files_struct *file_find_dit(SMB_DEV_T dev, SMB_INO_T inode, struct timeval *tval)
{
int count=0;
files_struct *fsp;
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index e54a456092..1a16a25c0a 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -166,8 +166,8 @@ int fd_attempt_close(file_fd_struct *fd_ptr)
fd_ptr->fd_readonly = -1;
fd_ptr->fd_writeonly = -1;
fd_ptr->real_open_flags = -1;
- fd_ptr->dev = (uint32)-1;
- fd_ptr->inode = (uint32)-1;
+ fd_ptr->dev = (SMB_DEV_T)-1;
+ fd_ptr->inode = (SMB_INO_T)-1;
fd_ptr->uid_cache_count = 0;
} else {
fd_remove_from_uid_cache(fd_ptr, (uid_t)current_user.uid);
@@ -484,8 +484,8 @@ static void open_file(files_struct *fsp,connection_struct *conn,
}
/* Set the correct entries in fd_ptr. */
- fd_ptr->dev = (uint32)sbuf->st_dev;
- fd_ptr->inode = (uint32)sbuf->st_ino;
+ fd_ptr->dev = sbuf->st_dev;
+ fd_ptr->inode = sbuf->st_ino;
fsp->fd_ptr = fd_ptr;
conn->num_files_open++;
@@ -596,8 +596,8 @@ void open_file_shared(files_struct *fsp,connection_struct *conn,char *fname,int
BOOL share_locked = False;
BOOL fcbopen = False;
int token;
- uint32 dev = 0;
- uint32 inode = 0;
+ SMB_DEV_T dev = 0;
+ SMB_INO_T inode = 0;
int num_share_modes = 0;
fsp->open = False;
@@ -681,8 +681,8 @@ void open_file_shared(files_struct *fsp,connection_struct *conn,char *fname,int
if (file_existed)
{
- dev = (uint32)sbuf.st_dev;
- inode = (uint32)sbuf.st_ino;
+ dev = sbuf.st_dev;
+ inode = sbuf.st_ino;
lock_share_entry(conn, dev, inode, &token);
share_locked = True;
num_share_modes = get_share_modes(conn, token, dev, inode, &old_shares);
@@ -994,15 +994,16 @@ BOOL check_file_sharing(connection_struct *conn,char *fname, BOOL rename_op)
struct stat sbuf;
int token;
int pid = getpid();
- uint32 dev, inode;
+ SMB_DEV_T dev;
+ SMB_INO_T inode;
if(!lp_share_modes(SNUM(conn)))
return True;
if (sys_stat(fname,&sbuf) == -1) return(True);
- dev = (uint32)sbuf.st_dev;
- inode = (uint32)sbuf.st_ino;
+ dev = sbuf.st_dev;
+ inode = sbuf.st_ino;
lock_share_entry(conn, dev, inode, &token);
num_share_modes = get_share_modes(conn, token, dev, inode, &old_shares);
diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c
index d9df308a35..ab88b82953 100644
--- a/source3/smbd/oplock.c
+++ b/source3/smbd/oplock.c
@@ -105,8 +105,11 @@ should be %d).\n", msg_len, OPLOCK_BREAK_MSG_LEN));
}
{
uint32 remotepid = IVAL(msg_start,OPLOCK_BREAK_PID_OFFSET);
- uint32 dev = IVAL(msg_start,OPLOCK_BREAK_DEV_OFFSET);
- uint32 inode = IVAL(msg_start, OPLOCK_BREAK_INODE_OFFSET);
+ /*
+ * Warning - this will need to be changed if SMB_DEV_T/SMB_INO_T <> 4 bytes. !!
+ */
+ SMB_DEV_T dev = IVAL(msg_start,OPLOCK_BREAK_DEV_OFFSET);
+ SMB_INO_T inode = IVAL(msg_start, OPLOCK_BREAK_INODE_OFFSET);
struct timeval tval;
struct sockaddr_in toaddr;
@@ -176,8 +179,11 @@ reply - dumping info.\n"));
{
uint32 remotepid = IVAL(msg_start,OPLOCK_BREAK_PID_OFFSET);
- uint32 dev = IVAL(msg_start,OPLOCK_BREAK_DEV_OFFSET);
- uint32 inode = IVAL(msg_start, OPLOCK_BREAK_INODE_OFFSET);
+ /*
+ * Warning - this will need to be changed if SMB_DEV_T/SMB_INO_T <> 4 bytes. !!
+ */
+ SMB_DEV_T dev = IVAL(msg_start,OPLOCK_BREAK_DEV_OFFSET);
+ SMB_INO_T inode = IVAL(msg_start, OPLOCK_BREAK_INODE_OFFSET);
DEBUG(0,("process_local_message: unsolicited oplock break reply from \
pid %d, port %d, dev = %x, inode = %x\n", remotepid, from_port, dev, inode));
@@ -196,7 +202,7 @@ pid %d, port %d, dev = %x, inode = %x\n", remotepid, from_port, dev, inode));
/****************************************************************************
Process an oplock break directly.
****************************************************************************/
-BOOL oplock_break(uint32 dev, uint32 inode, struct timeval *tval)
+BOOL oplock_break(SMB_DEV_T dev, SMB_INO_T inode, struct timeval *tval)
{
extern struct current_user current_user;
extern int Client;
@@ -458,7 +464,7 @@ by the local smbd then call the oplock break function directly.
****************************************************************************/
BOOL request_oplock_break(share_mode_entry *share_entry,
- uint32 dev, uint32 inode)
+ SMB_DEV_T dev, SMB_INO_T inode)
{
char op_break_msg[OPLOCK_BREAK_MSG_LEN];
struct sockaddr_in addr_out;
@@ -487,10 +493,13 @@ should be %d\n", pid, share_entry->op_port, oplock_port));
SSVAL(op_break_msg,UDP_MESSAGE_CMD_OFFSET,OPLOCK_BREAK_CMD);
SIVAL(op_break_msg,OPLOCK_BREAK_PID_OFFSET,pid);
- SIVAL(op_break_msg,OPLOCK_BREAK_DEV_OFFSET,dev);
- SIVAL(op_break_msg,OPLOCK_BREAK_INODE_OFFSET,inode);
SIVAL(op_break_msg,OPLOCK_BREAK_SEC_OFFSET,(uint32)share_entry->time.tv_sec);
SIVAL(op_break_msg,OPLOCK_BREAK_USEC_OFFSET,(uint32)share_entry->time.tv_usec);
+ /*
+ * WARNING - this will need to be changed if SMB_DEV_T/SMB_INO_T <> 4 bytes.
+ */
+ SIVAL(op_break_msg,OPLOCK_BREAK_DEV_OFFSET,dev);
+ SIVAL(op_break_msg,OPLOCK_BREAK_INODE_OFFSET,inode);
/* set the address and port */
bzero((char *)&addr_out,sizeof(addr_out));
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 3052bd730c..e30c31776c 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -3544,8 +3544,8 @@ int reply_lockingX(connection_struct *conn, char *inbuf,char *outbuf,int length,
if ((locktype & LOCKING_ANDX_OPLOCK_RELEASE))
{
int token;
- uint32 dev = fsp->fd_ptr->dev;
- uint32 inode = fsp->fd_ptr->inode;
+ SMB_DEV_T dev = fsp->fd_ptr->dev;
+ SMB_INO_T inode = fsp->fd_ptr->inode;
DEBUG(5,("reply_lockingX: oplock break reply from client for fnum = %d\n",
fsp->fnum));
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index da11dbcb29..3a851cfa8b 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -201,7 +201,7 @@ static int call_trans2open(connection_struct *conn, char *inbuf, char *outbuf,
pstring fname;
int unixmode;
int size=0,fmode=0,mtime=0,rmode;
- int32 inode = 0;
+ SMB_INO_T inode = 0;
struct stat sbuf;
int smb_action = 0;
BOOL bad_path = False;
@@ -278,6 +278,9 @@ static int call_trans2open(connection_struct *conn, char *inbuf, char *outbuf,
}
SSVAL(params,18,smb_action);
+ /*
+ * WARNING - this may need to be changed if SMB_INO_T <> 4 bytes.
+ */
SIVAL(params,20,inode);
/* Send the required number of replies */