Commit 044fae83ad1882d9b5919ce02037eb2967824a8d

Authored by balrog
1 parent 38cdea7c

Clean-up /tmp directory after -smb use (Mark Jonckheere).


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3911 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 21 additions and 13 deletions
... ... @@ -3775,27 +3775,35 @@ static void net_slirp_redir(const char *redir_str)
3775 3775  
3776 3776 char smb_dir[1024];
3777 3777  
3778   -static void smb_exit(void)
  3778 +static void erase_dir(char *dir_name)
3779 3779 {
3780 3780 DIR *d;
3781 3781 struct dirent *de;
3782 3782 char filename[1024];
3783 3783  
3784 3784 /* erase all the files in the directory */
3785   - d = opendir(smb_dir);
3786   - for(;;) {
3787   - de = readdir(d);
3788   - if (!de)
3789   - break;
3790   - if (strcmp(de->d_name, ".") != 0 &&
3791   - strcmp(de->d_name, "..") != 0) {
3792   - snprintf(filename, sizeof(filename), "%s/%s",
3793   - smb_dir, de->d_name);
3794   - unlink(filename);
  3785 + if ((d = opendir(dir_name)) != 0) {
  3786 + for(;;) {
  3787 + de = readdir(d);
  3788 + if (!de)
  3789 + break;
  3790 + if (strcmp(de->d_name, ".") != 0 &&
  3791 + strcmp(de->d_name, "..") != 0) {
  3792 + snprintf(filename, sizeof(filename), "%s/%s",
  3793 + smb_dir, de->d_name);
  3794 + if (unlink(filename) != 0) /* is it a directory? */
  3795 + erase_dir(filename);
  3796 + }
3795 3797 }
  3798 + closedir(d);
  3799 + rmdir(dir_name);
3796 3800 }
3797   - closedir(d);
3798   - rmdir(smb_dir);
  3801 +}
  3802 +
  3803 +/* automatic user mode samba server configuration */
  3804 +static void smb_exit(void)
  3805 +{
  3806 + erase_dir(smb_dir);
3799 3807 }
3800 3808  
3801 3809 /* automatic user mode samba server configuration */
... ...