diff options
author | Jeremy Allison <jra@samba.org> | 1998-08-03 19:07:55 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1998-08-03 19:07:55 +0000 |
commit | 7448091da6ee11709b8e5117ff6810515567f88a (patch) | |
tree | 3fd35134c9636b00e3737e718a0cb04eaf902064 /source3/include | |
parent | 103857e8e33c724805baf5283335dc4e3901f007 (diff) | |
download | samba-7448091da6ee11709b8e5117ff6810515567f88a.tar.gz samba-7448091da6ee11709b8e5117ff6810515567f88a.tar.bz2 samba-7448091da6ee11709b8e5117ff6810515567f88a.zip |
First implementation of ChangeNotify - this version only checks
for changes in the directory modify timestamps. A better version
will look at the requested client flags, and create a hash that
represents the current state of the directory, and check against
this instead.
debug.c: Added lp_timestamp_logs() function.
loadparm.c: Added "change notify timeout" in seconds (default 60)
- this is the scan rate for a directory.
Added ""timestamp logs" boolean - default True. Turns
off log timestamps (so I can read them :-).
nttrans.c: ChangeNotify implementation.
server.c: ChangeNotify implementation.
shmem_sysv.c: Added exits on shmem errors (without them smbd can
core dump if some calls fail).
smb.h: Added ChangeNotify flags for future use.
util.c: Tidied up typedef.
Jeremy.
(This used to be commit a0748c3f53974483680ebe2ea4f556ece8d7fa43)
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/proto.h | 5 | ||||
-rw-r--r-- | source3/include/smb.h | 15 |
2 files changed, 18 insertions, 2 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 10f01c1b9d..d3dcd70c16 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1024,6 +1024,7 @@ BOOL lp_strip_dot(void); BOOL lp_encrypted_passwords(void); BOOL lp_update_encrypted(void); BOOL lp_syslog_only(void); +BOOL lp_timestamp_logs(void); BOOL lp_browse_list(void); BOOL lp_unix_realname(void); BOOL lp_nis_home_map(void); @@ -1058,6 +1059,7 @@ int lp_announce_as(void); int lp_lm_announce(void); int lp_lm_interval(void); int lp_machine_password_timeout(void); +int lp_change_notify_timeout(void); int lp_ldap_port(void); char *lp_preexec(int ); char *lp_postexec(int ); @@ -1603,6 +1605,9 @@ char *get_nt_error_msg(uint32 nt_code); int reply_ntcreate_and_X(char *inbuf,char *outbuf,int length,int bufsize); int reply_ntcancel(char *inbuf,char *outbuf,int length,int bufsize); int reply_nttranss(char *inbuf,char *outbuf,int length,int bufsize); +void remove_pending_change_notify_requests_by_fid(int fnum); +void remove_pending_change_notify_requests_by_mid(int mid); +void process_pending_change_notify_queue(time_t t); int reply_nttrans(char *inbuf,char *outbuf,int length,int bufsize); /*The following definitions come from params.c */ diff --git a/source3/include/smb.h b/source3/include/smb.h index 60e214d73e..b33db0ce66 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -190,7 +190,7 @@ implemented */ #define STYPE_IPC 3 /* Interprocess communication (IPC) */ #define STYPE_HIDDEN 0x80000000 /* share is a hidden one (ends with $) */ -/* SMB X/Open error codes for the ERRdos error class */ +/* SMB X/Open error codes for the ERRDOS error class */ #define ERRbadfunc 1 /* Invalid function (or system call) */ #define ERRbadfile 2 /* File not found (pathname error) */ #define ERRbadpath 3 /* Directory not found */ @@ -1076,7 +1076,7 @@ struct parm_struct #define smb_nt_DataOffset (smb_vwv0 + 31) #define smb_nt_SetupCount (smb_vwv0 + 35) #define smb_nt_Function (smb_vwv0 + 36) -#define smb_nt_SetupStart (smb_vwv0 + 39) +#define smb_nt_SetupStart (smb_vwv0 + 38) /* these are for the NT trans secondary request. */ #define smb_nts_TotalParameterCount (smb_vwv0 + 3) @@ -1195,6 +1195,17 @@ struct parm_struct #define FILE_UNICODE_ON_DISK 0x4 #define FILE_PERISITANT_ACLS 0x8 +/* ChangeNotify flags. */ +#define FILE_NOTIFY_CHANGE_FILE_NAME 0x001 +#define FILE_NOTIFY_CHANGE_DIR_NAME 0x002 +#define FILE_NOTIFY_CHANGE_ATTRIBUTES 0x004 +#define FILE_NOTIFY_CHANGE_SIZE 0x008 +#define FILE_NOTIFY_CHANGE_LAST_WRITE 0x010 +#define FILE_NOTIFY_CHANGE_LAST_ACCESS 0x020 +#define FILE_NOTIFY_CHANGE_CREATION 0x040 +#define FILE_NOTIFY_CHANGE_EA 0x080 +#define FILE_NOTIFY_CHANGE_SECURITY 0x100 + /* where to find the base of the SMB packet proper */ #define smb_base(buf) (((char *)(buf))+4) |