-https://doc.libsodium.org/
To Do:
+*hashing/cryptography
-bencoding/decoding
- -might not need decoding?
-file system
-open/close
-creating torrents
-traverse directories
-networking
-tcp/udp support
--hashing/cryptography
- -find out which algorithms used in protocol
- -lightweight library
-architecture
-epoll
-daemonize
-threads
-adding torrents
-generating pieces/doing hashing
- -network tread(s)
- -logging
+ -network thread(s)
+ *logging
-considerations
-byte order issues?
-multiple protocols same socket?
Stage 0:
*basic structure
--update logging
- -timing
- -threadid
- -fix va_args problem
- -pass va_list as parameter to log_message?
- -would have to modify declaration of log_message
+*update logging
-global variables
-torrents
- -options
+ *options
-peers
+ -add queue
+ -no, run each directory in torrents through nftw
-setup watches
*add option to watch directories
*add option for worker_threads [default=ncores]
+ -add default watch directories
+ -foreach watch directory
+ -walk each tree
+ -add each file to add queue
+ -check for duplicates
+ -add pointer to struct file to torrent
-figure out files organization
-store in files object
-store inside respective struct torrent