diff options
author | Shirish Kalele <kalele@samba.org> | 2000-05-16 01:13:16 +0000 |
---|---|---|
committer | Shirish Kalele <kalele@samba.org> | 2000-05-16 01:13:16 +0000 |
commit | 651946153e41354769839fa6cbcfd36fd320efbe (patch) | |
tree | e0682dd8ef1f369e2a31846715ebc9cd2f17cc6e /source3/include | |
parent | 210f11d0e346db3c38d4d4f19cf77773537c9560 (diff) | |
download | samba-651946153e41354769839fa6cbcfd36fd320efbe.tar.gz samba-651946153e41354769839fa6cbcfd36fd320efbe.tar.bz2 samba-651946153e41354769839fa6cbcfd36fd320efbe.zip |
The new msdfs implementation that uses symlinks to point to other
servers. Very intuitive.
Removed the dfs map parsing code and tdb maintenance code (files
msdfs/parse_dfs_map.c & msdfs/msdfs_tdb.c), dfs map loading and unloading
calls (param/loadparm.c smbd/server.c).
Added code to display msdfs format symlinks as directories in a
transact2_findfirst/findnext. (smbd/trans2.c)
Modified msdfs/msdfs.c to use the msdfs symlinks to
create dfs referrals.
Changed msdfs/README to reflect new operability.
(This used to be commit 6803d2574fab9e5931786d5c9aa5dc5867bb5f05)
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/msdfs.h | 16 | ||||
-rw-r--r-- | source3/include/proto.h | 22 |
2 files changed, 14 insertions, 24 deletions
diff --git a/source3/include/msdfs.h b/source3/include/msdfs.h index 0c2e3c14df..ac054307b5 100644 --- a/source3/include/msdfs.h +++ b/source3/include/msdfs.h @@ -28,6 +28,13 @@ #define DFSREF_REFERRAL_SERVER 0x1 #define DFSREF_STORAGE_SERVER 0x2 +/* Referral sizes */ +#define VERSION2_REFERRAL_SIZE 0x16 +#define VERSION3_REFERRAL_SIZE 0x22 +#define REFERRAL_HEADER_SIZE 0x08 + +/* Maximum number of referrals for each Dfs volume */ +#define MAX_REFERRAL_COUNT 256 struct referral { @@ -66,14 +73,9 @@ struct dfs_path return(dfs_path_error(inbuf,outbuf)); } #define init_dfsroot(conn, inbuf, outbuf) \ -{ if(*lp_dfsmap(SNUM(conn)) && lp_host_msdfs()) { \ +{ if(lp_msdfs_root(SNUM(conn)) && lp_host_msdfs()) \ SSVAL(outbuf, smb_vwv2, SMB_SHARE_IN_DFS | SMB_SUPPORT_SEARCH_BITS); \ - if(lp_dfsmap_loaded(SNUM(conn))) \ - msdfs_open(False); \ - else { \ - DEBUG(3,("msdfs map database not initialized!\n")); \ - pstrcpy(lp_dfsmap(SNUM(conn)),""); \ - } } } +} #else /* Stub macros */ diff --git a/source3/include/proto.h b/source3/include/proto.h index b19d3d8f5c..c96c781130 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -873,6 +873,7 @@ BOOL posix_locking_end(void); /*The following definitions come from msdfs/msdfs.c */ +BOOL is_msdfs_volume(connection_struct* conn, char* path); BOOL dfs_redirect(char* pathname, connection_struct* conn); BOOL dfs_findfirst_redirect(char* pathname, connection_struct* conn); int setup_dfs_referral(char* pathname, int max_referral_level, @@ -880,20 +881,8 @@ int setup_dfs_referral(char* pathname, int max_referral_level, int dfs_path_error(char* inbuf, char* outbuf); int setup_dfs_referral(char* pathname, int max_referral_level, char** ppdata); - -/*The following definitions come from msdfs/msdfs_tdb.c */ - -BOOL msdfs_open(BOOL update); -BOOL add_junction_entry(struct junction_map* junction); -BOOL get_junction_entry(struct junction_map* junction); -BOOL isDfsShare(char* svc,char* vol); -void msdfs_close(void); -void msdfs_end(void); - -/*The following definitions come from msdfs/parse_dfs_map.c */ - -void load_dfsmaps(void); -void load_dfsmaps(void); +BOOL is_msdfs_volume(connection_struct* conn, char* path); +void unistr_to_dos(char* dst,char* src) ; /*The following definitions come from nmbd/asyncdns.c */ @@ -1408,8 +1397,8 @@ char *lp_veto_files(int ); char *lp_hide_files(int ); char *lp_veto_oplocks(int ); char *lp_driverlocation(int ); -char *lp_dfsmap(int ); -BOOL lp_dfsmap_loaded(int ); + +BOOL lp_msdfs_root(int ); BOOL lp_autoloaded(int ); BOOL lp_preexec_close(int ); BOOL lp_rootpreexec_close(int ); @@ -1471,7 +1460,6 @@ BOOL lp_add_home(char *pszHomename, int iDefaultService, char *pszHomedir); int lp_add_service(char *pszService, int iDefaultService); BOOL lp_add_printer(char *pszPrintername, int iDefaultService); BOOL lp_file_list_changed(void); -void set_dfsmap_loaded(int i,BOOL b); void *lp_local_ptr(int snum, void *ptr); BOOL lp_do_parameter(int snum, char *pszParmName, char *pszParmValue); BOOL lp_is_default(int snum, struct parm_struct *parm); |