]> git.proxmox.com Git - qemu.git/commitdiff
slirp: Use shell to erase smb directory
authorJan Kiszka <jan.kiszka@siemens.com>
Wed, 24 Jun 2009 12:42:31 +0000 (14:42 +0200)
committerAnthony Liguori <aliguori@us.ibm.com>
Mon, 29 Jun 2009 13:52:50 +0000 (08:52 -0500)
Instead of open-coding this, we can use the power of the shell to remove
the smb_dir on exit.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
net.c

diff --git a/net.c b/net.c
index f180b33c71836e1012d0e0cc60f18327c0b3311a..bfc63178bb3ebb720db496ad6249e3cd6387bbfd 100644 (file)
--- a/net.c
+++ b/net.c
@@ -1014,35 +1014,13 @@ void net_slirp_redir(const char *redir_str)
 
 static char smb_dir[1024];
 
-static void erase_dir(char *dir_name)
-{
-    DIR *d;
-    struct dirent *de;
-    char filename[1024];
-
-    /* erase all the files in the directory */
-    if ((d = opendir(dir_name)) != NULL) {
-        for(;;) {
-            de = readdir(d);
-            if (!de)
-                break;
-            if (strcmp(de->d_name, ".") != 0 &&
-                strcmp(de->d_name, "..") != 0) {
-                snprintf(filename, sizeof(filename), "%s/%s",
-                         smb_dir, de->d_name);
-                if (unlink(filename) != 0)  /* is it a directory? */
-                    erase_dir(filename);
-            }
-        }
-        closedir(d);
-        rmdir(dir_name);
-    }
-}
-
 /* automatic user mode samba server configuration */
 static void smb_exit(void)
 {
-    erase_dir(smb_dir);
+    char cmd[1024];
+
+    snprintf(cmd, sizeof(cmd), "rm -rf %s", smb_dir);
+    system(cmd);
 }
 
 static void slirp_smb(SlirpState* s, const char *exported_dir,