Commit Graph

2887 Commits

Author SHA1 Message Date
Charles Kerr 8e7d08fc83 (trunk libT) remove unnecessary calls to tr_msgInit(). Suggested by BentMyWookie. 2009-11-27 15:32:11 +00:00
Charles Kerr c7f061cafc (trunk libT) make tr_msgLoggingIsActive() an inlined function. suggested by BentMyWookie 2009-11-27 15:25:14 +00:00
Charles Kerr 864ae61a70 (trunk libT) tweak the debugging message for the atom manager 2009-11-27 14:27:44 +00:00
Charles Kerr fc0a8b7c93 (trunk) #2614: "incorrect memory usage when not using IPv6" -- accepted dht.c + tr-dht.c patches 2009-11-27 14:18:32 +00:00
Charles Kerr 47c6ec5efa (trunk libT) #2551: "when uploading to peers, prefetch local data from disk" -- fix peer-msgs.c NULL pointer dereference introduced in r9514 for this ticket. Reported by Waldorf 2009-11-27 03:21:21 +00:00
Charles Kerr d7d5bb6db7 (trunk libT) #2610 "avoid unnecessary calls to time(NULL)" -- fix new assertion error reported by John Clay and tstevens 2009-11-27 02:24:48 +00:00
Charles Kerr e1c6b792aa (trunk libT) #2610 "avoid unnecessary calls to time(NULL)" 2009-11-26 18:47:08 +00:00
Charles Kerr d096b39f4b (trunk libT) #2430 "peer atom pool grows too large" -- tweak the default atom shelf lives based on discussion in the ticket's comments section 2009-11-26 18:38:37 +00:00
Charles Kerr cebcc3b6ef (trunk libT) #2096 "magnet links" -- add a callback for clients to know when a magnet torrent's metainfo is finished downloading. 2009-11-26 17:58:44 +00:00
Charles Kerr 931afc7d2a (trunk libT) fix variable name oops 2009-11-26 16:53:45 +00:00
Charles Kerr 909d2183be (trunk libT) fix size_t-to-int compiler warning 2009-11-26 06:16:08 +00:00
Charles Kerr 1101f6710e (trunk libT) #2430 "Peer atom pool grows too large" -- add an atom expiration system along the lines of the suggestions in this ticket's comments. jch and KyleK, let me know if you think anything in this commit needs improvement. 2009-11-26 05:13:58 +00:00
Charles Kerr cf69b11031 (trunk libT) #2595: "file too large error?" -- this can generate an EFBIG warning sparse preallocation is on and the peer makes an invalid request. At worst this kind of oddball case should generate a debug message notice, not a torrent error. Reported by Waldorf. 2009-11-25 19:26:30 +00:00
Charles Kerr 04011d212b (trunk libT) #2110: "allow adding torrents with no trackers" -- fix crash in tr_torrentSetAnnounceList() when the new number of trackers is 0. Reported by Rolcol. 2009-11-25 18:57:54 +00:00
Charles Kerr f585379bed (trunk libT) silence implicit size_t-to-int compiler warning 2009-11-25 17:21:11 +00:00
Charles Kerr 197cf649bf (trunk) more magnet work. fix a couple of bugs reported by rolcol: (1) crash with incomplete dir + magnet links; (2) dialog focus issue in the gtk client 2009-11-25 08:22:57 +00:00
Charles Kerr 4df666bb22 (trunk libT) #2110: "allow adding torrent files with no trackers" -- tr_torrentParse() shouldn't fail just because there aren't any announce URLs in the metadata 2009-11-25 05:13:58 +00:00
Charles Kerr 5e51618f83 (trunk libT) fix the resume files' "percent done" bug that was introduced yesterday with the magnet link commit 2009-11-25 05:10:27 +00:00
Mitchell Livingston 358160f7ae tr_cpPercentComplete() considers cases where size is 0 2009-11-25 05:01:51 +00:00
Charles Kerr 018e4b1330 (trunk libT) fix minor trunk-only memory leak of the tr_session::incompleteDir string 2009-11-25 04:44:12 +00:00
Charles Kerr 3799fa2ec7 (trunk libT) more work on magnet links. 2009-11-25 04:12:55 +00:00
Charles Kerr 78a2d66e15 (trunk libT) fix magnet code memory leak 2009-11-24 19:45:36 +00:00
Charles Kerr 034023f148 (trunk libT) fix another edge case for magnet links 2009-11-24 19:08:13 +00:00
Charles Kerr c0fa9c5e9d (trunk libT) fix bitset crash. add bitset.h to the automake file. 2009-11-24 18:22:57 +00:00
Charles Kerr c102f199c3 (trunk libT) don't allow duplicate torrents to be added via magnet links 2009-11-24 17:31:20 +00:00
Charles Kerr 3610c5ea62 (trunk) more magnet fixes 2009-11-24 17:10:40 +00:00
Charles Kerr d98666e740 (trunk libT) simple fix from jch 2009-11-24 15:55:21 +00:00
Charles Kerr d5ae900e4e (trunk) #2096 "magnet links": in libT, cleanup. in GTK+ client, add different status text in the main window for magnet torrents: "downloading .torrent data" 2009-11-24 15:51:16 +00:00
Charles Kerr 8ea0aa2845 (trunk libT) oops 2009-11-24 03:37:54 +00:00
Charles Kerr f69e335291 (trunk) #2096: Magnet, BEP #9 support 2009-11-24 02:16:31 +00:00
Charles Kerr 1cbbcf9fa1 (trunk libT) jch's patches 0001 through 0004 for ticket #2576, IPv6 support for DHT (BEP #32) 2009-11-24 01:59:51 +00:00
Charles Kerr 4322837189 (trunk) remove dead code 2009-11-23 21:57:10 +00:00
Charles Kerr 94a48c4c81 (trunk libT) a very minor commit. remove trailing spaces from lines and other stuff like that 2009-11-22 03:57:36 +00:00
Mitchell Livingston be85dc0fac a couple of more swarm speed removals 2009-11-22 01:12:44 +00:00
Mitchell Livingston 2b492cdb6e #2592 remove swarm speed from libtransmission 2009-11-22 01:03:36 +00:00
Charles Kerr ec08e333a2 (trunk libT) fix a stupid trunk-only bug that messed up which peer requests we responded to. maybe this has something to do with the slower speeds Rolcol's seeing? 2009-11-22 00:52:11 +00:00
Mitchell Livingston 9dc679ab58 Display the proper seeder/leecher/download count for backup trackers, instead of all zeros. 2009-11-21 03:13:27 +00:00
Charles Kerr 22f7a64aa2 (trunk libT) #2575: PEX is not meant to do forwarding 2009-11-20 07:47:31 +00:00
Charles Kerr 9383a6abfd (trunk libT) #2096: add code magnet URL parser and unit tests 2009-11-20 04:38:19 +00:00
Charles Kerr 4b563b7bde (trunk libT) #2589: similar to r9529, just removing more redundant calls to time(NULL) 2009-11-19 20:31:34 +00:00
Charles Kerr 2b71014888 (trunk libT) #2589: unnecessary calls to time() cause high CPU load 2009-11-19 03:00:20 +00:00
Mitchell Livingston 446b10071d clean up bitspirit a bit more 2009-11-16 23:29:26 +00:00
Mitchell Livingston e0b9d93ea4 add yet another BitSpirit peer id 2009-11-16 23:14:47 +00:00
Charles Kerr 06004319d7 (trunk) #2222: revert r8967, as foreshadowed in http://trac.transmissionbt.com/ticket/2222#comment:20 2009-11-14 14:43:31 +00:00
Charles Kerr 1fbcab8880 (trunk libT) make tr_findTorrentFromHash() a public API 2009-11-13 16:41:00 +00:00
Charles Kerr a2c4c0381d (trunk libT) reduce the time we wait for a handshake to complete from 60 seconds to 30. 2009-11-12 05:30:04 +00:00
Charles Kerr cf66227f0d (trunk libT) #2573: Don't send BT_PORT messages over IPv6 2009-11-12 01:59:53 +00:00
Charles Kerr c086da3656 (trunk libT) silence a gcc warning 2009-11-11 01:03:06 +00:00
Charles Kerr 6ad33534e7 (trunk libT) tweak high/normal/low priority peer bandwidth allocation 2009-11-10 19:35:06 +00:00
Charles Kerr 1f0fdba2e8 (trunk libT) #2551: when uploading to peers, prefetch local data from disk 2009-11-10 17:26:04 +00:00
Charles Kerr 44df1d5548 (trunk libT) #2112: provide "ipv6=" parameter to trackers 2009-11-10 17:03:23 +00:00
Charles Kerr 03e9189333 (trunk libT) #2572: don't send empty dictionaries when PEXing 2009-11-10 16:32:14 +00:00
Mitchell Livingston 185728c66c remove unused variable 2009-11-09 13:29:02 +00:00
Charles Kerr 6f54cb01e6 (trunk libT) #2552 "torrent state doesn't change automatically anymore" new version of r9482 that doesn't have the problems pointed out in #2557 2009-11-09 06:36:47 +00:00
Charles Kerr 225384fcc5 (trunk libT) #2502: announce own IPv6 address to peers 2009-11-09 05:45:16 +00:00
Mitchell Livingston 48227fdfe1 eliminate setting an unnecessary null character 2009-11-09 05:08:59 +00:00
Charles Kerr 3759c98d76 (trunk libT) #2551 "better buffer cache management": apply jch's prefetch-base.patch 2009-11-08 23:43:38 +00:00
Charles Kerr b906c125ac (trunk libT) #2548: T's request queue can send out too many duplicate requests 2009-11-08 23:20:00 +00:00
Charles Kerr bccaf64e55 (trunk libT) #2558: "build failure in r9484" 2009-11-06 12:53:05 +00:00
Charles Kerr acc0ded449 (trunk libT) undo #2552's commit r9482 because it causes new problems. #2552 will need a different fix instead. 2009-11-05 15:41:54 +00:00
Charles Kerr 45e84d9ac6 (trunk libT) #2552: Torrent state doesn't change automatically anymore 2009-11-05 01:31:35 +00:00
Mitchell Livingston 288a6d143a fix BitLet peer id 2009-11-04 13:16:53 +00:00
Charles Kerr 197ccfff98 (trunk libT) #2554: JSON_int_t won't use "long long int" unless STDC_VERSION is defined 2009-11-04 03:41:59 +00:00
Mitchell Livingston dd5fa2e6b8 more typo fixes 2009-11-04 02:45:58 +00:00
Mitchell Livingston 77d7a53181 fix typo 2009-11-02 01:40:26 +00:00
Mitchell Livingston aac02231c4 4.3 not 4.2 2009-11-02 01:10:04 +00:00
Mitchell Livingston a43b73aad0 only mark a function as hot when compiled with GCC >= 4.3 2009-11-02 01:09:11 +00:00
Charles Kerr 4d817b0701 (trunk libT) undo r9465 + r9466, which was the experimental new request manager. It still still needs some tinkering before it's ready for the nightlies...(trunk libT) undo r9465 + r9466, which was the experimental new request manager. It still still needs some tinkering before it's ready for the nightlies...(trunk libT) undo r9465 + r9466, which was the experimental new request manager. It still still needs some tinkering before it's ready for the nightlies...(trunk libT) undo r9465 + r9466, which was the experimental new request manager. It still still needs some tinkering before it's ready for the nightlies...(trunk libT) undo r9465 + r9466, which was the experimental new request manager. It still still needs some tinkering before it's ready for the nightlies...(trunk libT) undo r9465 + r9466, which was the experimental new request manager. It still still needs some tinkering before it's ready for the nightlies...(trunk libT) undo r9465 + r9466, which was the experimental new request manager. It still still needs some tinkering before it's ready for the nightlies...(trunk libT) undo r9465 + r9466, which was the experimental new request manager. It still still needs some tinkering before it's ready for the nightlies...(trunk libT) undo r9465 + r9466, which was the experimental new request manager. It still still needs some tinkering before it's ready for the nightlies... 2009-11-02 00:17:30 +00:00
Charles Kerr 296411e093 (trunk libT) turn off a debugging message in the terminal 2009-11-01 03:56:10 +00:00
Charles Kerr 0a4d8602e0 (trunk libT) #2548: T's request queue can send out too many duplicate requests 2009-11-01 02:10:47 +00:00
Charles Kerr 37dda955a1 (trunk libT) use __attribute__((nonnull)) where appropriate. remove two unused functions tr_int2ptr(), tr_ptr2int() 2009-11-01 01:35:06 +00:00
Charles Kerr 060bd2f722 (trunk libT) #2547: fix tr_lowerBound() 2009-10-31 22:16:06 +00:00
Charles Kerr 3a75050be4 (trunk libT) undo all the test commits for #2533 from r9445 through r9451. The problem appears to be an llvm issue, reported upstream @ apple dev center bug #7353773 2009-10-31 00:54:03 +00:00
Charles Kerr 7113ae2502 (trunk libT) BANG 2009-10-30 22:03:32 +00:00
Charles Kerr 9ae5ce0bf8 (trunk libT) tear out another line of code. subtle, this isn't. this is like figuring out which neighbor is stealing your newspaper in the morning by secretly shooting a different neighbor each morning until the paper stops disappearing. 2009-10-30 21:51:59 +00:00
Charles Kerr 66eac308ef (trunk libT) still banging along at #2533 2009-10-30 21:41:41 +00:00
Charles Kerr 632f98c8fd throwing darts in the dark. this smells like a compiler bug. 2009-10-30 17:29:51 +00:00
Charles Kerr 8bdaedc723 (trunk libT) lather, rinse, repeat 2009-10-30 17:17:53 +00:00
Charles Kerr 586deb9d12 (trunk libT) Adding term debug messages to help track down #2533 w/m1b and *acrocivious 2009-10-30 16:46:33 +00:00
Charles Kerr a7361372c3 Adding term debug messages to help track down #2533 w/m1b 2009-10-30 16:24:58 +00:00
Charles Kerr 08e936704c (trunk libT) fix signed/unsigned comparison warnings on amd64 2009-10-30 14:53:17 +00:00
Charles Kerr a34d742e36 (trunk libT) OS X fix for tr_torrentDeleteLocalData() -- .DS_Store gave it trouble 2009-10-30 04:23:51 +00:00
Charles Kerr f5b97d43c9 (trunk libT) portability improvements to tr_moveFile() 2009-10-30 03:53:41 +00:00
Charles Kerr ea072953c5 (trunk libT) one-liner fix for #2544 (launchpad 458735): crash in port forwarding if evtimer gets deleted 2009-10-30 03:20:53 +00:00
Charles Kerr d60fa654cb (trunk libT) fix regression introduced by #2539 that caused single-file torrents to not be deleted even if the user requested it 2009-10-30 02:58:30 +00:00
Charles Kerr 35d8a00912 (trunk libT) another hammer-the-network-less patch like r9414 2009-10-29 18:11:10 +00:00
Charles Kerr c61f8987de (trunk libT) #2538 startup takes too long 2009-10-29 17:25:03 +00:00
Charles Kerr b5042148e8 (trunk libT) #2539: "incomplete folder" feature may lead to deleted files 2009-10-29 17:00:22 +00:00
Charles Kerr 3680896a19 (trunk libT) #2508 atom->port never updated 2009-10-29 16:10:03 +00:00
Charles Kerr c9b071015f (trunk libT) #2530: Announce attempt to invalid tracker occurs too often 2009-10-28 04:53:39 +00:00
Charles Kerr 4b804e32ed (trunk libT) another tweak to tr_torrentSetLocation() 2009-10-28 04:50:37 +00:00
Mitchell Livingston 693897ce4c BitTorrent Embedded -> SDK 2009-10-28 03:48:54 +00:00
Mitchell Livingston c0d68a06c9 add "BitTorrent Embedded" to client list 2009-10-28 03:31:02 +00:00
Charles Kerr 22e3f1175a (trunk libT) #2531: when the user moves a torrent from one location to another, we don't need to reverify if the files are just rename()d 2009-10-27 23:00:34 +00:00
Charles Kerr 087f75e1ce (trunk libT) #2518: overzealously alarmist re unresponsive trackers 2009-10-27 21:03:13 +00:00
Charles Kerr bcce43021f (trunk libT) fix #2534: if port forwarding is disabled, tr_sessionClose() closes a random file descriptor 2009-10-27 20:29:02 +00:00
Charles Kerr 858e691381 (trunk libT) add a wrapper function, tr_netCloseSocket(), around EVUTIL_CLOSESOCKET() so that not all of our code has to #include evutil 2009-10-27 20:27:27 +00:00
Charles Kerr 7a4f22ba12 (trunk libT) use part of hexum's patch from <http://forum.transmissionbt.com/viewtopic.php?p=41572#p41572>. The part added sorts peers by their overall speed when deciding which ones to disconnect from first, and which to request from first. 2009-10-27 20:06:55 +00:00
Charles Kerr 2acc006807 (trunk libT) There seems to be a lot of talk about T hosing routers, preventing other network traffic, etc. As an experiment let's try reducing the number of new connections we allow per second and see if/how that affects performance. 2009-10-27 16:08:38 +00:00
Mitchell Livingston 130c9af1d1 on second thought, the other UI's might want this value sooner or later, and it's cheaper to calculate it in the stat function 2009-10-25 18:49:20 +00:00
Mitchell Livingston a5e0b6e5b2 since the Mac UI is the only one to use it, move percentRatio calculation into the Mac code 2009-10-25 18:45:35 +00:00
Mitchell Livingston 9254de1a36 smooth out the upload eta the same way as the download eta 2009-10-25 02:42:57 +00:00
Mitchell Livingston 47e19c4410 when calculating the "smoothed" eta, 1. only factor in previous speeds when those speeds were recent (ie. if we just resumed from pause, discard the previous speed) and 2. factor in if the speed was 0 as well 2009-10-25 02:36:03 +00:00
Charles Kerr 55c59fa478 (trunk) fix r9380 #2412 timing issue 2009-10-23 05:48:56 +00:00
Charles Kerr 37aaf66d4e (trunk) #2527: daemon should log messages to syslog 2009-10-23 05:00:16 +00:00
Charles Kerr c85ee09fef (trunk) trunk's just been too stable lately. #2119: reload settings.json on SIGHUP 2009-10-23 03:41:36 +00:00
Charles Kerr 00197cc461 (trunk libT) undo today's earlier commit r9381 for #2508 -- looks like I introduced a bug into the patch. 2009-10-22 19:08:45 +00:00
Charles Kerr 73222ce7aa (trunk libT) revert r9345, because all our .torrent and .resume files' hex letters are in lowercase 2009-10-22 18:48:26 +00:00
Charles Kerr bb541fc8d6 (trunk libT) #2508: atom->port never updated 2009-10-22 15:05:56 +00:00
Charles Kerr 9affe9ef59 (trunk libT) #2412: tracker query should use bind address 2009-10-22 05:15:34 +00:00
Charles Kerr baa860e6ce (trunk libT) #2518: r9334 overzealously alarmist wrt unresponsive trackers 2009-10-22 01:28:39 +00:00
Charles Kerr d9e4ddab1f (trunk libT) #2510: port messages not sent for outgoing peer connections 2009-10-22 01:03:17 +00:00
Mitchell Livingston 236bdc594f #2524 torrent peer limit not saved right away 2009-10-21 23:32:02 +00:00
Charles Kerr c59ae60488 libT doesn't need to create the Incomplete directory until it's needed 2009-10-21 19:33:37 +00:00
Charles Kerr adfb6f70a1 (trunk libT) show sha1's hex letters in uppercase, as suggested by waldorf 2009-10-21 16:24:58 +00:00
Charles Kerr 95989a0b21 (trunk libT) add callback notification when a torrent has been moved via RPC 2009-10-21 14:02:02 +00:00
Charles Kerr 0c53f3fa62 (trunk libT) add a couple of hooks for the mac client to use when migrating from its earlier move-on-complete code 2009-10-21 05:03:10 +00:00
Charles Kerr 8d1d91499a (trunk libT) #2520: tor->isRunning is not always saved to .resume file 2009-10-21 02:45:49 +00:00
Charles Kerr eef6177f0a (trunk libT) #1483: fix bug introduced in r9328 2009-10-20 20:19:41 +00:00
Charles Kerr 0df58b9ab4 (trunk libT) change the new public API a little bit -- clearer, but a little wordier 2009-10-20 04:43:51 +00:00
Charles Kerr 7b5dcdf6d1 (trunk libT) semi-paranoid safeguard: when searching for a torrent's file, look for finished versions (normal filename) before unfinished ones (with the .part suffix). In the unlikely event of a bug where both exist, it's better for Transmission to use the finished one... 2009-10-20 04:15:10 +00:00
Charles Kerr 27b9f6e27d (trunk libT) make the ".part" suffix an optional feature as per BMW's request. Clean up the code a little. 2009-10-20 03:14:44 +00:00
Charles Kerr 5a96ee9fc4 (trunk libT) make tr_torrentFindFile() a public API 2009-10-19 13:55:42 +00:00
Charles Kerr 6af5b7691e (trunk libT) make tr_torrentFileCompleted() safe for older torrents that were incomplete before the ".part" feature was added 2009-10-19 13:15:46 +00:00
Charles Kerr c35beb3843 (trunk) #1483: move completed torrents to a user-specified directory 2009-10-19 05:25:50 +00:00
Charles Kerr 05c77cc975 (trunk) #1483: move completed torrents to a user-specified directory + #629: different file extension for incomplete files 2009-10-19 05:05:00 +00:00
Charles Kerr d6acde35d3 (trunk libT) #2360: ratio-limit becomes a strange value on uClibc 2009-10-14 13:22:42 +00:00
Charles Kerr 2e3a3e60aa (trunk libT) #2498: DHT broken 2009-10-12 23:16:51 +00:00
Charles Kerr 3da08652ba (trunk libT) #2494: Adding a tracker changes announce status from time to "queued." 2009-10-12 06:08:28 +00:00
Mitchell Livingston 2af26e1d7c #2488 when sorting by tracker, first use the tracker that comes first alphabetically 2009-10-11 13:42:10 +00:00
Charles Kerr fde3abaa1e (trunk libT) fix scrape status string error reporte by bmw 2009-10-11 04:39:24 +00:00
Charles Kerr 504eaa6410 (trunk, libT) #2425: New torrents are verified after pause. 2009-10-11 03:10:17 +00:00
Mitchell Livingston 4290927563 retain previous announce/scrape info when a tracker becomes a backup 2009-10-10 20:46:24 +00:00
Mitchell Livingston 2730f9ac9c finish #2463 2009-10-10 20:25:05 +00:00
Charles Kerr b7677f7059 (trunk libT) #2463 if at first you don't succeed... 2009-10-10 20:14:26 +00:00
Charles Kerr fe2d851e5b (trunk libT) #2489: stricter checking of fringe cases in tr_torrentSetAnnounceList() 2009-10-10 19:39:43 +00:00
Charles Kerr 2a22e1782f (trunk libT) #2489: tr_torrentSetAnnounceList() should check for invalid and duplicate announce URLs 2009-10-10 19:16:21 +00:00
Charles Kerr 0fd817b757 (trunk libT) more assertions to help find the cause of #2480 2009-10-10 17:37:34 +00:00
Charles Kerr 61042404ad (trunk) replace tr_tracker_stat's "isActive" field with the more descriptive "isBackup" 2009-10-10 00:17:00 +00:00
Charles Kerr f607c7591a (trunk) #2463: 'Mac Client shows huge "next announce in" timer' 2009-10-09 21:30:34 +00:00
Charles Kerr f92fd55a80 (trunk libT) add a couple more debugging assertions into the nightlies to try & smoke out the handshake/peer-io crashes 2009-10-09 20:06:22 +00:00
Charles Kerr 5b19021ab1 (trunk libT) #2393: Transmission deletes all files when moving to the same physical directory 2009-10-07 03:49:55 +00:00
Charles Kerr 90d612f9a9 (trunk libT) remove randOffset from announcer; the new announce queue handles load balancing 2009-10-03 14:08:05 +00:00
Charles Kerr aad2a886be fix oops 2009-10-03 13:17:18 +00:00
Charles Kerr 412f0b40a2 (trunk libT) fix a crash reported by John Clay and silence a gcc warning 2009-10-03 13:15:32 +00:00
Charles Kerr 21bd104bda (trunk libT) #2471: added/removed trackers aren't applied until restart 2009-10-02 04:54:02 +00:00
Charles Kerr b9a4f418ed (trunk, libT) filter out unsupported announce addresses 2009-10-02 02:03:30 +00:00
Charles Kerr 5819ffc2d8 (trunk, libT) #2464: Mac Client shows incorrect announce/scrape results for backup trackers 2009-09-30 20:49:52 +00:00
Charles Kerr d08ab9e510 (trunk libT) #2429: add some more assertions to help smoke out this bug 2009-09-28 18:22:57 +00:00
Mitchell Livingston 79b5c3e596 show N/A for peer counts when there hasn't been a scrape/announce yet 2009-09-28 15:16:23 +00:00