Changeset 503 for trunk


Ignore:
Timestamp:
07/16/08 18:55:41 (11 years ago)
Author:
Eoin
Message:

Cleaned up trunk alert handler code.

Location:
trunk
Files:
19 edited

Legend:

Unmodified
Added
Removed
  • trunk/lang/Serbian (Cyrillic).txt

    r496 r503  
    55"%1$.2fMB down - %2$.2fMB up" ---> "%1$.2fMB улазМО - %2$.2fMB ОзлазМО" 
    66"%1$.2fMB of %2$.2fMB" ---> "%1$.2fMB ПЎ %2$.2fMB" 
    7 "%1% DHT node(s)" ---> "%1% ДХТ ЧвПрПва" 
    8 "%1% active torrent(s)" --->  ???  
     7"%1% DHT node(s)" ---> "%1% ДХТ ЧвПра" 
     8"%1% active torrent(s)" ---> "АктОвМО тПреМтО" 
    99"%1% peers from DHT." --->  ???  
    1010"%1% port %2% mapping succeeded." --->  ???  
     
    1919"About" ---> "О МаЌа" 
    2020"Above Normal" ---> "ПрекП МПрЌалМПг" 
    21 "Active" --->  ???  
     21"Active" ---> "АктОваМ" 
    2222"Add New Peer" --->  ???  
    2323"Add New Tracker" ---> "УМесО Трекера" 
    24 "Add New Web Seed or DHT Node" --->  ???  
     24"Add New Web Seed or DHT Node" ---> "ДПЎај МПвО " 
    2525"Add Torrent" ---> "ДПЎај тПреМт" 
    2626"Add" ---> "ДПЎај" 
     
    2828"Alert %2%, Status code: %4%, Times %3%. (%1%)" ---> "Узбуђење %2%, статусМО кПЎ: %4%, вреЌеМа %3%. (%1%)" 
    2929"Allocating" ---> "ДПЎелјеМП" 
    30 "Allow only one instance to run" --->  ???  
     30"Allow only one instance to run" ---> "ДПзвПлО саЌП јеЎМу ОМстаМцу" 
    3131"An invalid connection policy, %1%, was passed as an encryption setting." ---> "НекПрекМО МачОМ пПвеза, %1%, Је упПтреблјеМ." 
    3232"An invalid encoding level, %1%, was passed as an encryption setting." ---> "НекПректМа степеМОца шОфрацОје, %1%, је упПтребњеМа." 
     
    4040"Block %2% of piece %3% finished. (%1%)" ---> "СекцОја %2% ПЎ Ўела %3% завршеМа. (%1%)" 
    4141"Both" ---> "ОбаЎве" 
    42 "Calculating Piece Hashes..." --->  ???  
     42"Calculating Piece Hashes..." ---> "ПрПрачуМај ЎелПве Ñ 
     43аша" 
    4344"Cancel" ---> "ПрекОМО" 
    4445"Checking Files" ---> "ПрПвера фајлПва" 
     
    4647"Clear IP database" ---> "ИзбрОшО ИП-ЎатПтеку" 
    4748"Client" ---> "КлОјеМт" 
    48 "Close to tray" --->  ???  
    49 "Comment" --->  ???  
    50 "Completed" --->  ???  
     49"Close to tray" ---> "ПребацО у " 
     50"Comment" ---> "КПЌеМтар" 
     51"Completed" ---> "КПЌплетаМ" 
    5152"Completed:" ---> "ЗавршеМП:" 
    52 "Confirm on close" --->  ???  
     53"Confirm on close" ---> "ППтврЎО преЎ затварањеЌ" 
    5354"Connecting to Tracker" ---> "ППвезава с трекерПЌ" 
    5455"Connecting" ---> "ППвежО" 
    5556"Connection Policies" ---> "НачОМ пПвеза" 
    56 "Construct a New Torrent" --->  ???  
    57 "Copies" --->  ???  
     57"Construct a New Torrent" ---> "ХаправО МПвО тПреМт" 
     58"Copies" ---> "КПпОје" 
    5859"Country" ---> "Држава" 
    59 "Creating Torrent..." --->  ???  
    60 "Creating a New Torrent File" --->  ???  
    61 "Creator" --->  ???  
     60"Creating Torrent..." ---> "НаправО тПреМт..." 
     61"Creating a New Torrent File" ---> "НаправО МПвО тПреМт фајл" 
     62"Creator" ---> "НаправО тПреМт фајл" 
    6263"Critical" ---> "КрОтОчМП" 
    63 "DHT Node" --->  ???  
     64"DHT Node" ---> "ДХТ-чвПр" 
    6465"DHT disabled" ---> "ДХТ ОзкључеМ" 
    6566"DHT session could not start. Try selecting another port in the settings." ---> "ДХТ акцОја МОје ЌПгла пПчетО, ОзаберО ЎругО пПрт." 
     
    7172"Delete" ---> "ИзбрОшО" 
    7273"Details" --->  ???  
    73 "Dev Msg: %1%." --->  ???  
    74 "Dir." --->  ???  
     74"Dev Msg: %1%." ---> "ППр.газЎе: %1%." 
     75"Dir." ---> "Мапа" 
    7576"Disabled" ---> "ИскључеМ" 
    7677"Distributed Hash Tables" ---> "ДХТ (пПЎела Ñ 
     
    8182"Download" ---> "ПреузОЌаш" 
    8283"Downloaded %1$.2fMB, Uploaded %2$.2fMB, Ratio %3$.2f." ---> "ПреузеП %1$.2fMB, пПЎелОП %2$.2fMB, ПЎМПс %3$.2f." 
    83 "Downloaded" --->  ???  
    84 "Downloading Metadata" ---> "ПуМО " 
     84"Downloaded" ---> "ПреузеМП" 
     85"Downloading Metadata" ---> "ПуМО Ќета-фајлПве" 
    8586"Downloading" ---> "ПреузОЌа се" 
    8687"E&xit" ---> "Пр&екОМутО" 
    87 "ETA" --->  ???  
    88 "ETA:" ---> "ЕТА:" 
    89 "Edit Download Folders" --->  ???  
    90 "Edit Peer" --->  ???  
     88"ETA" ---> "ЈПш Пстаје" 
     89"ETA:" ---> "ЈПш Пстаје:" 
     90"Edit Download Folders" ---> "ПрПЌеМО улазМу Ќапу" 
     91"Edit Peer" ---> "ПреПраЎО пеер" 
    9192"Edit Torrent Save Folders" --->  ???  
    92 "Edit Tracker" --->  ???  
     93"Edit Tracker" ---> "ОбраЎО трекера" 
    9394"Edit" ---> "ПреПбрађОватО" 
    9495"Enable DHT" ---> "АктОвОрај ДХТ" 
     
    9899"Enabled" ---> "АктОвОраМ" 
    99100"Encoding Level" ---> "СтепеМ шОфрацОје" 
    100 "Enter any Web Seed URLs and DHT Nodes." --->  ???  
     101"Enter any Web Seed URLs and DHT Nodes." ---> "НавеЎОте ЖеЉМу webseed-УРЛ аЎресу ОлО ДХТ-ЧвПр" 
    101102"Enter the tracker URLs for the torrent." ---> "УМесО УРЛ ПЎ трекера" 
    102 "Exception caught: %1%, from %2%." --->  ???  
     103"Exception caught: %1%, from %2%." ---> "ИзузетМа грешка: %1%, у %2%." 
    103104"Failed, %1%" ---> "МеуспешМП, %1%" 
    104 "Fast resume failed: %2%. (%1%)" --->  ???  
    105 "File" --->  ???  
     105"Fast resume failed: %2%. (%1%)" ---> "БрзО МапреЎак МеуспешаМ: %2%. (%1%)" 
     106"File" ---> "Ѐајл" 
    106107"Filename" ---> "ИЌе фајла" 
    107108"Files" ---> "ЀајлПвО" 
    108109"Filtering %1% range(s)" ---> "%1% ИП-секцОје фОлтрОраМе" 
    109 "Finish Time" --->  ???  
     110"Finish Time" ---> "ВреЌе завршетка" 
    110111"Finished" ---> "ЗавршеМП" 
    111 "Force Close" --->  ???  
     112"Force Close" ---> "НасОлМП затварање" 
    112113"Forced" ---> "НатераМ" 
    113114"General Settings" ---> "Опште" 
     
    115116"Generated Torrent Name (Cannot change)" --->  ???  
    116117"Global Limits" ---> "ГлПбалМП лОЌОтОрање" 
    117 "Halite BitTorrent Client" --->  ???  
     118"Halite BitTorrent Client" ---> "ХалОте бОттПреМт клОјеМт" 
    118119"Halite Debug Dialog" ---> "ХалОте, ЎОалПг " 
    119120"Halite importing IP ranges..." ---> "ХалОте ОЌпПртОа ЎелПве ИП-а" 
     
    122123"Handshake" ---> "РукПваМје" 
    123124"Has choked us" ---> "УспПрОП је Мас" 
    124 "Hash failed for piece %2% of %1%." ---> " " 
     125"Hash failed for piece %2% of %1%." ---> "НеуспешаМ Ñ 
     126аш зе ЎеП %2% ПЎ %1%. " 
    125127"IP Filter blocked %1%, %2%." ---> "ИП-фОлтер блПкОраП %1%, %2%." 
    126128"IP Filtering" ---> "ИП ЀОлтрацОј" 
    127129"IP filter disabled" ---> "ИП-фОлтер ОзкључеМ" 
    128 "IP version 6 listen attempt failed. Not serious." --->  ???  
     130"IP version 6 listen attempt failed. Not serious." ---> "ИП-в6 пПвез МеуспешаМ. МОје серОПзаМ." 
    129131"Import ipfilter.dat" ---> "ИЌпПртОрај ipfilter.dat" 
    130 "Importing IP Filters..." --->  ???  
     132"Importing IP Filters..." ---> "ИЌпПртОрај ИП-фОлтер..." 
    131133"Incoming" ---> "УлазМП" 
    132134"Info" ---> "ИМфПрЌацОја" 
     
    142144"List of Trackers." ---> "ЛОста свОѠ
    143145 Ñ‚рекера" 
    144 "Loading IP filters..." --->  ???  
     146"Loading IP filters..." ---> "ПреузЌО ИП-фОлтер" 
    145147"Local connection" ---> "ЛПкалМО пПвез" 
    146148"Log debug events." ---> "ПОшО Ўебуг резултате у " 
     
    151153"Message" ---> "ППрука" 
    152154"Minimize to tray." ---> "МОМОЌОрај у " 
    153 "Move finished torrents to :" --->  ???  
    154 "Move the completed torrent to:" --->  ???  
    155 "N/A" ---> "N/A" 
    156 "NAT-PMG" --->  ???  
     155"Move finished torrents to :" ---> "ПребацО преузете фајлПве у:" 
     156"Move the completed torrent to:" ---> "ПребацО Пвај преузетО фајл у:" 
     157"N/A" ---> "Н/Д" 
     158"NAT-PMG" ---> "НАТ-ПМГ" 
    157159"NAT-PMP" --->  ???  
    158 "Name" --->  ???  
     160"Name" ---> "ИМЕ" 
    159161"Name:" ---> "ИЌе:" 
    160162"New" ---> "НПвО" 
    161 "None (Managed Externally)" --->  ???  
     163"None (Managed Externally)" ---> "НОкаквП (екстерМП ЌеМеџОрање)" 
    162164"None" ---> "НОкаквО" 
    163165"Normal" ---> "НПрЌалМП" 
     
    167169"Ok" ---> "УреЎу" 
    168170"Open &Halite" ---> "&ОтвПрО ХалОте" 
    169 "Open Download Folder" --->  ???  
     171"Open Download Folder" ---> "ОтвПрО улазМу Ќапу" 
    170172"Open a (single) port between : " ---> "ОтвПрО јеЎаМ пПрт ОзЌеђу...:" 
    171173"Outgoing" ---> "ИзлазМП" 
    172 "Output File" --->  ???  
     174"Output File" ---> "ИзлазМО фПрЌат" 
    173175"Overhead:" ---> "НеупПребљОвП:" 
    174176"Password : " ---> "ЛПзОМка:" 
     
    190192"Port (UDP) : " ---> "ППрт (УДП): " 
    191193"Port : " ---> "ППрт:" 
    192 "Port Forwarding" --->  ???  
     194"Port Forwarding" ---> "ППрт прПЎужење" 
    193195"Port to listen on : " ---> "ППрт:" 
    194 "Port" --->  ???  
     196"Port" ---> "ППрт" 
    195197"Prefer RC4" ---> "ПрОвОлегОрј RC4" 
    196198"Priority" ---> "ВажМПстО" 
    197 "Private" --->  ???  
     199"Private" ---> "ПрОатМП" 
    198200"Progress" ---> "НапреЎак" 
    199201"Protocol Encryption" ---> "КОфрацОја прПтПкПла" 
     
    207209"Rates:" ---> "ДелПвО:" 
    208210"Ratio (this session):" ---> "ОЎМПс (Ова сеЎМОца):" 
    209 "Ratio" --->  ???  
     211"Ratio" ---> "ОЎМПс" 
    210212"Ratio:" ---> "ОЎМПс:" 
    211 "Reannounce" --->  ???  
    212 "Recheck Files" --->  ???  
    213 "Remaining" --->  ???  
    214 "Remaining:" ---> "ЈПш ПсталП:" 
     213"Reannounce" ---> "Освежање" 
     214"Recheck Files" ---> "ПрПверО Ппет фајлПве" 
     215"Remaining" ---> "ЈПш Пстаје" 
     216"Remaining:" ---> "ЈПш Пстаје:" 
    215217"Remote Control Options" ---> "Уређај за ЎаљОМскП кПрОшћење" 
    216218"Remote Control" ---> "ДаљОМска упПтреба" 
     
    218220"Reset" ---> "ППвратО" 
    219221"Resume" ---> "НаставОтО" 
    220 "Review settings when adding torrent." --->  ???  
     222"Review settings when adding torrent." ---> "Уређај ревОЎОратО кПЎ ЎПЎавање тПреМта" 
    221223"Save" ---> "АрѠ
    222224ОвОрај" 
    223 "Saving Torrent" --->  ???  
     225"Saving Torrent" ---> "АпѠ
     226ОвОрај фајл" 
    224227"Security" ---> "СОгурМПстО" 
    225228"Seeding" ---> "НуЎОш" 
    226 "Seeds" --->  ???  
     229"Seeds" ---> "СееЎ-ерО" 
    227230"Seeds:" ---> "СееЎ-ерО:" 
    228231"Select a directory to save the downloads to. Select cancel to accept default 'incoming' location." ---> "ИзаберО Ќапу у кПјПј желОш Ўа тО буЎу преузетО фајлПвО. ИзаберО \" 
    229232"Select a directory to save the files to or cancel to not download torrent at all." ---> "ИзаберО Ќапу, у кПјПј жзрлОш ОЌатО скОМуте тПреМте ОлО Ўа прекОМеш Ўа тО се тПреМт МепреузОЌа ЎП краја." 
    230 "Select a file or directory from which to construct the torrent." --->  ???  
    231 "Select the (TCP) port (or range) on which to listen for incoming connections." --->  ???  
     233"Select a file or directory from which to construct the torrent." ---> "ИзаберО фајл ОлО Ќапу, ПЎ кПје желОш тПреМт МаправОтО" 
     234"Select the (TCP) port (or range) on which to listen for incoming connections." ---> "ИзаберО јеЎаМ ТЊП-пПрт ОлО вОше, прекП кПјОѠ
     235 ÐŽÐ° Ñ 
     236алОте прОЌа улазМО прПтПк" 
    232237"Send login info to trackers." ---> "прОјавО се Ма трекеру" 
    233238"Set Priority" ---> "ВажМПст ПбОљежОтО" 
     
    235240"Severity" ---> "ВажМПстО" 
    236241"Show this message in future" ---> "НепПзуј ЌО Пву пПруку" 
    237 "Shutting down session" --->  ???  
     242"Shutting down session" ---> "ПрекОМО сеЎМОцу" 
    238243"Size" ---> "ВелОчОМа" 
    239244"Standard exception (%1%) thrown from %2%." ---> "СтаМЎартМО Озузетак (%1%) ЎесОП се кПЎ (%2%)" 
    240 "Start Time" --->  ???  
     245"Start Time" ---> "ППчетМП..." 
    241246"Status" ---> "АкцОја" 
    242247"Status:" ---> "АкцОја:" 
    243248"Stop" ---> "СтПпОрај" 
    244 "Stopped initially (Allows changing advanced setting)" --->  ???  
     249"Stopped initially (Allows changing advanced setting)" ---> "ППчетМП стПпОраМ (ЎПзвПљава прПЌеМу прПЎужМПЎ уређаја)" 
    245250"Stopped" ---> "ЗаустављеМ" 
    246 "Stopping Torrents" --->  ???  
     251"Stopping Torrents" ---> "СтПпОрај тПреМте" 
    247252"Stopping" ---> "ЗауставО" 
    248253"Successfully %1%." ---> "%1% успешМП." 
    249254"Supports extensions" ---> "ППЎржава екстеМзОју" 
    250 "Test" --->  ???  
     255"Test" ---> "ИспОтак" 
    251256"The BitTorrent session could not start. Try selecting another port in the settings." ---> "АкцОја МОје ЌПгла пПчетО, ОзаберО ЎругО пПрт." 
    252257"The socket infrastructure failed to start so Halite is forced to close. Please ensure no program is blocking Halites network access." --->  ???  
     
    259264"Torrent %1% finished." ---> "ТПреМт %1% завршеМ." 
    260265"Torrent %1% paused." ---> "ТПреМт %1% паузОра." 
    261 "Torrent (%1%) exception caught: %2% from %3%." --->  ???  
     266"Torrent (%1%) exception caught: %2% from %3%." ---> "ТПреМт (%1%) Озузетак успешМП пПправлјеМ: (%2%) у (%3%)." 
    262267"Torrent Defaults" ---> "СтаМЎартМП пПЎешавање" 
    263268"Torrent File" ---> "ТПреМт" 
     
    265270"Torrent and Data" ---> "ИзбрОшО тПреМт О ЎатПтеку" 
    266271"Torrent connection limits:" ---> "ГраМОчМа лОЌОтацОја:" 
    267 "Torrent save folder:" --->  ???  
     272"Torrent save folder:" ---> "УлазМа Ќапа ПЎ тПреМта" 
    268273"Torrent transfer rates (KB/s):" ---> "ЛОЌОтацОја брзОМе (КБ/с):" 
    269274"Torrent" ---> "ТПреМт" 
     
    279284"Tracker" ---> "Трекер" 
    280285"Tracker:" ---> "Трекер:" 
    281 "Trackers" --->  ???  
     286"Trackers" ---> "ТракереО" 
    282287"Transferred:" ---> "ПреМешеМП:" 
    283288"Type" ---> "ТОп" 
    284289"UPnP" --->  ???  
    285290"URL Seed %2%, %3%. (%1%)" ---> "УРл СееЎ %2%, %3%. (%1%)" 
    286 "URL" --->  ???  
    287 "UnPlug and Play" --->  ???  
     291"URL" ---> "УРЛ" 
     292"UnPlug and Play" ---> "ИзЎвПјО О пПкажО" 
    288293"Unicode exception: %1%." ---> "УМОцПЎе Озузетак: %1%." 
    289294"Up" ---> "ИзлазМа" 
     
    291296"Upload Rate (KB/s) :" ---> "БрзОМа ОзлазМг прПтПка (КБ/с):" 
    292297"Upload" ---> "ОЎпреЌљаш" 
    293 "Uploaded" --->  ???  
     298"Uploaded" ---> "СпреЌМП за МуЎење" 
    294299"Use Compact Allocation." ---> "УпПтребО кПЌпактМП ЎПЎавање" 
    295300"Use a proxy." ---> "УпПтреебО прПксО-сервера" 
    296 "User canceled Torrent file creation" --->  ???  
     301"User canceled Torrent file creation" ---> "КПрОсМОк је прeкОМП прављеМе тПреМта" 
    297302"Username : " ---> "КПрОсМОк:" 
    298303"Warning" ---> "УпПзПрење" 
    299 "Web Seed" ---> "ВЕБ-СееЎ" 
    300 "Web Seeds and DHT Nodes" --->  ???  
     304"Web Seed" ---> " " 
     305"Web Seeds and DHT Nodes" ---> " " 
    301306"Xml Exception (%1%) with %2%." ---> "XML Грешка (%1%) кПЎ (%2%)" 
    302307"\r\0" --->  ???  
    303 "libTorrrent based client." ---> "На " 
     308"libTorrrent based client." ---> "На лОбТПрреМт-у баzОраМ клОјеМт" 
    304309"resource.h\0" --->  ???  
    305310"to" ---> "ДП" 
    306 "∞" ---> "∞" 
     311"∞" ---> "-" 
  • trunk/lang/Serbian.txt

    r496 r503  
    55"%1$.2fMB down - %2$.2fMB up" ---> "%1$.2fMB ulazni - %2$.2fMB izlazni" 
    66"%1$.2fMB of %2$.2fMB" ---> "%1$.2fMB od %2$.2fMB" 
    7 "%1% DHT node(s)" ---> "%1% DHT Čvorova" 
     7"%1% DHT node(s)" ---> "%1% DHT Čvora" 
    88"%1% active torrent(s)" ---> "Aktivni torenti" 
    99"%1% peers from DHT." --->  ???  
     
    1919"About" ---> "O nama" 
    2020"Above Normal" ---> "Preko Normalnog" 
    21 "Active" --->  ???  
    22 "Add New Peer" --->  ???  
     21"Active" ---> "Aktivan" 
     22"Add New Peer" ---> "Dodaj novi peer" 
    2323"Add New Tracker" ---> "Unesi Trekera" 
    24 "Add New Web Seed or DHT Node" --->  ???  
     24"Add New Web Seed or DHT Node" ---> "Dodaj novi webseed ili DHT-čvor" 
    2525"Add Torrent" ---> "Dodaj torent" 
    2626"Add" ---> "Dodaj" 
     
    2828"Alert %2%, Status code: %4%, Times %3%. (%1%)" ---> "Uzbuđenje %2%, statusni kod: %4%, vremena %3%. (%1%)" 
    2929"Allocating" ---> "Dodeljeno" 
    30 "Allow only one instance to run" --->  ???  
     30"Allow only one instance to run" ---> "Dozvoli samu jednu instancu" 
    3131"An invalid connection policy, %1%, was passed as an encryption setting." ---> "Nekorekktni način poveza, %1%, je upotrebljen." 
    3232"An invalid encoding level, %1%, was passed as an encryption setting." ---> "Nekorektna stepenica Å¡ifracije, %1%, je upotrebljena." 
     
    4040"Block %2% of piece %3% finished. (%1%)" ---> "Sekcija %2% od dela %3% zavrÅ¡ena. (%1%)" 
    4141"Both" ---> "Obadve" 
    42 "Calculating Piece Hashes..." --->  ???  
     42"Calculating Piece Hashes..." ---> "Proračunaj delove haÅ¡a" 
    4343"Cancel" ---> "Prekini" 
    4444"Checking Files" ---> "Provera fajlova" 
     
    4646"Clear IP database" ---> "IzbriÅ¡i IP-datoteku" 
    4747"Client" ---> "Klijent" 
    48 "Close to tray" --->  ???  
    49 "Comment" --->  ???  
    50 "Completed" --->  ???  
     48"Close to tray" ---> "Prebaci u " 
     49"Comment" ---> "Komentar" 
     50"Completed" ---> "Kompletan" 
    5151"Completed:" ---> "ZavrÅ¡eno:" 
    52 "Confirm on close" --->  ???  
     52"Confirm on close" ---> "Potvrdi pred zatvaranjem" 
    5353"Connecting to Tracker" ---> "Povezava s trekerom" 
    5454"Connecting" ---> "PoveÅŸi" 
    5555"Connection Policies" ---> "Način poveza" 
    56 "Construct a New Torrent" --->  ???  
    57 "Copies" --->  ???  
     56"Construct a New Torrent" ---> "Napravi novi torent" 
     57"Copies" ---> "Kopije" 
    5858"Country" ---> "DrÅŸava" 
    59 "Creating Torrent..." --->  ???  
    60 "Creating a New Torrent File" --->  ???  
    61 "Creator" --->  ???  
     59"Creating Torrent..." ---> "Napravi torent..." 
     60"Creating a New Torrent File" ---> "napravi novi torent fajl" 
     61"Creator" ---> "Napravi torent fajl" 
    6262"Critical" ---> "Kritično" 
    63 "DHT Node" --->  ???  
     63"DHT Node" ---> "DHT-čvor" 
    6464"DHT disabled" ---> "DHT izključen" 
    6565"DHT session could not start. Try selecting another port in the settings." ---> "DHT akcija nije mogla početi, izaberi drugi port." 
     
    7070"Delete" ---> "IzbriÅ¡i" 
    7171"Details" --->  ???  
    72 "Dev Msg: %1%." --->  ???  
    73 "Dir." --->  ???  
     72"Dev Msg: %1%." ---> "Por.gazde: %1%." 
     73"Dir." ---> "Mapa" 
    7474"Disabled" ---> "Isključen" 
    7575"Distributed Hash Tables" ---> "DHT (podela HaÅ¡-tabele)" 
     
    7979"Download" ---> "PreuzimaÅ¡" 
    8080"Downloaded %1$.2fMB, Uploaded %2$.2fMB, Ratio %3$.2f." ---> "Preuzeo %1$.2fMB, podelio %2$.2fMB, odnos %3$.2f." 
    81 "Downloaded" --->  ???  
    82 "Downloading Metadata" ---> "Puni " 
     81"Downloaded" ---> "Preuzeno" 
     82"Downloading Metadata" ---> "Puni meta-fajlove" 
    8383"Downloading" ---> "Preuzima se" 
    8484"E&xit" ---> "Pr&ekinuti" 
    85 "ETA" --->  ???  
    86 "ETA:" ---> "ETA:" 
    87 "Edit Download Folders" --->  ???  
    88 "Edit Peer" --->  ???  
    89 "Edit Torrent Save Folders" --->  ???  
    90 "Edit Tracker" --->  ???  
     85"ETA" ---> "JoÅ¡ ostaje" 
     86"ETA:" ---> "JoÅ¡ ostaje:" 
     87"Edit Download Folders" ---> "Promeni ulaznu mapu" 
     88"Edit Peer" ---> "Preoradi peer-a" 
     89"Edit Torrent Save Folders" ---> "Promeni mapu za torent fajlove" 
     90"Edit Tracker" ---> "Obradi trekera" 
    9191"Edit" ---> "Preobrađivati" 
    9292"Enable DHT" ---> "Aktiviraj DHT" 
     
    9696"Enabled" ---> "Aktiviran" 
    9797"Encoding Level" ---> "Stepen Å¡ifracije" 
    98 "Enter any Web Seed URLs and DHT Nodes." --->  ???  
     98"Enter any Web Seed URLs and DHT Nodes." ---> "Navedite ÅŸeljnu webseed-URL adresu ili DHT-čvor" 
    9999"Enter the tracker URLs for the torrent." ---> "Unesi URL od trekera" 
    100 "Exception caught: %1%, from %2%." ---> "Pojavio se izuzetak: %1%, od %2%." 
     100"Exception caught: %1%, from %2%." ---> "Izuzetna greÅ¡ka: %1%, u %2%." 
    101101"Failed, %1%" ---> "NeuspeÅ¡no, %1%" 
    102102"Fast resume failed: %2%. (%1%)" --->  ???  
    103 "File" --->  ???  
     103"File" ---> "Fajl" 
    104104"Filename" ---> "Ime fajla" 
    105105"Files" ---> "Fajlovi" 
    106106"Filtering %1% range(s)" ---> "%1% IP-sekcije filtrirane" 
    107 "Finish Time" --->  ???  
     107"Finish Time" ---> "Vreme zavrÅ¡etka" 
    108108"Finished" ---> "ZavrÅ¡eno" 
    109 "Force Close" --->  ???  
     109"Force Close" ---> "Nasilno zatvaranje" 
    110110"Forced" ---> "Nateran" 
    111111"General Settings" ---> "OpÅ¡te" 
     
    113113"Generated Torrent Name (Cannot change)" --->  ???  
    114114"Global Limits" ---> "Globalno limitiranje" 
    115 "Halite BitTorrent Client" --->  ???  
     115"Halite BitTorrent Client" ---> "Halite bittorent klijent" 
    116116"Halite Debug Dialog" ---> "Halite, dialog " 
    117117"Halite importing IP ranges..." ---> "Halite importira delove IP-a" 
     
    120120"Handshake" ---> "Rukovanje" 
    121121"Has choked us" ---> "Usporio je nas" 
    122 "Hash failed for piece %2% of %1%." ---> " " 
     122"Hash failed for piece %2% of %1%." ---> "NeuspeÅ¡an haÅ¡ za deo %2% od %1%." 
    123123"IP Filter blocked %1%, %2%." ---> "IP-Filter blokirao %1%, %2%." 
    124124"IP Filtering" ---> "IP Filtracija" 
    125125"IP filter disabled" ---> "IP-filter izključen" 
    126 "IP version 6 listen attempt failed. Not serious." --->  ???  
     126"IP version 6 listen attempt failed. Not serious." ---> "IP-v6 povez neuspeÅ¡an. nije seriozan." 
    127127"Import ipfilter.dat" ---> "Importiraj ipfilter.dat" 
    128 "Importing IP Filters..." --->  ???  
     128"Importing IP Filters..." ---> "Importiraj IP-filtr" 
    129129"Incoming" ---> "Ulazno" 
    130130"Info" ---> "Informacija" 
     
    137137"Limit the no. of half-open connections" ---> "Ograniči broj pola otvorenih mreÅŸnih poveza" 
    138138"List of Trackers." ---> "Lista svih trekera" 
    139 "Loading IP filters..." --->  ???  
     139"Loading IP filters..." ---> "Preuzmi IP-filter" 
    140140"Local connection" ---> "Lokalni povez" 
    141141"Log debug events." ---> "PiÅ¡i debug rezultate u " 
     
    145145"Message" ---> "Poruka" 
    146146"Minimize to tray." ---> "Minimiraj u " 
    147 "Move finished torrents to :" --->  ???  
    148 "Move the completed torrent to:" --->  ???  
    149 "N/A" ---> "N/A" 
    150 "NAT-PMG" --->  ???  
     147"Move finished torrents to :" ---> "Prebaci preuzete fajlove u:" 
     148"Move the completed torrent to:" ---> "Prebaci ovaj preuzeti fajl u:" 
     149"N/A" ---> "N/D" 
     150"NAT-PMG" ---> "NAT-PMG" 
    151151"NAT-PMP" --->  ???  
    152 "Name" --->  ???  
     152"Name" ---> "Ime" 
    153153"Name:" ---> "Ime:" 
    154154"New" ---> "Novi" 
    155 "None (Managed Externally)" --->  ???  
     155"None (Managed Externally)" ---> "Nikakvo (eksterno  menedÅŸiranje)" 
    156156"None" ---> "Nikakvi" 
    157157"Normal" ---> "Normalno" 
     
    161161"Ok" ---> "Uredu" 
    162162"Open &Halite" ---> "&Otvori halite" 
    163 "Open Download Folder" --->  ???  
     163"Open Download Folder" ---> "Otvori ulaznu mapu" 
    164164"Open a (single) port between : " ---> "Otvori jedan port između...:" 
    165165"Outgoing" ---> "Izlazno" 
    166 "Output File" --->  ???  
     166"Output File" ---> "Izlazni format" 
    167167"Overhead:" ---> "Neupotrebljivo:" 
    168168"Password : " ---> "Lozinka:" 
     
    184184"Port (UDP) : " ---> "Port (UDP): " 
    185185"Port : " ---> "Port:" 
    186 "Port Forwarding" --->  ???  
     186"Port Forwarding" ---> "Port produÅŸenje" 
    187187"Port to listen on : " ---> "Port:" 
    188 "Port" --->  ???  
     188"Port" ---> "Port" 
    189189"Prefer RC4" ---> "Privilegiraj RC4" 
    190190"Priority" ---> "VaÅŸnosti" 
    191 "Private" --->  ???  
     191"Private" ---> "Privatno" 
    192192"Progress" ---> "Napredak" 
    193193"Protocol Encryption" ---> "Å ifracija protokola" 
     
    201201"Rates:" ---> "Delovi:" 
    202202"Ratio (this session):" ---> "Odnos (ova sednica):" 
    203 "Ratio" --->  ???  
     203"Ratio" ---> "Odnos" 
    204204"Ratio:" ---> "Odnos:" 
    205 "Reannounce" --->  ???  
    206 "Recheck Files" --->  ???  
    207 "Remaining" --->  ???  
    208 "Remaining:" ---> "JoÅ¡ ostalo:" 
     205"Reannounce" ---> "OsveÅŸanje" 
     206"Recheck Files" ---> "Proveri opet fajlove" 
     207"Remaining" ---> "JoÅ¡ ostaje" 
     208"Remaining:" ---> "JoÅ¡ ostaje:" 
    209209"Remote Control Options" ---> "Uređaj za daljinsko koristčenje" 
    210210"Remote Control" ---> "Daljinska upotreba" 
     
    212212"Reset" ---> "Povrati" 
    213213"Resume" ---> "Nastaviti" 
    214 "Review settings when adding torrent." --->  ???  
     214"Review settings when adding torrent." ---> "Uređaj revidirati kod dodavanja torenta" 
    215215"Save" ---> "Arhiviraj" 
    216 "Saving Torrent" --->  ???  
     216"Saving Torrent" ---> "Arhiviraj fajl" 
    217217"Security" ---> "Sigurnosti" 
    218218"Seeding" ---> "NudiÅ¡" 
    219 "Seeds" --->  ???  
     219"Seeds" ---> "Seed-eri" 
    220220"Seeds:" ---> "Seed-eri:" 
    221221"Select a directory to save the downloads to. Select cancel to accept default 'incoming' location." ---> "Izaberi mapu u kojoj ÅŸeliÅ¡ da ti budu preuzeti fajlovi. Izaberi \" 
    222222"Select a directory to save the files to or cancel to not download torrent at all." ---> "Izaberi mapu u kojoj ÅŸeliÅ¡ imati skinute torente ili da prekineÅ¡ da ti se torent nepreuzima do kraja." 
    223 "Select a file or directory from which to construct the torrent." --->  ???  
    224 "Select the (TCP) port (or range) on which to listen for incoming connections." --->  ???  
     223"Select a file or directory from which to construct the torrent." ---> "Izaberi fajl ili mapu, od kojih ÅŸeliÅ¡ tornt napraviti" 
     224"Select the (TCP) port (or range) on which to listen for incoming connections." ---> "Izaberi jedan TCP-port ili viÅ¡e, preko kojih da halite prima ulazni protok" 
    225225"Send login info to trackers." ---> "Prijavi se na trekeru" 
    226226"Set Priority" ---> "VaÅŸnosti obiljeÅŸiti" 
     
    228228"Severity" ---> "VaÅŸnosti" 
    229229"Show this message in future" ---> "Nepokazuj mi ovu poruku" 
    230 "Shutting down session" --->  ???  
     230"Shutting down session" ---> "Prekini sednicu" 
    231231"Size" ---> "Veličina" 
    232232"Standard exception (%1%) thrown from %2%." ---> "Standardni izuzetak (%1%) desio se kod (%2%)" 
    233 "Start Time" --->  ???  
     233"Start Time" ---> "Početno..." 
    234234"Status" ---> "Akcija" 
    235235"Status:" ---> "Akcija:" 
    236236"Stop" ---> "Stopiraj" 
    237 "Stopped initially (Allows changing advanced setting)" --->  ???  
     237"Stopped initially (Allows changing advanced setting)" ---> "Početno stopiran (dozvoljava promenu produÅŸnog uređaja)" 
    238238"Stopped" ---> "Zaustavljen" 
    239 "Stopping Torrents" --->  ???  
     239"Stopping Torrents" ---> "Stopiraj torente" 
    240240"Stopping" ---> "Zaustavi" 
    241241"Successfully %1%." ---> "%1% uspeÅ¡no." 
    242242"Supports extensions" ---> "PodrÅŸava ekstenziju" 
    243 "Test" --->  ???  
     243"Test" ---> "Ispitak" 
    244244"The BitTorrent session could not start. Try selecting another port in the settings." ---> "Ackcija nije mogla početi, Izaberi drugi port." 
    245245"The socket infrastructure failed to start so Halite is forced to close. Please ensure no program is blocking Halites network access." --->  ???  
     
    252252"Torrent %1% finished." ---> "Torent %1% zavrÅ¡en." 
    253253"Torrent %1% paused." ---> "Torent %1% pauzira." 
    254 "Torrent (%1%) exception caught: %2% from %3%." ---> "Torent (%1%) GreÅ¡ka: (%2%) od (%3%)." 
     254"Torrent (%1%) exception caught: %2% from %3%." ---> "Torent (%1%) izuzetak uspeÅ¡no popravljen: (%2%) u (%3%)." 
    255255"Torrent Defaults" ---> "Standartno podeÅ¡avanje" 
    256256"Torrent File" ---> "Torent" 
     
    258258"Torrent and Data" ---> "IzbriÅ¡i torent i datoteku" 
    259259"Torrent connection limits:" ---> "Granična Limitacija:" 
    260 "Torrent save folder:" --->  ???  
     260"Torrent save folder:" ---> "Ulazna mapa od torenta" 
    261261"Torrent transfer rates (KB/s):" ---> "Limitacija brzine (KB/s):" 
    262262"Torrent" ---> "Torent" 
     
    272272"Tracker" ---> "Treker" 
    273273"Tracker:" ---> "Treker:" 
    274 "Trackers" --->  ???  
     274"Trackers" ---> "Trekeri" 
    275275"Transferred:" ---> "PreneÅ¡eno:" 
    276276"Type" ---> "Tip" 
    277277"UPnP" --->  ???  
    278278"URL Seed %2%, %3%. (%1%)" ---> "URL Seed %2%, %3%. (%1%)" 
    279 "URL" --->  ???  
    280 "UnPlug and Play" --->  ???  
     279"URL" ---> "URL" 
     280"UnPlug and Play" ---> "Izdvoji i pokaÅŸi" 
    281281"Unicode exception: %1%." ---> "Unicode izuzetak: %1%." 
    282282"Up" ---> "Izlazna" 
     
    284284"Upload Rate (KB/s) :" ---> "Brzina izlaznog protoka (KB/s):" 
    285285"Upload" ---> "OdpremljaÅ¡" 
    286 "Uploaded" --->  ???  
     286"Uploaded" ---> "Spremno za nudenje" 
    287287"Use Compact Allocation." ---> "Upotrebi kompaktno dodavanje" 
    288288"Use a proxy." ---> "Upotrebi Proksi-servera" 
    289 "User canceled Torrent file creation" --->  ???  
     289"User canceled Torrent file creation" ---> "Korisnik je prekino pravljene torenta" 
    290290"Username : " ---> "Korisnik:" 
    291291"Warning" ---> "Upozorenje" 
    292292"Web Seed" ---> "Web Seed" 
    293 "Web Seeds and DHT Nodes" --->  ???  
     293"Web Seeds and DHT Nodes" ---> "Weeb-seed i DHT-čvorovi" 
    294294"Xml Exception (%1%) with %2%." ---> "XML GreÅ¡ka (%1%) kod (%2%)" 
    295295"\r\0" --->  ???  
    296 "libTorrrent based client." ---> "Na " 
     296"libTorrrent based client." ---> "Na libTorrent-u baziran klijent" 
    297297"resource.h\0" --->  ???  
    298298"to" ---> "Do" 
    299 "∞" ---> "∞" 
     299"∞" ---> "-" 
  • trunk/lang/Turkish.txt

    r496 r503  
    11"English" ---> "TÃŒrkçe" 
    2 "English.rtf" ---> "TÃŒrkçe.rtf" 
     2"English.rtf" ---> "../lang/Turkish.rtf" 
    33" %2%" --->  ???  
    44"%1$.2fKB/s down - %2$.2fKB/s up" ---> "%1$.2fKB/s indir. - %2$.2fKB/s gönd." 
  • trunk/sln/HalWiX/HalWiX.wixproj

    r472 r503  
    142142  </PropertyGroup> 
    143143  <ItemGroup> 
    144     <WixExtension Include="D:\Program Files (x86)\Windows Installer XML v3\bin\WixUIExtension.dll" /> 
     144    <WixExtension Include="C:\Program Files (x86)\Windows Installer XML v3\bin\WixUIExtension.dll" /> 
    145145  </ItemGroup> 
    146146  <ItemGroup> 
  • trunk/sln/Halite/Halite.vcproj

    r495 r503  
    11691169                                </File> 
    11701170                                <File 
     1171                                        RelativePath="..\..\src\WTLx\ListViewIterators.hpp" 
     1172                                        > 
     1173                                </File> 
     1174                                <File 
    11711175                                        RelativePath="..\..\src\WTLx\NTray.hpp" 
    11721176                                        > 
  • trunk/src/Halite.hpp

    r491 r503  
    9898                dll_(L"") 
    9999        { 
     100                hal::event_log.init(); 
    100101                load_from_ini(); 
    101102        } 
  • trunk/src/HaliteListView.cpp

    r492 r503  
    154154LRESULT HaliteListViewCtrl::OnRemove(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled) 
    155155{ 
    156         std::for_each(manager().allSelected().begin(), manager().allSelected().end(), 
    157                 bind((void (hal::bit::*)(const std::wstring&))&hal::bit::remove_torrent,  
    158                         &hal::bittorrent(), _1)); 
    159  
    160         clearSelected();         
     156        foreach(const list_value_type& val, std::make_pair(is_selected_begin(), is_selected_end())) 
     157        { 
     158                hal::bittorrent().remove_torrent(val.text().c_str()); 
     159        } 
     160        clearSelected(); 
     161 
    161162        return 0; 
    162163} 
  • trunk/src/HaliteSortListViewCtrl.hpp

    r492 r503  
    3030 
    3131#include "WTLx/SelectionManager.hpp" 
     32#include "WTLx/ListViewIterators.hpp" 
    3233#include "HaliteUpdateLock.hpp" 
    3334 
     
    5051template <class TBase, typename adapterType=void*> 
    5152class CHaliteSortListViewCtrl :  
    52         public WTL::CSortListViewCtrlImpl<CHaliteSortListViewCtrl<TBase, adapterType> > 
     53        public WTL::CSortListViewCtrlImpl<CHaliteSortListViewCtrl<TBase, adapterType> >, 
     54        public WTLx::ListViewIterators<CHaliteSortListViewCtrl<TBase, adapterType> > 
    5355{ 
    5456public: 
     
    527529} 
    528530 
    529  
    530531namespace boost { 
    531532namespace serialization { 
    532 template <class TBase, typename adapterType> 
    533 struct version< CHaliteSortListViewCtrl<TBase, adapterType> > 
    534 { 
    535     typedef mpl::int_<2> type; 
    536     typedef mpl::integral_c_tag tag; 
    537     BOOST_STATIC_CONSTANT(unsigned int, value = version::type::value);                                                              
    538 }; 
     533        template <class TBase, typename adapterType> 
     534        struct version< CHaliteSortListViewCtrl<TBase, adapterType> > 
     535        { 
     536                typedef mpl::int_<2> type; 
     537                typedef mpl::integral_c_tag tag; 
     538                BOOST_STATIC_CONSTANT(unsigned int, value = version::type::value);                                                              
     539        }; 
    539540} 
    540541} 
  • trunk/src/SplashDialog.hpp

    r495 r503  
    113113 
    114114                hal::bittorrent().stopEventReceiver(); 
    115                 Sleep(3000); 
    116  
    117115                hal::bittorrent().shutDownSession(); 
    118116                 
  • trunk/src/halEvent.cpp

    r478 r503  
    4141 
    4242event_logger::event_logger() 
     43{ 
     44        init(); 
     45} 
     46 
     47void event_logger::init() 
    4348{ 
    4449        if (!s_event_impl) 
  • trunk/src/halEvent.hpp

    r479 r503  
    6868        ~event_logger(); 
    6969 
     70        void init(); 
     71 
    7072        bool is_active() { return pimpl_; } 
    7173 
  • trunk/src/halSession.cpp

    r496 r503  
    88 
    99#define TORRENT_MAX_ALERT_TYPES 32 
     10 
     11#include <boost/utility/in_place_factory.hpp> 
     12#include <boost/none.hpp> 
    1013 
    1114#include <libtorrent/alert_types.hpp> 
     
    2730namespace hal 
    2831{ 
     32 
     33bit_impl::bit_impl() : 
     34        session_(libt::fingerprint(HALITE_FINGERPRINT)), 
     35        keepChecking_(false), 
     36        bittorrentIni(L"BitTorrent.xml"), 
     37        the_torrents_(bittorrentIni), 
     38        defTorrentMaxConn_(-1), 
     39        defTorrentMaxUpload_(-1), 
     40        defTorrentDownload_(-1), 
     41        defTorrentUpload_(-1), 
     42        ip_filter_on_(false), 
     43        ip_filter_loaded_(false), 
     44        ip_filter_changed_(false), 
     45        ip_filter_count_(0), 
     46        dht_on_(false) 
     47{ 
     48        torrent_internal::the_session_ = &session_; 
     49        torrent_internal::workingDir_ = workingDir(); 
     50         
     51        session_.set_severity_level(libt::alert::debug);                 
     52        session_.add_extension(&libt::create_metadata_plugin); 
     53        session_.add_extension(&libt::create_ut_pex_plugin); 
     54        session_.set_max_half_open_connections(10); 
     55         
     56        hal::event_log.post(shared_ptr<hal::EventDetail>( 
     57                new hal::EventMsg(L"Loading BitTorrent.xml.", hal::event_logger::info)));                
     58        bittorrentIni.load_data(); 
     59        hal::event_log.post(shared_ptr<hal::EventDetail>( 
     60                new hal::EventMsg(L"Loading torrent parameters.", hal::event_logger::info)));    
     61        the_torrents_.load_from_ini(); 
     62        hal::event_log.post(shared_ptr<hal::EventDetail>( 
     63                new hal::EventMsg(L"Loading done!", hal::event_logger::info))); 
     64         
     65        try 
     66        {                                                
     67        if (fs::exists(workingDirectory/L"Torrents.xml")) 
     68        { 
     69                { 
     70                fs::wifstream ifs(workingDirectory/L"Torrents.xml"); 
     71         
     72                event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Loading old Torrents.xml"))); 
     73         
     74                TorrentMap torrents; 
     75                boost::archive::xml_wiarchive ia(ifs);   
     76                ia >> boost::serialization::make_nvp("torrents", torrents); 
     77                 
     78                the_torrents_ = torrents; 
     79                } 
     80                 
     81                event_log.post(shared_ptr<EventDetail>(new EventMsg( 
     82                        wformat(L"Total %1%.") % the_torrents_.size())));                                
     83                 
     84                fs::rename(workingDirectory/L"Torrents.xml", workingDirectory/L"Torrents.xml.safe.to.delete"); 
     85        }                        
     86        } 
     87        catch(const std::exception& e) 
     88        { 
     89                event_log.post(shared_ptr<EventDetail>( 
     90                        new EventStdException(event_logger::fatal, e, L"Loading Old Torrents.xml"))); 
     91        }                
     92                         
     93        if (exists(workingDirectory/L"DHTState.bin")) 
     94        { 
     95                try 
     96                { 
     97                        dht_state_ = haldecode(workingDirectory/L"DHTState.bin"); 
     98                }                
     99                catch(const std::exception& e) 
     100                { 
     101                        event_log.post(shared_ptr<EventDetail>( 
     102                                new EventStdException(event_logger::critical, e, L"Loading DHTState.bin"))); 
     103                } 
     104        } 
     105         
     106        {       libt::session_settings settings = session_.settings(); 
     107                settings.user_agent = string("Halite ") + HALITE_VERSION_STRING; 
     108                session_.set_settings(settings); 
     109        } 
     110         
     111        start_alert_handler(); 
     112} 
     113 
     114bit_impl::~bit_impl() 
     115{ 
     116        stop_alert_handler(); 
     117         
     118        //save_torrent_data(); 
     119         
     120        try 
     121        { 
     122         
     123        if (ip_filter_changed_) 
     124        {        
     125                fs::ofstream ofs(workingDirectory/L"IPFilter.bin", std::ios::binary); 
     126//                      boost::archive::binary_oarchive oba(ofs); 
     127                 
     128                libt::ip_filter::filter_tuple_t vectors = ip_filter_.export_filter();    
     129                 
     130                std::vector<libt::ip_range<asio::ip::address_v4> > v4(vectors.get<0>()); 
     131                std::vector<libt::ip_range<asio::ip::address_v6> > v6(vectors.get<1>()); 
     132                 
     133                v4.erase(std::remove(v4.begin(), v4.end(), 0), v4.end()); 
     134                v6.erase(std::remove(v6.begin(), v6.end(), 0), v6.end()); 
     135 
     136                write_vec_range(ofs, v4); 
     137//                      write_vec_range(ofs, v6); 
     138        }        
     139        } 
     140        catch(std::exception& e) 
     141        { 
     142                hal::event_log.post(boost::shared_ptr<hal::EventDetail>( 
     143                        new hal::EventStdException(event_logger::critical, e, L"~BitTorrent_impl")));  
     144        } 
     145} 
    29146 
    30147void bit_impl::ip_filter_count() 
     
    162279} 
    163280 
     281void bit_impl::start_alert_handler() 
     282{ 
     283        mutex_t::scoped_lock l(mutex_); 
     284 
     285        boost::function<void (void)> f = bind(&bit_impl::alert_handler, this); 
     286 
     287        keepChecking_ = true; 
     288        alert_checker_ = boost::in_place<boost::function<void (void)> >(bind(&bit_impl::alert_handler, this)); 
     289} 
     290         
    164291void bit_impl::stop_alert_handler() 
    165292{ 
     
    167294 
    168295        keepChecking_ = false; 
     296 
     297        if (alert_checker_) 
     298        { 
     299                alert_checker_->interrupt(); 
     300                alert_checker_ = boost::none; 
     301        } 
    169302} 
    170303         
    171304void bit_impl::alert_handler() 
    172305{ 
    173         mutex_t::scoped_lock l(mutex_); 
    174  
    175         if (keepChecking_) 
     306        while (keepChecking_) 
    176307        { 
    177308         
     
    442573                try 
    443574                { 
     575                mutex_t::scoped_lock l(mutex_); 
    444576                 
    445577                libt::handle_alert< 
     
    482614                 
    483615                p_alert = session_.pop_alert(); 
    484         } 
    485          
    486         timer_.expires_from_now(boost::posix_time::seconds(2)); 
    487         timer_.async_wait(bind(&bit_impl::alert_handler, this)); 
    488         } 
    489 } 
    490  
    491 } 
     616 
     617                boost::this_thread::sleep(boost::posix_time::seconds(5)); 
     618        }        
     619         
     620        } 
     621} 
     622 
     623} 
  • trunk/src/halSession.hpp

    r491 r503  
    4040namespace serialization { 
    4141 
    42 #define IP_SAVE  3 
    43  
    4442template<class Archive, class address_type> 
    4543void save(Archive& ar, const address_type& ip, const unsigned int version) 
    4644{        
    47 #if IP_SAVE == 1 
    48         typename address_type::bytes_type bytes = ip.to_bytes();         
    49         for (typename address_type::bytes_type::iterator i=bytes.begin(); i != bytes.end(); ++i) 
    50                 ar & BOOST_SERIALIZATION_NVP(*i); 
    51 #elif IP_SAVE == 2 
    52         string dotted = ip.to_string();  
    53         ar & BOOST_SERIALIZATION_NVP(dotted); 
    54 #elif IP_SAVE == 3 
    5545        unsigned long addr = ip.to_ulong();      
    5646        ar & BOOST_SERIALIZATION_NVP(addr); 
    57 #endif 
    5847} 
    5948 
     
    6150void load(Archive& ar, address_type& ip, const unsigned int version) 
    6251{        
    63 #if IP_SAVE == 1 
    64         typename address_type::bytes_type bytes;         
    65         for (typename address_type::bytes_type::iterator i=bytes.begin(); i != bytes.end(); ++i) 
    66                 ar & BOOST_SERIALIZATION_NVP(*i);        
    67         ip = address_type(bytes); 
    68 #elif IP_SAVE == 2       
    69         string dotted; 
    70         ar & BOOST_SERIALIZATION_NVP(dotted);    
    71         ip = address_type::from_string(dotted); 
    72 #elif IP_SAVE == 3 
    7352        unsigned long addr; 
    7453        ar & BOOST_SERIALIZATION_NVP(addr);      
    7554        ip = address_type(addr); 
    76 #endif 
    7755} 
    7856 
     
    9775        Archive & ar, 
    9876        boost::filesystem::basic_path<String, Traits>& p, 
    99         const unsigned int file_version 
    100 ){ 
     77        const unsigned int file_version) 
     78{ 
    10179        split_free(ar, p, file_version);             
    10280} 
     
    232210{ 
    233211        friend class bit; 
    234          
    235 public: 
    236          
    237         ~bit_impl() 
    238         { 
    239                 stop_alert_handler(); 
    240                  
    241                 //save_torrent_data(); 
    242                  
    243                 try 
    244                 { 
    245                  
    246                 if (ip_filter_changed_) 
    247                 {        
    248                         fs::ofstream ofs(workingDirectory/L"IPFilter.bin", std::ios::binary); 
    249 //                      boost::archive::binary_oarchive oba(ofs); 
    250                          
    251                         libt::ip_filter::filter_tuple_t vectors = ip_filter_.export_filter();    
    252                          
    253                         std::vector<libt::ip_range<asio::ip::address_v4> > v4(vectors.get<0>()); 
    254                         std::vector<libt::ip_range<asio::ip::address_v6> > v6(vectors.get<1>()); 
    255                          
    256                         v4.erase(std::remove(v4.begin(), v4.end(), 0), v4.end()); 
    257                         v6.erase(std::remove(v6.begin(), v6.end(), 0), v6.end()); 
    258  
    259                         write_vec_range(ofs, v4); 
    260 //                      write_vec_range(ofs, v6); 
    261                 }        
    262                 } 
    263                 catch(std::exception& e) 
    264                 { 
    265                         hal::event_log.post(boost::shared_ptr<hal::EventDetail>( 
    266                                 new hal::EventStdException(event_logger::critical, e, L"~BitTorrent_impl")));  
    267                 } 
    268         } 
     212 
     213private: 
     214        bit_impl();      
     215public:  
     216        ~bit_impl(); 
    269217 
    270218        bool listen_on(std::pair<int, int> const& range) 
     
    594542        signals; 
    595543 
     544        void start_alert_handler(); 
    596545        void stop_alert_handler(); 
    597546        void alert_handler(); 
     
    913862 
    914863private: 
    915         bit_impl() : 
    916                 session_(libt::fingerprint(HALITE_FINGERPRINT)), 
    917                 timer_(io_), 
    918                 keepChecking_(false), 
    919                 bittorrentIni(L"BitTorrent.xml"), 
    920                 the_torrents_(bittorrentIni), 
    921                 defTorrentMaxConn_(-1), 
    922                 defTorrentMaxUpload_(-1), 
    923                 defTorrentDownload_(-1), 
    924                 defTorrentUpload_(-1), 
    925                 ip_filter_on_(false), 
    926                 ip_filter_loaded_(false), 
    927                 ip_filter_changed_(false), 
    928                 ip_filter_count_(0), 
    929                 dht_on_(false) 
    930         { 
    931                 torrent_internal::the_session_ = &session_; 
    932                 torrent_internal::workingDir_ = workingDir(); 
    933                  
    934                 session_.set_severity_level(libt::alert::debug);                 
    935                 session_.add_extension(&libt::create_metadata_plugin); 
    936                 session_.add_extension(&libt::create_ut_pex_plugin); 
    937                 session_.set_max_half_open_connections(10); 
    938                  
    939                 hal::event_log.post(shared_ptr<hal::EventDetail>( 
    940                         new hal::EventMsg(L"Loading BitTorrent.xml.", hal::event_logger::info)));                
    941                 bittorrentIni.load_data(); 
    942                 hal::event_log.post(shared_ptr<hal::EventDetail>( 
    943                         new hal::EventMsg(L"Loading torrent parameters.", hal::event_logger::info)));    
    944                 the_torrents_.load_from_ini(); 
    945                 hal::event_log.post(shared_ptr<hal::EventDetail>( 
    946                         new hal::EventMsg(L"Loading done!", hal::event_logger::info))); 
    947                  
    948                 try 
    949                 {                                                
    950                 if (fs::exists(workingDirectory/L"Torrents.xml")) 
    951                 { 
    952                         { 
    953                         fs::wifstream ifs(workingDirectory/L"Torrents.xml"); 
    954                  
    955                         event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Loading old Torrents.xml"))); 
    956                  
    957                         TorrentMap torrents; 
    958                         boost::archive::xml_wiarchive ia(ifs);   
    959                         ia >> boost::serialization::make_nvp("torrents", torrents); 
    960                          
    961                         the_torrents_ = torrents; 
    962                         } 
    963                          
    964                         event_log.post(shared_ptr<EventDetail>(new EventMsg( 
    965                                 wformat(L"Total %1%.") % the_torrents_.size())));                                
    966                          
    967                         fs::rename(workingDirectory/L"Torrents.xml", workingDirectory/L"Torrents.xml.safe.to.delete"); 
    968                 }                        
    969                 } 
    970                 catch(const std::exception& e) 
    971                 { 
    972                         event_log.post(shared_ptr<EventDetail>( 
    973                                 new EventStdException(event_logger::fatal, e, L"Loading Old Torrents.xml"))); 
    974                 }                
    975                                  
    976                 if (exists(workingDirectory/L"DHTState.bin")) 
    977                 { 
    978                         try 
    979                         { 
    980                                 dht_state_ = haldecode(workingDirectory/L"DHTState.bin"); 
    981                         }                
    982                         catch(const std::exception& e) 
    983                         { 
    984                                 event_log.post(shared_ptr<EventDetail>( 
    985                                         new EventStdException(event_logger::critical, e, L"Loading DHTState.bin"))); 
    986                         } 
    987                 } 
    988                  
    989                 {       libt::session_settings settings = session_.settings(); 
    990                         settings.user_agent = string("Halite ") + HALITE_VERSION_STRING; 
    991                         session_.set_settings(settings); 
    992                 } 
    993                  
    994                 timer_.expires_from_now(boost::posix_time::seconds(5)); 
    995                 timer_.async_wait(bind(&bit_impl::alert_handler, this)); 
    996         } 
    997864 
    998865        bool create_torrent(const create_torrent_params& params, fs::wpath out_file, progress_callback fn) 
     
    1089956        mutable mutex_t mutex_; 
    1090957 
    1091         asio::io_service io_; 
    1092         asio::deadline_timer timer_; 
     958        boost::optional<thread_t> alert_checker_; 
    1093959        bool keepChecking_; 
    1094960         
  • trunk/src/halTorrent.cpp

    r482 r503  
    784784void bit::startEventReceiver() 
    785785{ 
    786         pimpl->keepChecking_ = true; 
    787         thread_t(bind(&asio::io_service::run, &pimpl->io_)); 
     786        event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Starting event handler."))); 
     787 
     788        pimpl->start_alert_handler(); 
    788789} 
    789790 
    790791void bit::stopEventReceiver() 
    791792{ 
    792         event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Stopping event Handler."))); 
     793        event_log.post(shared_ptr<EventDetail>(new EventMsg(L"Stopping event handler."))); 
    793794 
    794795        pimpl->stop_alert_handler(); 
  • trunk/src/halTypes.hpp

    r484 r503  
    2525 
    2626        typedef boost::int64_t size_type; 
    27         typedef boost::mutex mutex_t; 
     27        typedef boost::recursive_mutex mutex_t; 
    2828        typedef boost::thread thread_t; 
    2929 
Note: See TracChangeset for help on using the changeset viewer.