Commit 09c18925761f932a59f0838c889f31e2d3aa3fcb
Committed by
Anthony Liguori
1 parent
0a1f851e
slirp: Use shell to erase smb directory
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>
Showing
1 changed file
with
4 additions
and
26 deletions
net.c
| ... | ... | @@ -1014,35 +1014,13 @@ void net_slirp_redir(const char *redir_str) |
| 1014 | 1014 | |
| 1015 | 1015 | static char smb_dir[1024]; |
| 1016 | 1016 | |
| 1017 | -static void erase_dir(char *dir_name) | |
| 1018 | -{ | |
| 1019 | - DIR *d; | |
| 1020 | - struct dirent *de; | |
| 1021 | - char filename[1024]; | |
| 1022 | - | |
| 1023 | - /* erase all the files in the directory */ | |
| 1024 | - if ((d = opendir(dir_name)) != NULL) { | |
| 1025 | - for(;;) { | |
| 1026 | - de = readdir(d); | |
| 1027 | - if (!de) | |
| 1028 | - break; | |
| 1029 | - if (strcmp(de->d_name, ".") != 0 && | |
| 1030 | - strcmp(de->d_name, "..") != 0) { | |
| 1031 | - snprintf(filename, sizeof(filename), "%s/%s", | |
| 1032 | - smb_dir, de->d_name); | |
| 1033 | - if (unlink(filename) != 0) /* is it a directory? */ | |
| 1034 | - erase_dir(filename); | |
| 1035 | - } | |
| 1036 | - } | |
| 1037 | - closedir(d); | |
| 1038 | - rmdir(dir_name); | |
| 1039 | - } | |
| 1040 | -} | |
| 1041 | - | |
| 1042 | 1017 | /* automatic user mode samba server configuration */ |
| 1043 | 1018 | static void smb_exit(void) |
| 1044 | 1019 | { |
| 1045 | - erase_dir(smb_dir); | |
| 1020 | + char cmd[1024]; | |
| 1021 | + | |
| 1022 | + snprintf(cmd, sizeof(cmd), "rm -rf %s", smb_dir); | |
| 1023 | + system(cmd); | |
| 1046 | 1024 | } |
| 1047 | 1025 | |
| 1048 | 1026 | static void slirp_smb(SlirpState* s, const char *exported_dir, | ... | ... |