diff --git a/btpd/tlib.c b/btpd/tlib.c index 93b1df6..1c42d9f 100644 --- a/btpd/tlib.c +++ b/btpd/tlib.c @@ -328,8 +328,10 @@ tlib_load_resume(struct tlib *tl, unsigned nfiles, struct file_time_size *fts, { int err, ver; FILE *fp; + char relpath[RELPATH_SIZE]; + bin2hex(tl->hash, relpath, 20); - if ((err = vfopen(&fp, "r" , "torrents/%s/resume", tl->tp->relpath)) != 0) + if ((err = vfopen(&fp, "r" , "torrents/%s/resume", relpath)) != 0) return err; if (fscanf(fp, "%d\n", &ver) != 1) @@ -363,7 +365,10 @@ tlib_save_resume(struct tlib *tl, unsigned nfiles, struct file_time_size *fts, { int err; FILE *fp; - if ((err = vfopen(&fp, "wb", "torrents/%s/resume", tl->tp->relpath)) != 0) + char relpath[RELPATH_SIZE]; + bin2hex(tl->hash, relpath, 20); + + if ((err = vfopen(&fp, "wb", "torrents/%s/resume", relpath)) != 0) return; fprintf(fp, "%d\n", 1); for (int i = 0; i < nfiles; i++) diff --git a/btpd/torrent.c b/btpd/torrent.c index f9c9e86..e97a245 100644 --- a/btpd/torrent.c +++ b/btpd/torrent.c @@ -127,7 +127,6 @@ torrent_start(struct tlib *tl) tp = btpd_calloc(1, sizeof(*tp)); tp->tl = tl; - bcopy(relpath, tp->relpath, RELPATH_SIZE); tp->files = mi_files(mi); tp->nfiles = mi_nfiles(mi); if (tp->files == NULL) diff --git a/btpd/torrent.h b/btpd/torrent.h index 5f3116a..c9d11e5 100644 --- a/btpd/torrent.h +++ b/btpd/torrent.h @@ -14,7 +14,6 @@ enum torrent_state { struct torrent { struct tlib *tl; - char relpath[RELPATH_SIZE]; enum torrent_state state; int delete;