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

added "hide files" option.

lkcl
(This used to be commit 6e594ce0e5)
This commit is contained in:
Samba Release Account 1997-07-01 19:02:43 +00:00
parent 29ac1823df
commit 738d29667f
5 changed files with 47 additions and 13 deletions

View File

@ -142,6 +142,7 @@ char *lp_character_set(void);
char *lp_logon_script(void);
char *lp_logon_path(void);
char *lp_veto_files(void);
char *lp_hide_files(void);
char *lp_remote_announce(void);
char *lp_wins_server(void);
char *lp_interfaces(void);
@ -273,12 +274,18 @@ BOOL do_lock(int fnum,int cnum,uint32 count,uint32 offset,int *eclass,uint32 *ec
BOOL do_unlock(int fnum,int cnum,uint32 count,uint32 offset,int *eclass,uint32 *ecode);
BOOL start_share_mode_mgmt(void);
BOOL stop_share_mode_mgmt(void);
BOOL lock_share_entry(int cnum, uint32 dev, uint32 inode, share_lock_token *);
BOOL unlock_share_entry(int cnum, uint32 dev, uint32 inode, share_lock_token);
BOOL lock_share_entry(int cnum, uint32 dev, uint32 inode, share_lock_token *ptok);
BOOL unlock_share_entry(int cnum, uint32 dev, uint32 inode, share_lock_token token);
int get_share_modes(int cnum, share_lock_token token, uint32 dev, uint32 inode,
min_share_mode_entry **old_shares);
void del_share_mode(share_lock_token token, int fnum);
BOOL set_share_mode(share_lock_token token, int fnum);
BOOL lock_share_entry(int cnum, uint32 dev, uint32 inode, share_lock_token *ptok);
BOOL unlock_share_entry(int cnum, uint32 dev, uint32 inode, share_lock_token token);
int get_share_modes(int cnum, share_lock_token token, uint32 dev, uint32 inode,
min_share_mode_entry **old_shares);
void del_share_mode(share_lock_token token, int fnum);
BOOL set_share_mode(share_lock_token token,int fnum);
/*The following definitions come from mangle.c */
@ -302,7 +309,6 @@ int reply_sendend(char *inbuf,char *outbuf);
/*The following definitions come from nameannounce.c */
void reset_announce_timer();
void announce_request(struct work_record *work, struct in_addr ip);
void do_announce_request(char *info, char *to_name, int announce_type,
int from,
@ -320,6 +326,7 @@ void announce_my_servers_removed(void);
void announce_server(struct subnet_record *d, struct work_record *work,
char *name, char *comment, time_t ttl, int server_type);
void announce_host(time_t t);
void reset_announce_timer();
void announce_master(time_t t);
void announce_remote(time_t t);
@ -327,8 +334,7 @@ void announce_remote(time_t t);
void expire_browse_cache(time_t t);
struct browse_cache_record *add_browser_entry(char *name, int type, char *wg,
time_t ttl,
struct subnet_record *d,
time_t ttl, struct subnet_record *d,
struct in_addr ip, BOOL local);
void do_browser_lists(time_t t);
@ -718,16 +724,12 @@ int construct_reply(char *inbuf,char *outbuf,int size,int bufsize);
/*The following definitions come from shmem.c */
BOOL smb_shm_create_hash_table( unsigned int size );
BOOL smb_shm_open( char *file_name, int size);
BOOL smb_shm_close( void );
BOOL smb_shm_free(smb_shm_offset_t offset);
BOOL smb_shm_set_userdef_off(smb_shm_offset_t userdef_off);
void * smb_shm_offset2addr(smb_shm_offset_t offset);
BOOL smb_shm_lock(void);
BOOL smb_shm_unlock(void);
smb_shm_offset_t smb_shm_alloc(int size);
smb_shm_offset_t smb_shm_addr2offset(void *addr);
smb_shm_offset_t smb_shm_get_userdef_off(void);
BOOL smb_shm_lock_hash_entry( unsigned int entry);
BOOL smb_shm_unlock_hash_entry( unsigned int entry );
BOOL smb_shm_get_usage(int *bytes_free,
@ -947,7 +949,8 @@ void BlockSignals(BOOL block,int signum);
void ajt_panic(void);
char *readdirname(void *p);
BOOL is_vetoed_name(char *name);
BOOL is_vetoed_path(char *name);
BOOL is_hidden_path(char *path);
BOOL is_vetoed_path(char *path);
BOOL fcntl_lock(int fd,int op,uint32 offset,uint32 count,int type);
int file_lock(char *name,int timeout);
void file_unlock(int fd);

View File

@ -915,4 +915,11 @@ enum case_handling {CASE_LOWER,CASE_UPPER};
/* Size of buffer to use when moving files across filesystems. */
#define COPYBUF_SIZE (8*1024)
/* Default files that will be hidden, but accessible. intended
to replace the "hide dot files" parameter if the "hide files"
parameter moves to the service section instead of the global
section.
*/
#define DEFAULT_FILES_TO_HIDE ".*"
/* _SMB_H */

View File

@ -3469,9 +3469,8 @@ BOOL is_vetoed_name(char *name)
return 0;
}
BOOL is_vetoed_path(char *name)
static BOOL is_in_path(char *name, char *namelist)
{
char *namelist = lp_veto_files();
char *nameptr = namelist;
char *sub;
char *name_end;
@ -3522,6 +3521,22 @@ BOOL is_vetoed_path(char *name)
return 0;
}
/****************************************************************************
used to make files hidden, but still accessible
****************************************************************************/
BOOL is_hidden_path(char *path)
{
return is_in_path(path, lp_hide_files());
}
/****************************************************************************
used to make files _completely_ inaccessible
****************************************************************************/
BOOL is_vetoed_path(char *path)
{
return is_in_path(path, lp_veto_files());
}
/****************************************************************************
routine to do file locking
****************************************************************************/

View File

@ -130,6 +130,7 @@ typedef struct
char *szLogonScript;
char *szLogonPath;
char *szVetoFiles;
char *szHideFiles;
char *szSmbrun;
char *szWINSserver;
char *szInterfaces;
@ -395,6 +396,7 @@ struct parm_struct
{"netbios name", P_UGSTRING,P_GLOBAL, myname, NULL},
{"smbrun", P_STRING, P_GLOBAL, &Globals.szSmbrun, NULL},
{"veto files", P_STRING, P_GLOBAL, &Globals.szVetoFiles, NULL},
{"hide files", P_STRING, P_GLOBAL, &Globals.szHideFiles, NULL},
{"log file", P_STRING, P_GLOBAL, &Globals.szLogFile, NULL},
{"config file", P_STRING, P_GLOBAL, &Globals.szConfigFile, NULL},
{"smb passwd file", P_STRING, P_GLOBAL, &Globals.szSMBPasswdFile, NULL},
@ -621,6 +623,7 @@ static void init_globals(void)
Globals.shmem_size = SHMEM_SIZE;
Globals.shmem_hash_size = SHMEM_HASH_SIZE;
Globals.bUnixRealname = False;
Globals.szHideFiles = DEFAULT_FILES_TO_HIDE;
#if (defined(NETGROUP) && defined(AUTOMOUNT))
Globals.bNISHomeMap = False;
string_set(&Globals.szNISHomeMapName, "auto.home");
@ -796,6 +799,7 @@ FN_GLOBAL_STRING(lp_character_set,&Globals.szCharacterSet)
FN_GLOBAL_STRING(lp_logon_script,&Globals.szLogonScript)
FN_GLOBAL_STRING(lp_logon_path,&Globals.szLogonPath)
FN_GLOBAL_STRING(lp_veto_files,&Globals.szVetoFiles)
FN_GLOBAL_STRING(lp_hide_files,&Globals.szHideFiles)
FN_GLOBAL_STRING(lp_remote_announce,&Globals.szRemoteAnnounce)
FN_GLOBAL_STRING(lp_wins_server,&Globals.szWINSserver)
FN_GLOBAL_STRING(lp_interfaces,&Globals.szInterfaces)

View File

@ -222,6 +222,11 @@ int dos_mode(int cnum,char *path,struct stat *sbuf)
result |= aHIDDEN;
}
if (is_hidden_path(path))
{
result |= aHIDDEN;
}
return(result);
}