]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-10166: Removed old DHT tests and stuff related to libtorrent, and a straggling...
authorShane Bryldt <astaelan@gmail.com>
Wed, 22 Mar 2017 23:22:08 +0000 (18:22 -0500)
committerShane Bryldt <astaelan@gmail.com>
Wed, 22 Mar 2017 23:22:08 +0000 (18:22 -0500)
libs/libks/dht_bencode_encoder.diff [deleted file]
libs/libks/test/Makefile.am
libs/libks/test/dht-example.c [deleted file]
libs/libks/test/libtorrent-example.c [deleted file]
libs/libks/test/libtorrent.cpp [deleted file]
libs/libks/test/libtorrent.h [deleted file]
libs/libks/test/testdht-msg.c [deleted file]
libs/libks/test/testdht-net.c [deleted file]
libs/libks/test/testdht.c [deleted file]
libs/libks/test/tmp [deleted file]

diff --git a/libs/libks/dht_bencode_encoder.diff b/libs/libks/dht_bencode_encoder.diff
deleted file mode 100644 (file)
index 65dd0f7..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-diff --git a/libs/libks/src/ks_dht.c b/libs/libks/src/ks_dht.c
-index 27bafd0..126686e 100644
---- a/libs/libks/src/ks_dht.c
-+++ b/libs/libks/src/ks_dht.c
-@@ -2438,96 +2438,84 @@ static int dht_send(dht_handle_t *h, const void *buf, size_t len, int flags, con
-     return sendto(s, buf, len, flags, sa, salen);
- }
-+/* Sample ping packet '{"t":"aa", "y":"q", "q":"ping", "a":{"id":"abcdefghij0123456789"}}' */
-+/* http://www.bittorrent.org/beps/bep_0005.html */
- int send_ping(dht_handle_t *h, const struct sockaddr *sa, int salen, const unsigned char *tid, int tid_len)
- {
-     char buf[512];
--    int i = 0;//, rc;
--      struct bencode *bencode_p = NULL;
--      struct bencode *bencode_a_p = NULL;
--
--      /* Sets some default values for message, then encodes 20 characters worth of local node id */
--      /* also adds the transaction id tid, then a few final key values. */
--
--      /* Sample encoded ping 'd1:ad2:id20:Td2????#?)y1:q4:ping1:t4:pn' */
--      /*                     'd1:ad2:id20:Td2????#?)y1:q4:ping1:t4:pn' */
--      /* https://en.wikipedia.org/wiki/Bencode */
--      /* Sample ping packet '{"t":"aa", "y":"q", "q":"ping", "a":{"id":"abcdefghij0123456789"}}' */
--      /* http://www.bittorrent.org/beps/bep_0005.html */
-+    int i = 0;
-+      struct bencode *bencode_p = ben_dict();
-+      struct bencode *bencode_a_p = ben_dict();
-       
--      bencode_a_p = ben_dict(); /* Initialize empty bencode dictionary */
-+      ben_dict_set(bencode_p, ben_blob("t", 1), ben_blob(tid, tid_len));
-+      ben_dict_set(bencode_p, ben_blob("y", 1), ben_blob("q", 1));    
-+      ben_dict_set(bencode_p, ben_blob("q", 1), ben_blob("ping", 4));
-       ben_dict_set(bencode_a_p, ben_blob("id", 2), ben_blob(h->myid, 20));
--
--      bencode_p = ben_dict();
-       ben_dict_set(bencode_p, ben_blob("a", 1), bencode_a_p);
--      ben_dict_set(bencode_p, ben_blob("q", 1), ben_blob("ping", 4));
--      ben_dict_set(bencode_p, ben_blob("t", 1), ben_blob(tid, tid_len));
--      ben_dict_set(bencode_p, ben_blob("y", 1), ben_blob("q", 1));
--      /* 
--    rc = ks_snprintf(buf + i, 512 - i, "d1:ad2:id20:"); INC(i, rc, 512);
--    COPY(buf, i, h->myid, 20, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "e1:q4:ping1:t%d:", tid_len);
--    INC(i, rc, 512);
--    COPY(buf, i, tid, tid_len, 512);
--    ADD_V(buf, i, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "1:y1:qe"); INC(i, rc, 512);
--      */
-       ben_encode2(buf, 512, bencode_p);
-       ben_free(bencode_p); /* This SHOULD free the bencode_a_p as well */
-       
-       ks_log(KS_LOG_DEBUG, "Encoded PING: %s\n\n", buf);
-     return dht_send(h, buf, i, 0, sa, salen);
--
--      /*
--        // Need to fix, not just disable error handling.
-- fail:
--    errno = ENOSPC;
--    return -1; */
- }
-+/* Sample pong packet '{"t":"aa", "y":"r", "r": {"id":"mnopqrstuvwxyz123456"}}' */
-+/* http://www.bittorrent.org/beps/bep_0005.html */
- int send_pong(dht_handle_t *h, const struct sockaddr *sa, int salen, const unsigned char *tid, int tid_len)
- {
-     char buf[512];
--    int i = 0, rc;
--    rc = ks_snprintf(buf + i, 512 - i, "d1:rd2:id20:"); INC(i, rc, 512);
--    COPY(buf, i, h->myid, 20, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "e1:t%d:", tid_len); INC(i, rc, 512);
--    COPY(buf, i, tid, tid_len, 512);
--    ADD_V(buf, i, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "1:y1:re"); INC(i, rc, 512);
--    return dht_send(h, buf, i, 0, sa, salen);
-+    int i = 0;
-+      struct bencode *bencode_p = ben_dict();
-+      struct bencode *bencode_a_p = ben_dict();
-- fail:
--    errno = ENOSPC;
--    return -1;
-+      ben_dict_set(bencode_p, ben_blob("t", 1), ben_blob(tid, tid_len));
-+      ben_dict_set(bencode_p, ben_blob("y", 1), ben_blob("r", 1));
-+      ben_dict_set(bencode_a_p, ben_blob("id", 2), ben_blob(h->myid, 20));
-+      ben_dict_set(bencode_p, ben_blob("r", 1), bencode_a_p);
-+
-+      ben_encode2(buf, 512, bencode_p);
-+      ben_free(bencode_p); /* This SHOULD free the bencode_a_p as well */
-+      
-+      ks_log(KS_LOG_DEBUG, "Encoded PONG: %s\n\n", buf);
-+    return dht_send(h, buf, i, 0, sa, salen);
- }
-+/* Sample find_node packet '{"t":"aa", "y":"q", "q":"find_node", "a": {"id":"abcdefghij0123456789", "target":"mnopqrstuvwxyz123456"}}' */
-+/* Sample find_node packet w/ want '{"t":"aa", "y":"q", "q":"find_node", "a": {"id":"abcdefghij0123456789", "target":"mnopqrstuvwxyz123456", "want":"n4"}}' */
-+/* http://www.bittorrent.org/beps/bep_0005.html */
-+/* http://www.bittorrent.org/beps/bep_0032.html for want parameter */
- int send_find_node(dht_handle_t *h, const struct sockaddr *sa, int salen,
-                const unsigned char *tid, int tid_len,
-                const unsigned char *target, int want, int confirm)
- {
-     char buf[512];
--    int i = 0, rc;
--    rc = ks_snprintf(buf + i, 512 - i, "d1:ad2:id20:"); INC(i, rc, 512);
--    COPY(buf, i, h->myid, 20, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "6:target20:"); INC(i, rc, 512);
--    COPY(buf, i, target, 20, 512);
--    if (want > 0) {
--        rc = ks_snprintf(buf + i, 512 - i, "4:wantl%s%se", (want & WANT4) ? "2:n4" : "", (want & WANT6) ? "2:n6" : "");
--        INC(i, rc, 512);
--    }
--    rc = ks_snprintf(buf + i, 512 - i, "e1:q9:find_node1:t%d:", tid_len);
--    INC(i, rc, 512);
--    COPY(buf, i, tid, tid_len, 512);
--    ADD_V(buf, i, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "1:y1:qe"); INC(i, rc, 512);
--    return dht_send(h, buf, i, confirm ? MSG_CONFIRM : 0, sa, salen);
-+    int i = 0;
-+      struct bencode *bencode_p = ben_dict();
-+      struct bencode *bencode_a_p = ben_dict();
-+      int target_len = target ? strlen((const char*)target) : 0;
-- fail:
--    errno = ENOSPC;
--    return -1;
--}
-+      ben_dict_set(bencode_p, ben_blob("t", 1), ben_blob(tid, tid_len));
-+      ben_dict_set(bencode_p, ben_blob("y", 1), ben_blob("q", 1));
-+      ben_dict_set(bencode_p, ben_blob("q", 1), ben_blob("find_node", 9));
-+      ben_dict_set(bencode_a_p, ben_blob("id", 2), ben_blob(h->myid, 20));
-+      if (target) ben_dict_set(bencode_a_p, ben_blob("target", 6), ben_blob(target, target_len));
-+      if (want > 0) {
-+              char *w = NULL;
-+              if (want & WANT4) w = "n4";
-+              if (want & WANT6) w = "n6";
-+              if (w) ben_dict_set(bencode_a_p, ben_blob("want", 4), ben_blob(w, 2));
-+      }
-+      ben_dict_set(bencode_p, ben_blob("a", 1), bencode_a_p);
-+      ben_encode2(buf, 512, bencode_p);
-+      ben_free(bencode_p); /* This SHOULD free the bencode_a_p as well */
-+      
-+      ks_log(KS_LOG_DEBUG, "Encoded FIND_NODE: %s\n\n", buf);
-+    return dht_send(h, buf, i, confirm ? MSG_CONFIRM : 0, sa, salen);
-+}
-+/* sample find_node response '{"t":"aa", "y":"r", "r": {"id":"0123456789abcdefghij", "nodes": "def456..."}}'*/
-+/* http://www.bittorrent.org/beps/bep_0005.html */
- int send_nodes_peers(dht_handle_t *h, const struct sockaddr *sa, int salen,
-                  const unsigned char *tid, int tid_len,
-                  const unsigned char *nodes, int nodes_len,
-@@ -2536,30 +2524,28 @@ int send_nodes_peers(dht_handle_t *h, const struct sockaddr *sa, int salen,
-                  const unsigned char *token, int token_len)
- {
-     char buf[2048];
--    int i = 0, rc, j0, j, k, len;
-+    int i = 0;//, rc, j0, j, k, len;
-+      struct bencode *bencode_p = ben_dict();
-+      struct bencode *bencode_a_p = ben_dict();
-+      struct bencode *ben_array = ben_list();
--    rc = ks_snprintf(buf + i, 2048 - i, "d1:rd2:id20:"); INC(i, rc, 2048);
--    COPY(buf, i, h->myid, 20, 2048);
--    if (nodes_len > 0) {
--        rc = ks_snprintf(buf + i, 2048 - i, "5:nodes%d:", nodes_len);
--        INC(i, rc, 2048);
--        COPY(buf, i, nodes, nodes_len, 2048);
--    }
--    if (nodes6_len > 0) {
--         rc = ks_snprintf(buf + i, 2048 - i, "6:nodes6%d:", nodes6_len);
--         INC(i, rc, 2048);
--         COPY(buf, i, nodes6, nodes6_len, 2048);
--    }
--    if (token_len > 0) {
--        rc = ks_snprintf(buf + i, 2048 - i, "5:token%d:", token_len);
--        INC(i, rc, 2048);
--        COPY(buf, i, token, token_len, 2048);
--    }
-+      ben_dict_set(bencode_p, ben_blob("t", 1), ben_blob(tid, tid_len));
-+      ben_dict_set(bencode_p, ben_blob("y", 1), ben_blob("r", 1));
-+      ben_dict_set(bencode_a_p, ben_blob("id", 2), ben_blob(h->myid, 20));
-+      if (token_len)  ben_dict_set(bencode_a_p, ben_blob("token",  5), ben_blob(token, token_len));
-+      if (nodes_len)  ben_dict_set(bencode_a_p, ben_blob("nodes",  5), ben_blob(token, nodes_len));
-+      if (nodes6_len) ben_dict_set(bencode_a_p, ben_blob("nodes6", 6), ben_blob(token, nodes6_len));
-+      /* its an array, how do i do this??
-+
-+Response with peers = {"t":"aa", "y":"r", "r": {"id":"abcdefghij0123456789", "token":"aoeusnth", "values": ["axje.u", "idhtnm"]}}
-+      */
-+      
-+      /* TODO XXXXXX find docs and add "values" stuff into this encode
-     if (st && st->numpeers > 0) {
--        /* We treat the storage as a circular list, and serve a randomly
--           chosen slice.  In order to make sure we fit within 1024 octets,
--           we limit ourselves to 50 peers. */
-+        // We treat the storage as a circular list, and serve a randomly
-+        //   chosen slice.  In order to make sure we fit within 1024 octets,
-+        //   we limit ourselves to 50 peers.
-         len = af == AF_INET ? 4 : 16;
-         j0 = random() % st->numpeers;
-@@ -2582,19 +2568,13 @@ int send_nodes_peers(dht_handle_t *h, const struct sockaddr *sa, int salen,
-         rc = ks_snprintf(buf + i, 2048 - i, "e");
-               INC(i, rc, 2048);
-     }
--
--    rc = ks_snprintf(buf + i, 2048 - i, "e1:t%d:", tid_len);
--      INC(i, rc, 2048);
--    COPY(buf, i, tid, tid_len, 2048);
--    ADD_V(buf, i, 2048);
--    rc = ks_snprintf(buf + i, 2048 - i, "1:y1:re");
--      INC(i, rc, 2048);
--
--    return dht_send(h, buf, i, 0, sa, salen);
--
-- fail:
--    errno = ENOSPC;
--    return -1;
-+*/
-+      ben_dict_set(bencode_p, ben_blob("r", 1), bencode_a_p);
-+      ben_encode2(buf, 512, bencode_p);
-+      ben_free(bencode_p); /* This SHOULD free the bencode_a_p as well */
-+      
-+      ks_log(KS_LOG_DEBUG, "Encoded FIND_NODE: %s\n\n", buf);
-+      return dht_send(h, buf, i, 0, sa, salen);
- }
- static int insert_closest_node(unsigned char *nodes, int numnodes,
-@@ -2706,104 +2686,107 @@ int send_closest_nodes(dht_handle_t *h, const struct sockaddr *sa, int salen,
-                             af, st, token, token_len);
- }
-+/* sample get_peers request '{"t":"aa", "y":"q", "q":"get_peers", "a": {"id":"abcdefghij0123456789", "info_hash":"mnopqrstuvwxyz123456"}}'*/
-+/* sample get_peers w/ want '{"t":"aa", "y":"q", "q":"get_peers", "a": {"id":"abcdefghij0123456789", "info_hash":"mnopqrstuvwxyz123456": "want":"n4"}}'*/
-+/* http://www.bittorrent.org/beps/bep_0005.html */
-+/* http://www.bittorrent.org/beps/bep_0032.html for want parameter */
- int send_get_peers(dht_handle_t *h, const struct sockaddr *sa, int salen,
-                                  unsigned char *tid, int tid_len, unsigned char *infohash,
-                                  int want, int confirm)
- {
-     char buf[512];
--    int i = 0, rc;
--
--    rc = ks_snprintf(buf + i, 512 - i, "d1:ad2:id20:"); INC(i, rc, 512);
--    COPY(buf, i, h->myid, 20, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "9:info_hash20:"); INC(i, rc, 512);
--    COPY(buf, i, infohash, 20, 512);
--    if (want > 0) {
--        rc = ks_snprintf(buf + i, 512 - i, "4:wantl%s%se", (want & WANT4) ? "2:n4" : "", (want & WANT6) ? "2:n6" : "");
--        INC(i, rc, 512);
--    }
--    rc = ks_snprintf(buf + i, 512 - i, "e1:q9:get_peers1:t%d:", tid_len);
--    INC(i, rc, 512);
--    COPY(buf, i, tid, tid_len, 512);
--    ADD_V(buf, i, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "1:y1:qe"); INC(i, rc, 512);
--    return dht_send(h, buf, i, confirm ? MSG_CONFIRM : 0, sa, salen);
-+    int i = 0;
-+      struct bencode *bencode_p = ben_dict();
-+      struct bencode *bencode_a_p = ben_dict();
-+      int infohash_len = infohash ? strlen((const char*)infohash) : 0;
-- fail:
--    errno = ENOSPC;
--    return -1;
--}
-+      ben_dict_set(bencode_p, ben_blob("t", 1), ben_blob(tid, tid_len));
-+      ben_dict_set(bencode_p, ben_blob("y", 1), ben_blob("q", 1));
-+      ben_dict_set(bencode_p, ben_blob("q", 1), ben_blob("get_peers", 9));
-+      ben_dict_set(bencode_a_p, ben_blob("id", 2), ben_blob(h->myid, 20));
-+      if (want > 0) {
-+              char *w = NULL;
-+              if (want & WANT4) w = "n4";
-+              if (want & WANT6) w = "n6";
-+              if (w) ben_dict_set(bencode_a_p, ben_blob("want", 4), ben_blob(w, 2));
-+      }
-+      ben_dict_set(bencode_a_p, ben_blob("info_hash", 9), ben_blob(infohash, infohash_len));
-+      ben_dict_set(bencode_p, ben_blob("a", 1), bencode_a_p);
-+      ben_encode2(buf, 512, bencode_p);
-+      ben_free(bencode_p); /* This SHOULD free the bencode_a_p as well */
-+      
-+      ks_log(KS_LOG_DEBUG, "Encoded GET_PEERS: %s\n\n", buf);
-+    return dht_send(h, buf, i, confirm ? MSG_CONFIRM : 0, sa, salen);
-+}
-+/* '{"t":"aa", "y":"q", "q":"announce_peer", "a": {"id":"abcdefghij0123456789", "implied_port": 1, "info_hash":"mnopqrstuvwxyz123456", "port": 6881, "token": "aoeusnth"}}'*/
- int send_announce_peer(dht_handle_t *h, const struct sockaddr *sa, int salen,
-                                          unsigned char *tid, int tid_len,
-                                          unsigned char *infohash, unsigned short port,
-                                          unsigned char *token, int token_len, int confirm)
- {
-     char buf[512];
--    int i = 0, rc;
--
--    rc = ks_snprintf(buf + i, 512 - i, "d1:ad2:id20:"); INC(i, rc, 512);
--    COPY(buf, i, h->myid, 20, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "9:info_hash20:"); INC(i, rc, 512);
--    COPY(buf, i, infohash, 20, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "4:porti%ue5:token%d:", (unsigned)port, token_len);
--    INC(i, rc, 512);
--    COPY(buf, i, token, token_len, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "e1:q13:announce_peer1:t%d:", tid_len);
--    INC(i, rc, 512);
--    COPY(buf, i, tid, tid_len, 512);
--    ADD_V(buf, i, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "1:y1:qe"); INC(i, rc, 512);
-+    int i = 0;
-+      struct bencode *bencode_p = ben_dict();
-+      struct bencode *bencode_a_p = ben_dict();
-+      int infohash_len = infohash ? strlen((const char*)infohash) : 0;
--    return dht_send(h, buf, i, confirm ? MSG_CONFIRM : 0, sa, salen);
-+      ben_dict_set(bencode_p, ben_blob("t", 1), ben_blob(tid, tid_len));
-+      ben_dict_set(bencode_p, ben_blob("y", 1), ben_blob("q", 1));
-+      ben_dict_set(bencode_p, ben_blob("q", 1), ben_blob("announce_peer", 13));
-+      ben_dict_set(bencode_a_p, ben_blob("id", 2), ben_blob(h->myid, 20));
-+      ben_dict_set(bencode_a_p, ben_blob("info_hash", 9), ben_blob(infohash, infohash_len));
-+      ben_dict_set(bencode_a_p, ben_blob("port", 5), ben_int(port));
-+      ben_dict_set(bencode_a_p, ben_blob("token", 5), ben_blob(token, token_len));
-+      ben_dict_set(bencode_p, ben_blob("a", 1), bencode_a_p);
-- fail:
--    errno = ENOSPC;
--    return -1;
-+      ben_encode2(buf, 512, bencode_p);
-+      ben_free(bencode_p); /* This SHOULD free the bencode_a_p as well */
-+      
-+      ks_log(KS_LOG_DEBUG, "Encoded ANNOUNCE_PEERS: %s\n\n", buf);
-+    return dht_send(h, buf, i, confirm ? MSG_CONFIRM : 0, sa, salen);
- }
--
-+/* '{"t":"aa", "y":"r", "r": {"id":"mnopqrstuvwxyz123456"}}'*/
- static int send_peer_announced(dht_handle_t *h, const struct sockaddr *sa, int salen, unsigned char *tid, int tid_len)
- {
-     char buf[512];
--    int i = 0, rc;
--
--    rc = ks_snprintf(buf + i, 512 - i, "d1:rd2:id20:");
--      INC(i, rc, 512);
--    COPY(buf, i, h->myid, 20, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "e1:t%d:", tid_len);
--    INC(i, rc, 512);
--    COPY(buf, i, tid, tid_len, 512);
--    ADD_V(buf, i, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "1:y1:re");
--      INC(i, rc, 512);
--    return dht_send(h, buf, i, 0, sa, salen);
-+    int i = 0;
-+      struct bencode *bencode_p = ben_dict();
-+      struct bencode *bencode_a_p = ben_dict();
-- fail:
--    errno = ENOSPC;
--    return -1;
-+      ben_dict_set(bencode_p, ben_blob("t", 1), ben_blob(tid, tid_len));
-+      ben_dict_set(bencode_p, ben_blob("y", 1), ben_blob("r", 1));
-+      ben_dict_set(bencode_a_p, ben_blob("id", 2), ben_blob(h->myid, 20));
-+      ben_dict_set(bencode_p, ben_blob("r", 1), bencode_a_p);
-+
-+      ben_encode2(buf, 512, bencode_p);
-+      ben_free(bencode_p); /* This SHOULD free the bencode_a_p as well */
-+      
-+      ks_log(KS_LOG_DEBUG, "Encoded peer_announced: %s\n\n", buf);
-+    return dht_send(h, buf, i, 0, sa, salen);
- }
-+/* '{"t":"aa", "y":"e", "e":[201, "A Generic Error Ocurred"]}'*/
- static int send_error(dht_handle_t *h, const struct sockaddr *sa, int salen,
-                                         unsigned char *tid, int tid_len,
-                                         int code, const char *message)
- {
-     char buf[512];
--    int i = 0, rc, message_len;
--
--    message_len = strlen(message);
--    rc = ks_snprintf(buf + i, 512 - i, "d1:eli%de%d:", code, message_len);
--    INC(i, rc, 512);
--    COPY(buf, i, message, message_len, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "e1:t%d:", tid_len);
--      INC(i, rc, 512);
--    COPY(buf, i, tid, tid_len, 512);
--    ADD_V(buf, i, 512);
--    rc = ks_snprintf(buf + i, 512 - i, "1:y1:ee");
--      INC(i, rc, 512);
--    return dht_send(h, buf, i, 0, sa, salen);
-+    int i = 0;
-+      struct bencode *bencode_p = ben_dict();
-+      struct bencode *ben_array = ben_list();
-- fail:
--    errno = ENOSPC;
--    return -1;
-+      ben_dict_set(bencode_p, ben_blob("t", 1), ben_blob(tid, tid_len));
-+      ben_dict_set(bencode_p, ben_blob("y", 1), ben_blob("e", 1));
-+      ben_list_append(ben_array, ben_int(code));
-+      ben_list_append(ben_array, ben_blob(message, strlen(message)));
-+      ben_dict_set(bencode_p, ben_blob("e", 1), ben_array);
-+
-+      ben_encode2(buf, 512, bencode_p);
-+      ben_free(bencode_p);
-+      
-+      ks_log(KS_LOG_DEBUG, "Encoded error: %s\n\n", buf);
-+    return dht_send(h, buf, i, 0, sa, salen);
- }
- #undef CHECK
index 12712cadfe79241d0555d8854dc714292e628ad3..17bd30d05e8fb6541f37a0304c508f47b95e9fbc 100644 (file)
@@ -54,37 +54,7 @@ testwebsock_SOURCES = testwebsock.c tap.c
 testwebsock_CFLAGS = $(AM_CFLAGS)
 testwebsock_LDADD = $(TEST_LDADD)
 
-#check_PROGRAMS += testdht
-#testdht_SOURCES = testdht.c tap.c
-#testdht_CFLAGS = $(AM_CFLAGS)
-#testdht_LDADD = $(TEST_LDADD)
-
-#check_PROGRAMS += testdht_net
-#testdht_net_SOURCES = testdht-net.c tap.c
-#testdht_net_CFLAGS = $(AM_CFLAGS)
-#testdht_net_LDADD = $(TEST_LDADD)
-
-#check_PROGRAMS += testdht_msg
-#testdht_msg_SOURCES = testdht-msg.c tap.c
-#testdht_msg_CFLAGS = $(AM_CFLAGS)
-#testdht_msg_LDADD = $(TEST_LDADD)
-
-#check_PROGRAMS += dht_example
-#dht_example_SOURCES = dht-example.c
-#dht_example_CFLAGS = $(AM_CFLAGS)
-#dht_example_LDADD = $(abs_top_builddir)/libks.la $(openssl_LIBS) -ledit -lpthread
-
-#check_PROGRAMS += libtorrent_example
-#libtorrent_example_SOURCES = libtorrent-example.c
-#libtorrent_example_CFLAGS = $(AM_CFLAGS)
-#libtorrent_example_LDADD = $(abs_top_builddir)/libks.la $(abs_top_builddir)/test/libtorrent.so /usr/lib/x86_64-linux-gnu/libboost_system.a $(openssl_LIBS) -ledit -lpthread -ltorrent-rasterbar -lstdc++
 
 TESTS=$(check_PROGRAMS)
 
 tests: $(check_PROGRAMS)
-
-$(abs_top_builddir)/test/libtorrent.so: $(abs_top_builddir)/test/libtorrent.o
-       g++ -shared -o $(abs_top_builddir)/test/libtorrent.so $(abs_top_builddir)/test/libtorrent.o
-
-$(abs_top_builddir)/test/libtorrent.o: $(abs_top_builddir)/test/libtorrent.cpp
-       g++ -c -fPIC -o $(abs_top_builddir)/test/libtorrent.o -I$(abs_top_builddir)/test/ $(abs_top_builddir)/test/libtorrent.cpp
diff --git a/libs/libks/test/dht-example.c b/libs/libks/test/dht-example.c
deleted file mode 100644 (file)
index 323f541..0000000
+++ /dev/null
@@ -1,409 +0,0 @@
-/* This example code was written by Juliusz Chroboczek.
-   You are free to cut'n'paste from it to your heart's content. */
-
-/* For crypt */
-#define _GNU_SOURCE
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/time.h>
-#include <arpa/inet.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <sys/signal.h>
-
-#include "ks.h"
-#include "histedit.h"
-#include "sodium.h"
-
-#define MAX_BOOTSTRAP_NODES 20
-static ks_sockaddr_t bootstrap_nodes[MAX_BOOTSTRAP_NODES];
-static ks_sockaddr_t bind_nodes[MAX_BOOTSTRAP_NODES];
-static int num_bootstrap_nodes = 0;
-static int num_bind_nodes = 0;
-
-/* The call-back function is called by the DHT whenever something
-   interesting happens.  Right now, it only happens when we get a new value or
-   when a search completes, but this may be extended in future versions. */
-static void callback(void *closure, ks_dht_event_t event, const unsigned char *info_hash, const void *data, size_t data_len)
-{
-  if(event == KS_DHT_EVENT_SEARCH_DONE) {
-    printf("Search done.\n");
-  } else if(event == KS_DHT_EVENT_VALUES) {
-    const uint8_t *bits_8 = data;
-    const uint16_t *bits_16 = data;
-    
-    printf("Received %d values.\n", (int)(data_len / 6));
-    printf("Recieved %u.%u.%u.%u:%u\n", bits_8[0], bits_8[1], bits_8[2], bits_8[3], ntohs(bits_16[2]));
-  } else {
-    printf("Unhandled event %d\n", event);
-  }
-}
-
-void json_cb(struct dht_handle_s *h, const cJSON *msg, void *arg)
-{
-  char *pretty = cJSON_Print((cJSON *)msg);
-  
-  printf("Received json msg: %s\n", pretty);
-
-  free(pretty);
-}
-
-static char * prompt(EditLine *e) {
-  return "dht> ";
-}
-
-static dht_handle_t *h;
-
-
-typedef struct dht_globals_s {
-  int s;
-  int s6;
-  int port;
-  int exiting;
-} dht_globals_t;
-
-void *dht_event_thread(ks_thread_t *thread, void *data)
-{
-  dht_globals_t *globals = data;
-  
-  while(!globals->exiting) {
-         ks_dht_one_loop(h, 0);
-         ks_sleep(1000000);
-  }
-
-  return NULL;
-}
-
-int
-main(int argc, char **argv)
-{
-       dht_globals_t globals = {0};
-    int i;
-    //int have_id = 0;
-    //char *id_file = "dht-example.id";
-       int ipv4 = 0, ipv6 = 0;
-       int autobind = 0;
-    int opt;
-    EditLine *el;
-    History *myhistory;
-    int count;
-    const char *line;
-    HistEvent ev;
-    ks_status_t status;
-    static ks_thread_t *threads[1]; /* Main dht event thread */
-    ks_pool_t *pool;
-       int err = 0;
-    unsigned char alice_publickey[crypto_sign_PUBLICKEYBYTES] = {0};
-    unsigned char alice_secretkey[crypto_sign_SECRETKEYBYTES] = {0};
-
-    ks_init();
-
-    el = el_init("test", stdin, stdout, stderr);
-    el_set(el, EL_PROMPT, &prompt);
-    el_set(el, EL_EDITOR, "emacs");
-    myhistory = history_init();
-    history(myhistory, &ev, H_SETSIZE, 800);
-    el_set(el, EL_HIST, history, myhistory);
-    globals.port = 5309;
-
-
-    ks_global_set_default_logger(7);
-
-    while(1) {
-        opt = getopt(argc, argv, "46ap:b:B:");
-        if(opt < 0)
-            break;
-
-        switch(opt) {
-               case '4':
-                       ipv4 = 1;
-                       break;
-               case '6':
-                       ipv6 = 1;
-                       break;
-               case 'a':
-                       autobind = 1;
-                       break;
-               case 'p':
-                       globals.port = atoi(optarg);
-                       break;
-               case 'b':
-               case 'B': {
-                       char ip[80];
-                       int port = globals.port;
-                       char *p;
-                       ks_set_string(ip, optarg);
-
-                       if ((p = strchr(ip, '+'))) {
-                               *p++ = '\0';
-                               port = atoi(p);
-                       }
-                       if (opt == 'B') {
-                               printf("Adding bootstrap node %s:%d\n", ip, port);
-                               ks_addr_set(&bootstrap_nodes[num_bootstrap_nodes++], ip, port, 0);
-                       } else {
-                               printf("Adding binding %s:%d\n", ip, port);
-                               ks_addr_set(&bind_nodes[num_bind_nodes++], ip, port, 0);
-                       }
-               }
-                       break;
-        default:
-            goto usage;
-        }
-    }
-       
-    if(argc < 2)
-        goto usage;
-
-    i = optind;
-
-    if(globals.port <= 0 || globals.port >= 0x10000)
-        goto usage;
-
-
-       ks_dht_af_flag_t af_flags = 0;
-
-       if (ipv4) {
-               af_flags |= KS_DHT_AF_INET4;
-       }
-
-       if (ipv6) {
-               af_flags |= KS_DHT_AF_INET6;
-       }
-
-    /* Init the dht. */
-    status = ks_dht_init(&h, af_flags, NULL, globals.port);
-
-    if(status != KS_STATUS_SUCCESS) {
-        perror("dht_init");
-        exit(1);
-    }
-
-    for(i = 0; i < num_bind_nodes; i++) {
-               ks_dht_add_ip(h, bind_nodes[i].host, bind_nodes[i].port);
-       }
-
-       if (autobind) {
-               ks_dht_set_param(h, DHT_PARAM_AUTOROUTE, KS_TRUE);
-       }
-
-       ks_dht_start(h);
-
-       ks_dht_set_callback(h, callback, NULL);
-
-    ks_pool_open(&pool);
-    status = ks_thread_create_ex(&threads[0], dht_event_thread, &globals, KS_THREAD_FLAG_DETATCHED, KS_THREAD_DEFAULT_STACK, KS_PRI_NORMAL, pool);
-
-    if ( status != KS_STATUS_SUCCESS) {
-               printf("Failed to start DHT event thread\n");
-               exit(1);
-    }
-
-    /* For bootstrapping, we need an initial list of nodes.  This could be
-       hard-wired, but can also be obtained from the nodes key of a torrent
-       file, or from the PORT bittorrent message.
-
-       Dht_ping_node is the brutal way of bootstrapping -- it actually
-       sends a message to the peer.  If you're going to bootstrap from
-       a massive number of nodes (for example because you're restoring from
-       a dump) and you already know their ids, it's better to use
-       dht_insert_node.  If the ids are incorrect, the DHT will recover. */
-    for(i = 0; i < num_bootstrap_nodes; i++) {
-        dht_ping_node(h, &bootstrap_nodes[i]);
-        usleep(random() % 100000);
-    }
-
-    printf("TESTING!!!\n");
-    err = crypto_sign_keypair(alice_publickey, alice_secretkey);
-    printf("Result of generating keypair %d\n", err);
-
-    ks_dht_store_entry_json_cb_set(h, json_cb, NULL);
-       
-    while ( !globals.exiting ) {
-               line = el_gets(el, &count);
-
-               if (count > 1) {
-                       int line_len = (int)strlen(line) - 1;
-                       char *cmd_dup = strdup(line);
-                       char *argv[8] = { 0 };
-                       int argc = 0;
-
-                       history(myhistory, &ev, H_ENTER, line);
-
-                       if ( cmd_dup[line_len] == '\n' ) {
-                               cmd_dup[line_len] = '\0';
-                       }
-                       argc = ks_separate_string(cmd_dup, " ", argv, (sizeof(argv) / sizeof(argv[0])));
-
-                       if (!strncmp(line, "quit", 4)) {
-                               globals.exiting = 1;
-                       } else if (!strncmp(line, "show_bind", 9)) {
-                               const ks_sockaddr_t **bindings;
-                               ks_size_t len = 0;
-                               int i;
-
-                               ks_dht_get_bind_addrs(h, &bindings, &len);
-
-                               for (i = 0; i < len; i++) {
-                                       printf("Bind addr %s:%d\n", bindings[i]->host, bindings[i]->port);
-                               }
-
-                       } else if (!strncmp(line, "ping ", 5)) {
-                               const char *ip = line + 5;
-                               ks_sockaddr_t tmp;
-                               char *p;
-
-                               while ((p = strchr(ip, '\r')) || (p = strchr(ip, '\n'))) {
-                                       *p = '\0';
-                               }
-
-                               ks_addr_set(&tmp, ip, globals.port, 0);
-                               dht_ping_node(h, &tmp);
-                       } else if (!strncmp(line, "find_node ", 9)) {
-                               /* usage: find_node ipv[4|6] [40 character node id] [40 character target id] */
-                               ks_bool_t ipv6 = strncmp(argv[1], "ipv4", 4);
-                               (void) argc; /* Check to see if it's the right length, else print usage */
-                               ks_dht_api_find_node(h, argv[2], argv[3], ipv6);
-                       } else if (!strncmp(line, "loglevel", 8)) {
-                               ks_global_set_default_logger(atoi(line + 9));
-                       } else if (!strncmp(line, "peer_dump", 9)) {
-                               dht_dump_tables(h, stdout);
-                       } else if (!strncmp(line, "generate_identity", 17)) {
-                               /* usage: generate_identity [identity key: first_id] */
-                               /* requires an arg, checks identity hash for arg value. 
-                                  
-                                  if found, return already exists.
-                                  if not found, generate sodium public and private keys, and insert into identities hash.
-                                */
-                       } else if (!strncmp(line, "print_identity_key", 18)) {
-                               /* usage: print_identity_key [identity key] */
-                       } else if (!strncmp(line, "message_mutable", 15)) {
-                         char *input = strdup(line);
-                         char *identity_key = input + 16;
-                         char *identities[2] = { identity_key, NULL };
-                         char *message_id = NULL;
-                         char *message = NULL;
-                         cJSON *output = NULL;
-                         int idx = 17; /* this should be the start of the message_id */
-                         for ( idx = 17; idx < 100 && input[idx] != '\0'; idx++ ) {
-                           if ( input[idx] == ' ' ) {
-                             input[idx] = '\0';
-                             message_id = input + 1 + idx;
-                             break;
-                           }
-                         }
-
-                         for ( idx++; idx < 100 && input[idx] != '\0'; idx++ ) {
-                           if ( input[idx] == ' ' ) {
-                             input[idx] = '\0';
-                             message = input + 1 + idx;
-                             break;
-                           }
-                         }
-
-                         /* Hack for my testing, so that it chomps the new line. Makes debugging print nicer. */
-                         for ( idx++; input[idx] != '\0'; idx++) {
-                           if ( input[idx] == '\n' ) {
-                             input[idx] = '\0';
-                           }
-                         }
-                               /* usage: message_mutable [identity key] [message id: asdf] [your message: Hello from DHT example]*/
-                               /*
-                                 takes an identity, a message id(salt) and a message, then sends out the announcement.
-                                */
-                         output = cJSON_CreateString(message);
-                         
-                         ks_dht_send_message_mutable_cjson(h, alice_secretkey, alice_publickey,
-                                                                                               identities, message_id, 1, output, 600);
-                         free(input);
-                         cJSON_Delete(output);
-                       } else if (!strncmp(line, "message_immutable", 15)) {
-                         /* usage: message_immutable [identity key] */
-                               /*
-                                 takes an identity, and a message, then sends out the announcement.
-                                */
-                       } else if (!strncmp(line, "message_get", 11)) {
-                               /* usage: message_get [40 character sha1 digest b64 encoded]*/
-
-                               /* MUST RETURN BENCODE OBJECT */
-                       } else if (!strncmp(line, "message_get_mine", 16)) {
-                               /* usage: message_get [identity key] [message id: asdf]*/
-                               /* This looks up the message token from identity key and the message id(aka message salt) */
-                               
-                               /* MUST RETURN BENCODE OBJECT */
-                       } else if (!strncmp(line, "add_buddy", 9)) {
-                               /* usage: add_buddy [buddy key] [buddy public key] */
-
-                       } else if (!strncmp(line, "get_buddy_message", 17)) {
-                               /* usage: get_buddy_message [buddy key] [buddy message_id] */
-
-                               
-                       } else if (!strncmp(line, "search", 6)) {
-                               if ( line_len > 7 ) {
-                                       unsigned char hash[20];
-                                       memcpy(hash, line + 7, 20);
-
-                                       if(globals.s >= 0) {
-                                               dht_search(h, hash, 0, AF_INET, callback, NULL);
-                                       }
-                               } else {
-                                       printf("Your search string isn't a valid 20 character hash. You entered [%.*s] of length %d\n", line_len - 7, line + 7, line_len - 7);
-                               }
-                       } else if (!strncmp(line, "announce", 8)) {
-                               if ( line_len == 29 ) {
-                                       unsigned char hash[20];
-                                       memcpy(hash, line + 9, 20);
-
-                                       if(globals.s >= 0) {
-                                               dht_search(h, hash, globals.port, AF_INET, callback, NULL);
-                                       }
-                               } else {
-                                       printf("Your search string isn't a valid 20 character hash. You entered [%.*s]\n", line_len - 7, line + 7);
-                               }
-                       } else {
-                               printf("Unknown command entered[%.*s]\n", line_len, line);
-                       }
-
-                       free(cmd_dup);
-               }
-    }
-
-    {
-        struct sockaddr_in sin[500];
-        struct sockaddr_in6 sin6[500];
-        int num = 500, num6 = 500;
-        int i;
-        i = dht_get_nodes(h, sin, &num, sin6, &num6);
-        printf("Found %d (%d + %d) good nodes.\n", i, num, num6);
-    }
-
-
-    history_end(myhistory);
-    el_end(el);
-    dht_uninit(&h);
-    ks_shutdown();
-    return 0;
-    
- usage:
-    printf("Usage: dht-example [-a] [-4] [-6] [-p <port>] [-b <ip>[+<port>]]...\n"
-           "                   [-B <ip>[+<port>]]...\n");
-    exit(0);
-}
-
-
-/* For Emacs:
- * Local Variables:
- * mode:c
- * indent-tabs-mode:t
- * tab-width:4
- * c-basic-offset:4
- * End:
- * For VIM:
- * vim:set softtabstop=4 shiftwidth=4 tabstop=4 noet:
- */
diff --git a/libs/libks/test/libtorrent-example.c b/libs/libks/test/libtorrent-example.c
deleted file mode 100644 (file)
index f1165f4..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-/* This example code was written by Juliusz Chroboczek.
-   You are free to cut'n'paste from it to your heart's content. */
-
-/* For crypt */
-#define _GNU_SOURCE
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <sys/time.h>
-#include <arpa/inet.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netdb.h>
-#include <sys/signal.h>
-
-#include "ks.h"
-#include "histedit.h"
-#include "libtorrent.h"
-
-static char * prompt(EditLine *e) {
-  return "dht> ";
-}
-
-typedef struct dht_globals_s {
-  int exiting;
-} dht_globals_t;
-
-int
-main(int argc, char **argv)
-{
-  dht_globals_t globals = {0};
-  int opt;
-  EditLine *el;
-  History *myhistory;
-  int count;
-  const char *line;
-  HistEvent ev;
-  ks_status_t status = KS_STATUS_SUCCESS;
-  //  ks_pool_t *pool;
-  void *session = session_create(SES_LISTENPORT, 8090,
-                                SES_LISTENPORT_END, 8098,
-                                TAG_END);
-
-  session_start_dht(session);
-
-  
-  globals.exiting = 0;
-    
-  el = el_init("test", stdin, stdout, stderr);
-  el_set(el, EL_PROMPT, &prompt);
-  el_set(el, EL_EDITOR, "emacs");
-  myhistory = history_init();
-  history(myhistory, &ev, H_SETSIZE, 800);
-  el_set(el, EL_HIST, history, myhistory);
-    
-  ks_global_set_default_logger(7);
-
-  while(1) {
-    opt = getopt(argc, argv, "hb:");
-    if(opt < 0)
-      break;
-
-    switch(opt) {
-    case 'b': {
-      printf("Not yet implemented\n");
-      goto usage;
-    }
-      break;
-    default:
-      goto usage;
-    }
-  }
-
-  /*
-    ks_pool_open(&pool);
-    status = ks_thread_create_ex(&threads[0], dht_event_thread, &globals, KS_THREAD_FLAG_DETATCHED, KS_THREAD_DEFAULT_STACK, KS_PRI_NORMAL, pool);
-  */
-    
-  if ( status != KS_STATUS_SUCCESS) {
-    printf("Failed to start DHT event thread\n");
-    exit(1);
-  }
-
-  while ( !globals.exiting ) {
-    line = el_gets(el, &count);
-      
-    if (count > 1) {
-      int line_len = (int)strlen(line) - 1;
-      history(myhistory, &ev, H_ENTER, line);
-
-      if (!strncmp(line, "quit", 4)) {
-       globals.exiting = 1;
-      } else if (!strncmp(line, "loglevel", 8)) {
-       ks_global_set_default_logger(atoi(line + 9));
-      } else if (!strncmp(line, "peer_dump", 9)) {
-       printf("Not yet implemented\n");
-      } else if (!strncmp(line, "search", 6)) {
-       printf("Not yet implemented\n");
-      } else if (!strncmp(line, "announce", 8)) {
-       printf("Not yet implemented\n");
-      } else {
-       printf("Unknown command entered[%.*s]\n", line_len, line);
-      }
-    }
-  }
-
-  history_end(myhistory);
-  el_end(el);
-  session_close(session);
-  return 0;
-    
- usage:
-  printf("Usage: dht-example [-4] [-6] [-i filename] [-b address]...\n"
-        "                   port [address port]...\n");
-  exit(1);
-}
diff --git a/libs/libks/test/libtorrent.cpp b/libs/libks/test/libtorrent.cpp
deleted file mode 100644 (file)
index e03587a..0000000
+++ /dev/null
@@ -1,601 +0,0 @@
-/*
-
-Copyright (c) 2009, Arvid Norberg
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the distribution.
-    * Neither the name of the author nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-*/
-
-#include "libtorrent/session.hpp"
-#include "libtorrent/magnet_uri.hpp"
-#include "libtorrent/torrent_handle.hpp"
-#include <boost/bind.hpp>
-
-#include <libtorrent.h>
-#include <cstdarg>
-
-namespace
-{
-       std::vector<libtorrent::torrent_handle> handles;
-
-       int find_handle(libtorrent::torrent_handle h)
-       {
-               std::vector<libtorrent::torrent_handle>::const_iterator i
-                       = std::find(handles.begin(), handles.end(), h);
-               if (i == handles.end()) return -1;
-               return i - handles.begin();
-       }
-
-       libtorrent::torrent_handle get_handle(int i)
-       {
-               if (i < 0 || i >= int(handles.size())) return libtorrent::torrent_handle();
-               return handles[i];
-       }
-
-       int add_handle(libtorrent::torrent_handle const& h)
-       {
-               std::vector<libtorrent::torrent_handle>::iterator i = std::find_if(handles.begin()
-                       , handles.end(), !boost::bind(&libtorrent::torrent_handle::is_valid, _1));
-               if (i != handles.end())
-               {
-                       *i = h;
-                       return i - handles.begin();
-               }
-
-               handles.push_back(h);
-               return handles.size() - 1;
-       }
-
-       int set_int_value(void* dst, int* size, int val)
-       {
-         if ( *size < (int) sizeof(int)) return -2;
-               *((int*)dst) = val;
-               *size = (int) sizeof(int);
-               return 0;
-       }
-
-       void copy_proxy_setting(libtorrent::proxy_settings* s, proxy_setting const* ps)
-       {
-               s->hostname.assign(ps->hostname);
-               s->port = ps->port;
-               s->username.assign(ps->username);
-               s->password.assign(ps->password);
-               s->type = (libtorrent::proxy_settings::proxy_type)ps->type;
-       }
-}
-
-extern "C"
-{
-
-TORRENT_EXPORT void* session_create(int tag, ...)
-{
-       using namespace libtorrent;
-
-       va_list lp;
-       va_start(lp, tag);
-
-       fingerprint fing("LT", LIBTORRENT_VERSION_MAJOR, LIBTORRENT_VERSION_MINOR, 0, 0);
-       std::pair<int, int> listen_range(-1, -1);
-       char const* listen_interface = "0.0.0.0";
-       int flags = session::start_default_features | session::add_default_plugins;
-       int alert_mask = alert::error_notification;
-
-       while (tag != TAG_END)
-       {
-               switch (tag)
-               {
-                       case SES_FINGERPRINT:
-                       {
-                               char const* f = va_arg(lp, char const*);
-                               fing.name[0] = f[0];
-                               fing.name[1] = f[1];
-                               break;
-                       }
-                       case SES_LISTENPORT:
-                               listen_range.first = va_arg(lp, int);
-                               break;
-                       case SES_LISTENPORT_END:
-                               listen_range.second = va_arg(lp, int);
-                               break;
-                       case SES_VERSION_MAJOR:
-                               fing.major_version = va_arg(lp, int);
-                               break;
-                       case SES_VERSION_MINOR:
-                               fing.minor_version = va_arg(lp, int);
-                               break;
-                       case SES_VERSION_TINY:
-                               fing.revision_version = va_arg(lp, int);
-                               break;
-                       case SES_VERSION_TAG:
-                               fing.tag_version = va_arg(lp, int);
-                               break;
-                       case SES_FLAGS:
-                               flags = va_arg(lp, int);
-                               break;
-                       case SES_ALERT_MASK:
-                               alert_mask = va_arg(lp, int);
-                               break;
-                       case SES_LISTEN_INTERFACE:
-                               listen_interface = va_arg(lp, char const*);
-                               break;
-                       default:
-                               // skip unknown tags
-                               va_arg(lp, void*);
-                               break;
-               }
-
-               tag = va_arg(lp, int);
-       }
-
-       if (listen_range.first != -1 && (listen_range.second == -1
-               || listen_range.second < listen_range.first))
-               listen_range.second = listen_range.first;
-
-       return new (std::nothrow) session(fing, listen_range, listen_interface, flags, alert_mask);
-}
-
-TORRENT_EXPORT void session_close(void* ses)
-{
-       delete (libtorrent::session*)ses;
-}
-
-TORRENT_EXPORT void session_start_dht(void *ses)
-{
-  using namespace libtorrent;
-  session *s = (session*) ses;
-
-  s->start_dht();
-}
-
-  
-  /*
-TORRENT_EXPORT int session_add_torrent(void* ses, int tag, ...)
-{
-       using namespace libtorrent;
-
-       va_list lp;
-       va_start(lp, tag);
-       session* s = (session*)ses;
-       add_torrent_params params;
-
-       char const* torrent_data = 0;
-       int torrent_size = 0;
-
-       char const* resume_data = 0;
-       int resume_size = 0;
-
-       char const* magnet_url = 0;
-
-       error_code ec;
-
-       while (tag != TAG_END)
-       {
-               switch (tag)
-               {
-                       case TOR_FILENAME:
-                               params.ti = new (std::nothrow) torrent_info(va_arg(lp, char const*), ec);
-                               break;
-                       case TOR_TORRENT:
-                               torrent_data = va_arg(lp, char const*);
-                               break;
-                       case TOR_TORRENT_SIZE:
-                               torrent_size = va_arg(lp, int);
-                               break;
-                       case TOR_INFOHASH:
-                               params.ti = new (std::nothrow) torrent_info(sha1_hash(va_arg(lp, char const*)));
-                               break;
-                       case TOR_INFOHASH_HEX:
-                       {
-                               sha1_hash ih;
-                               from_hex(va_arg(lp, char const*), 40, (char*)&ih[0]);
-                               params.ti = new (std::nothrow) torrent_info(ih);
-                               break;
-                       }
-                       case TOR_MAGNETLINK:
-                               magnet_url = va_arg(lp, char const*);
-                               break;
-                       case TOR_TRACKER_URL:
-                               params.tracker_url = va_arg(lp, char const*);
-                               break;
-                       case TOR_RESUME_DATA:
-                               resume_data = va_arg(lp, char const*);
-                               break;
-                       case TOR_RESUME_DATA_SIZE:
-                               resume_size = va_arg(lp, int);
-                               break;
-                       case TOR_SAVE_PATH:
-                               params.save_path = va_arg(lp, char const*);
-                               break;
-                       case TOR_NAME:
-                               params.name = va_arg(lp, char const*);
-                               break;
-                       case TOR_PAUSED:
-                               params.paused = va_arg(lp, int) != 0;
-                               break;
-                       case TOR_AUTO_MANAGED:
-                               params.auto_managed = va_arg(lp, int) != 0;
-                               break;
-                       case TOR_DUPLICATE_IS_ERROR:
-                               params.duplicate_is_error = va_arg(lp, int) != 0;
-                               break;
-                       case TOR_USER_DATA:
-                               params.userdata = va_arg(lp, void*);
-                               break;
-                       case TOR_SEED_MODE:
-                               params.seed_mode = va_arg(lp, int) != 0;
-                               break;
-                       case TOR_OVERRIDE_RESUME_DATA:
-                               params.override_resume_data = va_arg(lp, int) != 0;
-                               break;
-                       case TOR_STORAGE_MODE:
-                               params.storage_mode = (libtorrent::storage_mode_t)va_arg(lp, int);
-                               break;
-                       default:
-                               // ignore unknown tags
-                               va_arg(lp, void*);
-                               break;
-               }
-
-               tag = va_arg(lp, int);
-       }
-
-       if (!params.ti && torrent_data && torrent_size)
-               params.ti = new (std::nothrow) torrent_info(torrent_data, torrent_size);
-
-       std::vector<char> rd;
-       if (resume_data && resume_size)
-       {
-               rd.assign(resume_data, resume_data + resume_size);
-               params.resume_data = &rd;
-       }
-       torrent_handle h;
-       if (!params.ti && magnet_url)
-       {
-               h = add_magnet_uri(*s, magnet_url, params, ec);
-       }
-       else
-       {
-               h = s->add_torrent(params, ec);
-       }
-
-       if (!h.is_valid())
-       {
-               return -1;
-       }
-
-       int i = find_handle(h);
-       if (i == -1) i = add_handle(h);
-
-       return i;
-}
-  */
-void session_remove_torrent(void* ses, int tor, int flags)
-{
-       using namespace libtorrent;
-       torrent_handle h = get_handle(tor);
-       if (!h.is_valid()) return;
-
-       session* s = (session*)ses;
-       s->remove_torrent(h, flags);    
-}
-
-int session_set_settings(void* ses, int tag, ...)
-{
-       using namespace libtorrent;
-
-       //      session* s = (session*)ses;
-
-       va_list lp;
-       va_start(lp, tag);
-
-       while (tag != TAG_END)
-       {
-               switch (tag)
-               {
-                 /*
-                       case SET_UPLOAD_RATE_LIMIT:
-                               s->set_upload_rate_limit(va_arg(lp, int));
-                               break;
-                       case SET_DOWNLOAD_RATE_LIMIT:
-                               s->set_download_rate_limit(va_arg(lp, int));
-                               break;
-                       case SET_LOCAL_UPLOAD_RATE_LIMIT:
-                               s->set_local_upload_rate_limit(va_arg(lp, int));
-                               break;
-                       case SET_LOCAL_DOWNLOAD_RATE_LIMIT:
-                               s->set_local_download_rate_limit(va_arg(lp, int));
-                               break;
-                       case SET_MAX_UPLOAD_SLOTS:
-                               s->set_max_uploads(va_arg(lp, int));
-                               break;
-                       case SET_MAX_CONNECTIONS:
-                               s->set_max_connections(va_arg(lp, int));
-                               break;
-                       case SET_HALF_OPEN_LIMIT:
-                               s->set_max_half_open_connections(va_arg(lp, int));
-                               break;
-                       case SET_PEER_PROXY:
-                       {
-                               libtorrent::proxy_settings ps;
-                               copy_proxy_setting(&ps, va_arg(lp, struct proxy_setting const*));
-                               s->set_peer_proxy(ps);
-                       }
-                       case SET_WEB_SEED_PROXY:
-                       {
-                               libtorrent::proxy_settings ps;
-                               copy_proxy_setting(&ps, va_arg(lp, struct proxy_setting const*));
-                               s->set_web_seed_proxy(ps);
-                       }
-                       case SET_TRACKER_PROXY:
-                       {
-                               libtorrent::proxy_settings ps;
-                               copy_proxy_setting(&ps, va_arg(lp, struct proxy_setting const*));
-                               s->set_tracker_proxy(ps);
-                       }
-#ifndef TORRENT_DISABLE_DHT
-                       case SET_DHT_PROXY:
-                       {
-                               libtorrent::proxy_settings ps;
-                               copy_proxy_setting(&ps, va_arg(lp, struct proxy_setting const*));
-                               s->set_dht_proxy(ps);
-                       }
-#endif
-                       case SET_PROXY:
-                       {
-                               libtorrent::proxy_settings ps;
-                               copy_proxy_setting(&ps, va_arg(lp, struct proxy_setting const*));
-                               s->set_peer_proxy(ps);
-                               s->set_web_seed_proxy(ps);
-                               s->set_tracker_proxy(ps);
-#ifndef TORRENT_DISABLE_DHT
-                               s->set_dht_proxy(ps);
-#endif
-                       }
-                 */
-                       default:
-                               // ignore unknown tags
-                               va_arg(lp, void*);
-                               break;
-               }
-
-               tag = va_arg(lp, int);
-       }
-       return 0;
-}
-
-int session_get_setting(void* ses, int tag, void* value, int* value_size)
-{
-       using namespace libtorrent;
-       //      session* s = (session*)ses;
-
-       switch (tag)
-       {
-         /*
-               case SET_UPLOAD_RATE_LIMIT:
-                       return set_int_value(value, value_size, s->upload_rate_limit());
-               case SET_DOWNLOAD_RATE_LIMIT:
-                       return set_int_value(value, value_size, s->download_rate_limit());
-               case SET_LOCAL_UPLOAD_RATE_LIMIT:
-                       return set_int_value(value, value_size, s->local_upload_rate_limit());
-               case SET_LOCAL_DOWNLOAD_RATE_LIMIT:
-                       return set_int_value(value, value_size, s->local_download_rate_limit());
-               case SET_MAX_UPLOAD_SLOTS:
-                       return set_int_value(value, value_size, s->max_uploads());
-               case SET_MAX_CONNECTIONS:
-                       return set_int_value(value, value_size, s->max_connections());
-               case SET_HALF_OPEN_LIMIT:
-                       return set_int_value(value, value_size, s->max_half_open_connections());
-         */
-               default:
-                       return -2;
-       }
-}
-
-int session_get_status(void* sesptr, struct session_status* s, int struct_size)
-{
-       libtorrent::session* ses = (libtorrent::session*)sesptr;
-
-       libtorrent::session_status ss = ses->status();
-       if (struct_size != sizeof(session_status)) return -1;
-
-       s->has_incoming_connections = ss.has_incoming_connections;
-
-       s->upload_rate = ss.upload_rate;
-       s->download_rate = ss.download_rate;
-       s->total_download = ss.total_download;
-       s->total_upload = ss.total_upload;
-
-       s->payload_upload_rate = ss.payload_upload_rate;
-       s->payload_download_rate = ss.payload_download_rate;
-       s->total_payload_download = ss.total_payload_download;
-       s->total_payload_upload = ss.total_payload_upload;
-
-       s->ip_overhead_upload_rate = ss.ip_overhead_upload_rate;
-       s->ip_overhead_download_rate = ss.ip_overhead_download_rate;
-       s->total_ip_overhead_download = ss.total_ip_overhead_download;
-       s->total_ip_overhead_upload = ss.total_ip_overhead_upload;
-
-       s->dht_upload_rate = ss.dht_upload_rate;
-       s->dht_download_rate = ss.dht_download_rate;
-       s->total_dht_download = ss.total_dht_download;
-       s->total_dht_upload = ss.total_dht_upload;
-
-       s->tracker_upload_rate = ss.tracker_upload_rate;
-       s->tracker_download_rate = ss.tracker_download_rate;
-       s->total_tracker_download = ss.total_tracker_download;
-       s->total_tracker_upload = ss.total_tracker_upload;
-
-       s->total_redundant_bytes = ss.total_redundant_bytes;
-       s->total_failed_bytes = ss.total_failed_bytes;
-
-       s->num_peers = ss.num_peers;
-       s->num_unchoked = ss.num_unchoked;
-       s->allowed_upload_slots = ss.allowed_upload_slots;
-
-       s->up_bandwidth_queue = ss.up_bandwidth_queue;
-       s->down_bandwidth_queue = ss.down_bandwidth_queue;
-
-       s->up_bandwidth_bytes_queue = ss.up_bandwidth_bytes_queue;
-       s->down_bandwidth_bytes_queue = ss.down_bandwidth_bytes_queue;
-
-       s->optimistic_unchoke_counter = ss.optimistic_unchoke_counter;
-       s->unchoke_counter = ss.unchoke_counter;
-
-       s->dht_nodes = ss.dht_nodes;
-       s->dht_node_cache = ss.dht_node_cache;
-       s->dht_torrents = ss.dht_torrents;
-       s->dht_global_nodes = ss.dht_global_nodes;
-       return 0;
-}
-
-int torrent_get_status(int tor, torrent_status* s, int struct_size)
-{
-       libtorrent::torrent_handle h = get_handle(tor);
-       if (!h.is_valid()) return -1;
-
-       libtorrent::torrent_status ts = h.status();
-
-       if (struct_size != sizeof(torrent_status)) return -1;
-
-       s->state = (state_t)ts.state;
-       s->paused = ts.paused;
-       s->progress = ts.progress;
-       strncpy(s->error, ts.error.c_str(), 1025);
-       s->next_announce = ts.next_announce.total_seconds();
-       s->announce_interval = ts.announce_interval.total_seconds();
-       strncpy(s->current_tracker, ts.current_tracker.c_str(), 512);
-       s->total_download = ts.total_download = ts.total_download = ts.total_download;
-       s->total_upload = ts.total_upload = ts.total_upload = ts.total_upload;
-       s->total_payload_download = ts.total_payload_download;
-       s->total_payload_upload = ts.total_payload_upload;
-       s->total_failed_bytes = ts.total_failed_bytes;
-       s->total_redundant_bytes = ts.total_redundant_bytes;
-       s->download_rate = ts.download_rate;
-       s->upload_rate = ts.upload_rate;
-       s->download_payload_rate = ts.download_payload_rate;
-       s->upload_payload_rate = ts.upload_payload_rate;
-       s->num_seeds = ts.num_seeds;
-       s->num_peers = ts.num_peers;
-       s->num_complete = ts.num_complete;
-       s->num_incomplete = ts.num_incomplete;
-       s->list_seeds = ts.list_seeds;
-       s->list_peers = ts.list_peers;
-       s->connect_candidates = ts.connect_candidates;
-       s->num_pieces = ts.num_pieces;
-       s->total_done = ts.total_done;
-       s->total_wanted_done = ts.total_wanted_done;
-       s->total_wanted = ts.total_wanted;
-       s->distributed_copies = ts.distributed_copies;
-       s->block_size = ts.block_size;
-       s->num_uploads = ts.num_uploads;
-       s->num_connections = ts.num_connections;
-       s->uploads_limit = ts.uploads_limit;
-       s->connections_limit = ts.connections_limit;
-//     s->storage_mode = (storage_mode_t)ts.storage_mode;
-       s->up_bandwidth_queue = ts.up_bandwidth_queue;
-       s->down_bandwidth_queue = ts.down_bandwidth_queue;
-       s->all_time_upload = ts.all_time_upload;
-       s->all_time_download = ts.all_time_download;
-       s->active_time = ts.active_time;
-       s->seeding_time = ts.seeding_time;
-       s->seed_rank = ts.seed_rank;
-       s->last_scrape = ts.last_scrape;
-       s->has_incoming = ts.has_incoming;
-       s->sparse_regions = ts.sparse_regions;
-       s->seed_mode = ts.seed_mode;
-       return 0;
-}
-
-int torrent_set_settings(int tor, int tag, ...)
-{
-       using namespace libtorrent;
-       torrent_handle h = get_handle(tor);
-       if (!h.is_valid()) return -1;
-
-       va_list lp;
-       va_start(lp, tag);
-
-       while (tag != TAG_END)
-       {
-               switch (tag)
-               {
-                       case SET_UPLOAD_RATE_LIMIT:
-                               h.set_upload_limit(va_arg(lp, int));
-                               break;
-                       case SET_DOWNLOAD_RATE_LIMIT:
-                               h.set_download_limit(va_arg(lp, int));
-                               break;
-                       case SET_MAX_UPLOAD_SLOTS:
-                               h.set_max_uploads(va_arg(lp, int));
-                               break;
-                       case SET_MAX_CONNECTIONS:
-                               h.set_max_connections(va_arg(lp, int));
-                               break;
-                       case SET_SEQUENTIAL_DOWNLOAD:
-                               h.set_sequential_download(va_arg(lp, int) != 0);
-                               break;
-                       case SET_SUPER_SEEDING:
-                               h.super_seeding(va_arg(lp, int) != 0);
-                               break;
-                       default:
-                               // ignore unknown tags
-                               va_arg(lp, void*);
-                               break;
-               }
-
-               tag = va_arg(lp, int);
-       }
-       return 0;
-}
-
-int torrent_get_setting(int tor, int tag, void* value, int* value_size)
-{
-       using namespace libtorrent;
-       torrent_handle h = get_handle(tor);
-       if (!h.is_valid()) return -1;
-
-       switch (tag)
-       {
-               case SET_UPLOAD_RATE_LIMIT:
-                       return set_int_value(value, value_size, h.upload_limit());
-               case SET_DOWNLOAD_RATE_LIMIT:
-                       return set_int_value(value, value_size, h.download_limit());
-               case SET_MAX_UPLOAD_SLOTS:
-                       return set_int_value(value, value_size, h.max_uploads());
-               case SET_MAX_CONNECTIONS:
-                       return set_int_value(value, value_size, h.max_connections());
-               case SET_SEQUENTIAL_DOWNLOAD:
-                       return set_int_value(value, value_size, h.is_sequential_download());
-               case SET_SUPER_SEEDING:
-                       return set_int_value(value, value_size, h.super_seeding());
-               default:
-                       return -2;
-       }
-}
-
-} // extern "C"
-
diff --git a/libs/libks/test/libtorrent.h b/libs/libks/test/libtorrent.h
deleted file mode 100644 (file)
index 57cfa0e..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
-
-Copyright (c) 2009, Arvid Norberg
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above copyright
-      notice, this list of conditions and the following disclaimer in
-      the documentation and/or other materials provided with the distribution.
-    * Neither the name of the author nor the names of its
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-
-*/
-
-#ifndef LIBTORRENT_H
-#define LIBTORRENT_H
-
-enum tags
-{
-       TAG_END = 0,
-
-       SES_FINGERPRINT, // char const*, 2 character string
-       SES_LISTENPORT, // int
-       SES_LISTENPORT_END, // int
-       SES_VERSION_MAJOR, // int
-       SES_VERSION_MINOR, // int
-       SES_VERSION_TINY, // int
-       SES_VERSION_TAG, // int
-       SES_FLAGS, // int
-       SES_ALERT_MASK, // int
-       SES_LISTEN_INTERFACE, // char const*
-
-       // === add_torrent tags ===
-
-       // identifying the torrent to add
-       TOR_FILENAME = 0x100, // char const*
-       TOR_TORRENT, // char const*, specify size of buffer with TOR_TORRENT_SIZE
-       TOR_TORRENT_SIZE, // int
-       TOR_INFOHASH, // char const*, must point to a 20 byte array
-       TOR_INFOHASH_HEX, // char const*, must point to a 40 byte string
-       TOR_MAGNETLINK, // char const*, url
-
-       TOR_TRACKER_URL, // char const*
-       TOR_RESUME_DATA, // char const*
-       TOR_RESUME_DATA_SIZE, // int
-       TOR_SAVE_PATH, // char const*
-       TOR_NAME, // char const*
-       TOR_PAUSED, // int
-       TOR_AUTO_MANAGED, // int
-       TOR_DUPLICATE_IS_ERROR, // int
-       TOR_USER_DATA, //void*
-       TOR_SEED_MODE, // int
-       TOR_OVERRIDE_RESUME_DATA, // int
-       TOR_STORAGE_MODE, // int
-
-       SET_UPLOAD_RATE_LIMIT = 0x200, // int
-       SET_DOWNLOAD_RATE_LIMIT, // int
-       SET_LOCAL_UPLOAD_RATE_LIMIT, // int
-       SET_LOCAL_DOWNLOAD_RATE_LIMIT, // int
-       SET_MAX_UPLOAD_SLOTS, // int
-       SET_MAX_CONNECTIONS, // int
-       SET_SEQUENTIAL_DOWNLOAD, // int, torrent only
-       SET_SUPER_SEEDING, // int, torrent only
-       SET_HALF_OPEN_LIMIT, // int, session only
-       SET_PEER_PROXY, // proxy_setting const*, session_only
-       SET_WEB_SEED_PROXY, // proxy_setting const*, session_only
-       SET_TRACKER_PROXY, // proxy_setting const*, session_only
-       SET_DHT_PROXY, // proxy_setting const*, session_only
-       SET_PROXY, // proxy_setting const*, session_only
-};
-
-struct proxy_setting
-{
-       char hostname[256];
-       int port;
-
-       char username[256];
-       char password[256];
-
-       int type;
-};
-
-enum proxy_type_t
-{
-       proxy_none,
-       proxy_socks4,
-       proxy_socks5,
-       proxy_socks5_pw,
-       proxy_http,
-       proxy_http_pw
-};
-
-enum storage_mode_t
-{
-       storage_mode_allocate = 0,
-       storage_mode_sparse,
-       storage_mode_compact
-};
-
-enum state_t
-{
-       queued_for_checking,
-       checking_files,
-       downloading_metadata,
-       downloading,
-       finished,
-       seeding,
-       allocating,
-       checking_resume_data
-};
-       
-struct torrent_status
-{
-       enum state_t state;
-       int paused;
-       float progress;
-       char error[1024];
-       int next_announce;
-       int announce_interval;
-       char current_tracker[512];
-       long long total_download;
-       long long total_upload;
-       long long total_payload_download;
-       long long total_payload_upload;
-       long long total_failed_bytes;
-       long long total_redundant_bytes;
-       float download_rate;
-       float upload_rate;
-       float download_payload_rate;
-       float upload_payload_rate;
-       int num_seeds;
-       int num_peers;
-       int num_complete;
-       int num_incomplete;
-       int list_seeds;
-       int list_peers;
-       int connect_candidates;
-
-       // what to do?  
-//     bitfield pieces;
-
-       int num_pieces;
-       long long total_done;
-       long long total_wanted_done;
-       long long total_wanted;
-       float distributed_copies;
-       int block_size;
-       int num_uploads;
-       int num_connections;
-       int uploads_limit;
-       int connections_limit;
-//     enum storage_mode_t storage_mode;
-       int up_bandwidth_queue;
-       int down_bandwidth_queue;
-       long long all_time_upload;
-       long long all_time_download;
-       int active_time;
-       int seeding_time;
-       int seed_rank;
-       int last_scrape;
-       int has_incoming;
-       int sparse_regions;
-       int seed_mode;
-};
-
-struct session_status
-{
-       int has_incoming_connections;
-
-       float upload_rate;
-       float download_rate;
-       long long total_download;
-       long long total_upload;
-
-       float payload_upload_rate;
-       float payload_download_rate;
-       long long total_payload_download;
-       long long total_payload_upload;
-
-       float ip_overhead_upload_rate;
-       float ip_overhead_download_rate;
-       long long total_ip_overhead_download;
-       long long total_ip_overhead_upload;
-
-       float dht_upload_rate;
-       float dht_download_rate;
-       long long total_dht_download;
-       long long total_dht_upload;
-
-       float tracker_upload_rate;
-       float tracker_download_rate;
-       long long total_tracker_download;
-       long long total_tracker_upload;
-
-       long long total_redundant_bytes;
-       long long total_failed_bytes;
-
-       int num_peers;
-       int num_unchoked;
-       int allowed_upload_slots;
-
-       int up_bandwidth_queue;
-       int down_bandwidth_queue;
-
-       int up_bandwidth_bytes_queue;
-       int down_bandwidth_bytes_queue;
-
-       int optimistic_unchoke_counter;
-       int unchoke_counter;
-
-       int dht_nodes;
-       int dht_node_cache;
-       int dht_torrents;
-       long long dht_global_nodes;
-//     std::vector<dht_lookup> active_requests;
-};
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-// the functions whose signature ends with:
-// , int first_tag, ...);
-// takes a tag list. The tag list is a series
-// of tag-value pairs. The tags are constants
-// identifying which property the value controls.
-// The type of the value varies between tags.
-// The enumeration above specifies which type
-// it expects. All tag lists must always be
-// terminated by TAG_END.
-
-// use SES_* tags in tag list
-void* session_create(int first_tag, ...);
-void session_close(void* ses);
-
-void session_start_dht(void *ses);
-  
-// use TOR_* tags in tag list
-int session_add_torrent(void* ses, int first_tag, ...);
-void session_remove_torrent(void* ses, int tor, int flags);
-
-int session_get_status(void* ses, struct session_status* s, int struct_size);
-
-// use SET_* tags in tag list
-int session_set_settings(void* ses, int first_tag, ...);
-int session_get_setting(void* ses, int tag, void* value, int* value_size);
-
-int torrent_get_status(int tor, struct torrent_status* s, int struct_size);
-
-// use SET_* tags in tag list
-int torrent_set_settings(int tor, int first_tag, ...);
-int torrent_get_setting(int tor, int tag, void* value, int* value_size);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
diff --git a/libs/libks/test/testdht-msg.c b/libs/libks/test/testdht-msg.c
deleted file mode 100644 (file)
index a49c003..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <ks.h>
-#include <tap.h>
-
-/* 
-   Test should cover all cases of DHT message construction and parsing tests
-   * init ks
-   * init a client if required
-   * TODO: list out msg construction and parsing tests
-   * Immutable messages:
-   * 1. create and validate single immutable messages, and handle error cases such as too large, etc.
-   * Mutable messages:
-   * 1. Create message error cases
-   * 2. Create initial message cases
-   * 3. Update message cases
-   * 4. 
-   * cleanup ks
- */
-
-int main() {
-
-
-  done_testing();
-}
diff --git a/libs/libks/test/testdht-net.c b/libs/libks/test/testdht-net.c
deleted file mode 100644 (file)
index 06db097..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <ks.h>
-#include <tap.h>
-
-/* 
-   Test should cover all cases of DHT networking for ipv4 and ipv6
-   * Find ip
-   * init 2 or more clients(with dedicated ports)
-   * add ip to clients
-   * TODO: list out nework specific tests. 
-   * shutdown clients
-   * cleanup ks
- */
-
-int main() {
-
-
-  done_testing();
-}
diff --git a/libs/libks/test/testdht.c b/libs/libks/test/testdht.c
deleted file mode 100644 (file)
index 9a79683..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-#include <ks.h>
-#include <tap.h>
-
-/* 
-   Test should cover end to end DHT functionality that isn't covered by a more specific test file
-   * Find ip
-   * init 2 or more clients(with dedicated ports)
-   * add ip to clients
-   * exchange peers between clients
-   * shutdown clients
-   * cleanup ks
- */
-
-int main() {
-  int err = 0;
-  char v4[48] = {0}, v6[48] = {0};
-  int mask = 0, have_v4 = 0, have_v6 = 0;
-  int A_port = 5998, B_port = 5999;
-  dht_handle_t *A_h = NULL, *B_h = NULL;
-  ks_dht_af_flag_t af_flags = 0;
-  static ks_sockaddr_t bootstrap[1];
-  
-  err = ks_init();
-  ok(!err);
-
-  err = ks_find_local_ip(v4, sizeof(v4), &mask, AF_INET, NULL);
-  ok(err == KS_STATUS_SUCCESS);
-  have_v4 = !zstr_buf(v4);
-  
-  err = ks_find_local_ip(v6, sizeof(v6), NULL, AF_INET6, NULL);
-  ok(err == KS_STATUS_SUCCESS);
-
-  have_v6 = !zstr_buf(v6);
-
-  ok(have_v4 || have_v6);
-  if (have_v4) {
-    af_flags |= KS_DHT_AF_INET4;
-  }
-  diag("Adding local bind ipv4 of (%s) %d\n", v4, have_v4);
-
-  if (have_v6) {
-    af_flags |= KS_DHT_AF_INET6;
-  }
-  diag("Adding local bind ipv6 of (%s) %d\n", v6, have_v6);
-
-  err = ks_dht_init(&A_h, af_flags, NULL, A_port);
-  ok(err == KS_STATUS_SUCCESS);
-
-  if (have_v4) {
-    err = ks_dht_add_ip(A_h, v4, A_port);
-    ok(err == KS_STATUS_SUCCESS);
-  }
-
-  if (have_v6) {
-    err = ks_dht_add_ip(A_h, v6, A_port);
-    ok(err == KS_STATUS_SUCCESS);
-  }
-
-  err = ks_dht_init(&B_h, af_flags, NULL, B_port);
-  ok(err == KS_STATUS_SUCCESS);
-
-  if (have_v4) {
-    err = ks_dht_add_ip(B_h, v4, B_port);
-    ok(err == KS_STATUS_SUCCESS);
-  }
-
-  if (have_v6) {
-    err = ks_dht_add_ip(B_h, v6, B_port);
-    ok(err == KS_STATUS_SUCCESS);
-  }
-
-  ks_dht_start(A_h);
-  ks_dht_start(B_h);
-
-  ks_addr_set(&bootstrap[0], v4, B_port, 0);
-
-  /* Have A ping B */
-  dht_ping_node(A_h, &bootstrap[0]);
-
-  /* Start test series */
-
-  /* Absent in Test and Example App */
-  /*
-     This function is called from the test app, with the intent of processing and handling network packets(buf, buflen, from).
-     Tests for this function should include successful processing of new inbound messages, as well as validation of bad inbound messages.
-     KS_DECLARE(int) dht_periodic(dht_handle_t *h, const void *buf, size_t buflen, ks_sockaddr_t *from); */
-  /*
-     This function is like the dht_ping_node, except it only adds the node, and waits for dht_periodic to decide when to ping the node.
-     Doing a node ping first confirms that we have working networking to the new remote node.
-     KS_DECLARE(int) dht_insert_node(dht_handle_t *h, const unsigned char *id, ks_sockaddr_t *sa); */
-  /*
-     Queries for node stats. Will be used for validating that a node was successfully added. Call before the ping, ping, call after, and compare.
-     KS_DECLARE(int) dht_nodes(dht_handle_t *h, int af, int *good_return, int *dubious_return, int *cached_return, int *incoming_return); */
-  /*
-     Sets(or changes?) the local DHT listening port. Would be very interesting to see what happens if this is called after nodes are pinged.
-     KS_DECLARE(void) ks_dht_set_port(dht_handle_t *h, unsigned int port); */
-
-
-  /* Present in Example App but Absent in Test */
-  /*
-     ks_dht_send_message_mutable_cjson(h, alice_secretkey, alice_publickey, NULL, message_id, 1, output, 600); */
-  /*
-     ks_separate_string(cmd_dup, " ", argv, (sizeof(argv) / sizeof(argv[0]))); */
-  /*
-     ks_dht_api_find_node(h, argv[2], argv[3], ipv6); */
-  /*
-     ks_global_set_default_logger(atoi(line + 9)); */
-  /*
-     ks_dht_set_param(h, DHT_PARAM_AUTOROUTE, KS_TRUE); */
-  /*
-     Like dht_periodic, except executes only one loop of work.
-     ks_dht_one_loop(h, 0); */
-  /*
-     Returns a list of local bindings. Most useful after the DHT_PARAM_AUTOROUTE to return which routes it bound to.
-     ks_dht_get_bind_addrs(h, &bindings, &len); */
-  /*
-     Callback for different message type actions. Called from the dht_periodic functions.
-     ks_dht_set_callback(h, callback, NULL); */
-  /*
-     Executes a search for a particular SHA hash. Pings known nodes to see if they have the hash. callback is called with results.
-     dht_search(h, hash, globals.port, AF_INET, callback, NULL); */
-  /*
-     Print the contents of the 'dht tables' to stdout. Need a version that gets info in a testable format.
-     dht_dump_tables(h, stdout); */
-  /* dht_get_nodes(h, sin, &num, sin6, &num6); */
-  /*
-     Shuts down the DHT handle, and should properly clean up.
-     dht_uninit(&h); */
-
-  /* Cleanup and shutdown */
-
-  todo("ks_dht_stop()");
-  todo("ks_dht_destroy()");
-  
-  err = ks_shutdown();
-  ok(!err);
-  
-  done_testing();
-}
diff --git a/libs/libks/test/tmp b/libs/libks/test/tmp
deleted file mode 100644 (file)
index e69de29..0000000