From 51b913eb2ff91adfe8cd5e417759a6057c5a8a21 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 13 Nov 2008 16:17:55 +0000 Subject: XBitTorrent --- btget.c | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 btget.c (limited to 'btget.c') diff --git a/btget.c b/btget.c new file mode 100644 index 0000000..03cb37f --- /dev/null +++ b/btget.c @@ -0,0 +1,114 @@ +/* $Id$ */ +/* + * Copyright (c) 2005 Dimitri Sokolyuk + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include /* close(), getopt() */ + +#include "bencode.h" +#include "context.h" +#include "meta.h" +#include "files.h" +#include "peer.h" +#include "tools.h" +#include "tracker.h" +#include "version.h" + +const char usagearg[] = "torrent"; + +int +main(int argc, char **argv) +{ + struct btmeta *mp; + struct bttracker *tp; + struct progresscb cb; + enum event ev = EV_NONE; + int ch, port = DEFPORT + 1; + + while ((ch = getopt(argc, argv, "p:skn")) != -1) + switch (ch) { + case 'p': + port = atoi(optarg); + if (port > 65535 || port < 1024) + usage(usagearg); + /* NOTREACHED */ + break; + case 's': + ev = EV_STARTED; + break; + case 'k': + ev = EV_STOPPED; + break; + case 'n': + ev = EV_NONE; + break; + case '?': + default: + usage(usagearg); + /* NOTREACHED */ + } + + argc -= optind; + argv += optind; + + if (argc != 1 || (mp = btreadmeta(*argv)) == NULL) + usage(usagearg); + + if (btmkhier(mp) == -1) + return -1; + cb.progress = btchkprogress; + cb.done = btchkdone; + btchkfiles(mp, &cb); + + tp = btinittracker(mp, port); + + /* ---8<------ */ + memcpy(tp->localid, "-XB0100-AAAAAAAAAAAA", SHA1LEN); + tp->event = ev; + + /* DEBUG: initial call */ + tp->event = EV_STARTED; + btcalltracker(tp); + btdumpplist(&tp->plist); + printf("def interval: %d\n", tp->interval); + printf("min interval: %d\n", tp->minterval); + + sleep(10); + + tp->event = EV_NONE; + btcalltracker(tp); + btdumpplist(&tp->plist); + + /* DEBUG: final call */ + tp->event = EV_STOPPED; + btcalltracker(tp); + + /* btmainloop(); */ + + btfreetracker(tp); + + btfreemeta(mp); + return 0; +} -- cgit v1.2.3