diff options
author | Koen Kooi <koen@openembedded.org> | 2005-06-30 08:19:37 +0000 |
---|---|---|
committer | OpenEmbedded Project <openembedded-devel@lists.openembedded.org> | 2005-06-30 08:19:37 +0000 |
commit | c8e5702127e507e82e6f68a4b8c546803accea9d (patch) | |
tree | 00583491f40ecc640f2b28452af995e3a63a09d7 /packages/ctorrent | |
parent | 87ec8ca4d2e2eb4d1c1e1e1a6b46a395d56805b9 (diff) |
import clean BK tree at cset 1.3670
Diffstat (limited to 'packages/ctorrent')
-rw-r--r-- | packages/ctorrent/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/ctorrent/ctorrent.inc | 11 | ||||
-rw-r--r-- | packages/ctorrent/files/.mtn2git_empty | 0 | ||||
-rw-r--r-- | packages/ctorrent/files/align.patch | 189 | ||||
-rw-r--r-- | packages/ctorrent/files/crash.patch | 24 | ||||
-rw-r--r-- | packages/ctorrent/files/fmt.patch | 42 | ||||
-rw-r--r-- | packages/ctorrent/files/nogetwd.patch | 34 | ||||
-rw-r--r-- | packages/ctorrent/files/stall.patch | 27 | ||||
-rw-r--r-- | packages/ctorrent/files/tracker.patch | 175 |
9 files changed, 502 insertions, 0 deletions
diff --git a/packages/ctorrent/.mtn2git_empty b/packages/ctorrent/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ctorrent/.mtn2git_empty diff --git a/packages/ctorrent/ctorrent.inc b/packages/ctorrent/ctorrent.inc index e69de29bb2..67f270c0ba 100644 --- a/packages/ctorrent/ctorrent.inc +++ b/packages/ctorrent/ctorrent.inc @@ -0,0 +1,11 @@ +DESCRIPTION = "CTorrent is a console BitTorrent client written in the C \ +programming language." +DEPENDS = "openssl" +LICENSE = "GPL" +SECTION = "network" +MAINTAINER = "Chris Larson <kergoth@handhelds.org>" + +SRC_URI = "${SOURCEFORGE_MIRROR}/ctorrent/ctorrent-${PV}.tar.bz2" +S = "${WORKDIR}/ctorrent-${PV}" + +inherit autotools diff --git a/packages/ctorrent/files/.mtn2git_empty b/packages/ctorrent/files/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/ctorrent/files/.mtn2git_empty diff --git a/packages/ctorrent/files/align.patch b/packages/ctorrent/files/align.patch index e69de29bb2..71dd7058cb 100644 --- a/packages/ctorrent/files/align.patch +++ b/packages/ctorrent/files/align.patch @@ -0,0 +1,189 @@ +diff -ur ctorrent-1.3.4/btstream.cpp new/btstream.cpp +--- ctorrent-1.3.4/btstream.cpp 2004-09-09 00:10:51.000000000 +0100 ++++ new/btstream.cpp 2005-01-25 01:25:31.000000000 +0000 +@@ -1,5 +1,6 @@ + #include <arpa/inet.h> + #include "btstream.h" ++#include "peer.h" + #include "msgencode.h" + #include "btconfig.h" + +@@ -11,7 +12,7 @@ + ssize_t btStream::Send_State(unsigned char state) + { + char msg[H_BASE_LEN + 4]; +- *(size_t*)msg = htonl(H_BASE_LEN); ++ set_nl(msg, H_BASE_LEN); + msg[4] = (char)state; + return out_buffer.PutFlush(sock,msg,H_BASE_LEN + 4); + } +@@ -19,12 +20,9 @@ + ssize_t btStream::Send_Have(size_t idx) + { + char msg[H_HAVE_LEN + 4]; +- size_t *p = (size_t*)msg; +- +- *p = htonl(H_HAVE_LEN); ++ set_nl(msg, H_HAVE_LEN); + msg[4] = (char)M_HAVE; +- p = (size_t*)(msg + 5); +- *p = htonl(idx); ++ set_nl(msg + 5, idx); + + return out_buffer.PutFlush(sock,msg,H_HAVE_LEN + 4); + } +@@ -43,14 +41,12 @@ + ssize_t btStream::Send_Cancel(size_t idx,size_t off,size_t len) + { + char msg[H_CANCEL_LEN + 4]; +- size_t *p = (size_t*)msg; + +- *p = htonl(H_CANCEL_LEN); ++ set_nl(msg, H_CANCEL_LEN); + msg[4] = M_CANCEL; +- p = (size_t*)(msg + 5); +- *p = htonl(idx); p++; +- *p = htonl(off); p++; +- *p = htonl(len); ++ set_nl(msg + 5, idx); ++ set_nl(msg + 9, off); ++ set_nl(msg + 13, len); + return out_buffer.Put(sock,msg,H_CANCEL_LEN + 4); + } + +@@ -72,14 +68,12 @@ + ssize_t btStream::Send_Request(size_t idx, size_t off,size_t len) + { + char msg[H_REQUEST_LEN + 4]; +- size_t *p = (size_t*) msg; + +- *p = htonl(H_REQUEST_LEN); ++ set_nl(msg, H_REQUEST_LEN); + msg[4] = (char)M_REQUEST; +- p = (size_t*)(msg + 5); +- *p = htonl(idx); p++; +- *p = htonl(off); p++; +- *p = htonl(len); ++ set_nl(msg + 5, idx); ++ set_nl(msg + 9, off); ++ set_nl(msg + 13, len); + return out_buffer.Put(sock,msg,H_REQUEST_LEN + 4); + } + +@@ -94,7 +88,7 @@ + // if message arrived. + size_t r; + if( 4 <= in_buffer.Count() ){ +- r = ntohl(*(size_t*)in_buffer.BasePointer()); ++ r = get_nl(in_buffer.BasePointer()); + if( (cfg_max_slice_size + H_PIECE_LEN + 4) < r) return -1; //message too long + if( (r + 4) <= in_buffer.Count() ) return 1; + } +diff -ur ctorrent-1.3.4/peer.cpp new/peer.cpp +--- ctorrent-1.3.4/peer.cpp 2004-09-09 00:10:51.000000000 +0100 ++++ new/peer.cpp 2005-01-25 01:23:51.000000000 +0000 +@@ -3,11 +3,32 @@ + #include <stdlib.h> + #include <string.h> + ++#include "btstream.h" + #include "./btcontent.h" + #include "./msgencode.h" + #include "./peerlist.h" + #include "./btconfig.h" + ++size_t get_nl(char *sfrom) ++{ ++ unsigned char *from = (unsigned char *)sfrom; ++ size_t t; ++ t = (*from++) << 24; ++ t |= (*from++) << 16; ++ t |= (*from++) << 8; ++ t |= *from; ++ return t; ++} ++ ++void set_nl(char *sto, size_t from) ++{ ++ unsigned char *to = (unsigned char *)sto; ++ *to++ = (from >> 24) & 0xff; ++ *to++ = (from >> 16) & 0xff; ++ *to++ = (from >> 8) & 0xff; ++ *to = from & 0xff; ++} ++ + btBasic Self; + + void btBasic::SetIp(struct sockaddr_in addr) +@@ -152,7 +173,8 @@ + + char *msgbuf = stream.in_buffer.BasePointer(); + +- r = ntohl(*(size_t*) msgbuf); ++ r = get_nl(msgbuf); ++ + + if( 0 == r ){ + time(&m_last_timestamp); +@@ -193,7 +215,7 @@ + case M_HAVE: + if(H_HAVE_LEN != r){return -1;} + +- idx = ntohl(*(size_t*) (msgbuf + 5)); ++ idx = get_nl(msgbuf + 5); + + if( idx >= BTCONTENT.GetNPieces() || bitfield.IsSet(idx)) return -1; + +@@ -208,12 +230,12 @@ + case M_REQUEST: + if(H_REQUEST_LEN != r || !m_state.remote_interested){ return -1; } + +- idx = ntohl(*(size_t*)(msgbuf + 5)); ++ idx = get_nl(msgbuf + 5); + + if( !BTCONTENT.pBF->IsSet(idx) ) return -1; + +- off = ntohl(*(size_t*)(msgbuf + 9)); +- len = ntohl(*(size_t*)(msgbuf + 13)); ++ off = get_nl(msgbuf + 9); ++ len = get_nl(msgbuf + 13); + + if( !reponse_q.IsValidRequest(idx, off, len) ) return -1; + +@@ -235,9 +257,9 @@ + case M_CANCEL: + if(r != H_CANCEL_LEN || !m_state.remote_interested) return -1; + +- idx = ntohl(*(size_t*)(msgbuf + 5)); +- off = ntohl(*(size_t*)(msgbuf + 9)); +- len = ntohl(*(size_t*)(msgbuf + 13)); ++ idx = get_nl(msgbuf + 5); ++ off = get_nl(msgbuf + 9); ++ len = get_nl(msgbuf + 13); + if( reponse_q.Remove(idx,off,len) < 0 ){ + m_err_count++; + return 0; +@@ -312,8 +334,8 @@ + size_t idx,off,len; + char *msgbuf = stream.in_buffer.BasePointer(); + +- idx = ntohl(*(size_t*) (msgbuf + 5)); +- off = ntohl(*(size_t*) (msgbuf + 9)); ++ idx = get_nl(msgbuf + 5); ++ off = get_nl(msgbuf + 9); + len = mlen - 9; + + if( request_q.Remove(idx,off,len) < 0 ){ +diff -ur ctorrent-1.3.4/peer.h new/peer.h +--- ctorrent-1.3.4/peer.h 2004-09-09 00:10:51.000000000 +0100 ++++ new/peer.h 2005-01-25 01:23:01.000000000 +0000 +@@ -34,6 +34,9 @@ + unsigned char reserved:4; /* unused */ + }BTSTATUS; + ++size_t get_nl(char *from); ++void set_nl(char *to, size_t from); ++ + class btBasic + { + private: diff --git a/packages/ctorrent/files/crash.patch b/packages/ctorrent/files/crash.patch index e69de29bb2..70ef72e6cd 100644 --- a/packages/ctorrent/files/crash.patch +++ b/packages/ctorrent/files/crash.patch @@ -0,0 +1,24 @@ +diff -ur ctorrent/btcontent.cpp ctorrent.new/btcontent.cpp +--- ctorrent/btcontent.cpp 2004-09-09 00:10:51.000000000 +0100 ++++ ctorrent.new/btcontent.cpp 2005-02-03 01:32:24.000000000 +0000 +@@ -226,6 +226,7 @@ + if( m_btfiles.BuildFromMI(b, flen, saveas) < 0) ERR_RETURN(); + + delete []b; ++ b = (char *)0; + PrintOut(); + + if( arg_flg_exam_only ) return 0; +diff -ur ctorrent/iplist.cpp ctorrent.new/iplist.cpp +--- ctorrent/iplist.cpp 2004-09-09 00:10:51.000000000 +0100 ++++ ctorrent.new/iplist.cpp 2005-02-08 13:02:45.000000000 +0000 +@@ -8,8 +8,8 @@ + IPLIST *node = ipl_head; + for(; ipl_head;){ + node = ipl_head; +- delete ipl_head; + ipl_head = node->next; ++ delete node; + } + count = 0; + } diff --git a/packages/ctorrent/files/fmt.patch b/packages/ctorrent/files/fmt.patch index e69de29bb2..2c4a7440a7 100644 --- a/packages/ctorrent/files/fmt.patch +++ b/packages/ctorrent/files/fmt.patch @@ -0,0 +1,42 @@ +diff -ur new.x86/httpencode.h new/httpencode.h +--- new.x86/httpencode.h 2004-09-09 00:10:51.000000000 +0100 ++++ new/httpencode.h 2005-02-01 18:13:59.936139832 +0000 +@@ -2,8 +2,8 @@ + #define HTTPENCODE_H + + #define REQ_URL_P1_FMT "GET %s?info_hash=%s&peer_id=%s&port=%d" +-#define REQ_URL_P2_FMT "%s&uploaded=%d&downloaded=%d&left=%d&event=%s&compact=1 HTTP/1.0" +-#define REQ_URL_P3_FMT "%s&uploaded=%d&downloaded=%d&left=%d&compact=1 HTTP/1.0" ++#define REQ_URL_P2_FMT "%s&uploaded=%llu&downloaded=%llu&left=%llu&event=%s&compact=1 HTTP/1.0" ++#define REQ_URL_P3_FMT "%s&uploaded=%llu&downloaded=%llu&left=%llu&compact=1 HTTP/1.0" + + char* Http_url_encode(char *s,char *b,size_t n); + int Http_url_analyse(char *url,char *host,int *port,char *path); +diff -ur new.x86/tracker.cpp new/tracker.cpp +--- new.x86/tracker.cpp 2005-02-01 17:34:43.588359144 +0000 ++++ new/tracker.cpp 2005-02-01 18:14:58.632216672 +0000 +@@ -360,18 +345,18 @@ + if(event){ + if(MAXPATHLEN < snprintf(REQ_BUFFER,MAXPATHLEN,REQ_URL_P2_FMT, + m_path, +- (size_t)Self.TotalUL(), +- (size_t)Self.TotalDL(), +- (size_t)BTCONTENT.GetLeftBytes(), ++ Self.TotalUL(), ++ Self.TotalDL(), ++ BTCONTENT.GetLeftBytes(), + event)){ + return -1; + } + }else{ + if(MAXPATHLEN < snprintf(REQ_BUFFER,MAXPATHLEN,REQ_URL_P3_FMT, + m_path, +- (size_t)Self.TotalUL(), +- (size_t)Self.TotalDL(), +- (size_t)BTCONTENT.GetLeftBytes() ++ Self.TotalUL(), ++ Self.TotalDL(), ++ BTCONTENT.GetLeftBytes() + )){ + return -1; + } diff --git a/packages/ctorrent/files/nogetwd.patch b/packages/ctorrent/files/nogetwd.patch index e69de29bb2..d150521cca 100644 --- a/packages/ctorrent/files/nogetwd.patch +++ b/packages/ctorrent/files/nogetwd.patch @@ -0,0 +1,34 @@ +Index: ctorrent-1.3.4/btfiles.cpp +=================================================================== +--- ctorrent-1.3.4.orig/btfiles.cpp 2004-09-08 18:10:51.000000000 -0500 ++++ ctorrent-1.3.4/btfiles.cpp 2005-02-10 17:27:55.000000000 -0600 +@@ -169,7 +169,7 @@ + DIR *dp; + BTFILE *pbf; + +- if( !getwd(full_cur) ) return -1; ++ if( !getcwd(full_cur, MAXPATHLEN) ) return -1; + + if( cur_path ){ + strcpy(fn, full_cur); +@@ -293,7 +293,7 @@ + m_btfhead = pbf; + }else if( S_IFDIR & sb.st_mode ){ + char wd[MAXPATHLEN]; +- if( !getwd(wd) ) return -1; ++ if( !getcwd(wd, MAXPATHLEN) ) return -1; + m_directory = new char[strlen(pathname) + 1]; + #ifndef WINDOWS + if( !m_directory ) return -1; +Index: ctorrent-1.3.4/configure.ac +=================================================================== +--- ctorrent-1.3.4.orig/configure.ac 2004-09-08 18:10:51.000000000 -0500 ++++ ctorrent-1.3.4/configure.ac 2005-02-10 17:28:03.000000000 -0600 +@@ -32,6 +32,6 @@ + AC_FUNC_MEMCMP + AC_TYPE_SIGNAL + AC_FUNC_STAT +-AC_CHECK_FUNCS([ftruncate gethostbyname gettimeofday getwd inet_ntoa memchr memmove memset mkdir select socket strchr strerror strncasecmp strstr strtol strnstr]) ++AC_CHECK_FUNCS([ftruncate gethostbyname gettimeofday getcwd inet_ntoa memchr memmove memset mkdir select socket strchr strerror strncasecmp strstr strtol strnstr]) + + AC_OUTPUT(Makefile) diff --git a/packages/ctorrent/files/stall.patch b/packages/ctorrent/files/stall.patch index e69de29bb2..f81f000921 100644 --- a/packages/ctorrent/files/stall.patch +++ b/packages/ctorrent/files/stall.patch @@ -0,0 +1,27 @@ +diff --exclude '*Po' -ur ctorrent/peer.cpp ctorrent.new/peer.cpp +--- ctorrent/peer.cpp 2005-02-10 18:27:44.980091472 +0000 ++++ ctorrent.new/peer.cpp 2005-02-03 17:55:01.000000000 +0000 +@@ -252,7 +252,8 @@ + if( (r - 1) != bitfield.NBytes() || !bitfield.IsEmpty()) return -1; + bitfield.SetReferBuffer(msgbuf + 5); + if(bitfield.IsFull() && BTCONTENT.pBF->IsFull()) return -2; +- return 0; ++ ++ return RequestCheck(); + + case M_CANCEL: + if(r != H_CANCEL_LEN || !m_state.remote_interested) return -1; +diff --exclude '*Po' -ur ctorrent/peerlist.cpp ctorrent.new/peerlist.cpp +--- ctorrent/peerlist.cpp 2004-09-09 00:10:51.000000000 +0100 ++++ ctorrent.new/peerlist.cpp 2005-02-02 00:23:04.000000000 +0000 +@@ -495,7 +496,9 @@ + if(peer->GetStatus() == P_HANDSHAKE){ + if( peer->HandShake() < 0 ) peer->CloseConnection(); + }else{ +- if( peer->RecvModule() < 0 ) peer->CloseConnection(); ++ if(peer->GetStatus() == P_SUCCESS) { ++ if( peer->RecvModule() < 0 ) peer->CloseConnection(); ++ } + } + }else if(PEER_IS_SUCCESS(peer) && FD_ISSET(sk,wfdp)){ + p->click++; diff --git a/packages/ctorrent/files/tracker.patch b/packages/ctorrent/files/tracker.patch index e69de29bb2..4d9a0d4973 100644 --- a/packages/ctorrent/files/tracker.patch +++ b/packages/ctorrent/files/tracker.patch @@ -0,0 +1,175 @@ +diff -ur ctorrent-1.3.4/ctorrent.cpp new/ctorrent.cpp +--- ctorrent-1.3.4/ctorrent.cpp 2005-01-26 00:40:07.747876016 +0000 ++++ new/ctorrent.cpp 2005-01-25 01:34:16.000000000 +0000 +@@ -87,9 +87,13 @@ + Tracker.Initial(); + + signal(SIGPIPE,SIG_IGN); +- signal(SIGINT,sigint_catch); ++ signal(SIGINT,sig_catch); ++ signal(SIGTERM,sig_catch); + Downloader(); + } ++ if( cfg_cache_size ) BTCONTENT.FlushCache(); ++ if( arg_bitfield_file ) BTCONTENT.pBF->WriteToFile(arg_bitfield_file); ++ WORLD.CloseAll(); + + exit(0); + } +diff -ur ctorrent-1.3.4/downloader.cpp new/downloader.cpp +--- ctorrent-1.3.4/downloader.cpp 2005-01-26 00:40:07.748875864 +0000 ++++ new/downloader.cpp 2005-01-24 19:29:18.000000000 +0000 +@@ -30,9 +30,9 @@ + fd_set rfd; + fd_set wfd; + +- for(;;){ ++ do{ + time(&now); +- if( BTCONTENT.SeedTimeout(&now) ) break; ++ if( BTCONTENT.SeedTimeout(&now) ) Tracker.SetStoped(); + + FD_ZERO(&rfd); FD_ZERO(&wfd); + maxfd = Tracker.IntervalCheck(&now,&rfd, &wfd); +@@ -48,5 +48,5 @@ + if(T_FREE != Tracker.GetStatus()) Tracker.SocketReady(&rfd,&wfd,&nfds); + if( nfds ) WORLD.AnyPeerReady(&rfd,&wfd,&nfds); + } +- }/* end for(;;) */ ++ } while(Tracker.GetStatus() != T_FINISHED); + } +diff -ur ctorrent-1.3.4/sigint.cpp new/sigint.cpp +--- ctorrent-1.3.4/sigint.cpp 2005-01-26 00:40:07.749875712 +0000 ++++ new/sigint.cpp 2005-01-26 00:39:48.175851416 +0000 +@@ -4,17 +4,27 @@ + #include <signal.h> + + #include "btcontent.h" ++#include "tracker.h" + #include "peerlist.h" + #include "btconfig.h" ++#include "sigint.h" + +-void sigint_catch(int sig_no) ++void sig_catch(int sig_no) + { +- if(SIGINT == sig_no){ ++ if(SIGINT == sig_no || SIGTERM == sig_no){ ++ Tracker.SetStoped(); ++ signal(sig_no,sig_catch2); ++ } ++} ++ ++static void sig_catch2(int sig_no) ++{ ++ if(SIGINT == sig_no || SIGTERM == sig_no){ + if( cfg_cache_size ) BTCONTENT.FlushCache(); + if( arg_bitfield_file ) BTCONTENT.pBF->WriteToFile(arg_bitfield_file); + WORLD.CloseAll(); +- signal(SIGINT,SIG_DFL); +- raise(SIGINT); ++ signal(sig_no,SIG_DFL); ++ raise(sig_no); + } + } + +diff -ur ctorrent-1.3.4/sigint.h new/sigint.h +--- ctorrent-1.3.4/sigint.h 2005-01-26 00:40:07.749875712 +0000 ++++ new/sigint.h 2005-01-25 01:30:11.000000000 +0000 +@@ -2,7 +2,8 @@ + #define SIGINT_H + + #ifndef WINDOWS +-void sigint_catch(int sig_no); ++void sig_catch(int sig_no); ++static void sig_catch2(int sig_no); + #endif + + #endif +diff -ur ctorrent-1.3.4/tracker.cpp new/tracker.cpp +--- ctorrent-1.3.4/tracker.cpp 2005-01-26 00:40:07.751875408 +0000 ++++ new/tracker.cpp 2005-01-26 00:38:52.828265528 +0000 +@@ -31,7 +31,7 @@ + m_sock = INVALID_SOCKET; + m_port = 80; + m_status = T_FREE; +- m_f_started = m_f_stoped = m_f_pause = 0; ++ m_f_started = m_f_stoped = m_f_pause = m_f_completed = 0; + m_interval = 15; + + m_connect_refuse_click = 0; +@@ -54,7 +54,8 @@ + + m_reponse_buffer.Reset(); + time(&m_last_timestamp); +- m_status = T_FREE; ++ if (m_f_stoped) m_status = T_FINISHED; ++ else m_status = T_FREE; + } + + int btTracker:: _IPsin(char *h, int p, struct sockaddr_in *psin) +@@ -329,14 +332,15 @@ + // fprintf(stdout,"Old Set Self:"); + // fprintf(stdout,"%s\n", inet_ntoa(Self.m_sin.sin_addr)); + +- if( m_f_stoped ) /* stopped */ +- event = str_event[1]; +- else if( BTCONTENT.pBF->IsFull()) /* download complete */ +- event = str_event[2]; +- else if( m_f_started ) /* interval */ +- event = (char*) 0; +- else ++ if( m_f_stoped ) ++ event = str_event[1]; /* stopped */ ++ else if( m_f_started == 0 ) + event = str_event[0]; /* started */ ++ else if( BTCONTENT.pBF->IsFull() && !m_f_completed){ ++ event = str_event[2]; /* download complete */ ++ m_f_completed = 1; /* only send download complete once */ ++ } else ++ event = (char*) 0; /* interval */ + + if(event){ + if(MAXPATHLEN < snprintf(REQ_BUFFER,MAXPATHLEN,REQ_URL_P2_FMT, +@@ -380,8 +390,7 @@ + { + /* tracker communication */ + if( T_FREE == m_status ){ +- if((*pnow - m_last_timestamp >= m_interval) && +- (cfg_min_peers > WORLD.TotalPeers())){ ++ if(*pnow - m_last_timestamp >= m_interval){ + + if(Connect() < 0){ Reset(15); return -1; } + +diff -ur ctorrent-1.3.4/tracker.h new/tracker.h +--- ctorrent-1.3.4/tracker.h 2005-01-26 00:40:07.752875256 +0000 ++++ new/tracker.h 2005-01-26 00:38:21.003103688 +0000 +@@ -21,6 +21,7 @@ + #define T_FREE 0 + #define T_CONNECTING 1 + #define T_READY 2 ++#define T_FINISHED 3 + + class btTracker + { +@@ -34,9 +35,10 @@ + unsigned char m_status:2; + unsigned char m_f_started:1; + unsigned char m_f_stoped:1; ++ unsigned char m_f_completed:1; + + unsigned char m_f_pause:1; +- unsigned char m_f_reserved:3; ++ unsigned char m_f_reserved:2; + + + time_t m_interval; // 与Tracker通信的时间间隔 +@@ -66,6 +68,8 @@ + void SetPause() { m_f_pause = 1; } + void ClearPause() { m_f_pause = 0; } + ++ void SetStoped() { Reset(15); m_f_stoped = 1;} ++ + int Connect(); + int SendRequest(); + int CheckReponse(); |