]> infiniteadaptability.org Git - seeder/commitdiff
...
authoralex <[email protected]>
Thu, 9 Sep 2021 02:52:20 +0000 (19:52 -0700)
committeralex <[email protected]>
Thu, 9 Sep 2021 02:52:20 +0000 (19:52 -0700)
inc/add.h
inc/main.h
inc/torrent.h
src/add.c
src/main.c

index 3d8e699562102a2e10aadc19517b5576c340d5b6..d5a4b431bdb1d8d88c76ae8df5505d542f7e0495 100644 (file)
--- a/inc/add.h
+++ b/inc/add.h
@@ -1,8 +1,15 @@
 #ifndef __ADD_H_
 #define __ADD_H_
 
+#include<ftw.h>
+
+#include<hashmap.h>
 #include<log.h>
 
-void *add(void*);
+#define ADD_MESSAGE_ADDING_TORRENT "adding all files in %s to torrent named %s\n"
+
+#define ADD_QUEUE_INITIAL_SIZE 8
+
+int add();
 
 #endif
index b4c82cd87e23cc3bfc29f040a5e3b866b8b0ef66..fa0457706a56e9dded51e3af242058912b0d595c 100644 (file)
@@ -4,6 +4,7 @@
 #include<getopt.h>
 #include<stdlib.h>
 
+#include<add.h>
 #include<default.h>
 #include<log.h>
 #include<setup.h>
index 855f625030474713a33790c569c6aca4fe6a03c2..7ca876838b8e9f87216e19f68e1acdffe619f5a8 100644 (file)
@@ -16,8 +16,6 @@ struct torrent {
        struct hash_map *files;
 };
 
-extern struct torrent **torrents;
-
 void torrent_free(struct torrent*);
 int torrent_init(struct torrent**,char*,char*);
 
index 9b43c1d0091c7e45b66dbf3456752a5b2eeaa173..fbf4a3830013daaa87221b8f8b11626b8201de95 100644 (file)
--- a/src/add.c
+++ b/src/add.c
@@ -1,7 +1,7 @@
 #include<add.h>
 
-//pthread_t adding_thread;
-//pthread_mutex_t adding_mutex = PTHREAD_MUTEX_INITIALIZER;
+pthread_t adding_thread;
+pthread_mutex_t adding_mutex = PTHREAD_MUTEX_INITIALIZER;
 
 //static int setup_adding() {
 //     if(pthread_create(&adding_thread,NULL,&add,NULL)!=0) {
 
 static struct hash_map *add_queue;
 
-void *add(void *p) {
-       return NULL;
+static int add_find_all();
+static int ftw_helper(const char*,const struct stat*,int);
+
+int add() {
+       if(hashmap_init(&add_queue,ADD_QUEUE_INITIAL_SIZE)<0) { return -1; }
+
+       for(size_t i=0;i<session.torrent_count;i++) {
+               if(add_find_all(session.torrents[i])<0) { return -1; }
+       }
+
+       hashmap_free(add_queue);
+       return -1;
+}
+
+static int add_find_all(struct torrent *p) {
+       log_info(ADD_MESSAGE_ADDING_TORRENT,p->root,p->name);
+
+       if(ftw(p->root,&ftw_helper,64)<0) {
+               perror("nftw");
+               return -1;
+       }
+
+       return -1;
+}
+
+static int ftw_helper(const char *path, const struct stat *st, int typeflag) {
+       log_info("adding %s\n",path);
+       return 0;
 }
index 204264ad40186a91fa0f325b27ab21cd2444b535..d873c4636df16f45885e41d3ae9867c828162bd0 100644 (file)
@@ -55,6 +55,8 @@ int main(int argc, char **argv) {
 
        if(setup()<0) { return EXIT_FAILURE; }
 
+       if(add()<0) { return EXIT_FAILURE; }
+
        log_err("this is a test %d %s\n",10,"what?");
        while(1) { }