summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorShirish Kalele <kalele@samba.org>2000-05-16 01:13:16 +0000
committerShirish Kalele <kalele@samba.org>2000-05-16 01:13:16 +0000
commit651946153e41354769839fa6cbcfd36fd320efbe (patch)
treee0682dd8ef1f369e2a31846715ebc9cd2f17cc6e /source3/include
parent210f11d0e346db3c38d4d4f19cf77773537c9560 (diff)
downloadsamba-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.h16
-rw-r--r--source3/include/proto.h22
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);