Permalink
Browse files

Let btpd remove torrent data by itself instead of calling rm.

  • Loading branch information...
1 parent b5d78b0 commit 4457c1268a923d2a662ab23ca1b8d7920811ae51 @rmn64k rmn64k committed Jan 8, 2009
Showing with 15 additions and 4 deletions.
  1. +15 −4 btpd/tlib.c
View
19 btpd/tlib.c
@@ -62,11 +62,22 @@ int
tlib_del(struct tlib *tl)
{
char relpath[RELPATH_SIZE];
- char cmd[PATH_MAX];
+ char path[PATH_MAX];
+ DIR *dir;
+ struct dirent *de;
assert(tl->tp == NULL);
- snprintf(cmd, PATH_MAX, "rm -r torrents/%s",
- bin2hex(tl->hash, relpath, 20));
- system(cmd);
+ snprintf(path, PATH_MAX, "torrents/%s", bin2hex(tl->hash, relpath, 20));
+ if ((dir = opendir(path)) != NULL) {
+ while ((de = readdir(dir)) != NULL) {
+ if (strcmp(".", de->d_name) == 0 || strcmp("..", de->d_name) == 0)
+ continue;
+ snprintf(path, PATH_MAX, "torrents/%s/%s", relpath, de->d_name);
+ remove(path);
+ }
+ closedir(dir);
+ }
+ snprintf(path, PATH_MAX, "torrents/%s", relpath);
+ remove(path);
tlib_kill(tl);
return 0;
}

0 comments on commit 4457c12

Please sign in to comment.