Browse Source

fix searchpath handling

master
Olaf Rempel 11 years ago
parent
commit
d5578f6073
4 changed files with 26 additions and 10 deletions
  1. +2
    -0
      pidfile.c
  2. +4
    -0
      torrent-stats.c
  3. +18
    -10
      torrentfile.c
  4. +2
    -0
      torrentfile.h

+ 2
- 0
pidfile.c View File

@@ -44,6 +44,8 @@ pid_t pidfile_check(const char *filename, int remove_stale)
int len = read(fd, buf, sizeof(buf) -1);
buf[len] = '\0';

close(fd);

char *tmp;
pid_t pid = strtol(buf, &tmp, 10);
if (len == 0 || tmp == buf)


+ 4
- 0
torrent-stats.c View File

@@ -30,6 +30,7 @@
#include "pidfile.h"
#include "process.h"
#include "signals.h"
#include "torrentfile.h"

#define DEFAULT_CONFIG "torrent-stats.conf"
#define DEFAULT_LOGFILE "torrent-stats.log"
@@ -114,6 +115,9 @@ int main(int argc, char *argv[])
signal_set_callback(SIGHUP, event_loop_break);

while (1) {
if (torrentfile_init() < 0)
break;

if (ctcs_init() < 0)
break;



+ 18
- 10
torrentfile.c View File

@@ -30,6 +30,10 @@
#include "process.h"
#include "torrentfile.h"

static const char *searchpath;
static const char *ctorrent_bin;
static const char *statserv;

LIST_HEAD(torrent_list);

struct torrent_file * find_create_torrent(const char *fullpath)
@@ -112,14 +116,8 @@ static int null_read(int fd, void *privdata)

int seed_torrent(struct torrent_file *torrent)
{
const char *path = config_get_string("global", "search-path", NULL);
if (path == NULL) {
log_print(LOG_WARN, "requesting torrentfile, but no search path given");
return -1;
}

char buf[256];
int len = snprintf(buf, sizeof(buf), "%s/%s", path, torrent->name);
int len = snprintf(buf, sizeof(buf), "%s/%s", searchpath, torrent->name);
if (len < 0 || len >= sizeof(buf)) {
log_print(LOG_WARN, "filename > max");
return -1;
@@ -131,11 +129,9 @@ int seed_torrent(struct torrent_file *torrent)
return -1;
}

const char *ctorrent_bin = config_get_string("global", "ctorrent-bin", "/usr/bin/ctorrent");
const char *statserv = config_get_string("global", "statserv", "127.0.0.1:2780");
char *const args[] = { (char *)ctorrent_bin, "-S", (char *)statserv, "-f", buf, NULL };

torrent->child = childproc_alloc(args, path);
torrent->child = childproc_alloc(args, searchpath);
if (childproc_fork(torrent->child, child_exit, torrent) < 0) {
log_print(LOG_ERROR, "spawn_child(%s)", args[0]);
childproc_free(torrent->child);
@@ -151,3 +147,15 @@ int seed_torrent(struct torrent_file *torrent)

return 0;
}

int torrentfile_init(void)
{
searchpath = config_get_string("global", "search-path", NULL);
if (searchpath == NULL)
log_print(LOG_WARN, "disable torrent autostart");

ctorrent_bin = config_get_string("global", "ctorrent-bin", "/usr/bin/ctorrent");
statserv = config_get_string("global", "statserv", "127.0.0.1:2780");

return 0;
}

+ 2
- 0
torrentfile.h View File

@@ -28,4 +28,6 @@ int destroy_torrent(struct torrent_file *torrent);

int seed_torrent(struct torrent_file *torrent);

int torrentfile_init(void);

#endif /* _TORRENTFILE_H_ */

Loading…
Cancel
Save