diff options
author | Erik Andersson <erik@packy.se> | 2016-11-22 23:56:43 +0100 |
---|---|---|
committer | Erik Andersson <erik@packy.se> | 2016-11-22 23:56:43 +0100 |
commit | 41954fffc10bfd230f857f57c6871b412d5f2e91 (patch) | |
tree | 010bcf28f294a58b4a22b7276cf615758648bcbe /src/worker.h | |
parent | ed374a8dbcdaaf273964293d2805bdd61b148022 (diff) | |
download | ocelot-master.zip ocelot-master.tar.gz ocelot-master.tar.bz2 |
Diffstat (limited to 'src/worker.h')
-rw-r--r-- | src/worker.h | 47 |
1 files changed, 30 insertions, 17 deletions
diff --git a/src/worker.h b/src/worker.h index 5eb1987..63f8973 100644 --- a/src/worker.h +++ b/src/worker.h @@ -1,12 +1,13 @@ +#ifndef WORKER_H +#define WORKER_H + #include <string> #include <vector> #include <list> #include <unordered_map> -#include <netinet/in.h> -#include <arpa/inet.h> #include <iostream> -#include <fstream> #include <mutex> +#include <ctime> #include "site_comm.h" #include "ocelot.h" @@ -14,35 +15,47 @@ enum tracker_status { OPEN, PAUSED, CLOSING }; // tracker status class worker { private: - torrent_list torrents_list; - user_list users_list; - std::vector<std::string> whitelist; - std::unordered_map<std::string, del_message> del_reasons; config * conf; mysql * db; + site_comm * s_comm; + torrent_list &torrents_list; + user_list &users_list; + std::vector<std::string> &whitelist; + std::unordered_map<std::string, del_message> del_reasons; tracker_status status; + bool reaper_active; time_t cur_time; - site_comm * s_comm; + + unsigned int announce_interval; + unsigned int del_reason_lifetime; + unsigned int peers_timeout; + unsigned int numwant_limit; + bool keepalive_enabled; + std::string site_password; + std::string report_password; std::mutex del_reasons_lock; - std::mutex ustats_lock; + void load_config(config * conf); void do_start_reaper(); void reap_peers(); void reap_del_reasons(); std::string get_del_reason(int code); - peer_list::iterator add_peer(peer_list &peer_list, std::string &peer_id); - bool peer_is_visible(user_ptr &u, peer *p); + peer_list::iterator add_peer(peer_list &peer_list, const std::string &peer_id); + inline bool peer_is_visible(user_ptr &u, peer *p); public: - worker(torrent_list &torrents, user_list &users, std::vector<std::string> &_whitelist, config * conf_obj, mysql * db_obj, site_comm * sc); - std::string work(std::string &input, std::string &ip); - std::string announce(torrent &tor, user_ptr &u, params_type ¶ms, params_type &headers, std::string &ip); - std::string scrape(const std::list<std::string> &infohashes, params_type &headers); - std::string update(params_type ¶ms); + worker(config * conf_obj, torrent_list &torrents, user_list &users, std::vector<std::string> &_whitelist, mysql * db_obj, site_comm * sc); + void reload_config(config * conf); + std::string work(const std::string &input, std::string &ip, client_opts_t &client_opts); + std::string announce(const std::string &input, torrent &tor, user_ptr &u, params_type ¶ms, params_type &headers, std::string &ip, client_opts_t &client_opts); + std::string scrape(const std::list<std::string> &infohashes, params_type &headers, client_opts_t &client_opts); + std::string update(params_type ¶ms, client_opts_t &client_opts); - bool signal(int sig); + void reload_lists(); + bool shutdown(); tracker_status get_status() { return status; } void start_reaper(); }; +#endif |