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 | 2565ccf9de9d5e80fdb5bcadbc7130faba386d95 (patch) | |
tree | 5b5846e0b28aa29db5c410336f8e258994d85423 /source/smbwrapper/smbw_dir.c | |
parent | 9d863fb1681a5b03696552e1d93fe339b4bae455 (diff) | |
download | samba-2565ccf9de9d5e80fdb5bcadbc7130faba386d95.tar.gz samba-2565ccf9de9d5e80fdb5bcadbc7130faba386d95.tar.xz samba-2565ccf9de9d5e80fdb5bcadbc7130faba386d95.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.
Diffstat (limited to 'source/smbwrapper/smbw_dir.c')
-rw-r--r-- | source/smbwrapper/smbw_dir.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source/smbwrapper/smbw_dir.c b/source/smbwrapper/smbw_dir.c index d374d5f1790..4d1e3cc1791 100644 --- a/source/smbwrapper/smbw_dir.c +++ b/source/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; } |