BitTorrent library
git clone git://
Log | Files | Refs | README | LICENSE

DateCommit messageAuthorFiles+-
2018-07-11 06:48Simplify state handling for peersz3bra1+70-1
2018-07-11 06:09Free a forgotten malloc()z3bra1+3-0
2018-07-09 07:04Check piece only when all blocks are receivedz3bra1+14-3
2018-07-09 07:01Request one block at a time in pwptxrq()z3bra2+41-30
2018-07-09 06:34Set correct size for blocks bitfieldsz3bra1+2-2
2018-07-09 06:31Remove download progress outputz3bra1+2-4
2018-07-09 06:30Make default bitfield size more accuratez3bra1+4-3
2018-07-09 06:30Unchoke all interrested peersz3bra1+4-0
2018-07-06 17:34Only send HAVE messages when seedingz3bra1+27-2
2018-07-06 13:29Save amount of bytes downloadedz3bra1+3-0
2018-07-06 06:22Add glch_piececount() to the APIz3bra3+17-1
2018-07-05 11:56Do not create peer in addpeer()z3bra3+8-21
2018-07-05 07:02Describe all functionsz3bra1+201-49
2018-07-05 06:15Permit requesting multiple piecesz3bra1+5-1
2018-07-05 06:14Group leeching-related actions togetherz3bra1+8-6
2018-07-05 06:14Fix off-by-one error with when passing payload to pwprxcb()z3bra1+4-4
2018-07-04 17:36Fix HAVE message formatz3bra1+4-4
2018-07-04 06:56Broadcast HAVE messages when receiving a piecez3bra1+5-1
2018-07-04 06:53Correctly set bitfield, and actually send itz3bra2+6-3
2018-07-04 06:52Improve pwpsend() to send all dataz3bra1+12-1
2018-07-04 06:52Read piece from metafile (./<HASH>) instead of filesz3bra1+9-28
2018-07-03 22:37pwptxhv(): pass piece number as longz3bra1+2-2
2018-07-03 21:39Remove ugly off++ trick for 4 bytes big endian integersz3bra1+15-35
2018-07-03 21:28Correctly define TCP functions pwprecv/pwpsendz3bra1+14-5
2018-07-03 13:37Print hexadecimal hash in torrent outputz3bra1+1-0
2018-07-03 13:37Write pieces received to a metafilez3bra1+40-6
2018-07-02 16:18Fix typos and missing macros here and therez3bra1+8-8
2018-07-02 16:17Fix initial offset when reading dataz3bra1+4-4
2018-07-02 06:53Fix issues with U32() macroz3bra1+1-1
2018-07-01 11:23Start implementing pwprxpc()z3bra1+16-0
2018-07-01 11:12torrent: Mark host/port arguments as optionalsz3bra1+1-1
2018-07-01 11:09Rename sending function with 'tx' for clarityz3bra1+17-17
2018-07-01 11:02Implement function pwphv() to send HAVE messagesz3bra1+26-0
2018-07-01 10:56Remove printf() debuging statementsz3bra1+0-3
2018-07-01 10:55Implement pwprxst, pwprxhv and pwprxbfz3bra1+19-0
2018-07-01 10:54Setup callback functions for received messagesz3bra1+70-16
2018-07-01 10:53Rearrange pwp function in message type orderz3bra1+17-17
2018-06-29 23:28Add pwprq() for requesting piecesz3bra2+65-0
2018-06-29 23:27Add handlers for simple messagesz3bra1+16-2
2018-06-29 23:26Fix bugs due to binary operator precedencez3bra1+4-4
2018-06-29 21:06Remove some more malloc()z3bra2+7-10
2018-06-29 20:59Remove struct data for struct piecez3bra2+16-19
2018-06-29 20:28Use enums for message typesz3bra1+19-6
2018-06-29 20:19Add pwpinterest() prototypez3bra1+1-0
2018-06-29 19:24Add bitfield for peersz3bra2+3-0
2018-06-29 19:03Send INTERESTED message when leechingz3bra1+22-0
2018-06-29 19:02Remove unsused variable from pwprecv()z3bra1+6-8
2018-06-29 16:20Improve torrent example code to use dynamic host:portz3bra2+90-8
2018-06-29 15:58Rename buffer variablesz3bra2+16-16
2018-06-29 05:58Only check pieces that can be readz3bra1+1-3
2018-06-29 05:58Print message ID only when we receive a messagez3bra1+2-2
2018-02-25 13:14Add function to receive messagesz3bra1+36-1
2018-02-25 12:30Send bitfield right after handshakez3bra1+31-0
2018-02-25 11:28Set bitfield on startupz3bra2+4-1
2018-02-25 11:26Add functions to alterate/query bitsz3bra1+25-0
2018-02-14 04:25Return immediately upon deleting a peerz3bra1+3-1
2018-02-14 04:21Factorize transmitting/receiving messagesz3bra1+31-15
2018-02-14 03:40Initialize peer numbers in netloopz3bra1+1-1
2018-02-11 02:28Read pieces from file and verify their checksumz3bra2+82-5
2018-02-10 12:54Retrieve piece len, number and sha1 from torrent filez3bra2+10-0
2018-02-10 12:51Add two more statesz3bra1+6-4
2018-02-10 12:51Factorize handshake checks functionsz3bra1+5-3
2018-02-10 11:35Use a structure to handle peer's socket pollingz3bra1+34-21
2017-11-06 11:47Rename tcpconnect() to netconn()z3bra1+36-34
2018-02-09 21:44Finer state changez3bra1+5-4
2017-11-04 20:11netloop() to handle peer connectionsz3bra3+59-1
2017-11-04 19:22Establish connection to peer immediatelyz3bra1+10-8
2017-11-03 16:48Make pwphs* functions staticz3bra1+6-6
2017-11-03 16:48pwphsck() verify handshakez3bra1+24-2
2017-11-03 16:28pwphsrecv(): receive handshake from peerz3bra2+16-1
2017-11-03 15:33pwphs(): send handshake to peerz3bra1+16-0
2017-11-03 14:59Add functions to manage peersz3bra2+123-1
2017-10-23 12:10Add function to save file listz3bra3+54-0
2017-10-23 12:10Use in torrentsize()z3bra1+3-4
2017-10-22 08:40Add commentsz3bra1+3-0
2017-10-22 08:40Save torrent sizez3bra2+3-2
2017-10-22 08:28Remove useless factorization from glch_loadtorrent()z3bra1+9-36
2017-10-22 08:21New function to check torrent entegrityz3bra2+57-4
2017-10-22 06:56Have bekstr() return a bencoding structurez3bra3+15-14
2017-10-20 06:49Get rid of loadinfohash by saving the 'info' key dataz3bra2+5-15
2017-10-19 15:05Load infohash in torrent structurez3bra2+16-17
2017-10-19 14:33Simplify interger search for bencoded dataz3bra3+22-9
2017-10-19 14:24Simplify infohash() checksum calculusz3bra1+1-3
2017-10-19 12:44tohex(): use unsigned valuesz3bra1+2-2
2017-10-19 12:29Remove ability to read filesz3bra3+59-52
2017-10-19 06:25Get rid of unsigned char typez3bra5+12-13
2017-10-18 22:13Function to retrieve torrent sizez3bra1+29-0
2017-10-18 21:56Helper to retrieve infohash from metadataz3bra3+36-31
2017-10-18 10:32Add possibility to load info dictionary from memoryz3bra2+15-0
2017-10-18 06:47Factorize glch_loadtorrent() into smaller functionsz3bra2+58-10
2017-10-18 06:31Store infohash and fix up some bencoding functionsz3bra3+18-6
2017-10-17 20:01Add quote, to prove seriousnessz3bra1+2-1
2017-10-17 17:27Initial commitz3bra13+846-0