[or-cvs] Use tor_listdir in test.c instead of duplicating ode.

Nick Mathewson nickm at seul.org
Sat Sep 10 01:42:44 UTC 2005


Update of /home/or/cvsroot/tor/src/or
In directory moria:/tmp/cvs-serv3848/src/or

Modified Files:
	test.c 
Log Message:
Use tor_listdir in test.c instead of duplicating ode.

Index: test.c
===================================================================
RCS file: /home/or/cvsroot/tor/src/or/test.c,v
retrieving revision 1.199
retrieving revision 1.200
diff -u -d -r1.199 -r1.200
--- test.c	9 Sep 2005 23:12:54 -0000	1.199
+++ test.c	10 Sep 2005 01:42:42 -0000	1.200
@@ -74,56 +74,21 @@
 static void
 remove_directory(void)
 {
-#ifdef MS_WINDOWS
-  char *pattern;
-  HANDLE handle;
-  WIN32_FIND_DATA findData;
-
-  setup_directory();
-  pattern = tor_malloc(strlen(temp_dir)+16);
-  tor_snprintf(pattern, strlen(temp_dir)+16, "%s\\*", temp_dir);
-  handle = FindFirstFile(pattern, &findData);
-  if (handle == INVALID_HANDLE_VALUE) {
-    perror("Can't remove");
-    return;
-  }
-  while (1) {
-    size_t dlen = strlen(findData.cFileName)+strlen(temp_dir)+16;
-    char *deleteable = tor_malloc(dlen);
-    tor_snprintf(deleteable, dlen, "%s\\%s", temp_dir, findData.cFileName);
-    unlink(deleteable);
-    tor_free(deleteable);
-    if (!FindNextFile(handle, &findData)) {
-      if (GetLastError() != ERROR_NO_MORE_FILES) {
-        perror("error reading dir");
-      }
-      break;
-    }
-  }
-  FindClose(handle);
-  tor_free(pattern);
-#else
-  DIR *dirp;
-  struct dirent *de;
-  setup_directory();
-  if (!(dirp = opendir(temp_dir))) {
-    perror("Can't open temporary directory to remove files");
-    return;
-  }
-  while ((de = readdir(dirp)) != NULL) {
-    /* Only "." and ".." start with ., since we don't create any dotfiles. */
-    if (de->d_name[0] == '.') continue;
-    if (unlink(get_fname(de->d_name))) {
-      printf("Couldn't remove temprorary file \"%s/%s\"",temp_dir,de->d_name);
-      perror("");
-    }
-#if 0
-    printf("==%s\n", de->d_name);
-#endif
+  smartlist_t *elements = tor_listdir(temp_dir);
+  if (elements) {
+    SMARTLIST_FOREACH(elements, const char *, cp,
+       {
+         size_t len = strlen(cp)+strlen(temp_dir)+16;
+         char *tmp = tor_malloc(len);
+         tor_snprintf(tmp, len, "%s"PATH_SEPARATOR"%s", temp_dir, cp);
+         unlink(tmp);
+         tor_free(tmp);
+       });
+    SMARTLIST_FOREACH(elements, char *, cp, tor_free(cp));
+    smartlist_free(elements);
   }
-  closedir(dirp);
-#endif
   rmdir(temp_dir);
+  
 }
 
 static void
@@ -615,7 +580,6 @@
 _compare_without_first_ch(const void *a, const void **b)
 {
   const char *s1 = a, *s2 = *b;
-  printf("%s v %s\n",s1, s2);
   return strcasecmp(s1+1, s2);
 }
 



More information about the tor-commits mailing list