diff options
author | Andrew Tridgell <tridge@samba.org> | 1998-10-24 08:08:05 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 1998-10-24 08:08:05 +0000 |
commit | fb556e14f3b47d5a1f465589084e8b30d84af8ca (patch) | |
tree | 90efd6b2e60d40552f23b481f08e69b5e9e24178 /source3/smbwrapper/smbw_dir.c | |
parent | 4140f2bfc141ee9a91723d274344769f8b11a5f9 (diff) | |
download | samba-fb556e14f3b47d5a1f465589084e8b30d84af8ca.tar.gz samba-fb556e14f3b47d5a1f465589084e8b30d84af8ca.tar.bz2 samba-fb556e14f3b47d5a1f465589084e8b30d84af8ca.zip |
volker was concerned about unique inode numbers and smbsh. This set of
changes uses the unique index number from a SMB_QUERY_FILE_ALL_INFO to
try to provide inode numbers. If it is 0 then use the hash of the
filename as before.
(This used to be commit 2565ccf9de9d5e80fdb5bcadbc7130faba386d95)
Diffstat (limited to 'source3/smbwrapper/smbw_dir.c')
-rw-r--r-- | source3/smbwrapper/smbw_dir.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source3/smbwrapper/smbw_dir.c b/source3/smbwrapper/smbw_dir.c index d374d5f179..4d1e3cc179 100644 --- a/source3/smbwrapper/smbw_dir.c +++ b/source3/smbwrapper/smbw_dir.c @@ -202,21 +202,31 @@ int smbw_dir_open(const char *fname) if ((p=strstr(srv->server_name,"#1D"))) { DEBUG(4,("doing NetServerEnum\n")); *p = 0; + smbw_server_add(".",0,""); + smbw_server_add("..",0,""); cli_NetServerEnum(&srv->cli, srv->server_name, SV_TYPE_ALL, smbw_server_add); *p = '#'; } else if (strcmp(srv->cli.dev,"IPC") == 0) { DEBUG(4,("doing NetShareEnum\n")); + smbw_share_add(".",0,""); + smbw_share_add("..",0,""); if (cli_RNetShareEnum(&srv->cli, smbw_share_add) < 0) { errno = smbw_errno(&srv->cli); goto failed; } } else if (strncmp(srv->cli.dev,"LPT",3) == 0) { + smbw_share_add(".",0,""); + smbw_share_add("..",0,""); if (cli_print_queue(&srv->cli, smbw_printjob_add) < 0) { errno = smbw_errno(&srv->cli); goto failed; } } else { + if (strcmp(path,"\\") == 0) { + smbw_share_add(".",0,""); + smbw_share_add("..",0,""); + } if (cli_list(&srv->cli, mask, aHIDDEN|aSYSTEM|aDIR, smbw_dir_add) < 0) { errno = smbw_errno(&srv->cli); @@ -396,7 +406,7 @@ int smbw_chdir(const char *name) if (strncmp(srv->cli.dev,"IPC",3) && strncmp(srv->cli.dev,"LPT",3) && !smbw_getatr(srv, path, - &mode, NULL, NULL, NULL, NULL)) { + &mode, NULL, NULL, NULL, NULL, NULL)) { errno = smbw_errno(&srv->cli); goto failed; } |