Commit Graph

1839 Commits

Author SHA1 Message Date
Arvid Norberg 0ec6753028 fix build 2008-07-01 22:44:17 +00:00
Andrew Resch 94cbac20cd Do not count downloads as seeds in the queue system. 2008-07-01 21:07:18 +00:00
Arvid Norberg b354e7e0d9 fixed bug in extension loop 2008-07-01 20:22:25 +00:00
Arvid Norberg 40d7e2ce75 moved load_file into torrent_info.cpp to make it available on windows too. Fixed the exception free path in torrent_info 2008-07-01 11:00:00 +00:00
Arvid Norberg a71170e601 switched over pex parsing to use lazy_bdecode 2008-07-01 09:02:03 +00:00
Arvid Norberg 10f5418ce7 switched extension handshake parsing over to use lazy_bdecode for improved performance 2008-07-01 08:04:12 +00:00
Arvid Norberg 9c84908bb9 switched resume data parsing over to use lazy_bdecode. Improves memory allocation performance, especially noticable when heap allocations are expensive. Makes it more practical to run with malloc debug. Changed resume data interface to take a vector as opposed to a parsed structure 2008-06-30 23:14:31 +00:00
Arvid Norberg 0e1d2ede70 fix invariant-check bug in peer_connection 2008-06-30 07:58:50 +00:00
Arvid Norberg d396ab7b17 added pause and resume to the session. Fixes #349 2008-06-29 19:08:30 +00:00
Arvid Norberg 8f1abd9dbe fix bug in previous check-in 2008-06-29 18:03:38 +00:00
Arvid Norberg 2ac5c13e6f introduced a stricter timeout on piece requests and snubbing. exposed some more data about this through the peer_info. Fixes #40 2008-06-29 09:50:42 +00:00
Arvid Norberg ae9f1e0465 fixed typo 2008-06-29 06:01:20 +00:00
Arvid Norberg d1b2cd558e moved peer time out logic to second tick 2008-06-29 05:35:48 +00:00
Arvid Norberg d132dd45e3 removed exceptions from pe_crypto and improved error handling 2008-06-28 10:10:05 +00:00
Arvid Norberg ae1af66724 fixed typo. Fixes #355 2008-06-27 09:44:14 +00:00
Arvid Norberg ce99813b48 fix binary file mode in torrent_info. Fixes #354 2008-06-27 09:41:08 +00:00
cg25 ff3e80c42f Removed svn:executable property from {c,h}pp files in branches/RC_0_13 and
trunk.
2008-06-25 14:15:21 +00:00
Arvid Norberg 148640f1ac fix natpmp stall at shutdown 2008-06-24 13:52:14 +00:00
Arvid Norberg ca0f17ee95 won't save resume data for torrents without a complete state (checking or queued for checking torrents) 2008-06-24 12:48:28 +00:00
Arvid Norberg 84221e05f8 checking torrents fix when aborting session 2008-06-24 12:17:42 +00:00
Arvid Norberg 4d380c57d7 made bdecode not throw 2008-06-23 22:00:27 +00:00
Arvid Norberg 92f13aea68 start torrents sooner after they complete checking 2008-06-23 18:56:55 +00:00
Arvid Norberg a38d97583e removed old comment 2008-06-23 18:56:02 +00:00
Arvid Norberg 87660b96c5 renamed announce_piece to piece_passed and moved it to piece_finished and piece_failed 2008-06-23 18:54:58 +00:00
Arvid Norberg 9447693202 storage fastresume fix 2008-06-23 18:31:52 +00:00
Arvid Norberg 964e8b93d0 added option to deliberately corrupt data from certain peers, to test the case when hash fails occurs 2008-06-23 15:37:24 +00:00
Arvid Norberg c210b11b80 better fix for failing pieces 2008-06-23 14:45:01 +00:00
Arvid Norberg 665d508bc3 piece picker fix 2008-06-23 13:02:41 +00:00
cg25 71c4f6f9b6 * improved --with-asio configure option behaviour;
* using -version-info flag instead of -revision one for the sake of correct
  interface versioning;
* renaming library to libtorrent-rasterbar.so to avoind conflicting with other
  libraries.
2008-06-23 00:09:12 +00:00
Arvid Norberg 811d0a6250 storage fast resume check fix 2008-06-22 23:41:03 +00:00
cg25 aeb2dd8c71 Fix mistypo in src/piece_picker.cpp from previous commit. 2008-06-22 23:13:27 +00:00
Andrew Resch 402da3c77c Make active_limit == -1 mean unlimited 2008-06-22 22:49:18 +00:00
Arvid Norberg f7e1d1c1fd piece picker fix 2008-06-22 22:00:44 +00:00
Arvid Norberg e4269ddcce fix smart ban assert when closing a torrent with a failing piece 2008-06-22 20:30:43 +00:00
Arvid Norberg 6db1b54304 simplified policy and optimized case when a piece fails hash check 2008-06-22 20:28:03 +00:00
Arvid Norberg a60b6f9e96 fixed bug in set_queue_position. Fixes #353 2008-06-21 15:51:03 +00:00
Arvid Norberg 0f0ea269bc added an active torrent limit 2008-06-21 12:31:28 +00:00
Arvid Norberg d0e579826c added an option to not count inactive torrents against the limits for auto managed torrents 2008-06-21 09:15:29 +00:00
Arvid Norberg b183b2e593 made it possible to export the upnp state and insert it into a different upnp instance 2008-06-20 16:14:10 +00:00
Arvid Norberg d2bde64e71 makes sure a torrent doesn't have too many pieces than can be handled. Fixes #61 2008-06-19 11:28:34 +00:00
Arvid Norberg 18809681be fix bug in self connect detection 2008-06-18 13:31:41 +00:00
Arvid Norberg 7fe6c474ce fix auto manage bug related to checking torrents 2008-06-18 13:02:03 +00:00
Arvid Norberg 9c94f54868 fixes for torrents with smaller pieces than 16kB 2008-06-18 12:34:39 +00:00
Arvid Norberg 77c13d73f6 fixed assert in set_queue_position 2008-06-17 16:49:55 +00:00
Andrew Resch d70ec645d7 Make 'active_seeds' and 'active_downloads' use -1 as unlimited 2008-06-17 15:44:04 +00:00
Arvid Norberg 24b24aff4e force recheck fixes. Fixes #350 2008-06-17 14:56:22 +00:00
Arvid Norberg 0241bf78ce added is_sequential_download to torrent_handle 2008-06-17 08:30:04 +00:00
Arvid Norberg b55670aa14 fixed typo 2008-06-16 22:33:42 +00:00
Arvid Norberg 6c24bd0774 moves force checked torrents to the end of the queue. Fixes #350 2008-06-16 22:27:14 +00:00
Arvid Norberg 9a8fc4f713 self connection fixes 2008-06-16 13:54:14 +00:00
Arvid Norberg 41f241b476 min reconnect time fix 2008-06-16 07:46:40 +00:00
Arvid Norberg 3e000a3984 fixed save path updates when moving torrents. Fixes #310 2008-06-15 20:52:46 +00:00
roman_rybalko 5314b639e2 boost detection fixes: now able to launch with boost1.34 and boost1.35 2008-06-13 12:20:55 +00:00
Arvid Norberg 7df5d4a9c6 changed queuing logic 2008-06-13 05:11:36 +00:00
Arvid Norberg af477fa266 fixed connect candidate assert 2008-06-13 04:50:02 +00:00
Arvid Norberg 5923ef5b43 fixed file check ordering to respect the queue position. Fixes #350 2008-06-12 21:22:24 +00:00
Arvid Norberg 295e2a548b piece picker fix of recent change. 2008-06-12 15:40:50 +00:00
Arvid Norberg 6db61166be recalculate queued torrents sooner when changing queuing settings 2008-06-12 06:58:42 +00:00
Arvid Norberg d47ec46e76 storage wpath fix (for unicode) 2008-06-12 04:52:37 +00:00
Arvid Norberg 52f6204288 simplified the disk-io mutexes and made it more efficient. separated the disk io mutex into a buffer mutex, queue mutex and the piece cache mutex. 2008-06-12 04:40:37 +00:00
Andrew Resch 933e3c8b54 Fixes for set_queue_position() 2008-06-11 12:14:10 +00:00
Arvid Norberg a4dfd63ca3 fixed piece picker bug related to sequential download, added unit test to expose it 2008-06-11 08:30:06 +00:00
Arvid Norberg 6e69480176 disk_io_thread fixes. Properly destructs torrent objects while disk io mutex is not locked. Properly flushes disk cache when closing, and aborting read and file check jobs. Fixes #334 2008-06-09 04:46:34 +00:00
Arvid Norberg efcd69b009 fixed set_queue_position() for seeding (or finished) torrents 2008-06-08 13:47:35 +00:00
Andrew Resch 3ea075f169 Add torrent_resumed alert 2008-06-08 05:14:40 +00:00
Arvid Norberg 0afe661d5a fixed http_connection assert 2008-06-07 17:47:05 +00:00
Arvid Norberg a1857f9699 added force_recheck to torrent_handle. Fixes #120 2008-06-07 16:24:56 +00:00
Arvid Norberg 76ee7b6297 fixed connect candidate counter 2008-06-07 14:22:24 +00:00
Arvid Norberg 9f5fa96cad fixed bug related to m_have_piece optimization. Renamed num_pieces() to num_have() to avoid confusion 2008-06-07 14:03:21 +00:00
Arvid Norberg 9d1e77dc88 optimized away torrent::m_have_pieces (#62) and added some documentation on bitfield. The piece picker is now constructed with the torrent, but still freed when turned into a seed 2008-06-07 02:58:28 +00:00
Arvid Norberg bcc24bf831 added has_incoming to torrent_status per #315 2008-06-05 18:19:03 +00:00
Arvid Norberg 59c8a74ba8 in case a regular rename fails, try to copy the storage to the new location. Fixes #231 2008-06-05 16:56:39 +00:00
Arvid Norberg 4709d202e1 fixed unicode issue in storage 2008-06-04 07:57:07 +00:00
Arvid Norberg 5d268424b2 update auto managed torrents sooner when changes are made 2008-06-03 20:21:47 +00:00
Arvid Norberg 8b5172d439 fixed exception issue when tracker sends invalid response 2008-06-03 20:03:51 +00:00
Arvid Norberg b4c160e723 fixed bug in web_peer_connection where an incorrect number of bytes would be reported as downloaded 2008-06-03 15:17:09 +00:00
Arvid Norberg c883f4475c saves statistics from the last second from peer connections that are disconnected. Partly fixes #339 2008-06-03 05:21:00 +00:00
Arvid Norberg f12e1d26b7 Fixed bug in on_bitfield. Fixes #342 2008-06-02 06:52:24 +00:00
Arvid Norberg e0987022cc fixed typo 2008-05-30 07:58:49 +00:00
Arvid Norberg 31c9d378f5 completed queuing. It is now possible to change and query queue position of torrents. 2008-05-29 03:37:19 +00:00
Arvid Norberg 63cf889be4 fixed 64-bit overflow issues 2008-05-29 03:18:42 +00:00
Arvid Norberg fd98434c97 peer list optimization and introduced hard limit on peer list size 2008-05-28 18:25:48 +00:00
Arvid Norberg 3910fe78de separated file_storage from torrent_info and create_torrent 2008-05-28 08:44:40 +00:00
Arvid Norberg 669debaa42 64-bit issue fix 2008-05-28 07:48:46 +00:00
Arvid Norberg 68c31e48dc replaced vector<bool> with a custom bitfield type 2008-05-28 02:35:02 +00:00
Arvid Norberg 4338140c85 added test and fixed total_wanted issue for files > 2 GB 2008-05-27 08:07:59 +00:00
Arvid Norberg 0ba85e96d5 fixed kademlia announce bug 2008-05-26 15:23:06 +00:00
Arvid Norberg 8b03e338d6 lazy_bdecode fix. #336 2008-05-24 04:36:59 +00:00
Arvid Norberg fdbf86a53c boost 1.35 fix 2008-05-20 16:43:09 +00:00
Arvid Norberg dbb625a910 torrent_info fixes. make_torrent now builds 2008-05-20 09:49:40 +00:00
Arvid Norberg 31ab7f9773 boost 1.35 related fixes 2008-05-20 09:45:55 +00:00
Arvid Norberg 67354421fb introduced an error state for torrents. Torrents with an error are not restarted automatically 2008-05-20 07:57:44 +00:00
Andrew Resch aed8f355b0 Make libtorrent build with boost <1.35 2008-05-20 06:03:46 +00:00
Arvid Norberg 5840a50d79 fixed stale state when switching from finished to downloading 2008-05-20 03:21:45 +00:00
Arvid Norberg 07f070868d factored out to_hex into the escape_string header file 2008-05-19 07:36:04 +00:00
Arvid Norberg 8613554c2a entry and scrape bug fix 2008-05-19 07:15:44 +00:00
Arvid Norberg 777954ab3e automatically scrape auto managed torrents to keep track of downloader/seed ratio 2008-05-19 04:06:25 +00:00
Arvid Norberg c460704a5f streamlined class footprint by reducing padding 2008-05-19 02:52:32 +00:00
Arvid Norberg c5d61667b3 http_connection now supports connecting to all IPs a hostname resolves to, as fallbacks 2008-05-18 22:14:55 +00:00
Arvid Norberg 282f30c7e7 saves number of seeds and downloaders last seen in resume data 2008-05-18 19:31:06 +00:00
Arvid Norberg ffa9baed1d fixed bug where torrent would not connect to peers unless it had the .torrent 2008-05-18 18:30:26 +00:00
Arvid Norberg bae6ff1a10 dht typo fix 2008-05-18 06:02:57 +00:00
Arvid Norberg 111f5faecb upload only extension 2008-05-18 05:59:47 +00:00
Arvid Norberg 498a43c123 streamlined dht log format 2008-05-18 05:09:11 +00:00
Arvid Norberg b952d85734 fixed error handling and added support for relative http redirects (which aren't allowed by the standard) 2008-05-18 04:48:06 +00:00
Arvid Norberg 031cfe09da added missing include 2008-05-17 16:33:28 +00:00
Arvid Norberg 7f639e57de improved error handling with regards to parse_url_components. For trunk, moved that function to its own file 2008-05-17 14:19:34 +00:00
Arvid Norberg 5ec7da07e6 fixes #332 2008-05-17 00:27:26 +00:00
Arvid Norberg f296d5a64d limits the number of connections depending to getrlimit(). Fixes #232 2008-05-16 15:19:38 +00:00
Arvid Norberg c53eabd90c fixed typo 2008-05-15 21:48:11 +00:00
Arvid Norberg df2389219a fixed typo in torrent_info 2008-05-15 17:42:28 +00:00
Arvid Norberg ed3cf2bb54 fixed typo 2008-05-15 16:57:35 +00:00
Arvid Norberg 8909aeaadc attempt to fix removal of files on windows with unicode (to fix #216) 2008-05-15 16:38:04 +00:00
Arvid Norberg 6ab19756a3 lazy_entry fix 2008-05-15 08:23:32 +00:00
Arvid Norberg 7052efe575 lazy_entry fix 2008-05-15 07:04:39 +00:00
Arvid Norberg ffbc22dfc2 respects the port filter for web seeds. Fixes #304 2008-05-15 05:13:09 +00:00
Arvid Norberg 91d6099a55 fixed issue with torrents with 0 pieces. Fixes #306 2008-05-15 02:29:26 +00:00
Arvid Norberg 16a8aa88e8 ignore invalid entries in 'announce-list' instead of aborting 2008-05-14 19:44:36 +00:00
Arvid Norberg 7e428db4ca bdecode print formatting fix 2008-05-14 18:58:24 +00:00
Arvid Norberg 8ed949c4d5 factored out torrent creation functionality from torrent_info into create_torrent. Modified torrent_info to use lazy_bdecoder for increased performance 2008-05-14 05:29:42 +00:00
Arvid Norberg 63fd1eb118 applied patch for #318 2008-05-13 18:22:22 +00:00
Arvid Norberg e54d1dfffe upnp bugfix (fixes #323) 2008-05-13 17:38:03 +00:00
Arvid Norberg 0de312c80c ignores UPnP routers that are not configured as routers on the local machine 2008-05-13 04:59:56 +00:00
Arvid Norberg f259e34f86 peer_connection fix for incoming connections 2008-05-12 10:10:39 +00:00
Arvid Norberg 756dbe3316 removed leftover from debugging 2008-05-12 09:31:57 +00:00
Arvid Norberg 574211055c GeoIP fixes 2008-05-12 07:14:03 +00:00
Arvid Norberg 149fa28586 added constructor to torrent_info that loads a file directly 2008-05-12 06:35:24 +00:00
Arvid Norberg 2fbe53f880 assert fix 2008-05-12 06:31:54 +00:00
Arvid Norberg 971ead4a44 made redundant connction closing optional (defaults to on) 2008-05-12 06:25:53 +00:00
Arvid Norberg a01c412f9e piece picker fixes (introduced when rewriting the piece checking) 2008-05-12 06:20:54 +00:00
Arvid Norberg 068adcd9a9 indentation fix 2008-05-12 06:03:31 +00:00
Arvid Norberg f2ac4db1af changed the optimistic disconnect logic to be more efficient and configurable 2008-05-12 05:17:11 +00:00
Arvid Norberg eabe9cad2d improved plugin support 2008-05-12 03:05:27 +00:00
Arvid Norberg e51c8bea37 added makefile support for boost.system (#322) 2008-05-11 22:43:44 +00:00
Arvid Norberg aa626f1422 logs node uptime and parses it for the DHT 2008-05-10 05:51:58 +00:00
Arvid Norberg 3fe96818d3 dht log fix 2008-05-09 23:42:00 +00:00
Arvid Norberg ae11038495 improved dht logging of transaction ids 2008-05-09 21:20:28 +00:00
Arvid Norberg 11c181873c stripped down the dht log 2008-05-09 17:38:36 +00:00
Arvid Norberg 5202056682 inverted distance log in dht 2008-05-08 03:58:05 +00:00
Arvid Norberg 1522f52db8 logs the distance between key and node when announcing 2008-05-08 01:17:14 +00:00
Arvid Norberg bbf9c83edc initial support for icmp errors in the DHT 2008-05-08 00:22:17 +00:00
Arvid Norberg 7434368652 fixed dht logging error 2008-05-07 23:25:47 +00:00
Arvid Norberg 5741f72ab3 seed rank fix 2008-05-07 17:05:16 +00:00
Arvid Norberg 73ef60e5fa seed rank fix 2008-05-07 08:24:16 +00:00
Arvid Norberg a555fff07b seed count fix in policy 2008-05-07 07:35:36 +00:00
Arvid Norberg 018ec69d8c indentation fix 2008-05-06 21:27:06 +00:00
Arvid Norberg 081953db51 enum_net windows fixes 2008-05-06 19:13:59 +00:00
Arvid Norberg 9429ca4b1f replaced seed cycles with seed rank 2008-05-06 18:03:41 +00:00
Arvid Norberg e09457e4ab take an estimate of the IP ACK traffic into account when rate limiting (allows setting rate limits closer to the capacity) 2008-05-05 17:08:14 +00:00
Arvid Norberg d15573ecc2 disk receive buffer cleanup 2008-05-05 06:25:22 +00:00
Arvid Norberg 7388144ec7 refactored stats class to be extensible with more channels 2008-05-04 17:57:06 +00:00
Arvid Norberg 010d3b6e75 windows fix 2008-05-04 16:10:13 +00:00
Arvid Norberg c7e6c04705 switched over to asio from boost-1.35 2008-05-03 16:05:42 +00:00
Arvid Norberg cb5f783987 boost-1.35 fix 2008-05-03 06:41:43 +00:00
Arvid Norberg f3d0eb3c11 fixed boost-1.35 build 2008-05-01 16:31:19 +00:00
Andrew Resch 4e768ab31f Fix building on gcc 4.3 2008-04-29 21:46:32 +00:00
Arvid Norberg 441aacae32 fixed download bug affecting web seeds 2008-04-29 03:12:14 +00:00
Arvid Norberg c3b60f1b8f modified get_default_gateway to not take an interface 2008-04-28 02:20:40 +00:00
Arvid Norberg 3ec9a75d09 enum_routes fixes for linux 2008-04-28 01:23:11 +00:00
Arvid Norberg c2f7fb0fb4 added enum_routes to dump routing table 2008-04-28 00:20:59 +00:00
Arvid Norberg 8d5812011e update to enum_net 2008-04-27 04:51:28 +00:00
Arvid Norberg 6a7790cd28 added implementation for get_default_router for linux 2008-04-25 05:51:21 +00:00
Arvid Norberg 00b935150a fix for debug iterators 2008-04-24 17:09:26 +00:00
Arvid Norberg 4d59d9eabc fix build with DHT disabled 2008-04-24 16:57:22 +00:00
Arvid Norberg 854affdd92 compare peer updates 2008-04-24 16:34:43 +00:00
Arvid Norberg 33ed6f4720 fixed typo 2008-04-24 16:12:24 +00:00
Arvid Norberg 228e225489 scans at most 300 peers when finding a connect candidate. Supposedly fixes cpu spikes on large swarms 2008-04-24 07:49:23 +00:00
Arvid Norberg b73112682c client test ui updates 2008-04-24 04:17:54 +00:00
Arvid Norberg c043d4b21d initial support for queuing 2008-04-24 03:28:48 +00:00
Arvid Norberg 7a432786e7 added url to tracker alerts. introduced a base class for all tracker alerts 2008-04-23 01:54:21 +00:00
Andrew Resch 05c1a64c76 Move the torrent_checked alert post to torrent::files_checked 2008-04-23 01:01:00 +00:00
Arvid Norberg 4740dd030e added AM_CFLAGS to makefile 2008-04-22 23:32:27 +00:00
Arvid Norberg d4ddf3712a initializes totals to 0 in torrent 2008-04-22 22:37:40 +00:00
Arvid Norberg 1607acd0f8 fixed typo 2008-04-22 21:02:05 +00:00
Arvid Norberg e8e5308e6b udp socket fix 2008-04-22 20:56:10 +00:00
Arvid Norberg da72fe56e5 udp tracker connection fix 2008-04-22 17:30:28 +00:00
Arvid Norberg 4f132ec568 added GeoIP sources to make files 2008-04-22 00:59:56 +00:00
Arvid Norberg 9a434a919f some more ASNum additions 2008-04-22 00:05:23 +00:00
Arvid Norberg a4b69e5b2d logging improvements 2008-04-20 17:17:58 +00:00
Arvid Norberg 39eaf766fa lazy_bdecode fixes 2008-04-20 03:18:49 +00:00
Arvid Norberg d91a256386 UPnP fix 2008-04-20 03:02:31 +00:00
Arvid Norberg 23732bafce connect candidate counter fix 2008-04-20 00:19:31 +00:00
Arvid Norberg 72176a9256 lazy bdecoder additions and fixes 2008-04-19 03:00:07 +00:00
Arvid Norberg b452020404 fixed resume data bug 2008-04-16 07:51:08 +00:00
Arvid Norberg 779b006ac0 fixed missing torrent_checked_alert 2008-04-16 07:02:39 +00:00
Arvid Norberg 755e50bb12 added active_time, seeding_time, all_time_upload and all_time_download to torrent_status. Also updated docs with some missing entries in torrent_status 2008-04-16 06:31:05 +00:00
Arvid Norberg 1724b1eb75 dht array index out of bound fix 2008-04-16 03:20:35 +00:00
Arvid Norberg 748a66c343 improvements to lazy_bdecode 2008-04-13 22:34:04 +00:00
Arvid Norberg 644d3aa66c disk IO thread error handling 2008-04-13 21:26:57 +00:00
Arvid Norberg 43d5781638 port mapping fix 2008-04-13 19:19:22 +00:00
Arvid Norberg 3fea2080fd added an asynchronous save_resume_data to make it easier to synchronize with the disk IO thread 2008-04-13 18:54:36 +00:00
Arvid Norberg 6639f72804 if priorities are changed so that the torrent changes state to be finished, a torrent_finished_alert is generated now. Fixes #305 2008-04-13 07:39:37 +00:00
Arvid Norberg 17c4257cce added get_full_peer_list to retrieve all the peers known for a swarm 2008-04-13 06:32:48 +00:00
Arvid Norberg 643deb699f lazy bdecode fixes 2008-04-13 05:50:13 +00:00
Arvid Norberg a3e7124614 added out stream operator to lazy_entry 2008-04-13 05:19:10 +00:00
Andrew Resch ca872a0e82 Revert last. 2008-04-13 02:47:41 +00:00
Andrew Resch d825c1d5bd Add torrent_resumed torrent alert. 2008-04-13 02:34:18 +00:00
Andrew Resch 31bd3b1550 Expose torrent_handle::is_finished() 2008-04-13 02:15:56 +00:00
Arvid Norberg 908273a02b fixed assert 2008-04-13 01:28:44 +00:00
Arvid Norberg d4cfa126aa storage fixes 2008-04-12 22:08:07 +00:00