volker was concerned about unique inode numbers and smbsh. This set of
[samba.git] / source3 / smbwrapper / smbw_dir.c
index d374d5f1790a62fb7f2e9b7e2d492acfa22e1153..4d1e3cc179175203ce142ac1d95a6a0baec01376 100644 (file)
@@ -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;
        }