refactor: port libtransmission to C++ (#1787)
Port libtransmission to C++. This PR doesn't refactor everything to c++. Its code changes are only what was necessary to compile and link as c++. See libtransmission/README.md for details on how to submit modernization patches! Co-authored-by: Mike Gelfand <mikedld@mikedld.com>
This commit is contained in:
parent
a459e5e11b
commit
4c1b627647
|
@ -297,6 +297,7 @@ set(THIRD_PARTY_DIR ${CMAKE_SOURCE_DIR}/third-party)
|
|||
if(WIN32)
|
||||
tr_add_external_auto_library(EVENT2 libevent event
|
||||
CMAKE_ARGS
|
||||
"-DEVENT__DISABLE_OPENSSL:BOOL=ON"
|
||||
"-DEVENT__DISABLE_SAMPLES:BOOL=ON"
|
||||
"-DEVENT__LIBRARY_TYPE:STRING=STATIC")
|
||||
else()
|
||||
|
@ -440,7 +441,6 @@ else()
|
|||
-Wint-in-bool-context
|
||||
-Wlogical-op
|
||||
-Wmissing-format-attribute
|
||||
-Wnested-externs
|
||||
-Wnull-dereference
|
||||
-Wpointer-arith
|
||||
-Wredundant-decls
|
||||
|
@ -455,7 +455,6 @@ else()
|
|||
-Wshadow
|
||||
-Wsign-compare
|
||||
-Wsometimes-uninitialized
|
||||
-Wstrict-prototypes
|
||||
-Wstring-conversion
|
||||
-Wsuggest-destructor-override
|
||||
-Wsuggest-override
|
||||
|
|
|
@ -7,34 +7,34 @@
|
|||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
0A6169A70FE5C9A200C66CE6 /* bitfield.c in Sources */ = {isa = PBXBuildFile; fileRef = 0A6169A50FE5C9A200C66CE6 /* bitfield.c */; };
|
||||
0A6169A70FE5C9A200C66CE6 /* bitfield.cc in Sources */ = {isa = PBXBuildFile; fileRef = 0A6169A50FE5C9A200C66CE6 /* bitfield.cc */; };
|
||||
0A6169A80FE5C9A200C66CE6 /* bitfield.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A6169A60FE5C9A200C66CE6 /* bitfield.h */; };
|
||||
35F373030C2DA89000DAA8F2 /* FilePriorityCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 35F373010C2DA88F00DAA8F2 /* FilePriorityCell.m */; };
|
||||
3C7A11970D0B2EE300B5701F /* getgateway.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C7A11910D0B2EE300B5701F /* getgateway.c */; };
|
||||
3C7A11980D0B2EE300B5701F /* getgateway.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C7A11920D0B2EE300B5701F /* getgateway.h */; };
|
||||
3C7A11990D0B2EE300B5701F /* natpmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C7A11930D0B2EE300B5701F /* natpmp.c */; };
|
||||
3C7A119A0D0B2EE300B5701F /* natpmp.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C7A11940D0B2EE300B5701F /* natpmp.h */; };
|
||||
4394AC670C74FB6000F367E8 /* ptrarray.c in Sources */ = {isa = PBXBuildFile; fileRef = 4394AC640C74FB6000F367E8 /* ptrarray.c */; };
|
||||
4394AC670C74FB6000F367E8 /* ptrarray.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4394AC640C74FB6000F367E8 /* ptrarray.cc */; };
|
||||
4D043A7F090AE979009FEDA8 /* TransmissionDocument.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4D043A7E090AE979009FEDA8 /* TransmissionDocument.icns */; };
|
||||
4D118E1A08CB46B20033958F /* PrefsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D118E1908CB46B20033958F /* PrefsController.m */; };
|
||||
4D1838DD09DEC0E80047D688 /* libtransmission.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D18389709DEC0030047D688 /* libtransmission.a */; };
|
||||
4D364DA0091FBB2C00377D12 /* TorrentTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D364D9F091FBB2C00377D12 /* TorrentTableView.m */; };
|
||||
4D36BA6F0CA2F00800A63CA5 /* crypto.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA600CA2F00800A63CA5 /* crypto.c */; };
|
||||
4D36BA6F0CA2F00800A63CA5 /* crypto.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA600CA2F00800A63CA5 /* crypto.cc */; };
|
||||
4D36BA700CA2F00800A63CA5 /* crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA610CA2F00800A63CA5 /* crypto.h */; };
|
||||
4D36BA720CA2F00800A63CA5 /* handshake.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA630CA2F00800A63CA5 /* handshake.c */; };
|
||||
4D36BA720CA2F00800A63CA5 /* handshake.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA630CA2F00800A63CA5 /* handshake.cc */; };
|
||||
4D36BA730CA2F00800A63CA5 /* handshake.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA640CA2F00800A63CA5 /* handshake.h */; };
|
||||
4D36BA740CA2F00800A63CA5 /* peer-io.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA650CA2F00800A63CA5 /* peer-io.c */; };
|
||||
4D36BA740CA2F00800A63CA5 /* peer-io.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA650CA2F00800A63CA5 /* peer-io.cc */; };
|
||||
4D36BA750CA2F00800A63CA5 /* peer-io.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA660CA2F00800A63CA5 /* peer-io.h */; };
|
||||
4D36BA770CA2F00800A63CA5 /* peer-mgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA680CA2F00800A63CA5 /* peer-mgr.c */; };
|
||||
4D36BA770CA2F00800A63CA5 /* peer-mgr.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA680CA2F00800A63CA5 /* peer-mgr.cc */; };
|
||||
4D36BA780CA2F00800A63CA5 /* peer-mgr.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA690CA2F00800A63CA5 /* peer-mgr.h */; };
|
||||
4D36BA790CA2F00800A63CA5 /* peer-msgs.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA6A0CA2F00800A63CA5 /* peer-msgs.c */; };
|
||||
4D36BA790CA2F00800A63CA5 /* peer-msgs.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA6A0CA2F00800A63CA5 /* peer-msgs.cc */; };
|
||||
4D36BA7A0CA2F00800A63CA5 /* peer-msgs.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA6B0CA2F00800A63CA5 /* peer-msgs.h */; };
|
||||
4D36BA7B0CA2F00800A63CA5 /* ptrarray.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA6C0CA2F00800A63CA5 /* ptrarray.h */; };
|
||||
4D3EA0AA08AE13C600EA10C2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D3EA0A908AE13C600EA10C2 /* IOKit.framework */; };
|
||||
4D4ADFC70DA1631500A68297 /* blocklist.c in Sources */ = {isa = PBXBuildFile; fileRef = A2D3078E0D9EC45F0051FD27 /* blocklist.c */; };
|
||||
4D8017EA10BBC073008A4AF2 /* torrent-magnet.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D8017E810BBC073008A4AF2 /* torrent-magnet.c */; };
|
||||
4D4ADFC70DA1631500A68297 /* blocklist.cc in Sources */ = {isa = PBXBuildFile; fileRef = A2D3078E0D9EC45F0051FD27 /* blocklist.cc */; };
|
||||
4D8017EA10BBC073008A4AF2 /* torrent-magnet.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D8017E810BBC073008A4AF2 /* torrent-magnet.cc */; };
|
||||
4D8017EB10BBC073008A4AF2 /* torrent-magnet.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D8017E910BBC073008A4AF2 /* torrent-magnet.h */; };
|
||||
4D80185910BBC0B0008A4AF2 /* magnet.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D80185710BBC0B0008A4AF2 /* magnet.c */; };
|
||||
4D80185910BBC0B0008A4AF2 /* magnet.cc in Sources */ = {isa = PBXBuildFile; fileRef = 4D80185710BBC0B0008A4AF2 /* magnet.cc */; };
|
||||
4D80185A10BBC0B0008A4AF2 /* magnet.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D80185810BBC0B0008A4AF2 /* magnet.h */; };
|
||||
4D9A2BF009E16D21002D0FF9 /* libtransmission.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D18389709DEC0030047D688 /* libtransmission.a */; };
|
||||
4DB74F080E8CD75100AEB1A8 /* wildmat.c in Sources */ = {isa = PBXBuildFile; fileRef = 4DB74F070E8CD75100AEB1A8 /* wildmat.c */; };
|
||||
|
@ -48,7 +48,7 @@
|
|||
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
|
||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||
A200B9200A22798F007BBB1E /* InfoWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A200B83A0A2263BA007BBB1E /* InfoWindowController.m */; };
|
||||
A201527E0D1C270F0081714F /* torrent-ctor.c in Sources */ = {isa = PBXBuildFile; fileRef = A20152790D1C26EB0081714F /* torrent-ctor.c */; };
|
||||
A201527E0D1C270F0081714F /* torrent-ctor.cc in Sources */ = {isa = PBXBuildFile; fileRef = A20152790D1C26EB0081714F /* torrent-ctor.cc */; };
|
||||
A20162C913DE48BF00E15488 /* receivedata.c in Sources */ = {isa = PBXBuildFile; fileRef = A20162C713DE48BF00E15488 /* receivedata.c */; };
|
||||
A20162CA13DE48BF00E15488 /* receivedata.h in Headers */ = {isa = PBXBuildFile; fileRef = A20162C813DE48BF00E15488 /* receivedata.h */; };
|
||||
A20162CD13DE497000E15488 /* portlistingparse.c in Sources */ = {isa = PBXBuildFile; fileRef = A20162CB13DE497000E15488 /* portlistingparse.c */; };
|
||||
|
@ -86,7 +86,7 @@
|
|||
A209EBF91142FEEE002B02D1 /* InfoOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A209EBF81142FEEE002B02D1 /* InfoOptionsViewController.m */; };
|
||||
A209EC12114301C6002B02D1 /* InfoOptionsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A209EC11114301C6002B02D1 /* InfoOptionsView.xib */; };
|
||||
A209ECA2114319C3002B02D1 /* InfoWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A209ECA1114319C3002B02D1 /* InfoWindow.xib */; };
|
||||
A209EE5C1144B51E002B02D1 /* history.c in Sources */ = {isa = PBXBuildFile; fileRef = A209EE5A1144B51E002B02D1 /* history.c */; };
|
||||
A209EE5C1144B51E002B02D1 /* history.cc in Sources */ = {isa = PBXBuildFile; fileRef = A209EE5A1144B51E002B02D1 /* history.cc */; };
|
||||
A209EE5D1144B51E002B02D1 /* history.h in Headers */ = {isa = PBXBuildFile; fileRef = A209EE5B1144B51E002B02D1 /* history.h */; };
|
||||
A20BFFB70D091CC700CE5D2B /* ToolbarSegmentedCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A20BFFB60D091CC700CE5D2B /* ToolbarSegmentedCell.m */; };
|
||||
A21282A80CA6C66800EAEE0F /* StatusBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = A21282A60CA6C66800EAEE0F /* StatusBarView.m */; };
|
||||
|
@ -97,9 +97,9 @@
|
|||
A21F15AC11729A8B00CF5A9C /* AddMagnetWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A21F15AA11729A8B00CF5A9C /* AddMagnetWindowController.m */; };
|
||||
A21F15AD11729A9F00CF5A9C /* AddMagnetWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A21F1538117299F100CF5A9C /* AddMagnetWindow.xib */; };
|
||||
A21FBBAB0EDA78C300BC3C51 /* bandwidth.h in Headers */ = {isa = PBXBuildFile; fileRef = A21FBBA90EDA78C300BC3C51 /* bandwidth.h */; };
|
||||
A21FBBAC0EDA78C300BC3C51 /* bandwidth.c in Sources */ = {isa = PBXBuildFile; fileRef = A21FBBAA0EDA78C300BC3C51 /* bandwidth.c */; };
|
||||
A21FBBAC0EDA78C300BC3C51 /* bandwidth.cc in Sources */ = {isa = PBXBuildFile; fileRef = A21FBBAA0EDA78C300BC3C51 /* bandwidth.cc */; };
|
||||
A220AF7B13D7CC460035C512 /* GlobalOptionsPopover.xib in Resources */ = {isa = PBXBuildFile; fileRef = A220AF7913D7CC460035C512 /* GlobalOptionsPopover.xib */; };
|
||||
A220EC5B118C8A060022B4BE /* tr-lpd.c in Sources */ = {isa = PBXBuildFile; fileRef = A220EC59118C8A060022B4BE /* tr-lpd.c */; };
|
||||
A220EC5B118C8A060022B4BE /* tr-lpd.cc in Sources */ = {isa = PBXBuildFile; fileRef = A220EC59118C8A060022B4BE /* tr-lpd.cc */; };
|
||||
A220EC5C118C8A060022B4BE /* tr-lpd.h in Headers */ = {isa = PBXBuildFile; fileRef = A220EC5A118C8A060022B4BE /* tr-lpd.h */; };
|
||||
A22180980D148A71007D09ED /* GroupsPrefsController.m in Sources */ = {isa = PBXBuildFile; fileRef = A22180970D148A71007D09ED /* GroupsPrefsController.m */; };
|
||||
A221DCC8104B3660008A642D /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A221DCC7104B3660008A642D /* Quartz.framework */; };
|
||||
|
@ -121,7 +121,7 @@
|
|||
A22B00B3116A9EA4003315FC /* connecthostport.c in Sources */ = {isa = PBXBuildFile; fileRef = A22B00AE116A9E90003315FC /* connecthostport.c */; };
|
||||
A22BAE281388040500FB022F /* NSMutableArrayAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A22BAE271388040500FB022F /* NSMutableArrayAdditions.m */; };
|
||||
A22CFB820FB66EF30009BD3E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A22CFB810FB66EF30009BD3E /* Carbon.framework */; };
|
||||
A22CFCA80FC24ED80009BD3E /* tr-dht.c in Sources */ = {isa = PBXBuildFile; fileRef = A22CFCA60FC24ED80009BD3E /* tr-dht.c */; };
|
||||
A22CFCA80FC24ED80009BD3E /* tr-dht.cc in Sources */ = {isa = PBXBuildFile; fileRef = A22CFCA60FC24ED80009BD3E /* tr-dht.cc */; };
|
||||
A22CFCA90FC24ED80009BD3E /* tr-dht.h in Headers */ = {isa = PBXBuildFile; fileRef = A22CFCA70FC24ED80009BD3E /* tr-dht.h */; };
|
||||
A22CFCC20FC24F890009BD3E /* dht.h in Headers */ = {isa = PBXBuildFile; fileRef = A22CFCC00FC24F890009BD3E /* dht.h */; };
|
||||
A22CFCC30FC24F890009BD3E /* dht.c in Sources */ = {isa = PBXBuildFile; fileRef = A22CFCC10FC24F890009BD3E /* dht.c */; };
|
||||
|
@ -133,22 +133,22 @@
|
|||
A233BD330D8C6585007EE7B4 /* MessageWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A233BD320D8C6585007EE7B4 /* MessageWindow.xib */; };
|
||||
A233BD690D8CF2C7007EE7B4 /* StatsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A233BD680D8CF2C7007EE7B4 /* StatsWindow.xib */; };
|
||||
A234EA541453563B000F3E97 /* NSImageAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A234EA531453563B000F3E97 /* NSImageAdditions.m */; };
|
||||
A23547E211CD0B090046EAE6 /* cache.c in Sources */ = {isa = PBXBuildFile; fileRef = A23547E011CD0B090046EAE6 /* cache.c */; };
|
||||
A23547E211CD0B090046EAE6 /* cache.cc in Sources */ = {isa = PBXBuildFile; fileRef = A23547E011CD0B090046EAE6 /* cache.cc */; };
|
||||
A23547E311CD0B090046EAE6 /* cache.h in Headers */ = {isa = PBXBuildFile; fileRef = A23547E111CD0B090046EAE6 /* cache.h */; };
|
||||
A2385DD40BFE06C800B24EF6 /* DragOverlayWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A2385DD20BFE06C800B24EF6 /* DragOverlayWindow.m */; };
|
||||
A238D49F21CDA1A5006B03EA /* InfoTabMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = A238D49E21CDA1A5006B03EA /* InfoTabMatrix.m */; };
|
||||
A23F29A1132A447400E9A83B /* announcer-common.h in Headers */ = {isa = PBXBuildFile; fileRef = A23F299F132A447400E9A83B /* announcer-common.h */; };
|
||||
A23F29A2132A447400E9A83B /* announcer-http.c in Sources */ = {isa = PBXBuildFile; fileRef = A23F29A0132A447400E9A83B /* announcer-http.c */; };
|
||||
A23F29A2132A447400E9A83B /* announcer-http.cc in Sources */ = {isa = PBXBuildFile; fileRef = A23F29A0132A447400E9A83B /* announcer-http.cc */; };
|
||||
A23F4FF20D1D98AD002FCB97 /* PrefsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A23F4FF00D1D98AD002FCB97 /* PrefsWindow.xib */; };
|
||||
A23F50020D1D99D7002FCB97 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = A23F50000D1D99D7002FCB97 /* MainMenu.xib */; };
|
||||
A23F526F0F14395900AA02E3 /* PredicateEditorRowTemplateAny.m in Sources */ = {isa = PBXBuildFile; fileRef = A23F526E0F14395900AA02E3 /* PredicateEditorRowTemplateAny.m */; };
|
||||
A23FAE54178BC2950053DC5B /* platform-quota.c in Sources */ = {isa = PBXBuildFile; fileRef = A23FAE52178BC2950053DC5B /* platform-quota.c */; };
|
||||
A23FAE54178BC2950053DC5B /* platform-quota.cc in Sources */ = {isa = PBXBuildFile; fileRef = A23FAE52178BC2950053DC5B /* platform-quota.cc */; };
|
||||
A23FAE55178BC2950053DC5B /* platform-quota.h in Headers */ = {isa = PBXBuildFile; fileRef = A23FAE53178BC2950053DC5B /* platform-quota.h */; };
|
||||
A242AD9315F05D23002B3A6C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A242AD9115F05D23002B3A6C /* Localizable.strings */; };
|
||||
A2451E6916ACE4EB00586E0E /* FileRenameSheetController.m in Sources */ = {isa = PBXBuildFile; fileRef = A2451E6716ACE4EB00586E0E /* FileRenameSheetController.m */; };
|
||||
A2451E6A16ACE4EB00586E0E /* FileRenameSheetController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A2451E6816ACE4EB00586E0E /* FileRenameSheetController.xib */; };
|
||||
A24621410C769D0900088E81 /* trevent.h in Headers */ = {isa = PBXBuildFile; fileRef = A24621350C769CF400088E81 /* trevent.h */; };
|
||||
A24621420C769D0900088E81 /* trevent.c in Sources */ = {isa = PBXBuildFile; fileRef = A24621360C769CF400088E81 /* trevent.c */; };
|
||||
A24621420C769D0900088E81 /* trevent.cc in Sources */ = {isa = PBXBuildFile; fileRef = A24621360C769CF400088E81 /* trevent.cc */; };
|
||||
A247A443114C701800547DFC /* InfoViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A247A442114C701800547DFC /* InfoViewController.h */; };
|
||||
A24F19080A3A790800C9C145 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A24F19070A3A790800C9C145 /* Sparkle.framework */; };
|
||||
A24F19210A3A796800C9C145 /* Sparkle.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = A24F19070A3A790800C9C145 /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
|
@ -158,25 +158,25 @@
|
|||
A257C1820CAD3003004E121C /* PeerTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = A257C1800CAD3003004E121C /* PeerTableView.m */; };
|
||||
A25892640CF1F7E800CCCDDF /* StatsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A25892630CF1F7E800CCCDDF /* StatsWindowController.m */; };
|
||||
A259317E0A73B2CC002F4FE7 /* TransmissionHelp in Resources */ = {isa = PBXBuildFile; fileRef = A259316A0A73B2CC002F4FE7 /* TransmissionHelp */; };
|
||||
A25964A6106D73A800453B31 /* announcer.c in Sources */ = {isa = PBXBuildFile; fileRef = A25964A4106D73A800453B31 /* announcer.c */; };
|
||||
A25964A6106D73A800453B31 /* announcer.cc in Sources */ = {isa = PBXBuildFile; fileRef = A25964A4106D73A800453B31 /* announcer.cc */; };
|
||||
A25964A7106D73A800453B31 /* announcer.h in Headers */ = {isa = PBXBuildFile; fileRef = A25964A5106D73A800453B31 /* announcer.h */; };
|
||||
A25BB02A12F4F517004B724E /* InfoTabButtonBack.m in Sources */ = {isa = PBXBuildFile; fileRef = A25BB02912F4F517004B724E /* InfoTabButtonBack.m */; };
|
||||
A25BFD69167BED3B0039D1AA /* variant-benc.c in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD63167BED3B0039D1AA /* variant-benc.c */; };
|
||||
A25BFD69167BED3B0039D1AA /* variant-benc.cc in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD63167BED3B0039D1AA /* variant-benc.cc */; };
|
||||
A25BFD6A167BED3B0039D1AA /* variant-common.h in Headers */ = {isa = PBXBuildFile; fileRef = A25BFD64167BED3B0039D1AA /* variant-common.h */; };
|
||||
A25BFD6B167BED3B0039D1AA /* variant-json.c in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD65167BED3B0039D1AA /* variant-json.c */; };
|
||||
A25BFD6D167BED3B0039D1AA /* variant.c in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD67167BED3B0039D1AA /* variant.c */; };
|
||||
A25BFD6B167BED3B0039D1AA /* variant-json.cc in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD65167BED3B0039D1AA /* variant-json.cc */; };
|
||||
A25BFD6D167BED3B0039D1AA /* variant.cc in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD67167BED3B0039D1AA /* variant.cc */; };
|
||||
A25BFD6E167BED3B0039D1AA /* variant.h in Headers */ = {isa = PBXBuildFile; fileRef = A25BFD68167BED3B0039D1AA /* variant.h */; };
|
||||
A25D2CBD0CF4C73E0096A262 /* stats.c in Sources */ = {isa = PBXBuildFile; fileRef = A25D2CBB0CF4C7190096A262 /* stats.c */; };
|
||||
A25D2CBD0CF4C73E0096A262 /* stats.cc in Sources */ = {isa = PBXBuildFile; fileRef = A25D2CBB0CF4C7190096A262 /* stats.cc */; };
|
||||
A25D2CBE0CF4C73E0096A262 /* stats.h in Headers */ = {isa = PBXBuildFile; fileRef = A25D2CBA0CF4C7190096A262 /* stats.h */; };
|
||||
A25E03D90E4015100086C225 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||
A25E03E20E4015380086C225 /* tr-getopt.h in Headers */ = {isa = PBXBuildFile; fileRef = A25E03E00E4015380086C225 /* tr-getopt.h */; };
|
||||
A25E03E30E4015380086C225 /* tr-getopt.c in Sources */ = {isa = PBXBuildFile; fileRef = A25E03E10E4015380086C225 /* tr-getopt.c */; };
|
||||
A25E03E30E4015380086C225 /* tr-getopt.cc in Sources */ = {isa = PBXBuildFile; fileRef = A25E03E10E4015380086C225 /* tr-getopt.cc */; };
|
||||
A25E74650AF5097C006F11AE /* ExpandedPathToPathTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = A25E74440AF5089E006F11AE /* ExpandedPathToPathTransformer.m */; };
|
||||
A25E74660AF5097D006F11AE /* ExpandedPathToIconTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = A25E74460AF5089E006F11AE /* ExpandedPathToIconTransformer.m */; };
|
||||
A263CFC010DD67670038DE27 /* InfoTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = A263CFBF10DD67670038DE27 /* InfoTextField.m */; };
|
||||
A2661D6112D0E8D9004F69D5 /* FilterBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2661D3B12D0E51B004F69D5 /* FilterBarView.m */; };
|
||||
A267927C130DFF2700CB7464 /* libutp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A2E38544130DFEE3001F501B /* libutp.a */; };
|
||||
A2679294130E00A000CB7464 /* tr-utp.c in Sources */ = {isa = PBXBuildFile; fileRef = A2679292130E00A000CB7464 /* tr-utp.c */; };
|
||||
A2679294130E00A000CB7464 /* tr-utp.cc in Sources */ = {isa = PBXBuildFile; fileRef = A2679292130E00A000CB7464 /* tr-utp.cc */; };
|
||||
A2679295130E00A000CB7464 /* tr-utp.h in Headers */ = {isa = PBXBuildFile; fileRef = A2679293130E00A000CB7464 /* tr-utp.h */; };
|
||||
A26AF21A0D2DA35A00FF7140 /* FileOutlineController.m in Sources */ = {isa = PBXBuildFile; fileRef = A26AF2190D2DA35A00FF7140 /* FileOutlineController.m */; };
|
||||
A26AF27E0D2DBDDF00FF7140 /* AddWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A26AF27C0D2DBDDF00FF7140 /* AddWindow.xib */; };
|
||||
|
@ -185,10 +185,10 @@
|
|||
A2725B6E0DE5C4F5003445E7 /* FileListNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A2725B6D0DE5C4F5003445E7 /* FileListNode.m */; };
|
||||
A2725D5D0DE7507C003445E7 /* TrackerTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2725D5C0DE7507C003445E7 /* TrackerTableView.m */; };
|
||||
A27F0F330E19AD9800B2DB97 /* TorrentGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = A27F0F320E19AD9800B2DB97 /* TorrentGroup.m */; };
|
||||
A284214412DA663E00FBDDBB /* tr-udp.c in Sources */ = {isa = PBXBuildFile; fileRef = A284214212DA663E00FBDDBB /* tr-udp.c */; };
|
||||
A284214412DA663E00FBDDBB /* tr-udp.cc in Sources */ = {isa = PBXBuildFile; fileRef = A284214212DA663E00FBDDBB /* tr-udp.cc */; };
|
||||
A284214512DA663E00FBDDBB /* tr-udp.h in Headers */ = {isa = PBXBuildFile; fileRef = A284214312DA663E00FBDDBB /* tr-udp.h */; };
|
||||
A28F4F770E085BDC003A3882 /* ColorTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = A28F4F760E085BDC003A3882 /* ColorTextField.m */; };
|
||||
A292A6E80DFB45FC004B9C0A /* webseed.c in Sources */ = {isa = PBXBuildFile; fileRef = A292A6E50DFB45EC004B9C0A /* webseed.c */; };
|
||||
A292A6E80DFB45FC004B9C0A /* webseed.cc in Sources */ = {isa = PBXBuildFile; fileRef = A292A6E50DFB45EC004B9C0A /* webseed.cc */; };
|
||||
A29304ED15D7465100B1F726 /* style.css in Resources */ = {isa = PBXBuildFile; fileRef = A29304EC15D7465100B1F726 /* style.css */; };
|
||||
A29304EE15D7497C00B1F726 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = A2F35BCD15C5A0A100EBF632 /* main.c */; };
|
||||
A29576030D11D63C0093B167 /* Creator.xib in Resources */ = {isa = PBXBuildFile; fileRef = A29576010D11D63C0093B167 /* Creator.xib */; };
|
||||
|
@ -200,31 +200,31 @@
|
|||
A29B0C270BD15FEF0006F230 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = A2F8951E0A2D4BA500ED2127 /* Credits.rtf */; };
|
||||
A29C8B370ACC6EB3000ED9F9 /* PortChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = A29C8B350ACC6EB3000ED9F9 /* PortChecker.m */; };
|
||||
A29D84041049C25600D1987A /* NSApplicationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A29D84031049C25600D1987A /* NSApplicationAdditions.m */; };
|
||||
A29DF8B90DB2544C00D04E5A /* resume.c in Sources */ = {isa = PBXBuildFile; fileRef = A29DF8B60DB2544C00D04E5A /* resume.c */; };
|
||||
A29DF8B90DB2544C00D04E5A /* resume.cc in Sources */ = {isa = PBXBuildFile; fileRef = A29DF8B60DB2544C00D04E5A /* resume.cc */; };
|
||||
A29DF8BA0DB2544C00D04E5A /* resume.h in Headers */ = {isa = PBXBuildFile; fileRef = A29DF8B70DB2544C00D04E5A /* resume.h */; };
|
||||
A29DF8BB0DB2544C00D04E5A /* torrent.h in Headers */ = {isa = PBXBuildFile; fileRef = A29DF8B80DB2544C00D04E5A /* torrent.h */; };
|
||||
A29DF8BE0DB2545F00D04E5A /* verify.h in Headers */ = {isa = PBXBuildFile; fileRef = A2D22A110D65EED100007D5F /* verify.h */; };
|
||||
A29E653613F1603100048D71 /* evutil_rand.c in Sources */ = {isa = PBXBuildFile; fileRef = A29E653513F1603100048D71 /* evutil_rand.c */; };
|
||||
A2A1CB7A0BF29D5500AE959F /* PeerProgressIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A2A1CB780BF29D5500AE959F /* PeerProgressIndicatorCell.m */; };
|
||||
A2A4E9210DE0F7E9000CE197 /* web.h in Headers */ = {isa = PBXBuildFile; fileRef = A29EBE530DC01FC9006CEE80 /* web.h */; };
|
||||
A2A4E9220DE0F7EB000CE197 /* web.c in Sources */ = {isa = PBXBuildFile; fileRef = A29EBE520DC01FC9006CEE80 /* web.c */; };
|
||||
A2A4E9220DE0F7EB000CE197 /* web.cc in Sources */ = {isa = PBXBuildFile; fileRef = A29EBE520DC01FC9006CEE80 /* web.cc */; };
|
||||
A2A4EA0E0DE106EB000CE197 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = A2A4EA0A0DE106E8000CE197 /* ConvertUTF.c */; };
|
||||
A2A4EA0F0DE106EE000CE197 /* ConvertUTF.h in Headers */ = {isa = PBXBuildFile; fileRef = A2A4EA0B0DE106E8000CE197 /* ConvertUTF.h */; };
|
||||
A2A6321B0CD9751700E3DA60 /* BadgeView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2A6321A0CD9751700E3DA60 /* BadgeView.m */; };
|
||||
A2A7B32A164F87D400B98C65 /* jsonsl.c in Sources */ = {isa = PBXBuildFile; fileRef = A2A7B328164F87D400B98C65 /* jsonsl.c */; };
|
||||
A2A7B32B164F87D400B98C65 /* jsonsl.h in Headers */ = {isa = PBXBuildFile; fileRef = A2A7B329164F87D400B98C65 /* jsonsl.h */; };
|
||||
A2AA579D0ADFCAB400CA59F6 /* PiecesView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2AA579B0ADFCAB400CA59F6 /* PiecesView.m */; };
|
||||
A2AA9BE1132CAC8E00FA131E /* announcer-udp.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AA9BE0132CAC8D00FA131E /* announcer-udp.c */; };
|
||||
A2AA9BE1132CAC8E00FA131E /* announcer-udp.cc in Sources */ = {isa = PBXBuildFile; fileRef = A2AA9BE0132CAC8D00FA131E /* announcer-udp.cc */; };
|
||||
A2AA9BE3132CAE2000FA131E /* evdns.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AA9BE2132CAE2000FA131E /* evdns.c */; };
|
||||
A2AAB65C0DE0CF6200E04DDA /* rpc-server.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AAB6580DE0CF6200E04DDA /* rpc-server.c */; };
|
||||
A2AAB65C0DE0CF6200E04DDA /* rpc-server.cc in Sources */ = {isa = PBXBuildFile; fileRef = A2AAB6580DE0CF6200E04DDA /* rpc-server.cc */; };
|
||||
A2AAB65D0DE0CF6200E04DDA /* rpcimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = A2AAB6590DE0CF6200E04DDA /* rpcimpl.h */; };
|
||||
A2AAB65E0DE0CF6200E04DDA /* rpc-server.h in Headers */ = {isa = PBXBuildFile; fileRef = A2AAB65A0DE0CF6200E04DDA /* rpc-server.h */; };
|
||||
A2AAB65F0DE0CF6200E04DDA /* rpcimpl.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AAB65B0DE0CF6200E04DDA /* rpcimpl.c */; };
|
||||
A2AAB65F0DE0CF6200E04DDA /* rpcimpl.cc in Sources */ = {isa = PBXBuildFile; fileRef = A2AAB65B0DE0CF6200E04DDA /* rpcimpl.cc */; };
|
||||
A2AAB6650DE0D08B00E04DDA /* blocklist.h in Headers */ = {isa = PBXBuildFile; fileRef = A2D307930D9EC4860051FD27 /* blocklist.h */; };
|
||||
A2AB76EA15D8130B009EFC95 /* libcurl.4.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A2290D2D1442B23200B95A09 /* libcurl.4.dylib */; };
|
||||
A2AB883E16A399A6008FAD50 /* VDKQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = A2AB883C16A399A6008FAD50 /* VDKQueue.m */; };
|
||||
A2AF1C390A3D0F6200F1575D /* FileOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2AF1C370A3D0F6200F1575D /* FileOutlineView.m */; };
|
||||
A2AF23C816B44FA0003BC59E /* log.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AF23C616B44FA0003BC59E /* log.c */; };
|
||||
A2AF23C816B44FA0003BC59E /* log.cc in Sources */ = {isa = PBXBuildFile; fileRef = A2AF23C616B44FA0003BC59E /* log.cc */; };
|
||||
A2AF23C916B44FA0003BC59E /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A2AF23C716B44FA0003BC59E /* log.h */; };
|
||||
A2B3FB460E5901E700FF78FB /* cli.c in Sources */ = {isa = PBXBuildFile; fileRef = A2B3FB450E5901E700FF78FB /* cli.c */; };
|
||||
A2B3FB4C0E59023000FF78FB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||
|
@ -234,11 +234,11 @@
|
|||
A2B6141D1395B0E3000E0975 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A2B6141B1395ADE9000E0975 /* libz.dylib */; };
|
||||
A2B6141E1395B0EC000E0975 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A2B6141B1395ADE9000E0975 /* libz.dylib */; };
|
||||
A2B6141F1395B0F5000E0975 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A2B6141B1395ADE9000E0975 /* libz.dylib */; };
|
||||
A2BE9C520C1E4AF5002D16E6 /* makemeta.c in Sources */ = {isa = PBXBuildFile; fileRef = A2BE9C4E0C1E4ADA002D16E6 /* makemeta.c */; };
|
||||
A2BE9C520C1E4AF5002D16E6 /* makemeta.cc in Sources */ = {isa = PBXBuildFile; fileRef = A2BE9C4E0C1E4ADA002D16E6 /* makemeta.cc */; };
|
||||
A2BE9C530C1E4AF7002D16E6 /* makemeta.h in Headers */ = {isa = PBXBuildFile; fileRef = A2BE9C4F0C1E4ADA002D16E6 /* makemeta.h */; };
|
||||
A2C89D600CFCBF57004CC2BC /* ButtonToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = A2C89D5F0CFCBF57004CC2BC /* ButtonToolbarItem.m */; };
|
||||
A2CB38AF0E1E6896002B514C /* COPYING in Resources */ = {isa = PBXBuildFile; fileRef = A2CB38AE0E1E6896002B514C /* COPYING */; };
|
||||
A2D22A130D65EEE700007D5F /* verify.c in Sources */ = {isa = PBXBuildFile; fileRef = A2D22A100D65EED100007D5F /* verify.c */; };
|
||||
A2D22A130D65EEE700007D5F /* verify.cc in Sources */ = {isa = PBXBuildFile; fileRef = A2D22A100D65EED100007D5F /* verify.cc */; };
|
||||
A2D307A40D9EC6870051FD27 /* BlocklistDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = A2D307A30D9EC6870051FD27 /* BlocklistDownloader.m */; };
|
||||
A2D307B10D9EC9F50051FD27 /* BlocklistStatusWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A2D307B00D9EC9F50051FD27 /* BlocklistStatusWindow.xib */; };
|
||||
A2D77451154CC25700A62B93 /* WebSeedTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = A2D7744F154CC25700A62B93 /* WebSeedTableView.h */; };
|
||||
|
@ -261,7 +261,7 @@
|
|||
A2E57B9C13109DC200A7DAB1 /* FilterBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = A2E57B9B13109DC200A7DAB1 /* FilterBar.xib */; };
|
||||
A2E57BA713109E6B00A7DAB1 /* FilterBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = A2E57BA613109E6B00A7DAB1 /* FilterBarController.m */; };
|
||||
A2E669790F5B8E5A00B4251A /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2E669780F5B8E5A00B4251A /* Security.framework */; };
|
||||
A2EA52311686AC0D00180493 /* quark.c in Sources */ = {isa = PBXBuildFile; fileRef = A2EA522F1686AC0D00180493 /* quark.c */; };
|
||||
A2EA52311686AC0D00180493 /* quark.cc in Sources */ = {isa = PBXBuildFile; fileRef = A2EA522F1686AC0D00180493 /* quark.cc */; };
|
||||
A2EA52321686AC0D00180493 /* quark.h in Headers */ = {isa = PBXBuildFile; fileRef = A2EA52301686AC0D00180493 /* quark.h */; };
|
||||
A2EB2E7715C8CF2C00FBD5B4 /* QuickLookPlugin.qlgenerator in CopyFiles */ = {isa = PBXBuildFile; fileRef = A2F35BB915C5A0A100EBF632 /* QuickLookPlugin.qlgenerator */; };
|
||||
A2ED7D8F0CEF431B00970975 /* FilterButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A2ED7D8E0CEF431B00970975 /* FilterButton.m */; };
|
||||
|
@ -306,50 +306,50 @@
|
|||
BEFC1D2D0C0783D900B0BB3C /* libtransmission.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D18389709DEC0030047D688 /* libtransmission.a */; };
|
||||
BEFC1E290C07861A00B0BB3C /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1DF00C07861A00B0BB3C /* version.h */; };
|
||||
BEFC1E2A0C07861A00B0BB3C /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1DF10C07861A00B0BB3C /* utils.h */; };
|
||||
BEFC1E2B0C07861A00B0BB3C /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF20C07861A00B0BB3C /* utils.c */; };
|
||||
BEFC1E2B0C07861A00B0BB3C /* utils.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF20C07861A00B0BB3C /* utils.cc */; };
|
||||
BEFC1E2C0C07861A00B0BB3C /* upnp.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1DF30C07861A00B0BB3C /* upnp.h */; };
|
||||
BEFC1E2D0C07861A00B0BB3C /* upnp.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF40C07861A00B0BB3C /* upnp.c */; };
|
||||
BEFC1E2F0C07861A00B0BB3C /* session.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF60C07861A00B0BB3C /* session.c */; };
|
||||
BEFC1E320C07861A00B0BB3C /* torrent.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF90C07861A00B0BB3C /* torrent.c */; };
|
||||
BEFC1E2D0C07861A00B0BB3C /* upnp.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF40C07861A00B0BB3C /* upnp.cc */; };
|
||||
BEFC1E2F0C07861A00B0BB3C /* session.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF60C07861A00B0BB3C /* session.cc */; };
|
||||
BEFC1E320C07861A00B0BB3C /* torrent.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF90C07861A00B0BB3C /* torrent.cc */; };
|
||||
BEFC1E350C07861A00B0BB3C /* port-forwarding.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1DFC0C07861A00B0BB3C /* port-forwarding.h */; };
|
||||
BEFC1E360C07861A00B0BB3C /* port-forwarding.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DFD0C07861A00B0BB3C /* port-forwarding.c */; };
|
||||
BEFC1E360C07861A00B0BB3C /* port-forwarding.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DFD0C07861A00B0BB3C /* port-forwarding.cc */; };
|
||||
BEFC1E3B0C07861A00B0BB3C /* platform.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E020C07861A00B0BB3C /* platform.h */; };
|
||||
BEFC1E3C0C07861A00B0BB3C /* platform.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E030C07861A00B0BB3C /* platform.c */; };
|
||||
BEFC1E3C0C07861A00B0BB3C /* platform.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E030C07861A00B0BB3C /* platform.cc */; };
|
||||
BEFC1E450C07861A00B0BB3C /* net.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E0C0C07861A00B0BB3C /* net.h */; };
|
||||
BEFC1E460C07861A00B0BB3C /* net.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E0D0C07861A00B0BB3C /* net.c */; };
|
||||
BEFC1E480C07861A00B0BB3C /* natpmp.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E0F0C07861A00B0BB3C /* natpmp.c */; };
|
||||
BEFC1E460C07861A00B0BB3C /* net.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E0D0C07861A00B0BB3C /* net.cc */; };
|
||||
BEFC1E480C07861A00B0BB3C /* natpmp.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E0F0C07861A00B0BB3C /* natpmp.cc */; };
|
||||
BEFC1E490C07861A00B0BB3C /* metainfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E100C07861A00B0BB3C /* metainfo.h */; };
|
||||
BEFC1E4A0C07861A00B0BB3C /* metainfo.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E110C07861A00B0BB3C /* metainfo.c */; };
|
||||
BEFC1E4A0C07861A00B0BB3C /* metainfo.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E110C07861A00B0BB3C /* metainfo.cc */; };
|
||||
BEFC1E4D0C07861A00B0BB3C /* session.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E140C07861A00B0BB3C /* session.h */; };
|
||||
BEFC1E4E0C07861A00B0BB3C /* inout.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E150C07861A00B0BB3C /* inout.h */; };
|
||||
BEFC1E4F0C07861A00B0BB3C /* inout.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E160C07861A00B0BB3C /* inout.c */; };
|
||||
BEFC1E4F0C07861A00B0BB3C /* inout.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E160C07861A00B0BB3C /* inout.cc */; };
|
||||
BEFC1E520C07861A00B0BB3C /* fdlimit.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E190C07861A00B0BB3C /* fdlimit.h */; };
|
||||
BEFC1E530C07861A00B0BB3C /* fdlimit.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1A0C07861A00B0BB3C /* fdlimit.c */; };
|
||||
BEFC1E530C07861A00B0BB3C /* fdlimit.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1A0C07861A00B0BB3C /* fdlimit.cc */; };
|
||||
BEFC1E550C07861A00B0BB3C /* completion.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E1C0C07861A00B0BB3C /* completion.h */; };
|
||||
BEFC1E560C07861A00B0BB3C /* completion.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1D0C07861A00B0BB3C /* completion.c */; };
|
||||
BEFC1E560C07861A00B0BB3C /* completion.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1D0C07861A00B0BB3C /* completion.cc */; };
|
||||
BEFC1E570C07861A00B0BB3C /* clients.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E1E0C07861A00B0BB3C /* clients.h */; };
|
||||
BEFC1E580C07861A00B0BB3C /* clients.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1F0C07861A00B0BB3C /* clients.c */; };
|
||||
C1033E071A3279B800EF44D8 /* crypto-utils-fallback.c in Sources */ = {isa = PBXBuildFile; fileRef = C1033E031A3279B800EF44D8 /* crypto-utils-fallback.c */; };
|
||||
C1033E081A3279B800EF44D8 /* crypto-utils-openssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C1033E041A3279B800EF44D8 /* crypto-utils-openssl.c */; };
|
||||
C1033E091A3279B800EF44D8 /* crypto-utils.c in Sources */ = {isa = PBXBuildFile; fileRef = C1033E051A3279B800EF44D8 /* crypto-utils.c */; };
|
||||
BEFC1E580C07861A00B0BB3C /* clients.cc in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1F0C07861A00B0BB3C /* clients.cc */; };
|
||||
C1033E071A3279B800EF44D8 /* crypto-utils-fallback.cc in Sources */ = {isa = PBXBuildFile; fileRef = C1033E031A3279B800EF44D8 /* crypto-utils-fallback.cc */; };
|
||||
C1033E081A3279B800EF44D8 /* crypto-utils-openssl.cc in Sources */ = {isa = PBXBuildFile; fileRef = C1033E041A3279B800EF44D8 /* crypto-utils-openssl.cc */; };
|
||||
C1033E091A3279B800EF44D8 /* crypto-utils.cc in Sources */ = {isa = PBXBuildFile; fileRef = C1033E051A3279B800EF44D8 /* crypto-utils.cc */; };
|
||||
C1033E0A1A3279B800EF44D8 /* crypto-utils.h in Headers */ = {isa = PBXBuildFile; fileRef = C1033E061A3279B800EF44D8 /* crypto-utils.h */; };
|
||||
C1077A4E183EB29600634C22 /* error.c in Sources */ = {isa = PBXBuildFile; fileRef = C1077A4A183EB29600634C22 /* error.c */; };
|
||||
C1077A4E183EB29600634C22 /* error.cc in Sources */ = {isa = PBXBuildFile; fileRef = C1077A4A183EB29600634C22 /* error.cc */; };
|
||||
C1077A4F183EB29600634C22 /* error.h in Headers */ = {isa = PBXBuildFile; fileRef = C1077A4B183EB29600634C22 /* error.h */; };
|
||||
C1077A50183EB29600634C22 /* file-posix.c in Sources */ = {isa = PBXBuildFile; fileRef = C1077A4C183EB29600634C22 /* file-posix.c */; };
|
||||
C1077A50183EB29600634C22 /* file-posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = C1077A4C183EB29600634C22 /* file-posix.cc */; };
|
||||
C1077A51183EB29600634C22 /* file.h in Headers */ = {isa = PBXBuildFile; fileRef = C1077A4D183EB29600634C22 /* file.h */; };
|
||||
C10C644D1D9AF328003C1B4C /* session-id.c in Sources */ = {isa = PBXBuildFile; fileRef = C10C644B1D9AF328003C1B4C /* session-id.c */; };
|
||||
C10C644D1D9AF328003C1B4C /* session-id.cc in Sources */ = {isa = PBXBuildFile; fileRef = C10C644B1D9AF328003C1B4C /* session-id.cc */; };
|
||||
C10C644E1D9AF328003C1B4C /* session-id.h in Headers */ = {isa = PBXBuildFile; fileRef = C10C644C1D9AF328003C1B4C /* session-id.h */; };
|
||||
C11DEA161FCD31C0009E22B9 /* subprocess-posix.c in Sources */ = {isa = PBXBuildFile; fileRef = C11DEA141FCD31C0009E22B9 /* subprocess-posix.c */; };
|
||||
C11DEA161FCD31C0009E22B9 /* subprocess-posix.cc in Sources */ = {isa = PBXBuildFile; fileRef = C11DEA141FCD31C0009E22B9 /* subprocess-posix.cc */; };
|
||||
C11DEA171FCD31C0009E22B9 /* subprocess.h in Headers */ = {isa = PBXBuildFile; fileRef = C11DEA151FCD31C0009E22B9 /* subprocess.h */; };
|
||||
C12F19791E1AE3C30005E93F /* upnperrors.c in Sources */ = {isa = PBXBuildFile; fileRef = C12F19771E1AE3C30005E93F /* upnperrors.c */; };
|
||||
C12F197B1E1AE4460005E93F /* upnperrors.h in Headers */ = {isa = PBXBuildFile; fileRef = C12F197A1E1AE4460005E93F /* upnperrors.h */; };
|
||||
C1305EBE186A13B100F03351 /* file.c in Sources */ = {isa = PBXBuildFile; fileRef = C1305EB8186A134000F03351 /* file.c */; };
|
||||
C1305EBE186A13B100F03351 /* file.cc in Sources */ = {isa = PBXBuildFile; fileRef = C1305EB8186A134000F03351 /* file.cc */; };
|
||||
C139E3B122BE70FB0007870C /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C139E3B022BE70FA0007870C /* libssl.dylib */; };
|
||||
C139E3B222BE71030007870C /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C139E3B022BE70FA0007870C /* libssl.dylib */; };
|
||||
C139E3B322BE71180007870C /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C139E3B022BE70FA0007870C /* libssl.dylib */; };
|
||||
C139E3B422BE71250007870C /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C139E3B022BE70FA0007870C /* libssl.dylib */; };
|
||||
C139E3B522BE712C0007870C /* libssl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = C139E3B022BE70FA0007870C /* libssl.dylib */; };
|
||||
C1425B351EE9C5F5001DB85F /* tr-assert.c in Sources */ = {isa = PBXBuildFile; fileRef = C1425B321EE9C5EA001DB85F /* tr-assert.c */; };
|
||||
C1425B351EE9C5F5001DB85F /* tr-assert.cc in Sources */ = {isa = PBXBuildFile; fileRef = C1425B321EE9C5EA001DB85F /* tr-assert.cc */; };
|
||||
C1425B361EE9C605001DB85F /* tr-assert.h in Headers */ = {isa = PBXBuildFile; fileRef = C1425B331EE9C5EA001DB85F /* tr-assert.h */; };
|
||||
C1425B371EE9C705001DB85F /* tr-macros.h in Headers */ = {isa = PBXBuildFile; fileRef = C1425B341EE9C5EA001DB85F /* tr-macros.h */; };
|
||||
C1425B381EE9C805001DB85F /* peer-socket.h in Headers */ = {isa = PBXBuildFile; fileRef = C1425B351EE9C5EA001DB85F /* peer-socket.h */; };
|
||||
|
@ -365,13 +365,13 @@
|
|||
C1BF7BAA1F2A3CCE008E88A7 /* upnpdev.h in Headers */ = {isa = PBXBuildFile; fileRef = C1BF7BA91F2A3CCE008E88A7 /* upnpdev.h */; };
|
||||
C1F690FD1AD0627500D95CF0 /* daemon-posix.c in Sources */ = {isa = PBXBuildFile; fileRef = C1F690FC1AD0627500D95CF0 /* daemon-posix.c */; };
|
||||
C1FEE5771C3223CC00D62832 /* watchdir-common.h in Headers */ = {isa = PBXBuildFile; fileRef = C1FEE5721C3223CC00D62832 /* watchdir-common.h */; };
|
||||
C1FEE5781C3223CC00D62832 /* watchdir-generic.c in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5731C3223CC00D62832 /* watchdir-generic.c */; };
|
||||
C1FEE5791C3223CC00D62832 /* watchdir-kqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5741C3223CC00D62832 /* watchdir-kqueue.c */; };
|
||||
C1FEE57A1C3223CC00D62832 /* watchdir.c in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5751C3223CC00D62832 /* watchdir.c */; };
|
||||
C1FEE5781C3223CC00D62832 /* watchdir-generic.cc in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5731C3223CC00D62832 /* watchdir-generic.cc */; };
|
||||
C1FEE5791C3223CC00D62832 /* watchdir-kqueue.cc in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5741C3223CC00D62832 /* watchdir-kqueue.cc */; };
|
||||
C1FEE57A1C3223CC00D62832 /* watchdir.cc in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5751C3223CC00D62832 /* watchdir.cc */; };
|
||||
C1FEE57B1C3223CC00D62832 /* watchdir.h in Headers */ = {isa = PBXBuildFile; fileRef = C1FEE5761C3223CC00D62832 /* watchdir.h */; };
|
||||
CAB35C64252F6F5E00552A55 /* mime-types.h in Headers */ = {isa = PBXBuildFile; fileRef = CAB35C62252F6F5E00552A55 /* mime-types.h */; };
|
||||
CAB35C65252F6F5E00552A55 /* mime-types.c in Sources */ = {isa = PBXBuildFile; fileRef = CAB35C63252F6F5E00552A55 /* mime-types.c */; };
|
||||
D4AF3B2F0C41F7A500D46B6B /* list.c in Sources */ = {isa = PBXBuildFile; fileRef = D4AF3B2D0C41F7A500D46B6B /* list.c */; };
|
||||
CAB35C65252F6F5E00552A55 /* mime-types.cc in Sources */ = {isa = PBXBuildFile; fileRef = CAB35C63252F6F5E00552A55 /* mime-types.cc */; };
|
||||
D4AF3B2F0C41F7A500D46B6B /* list.cc in Sources */ = {isa = PBXBuildFile; fileRef = D4AF3B2D0C41F7A500D46B6B /* list.cc */; };
|
||||
D4AF3B300C41F7A600D46B6B /* list.h in Headers */ = {isa = PBXBuildFile; fileRef = D4AF3B2E0C41F7A500D46B6B /* list.h */; };
|
||||
E138A9780C04D88F00C5426C /* ProgressGradients.m in Sources */ = {isa = PBXBuildFile; fileRef = E138A9760C04D88F00C5426C /* ProgressGradients.m */; };
|
||||
EDBDFA9E25AFCCA60093D9C1 /* evutil_time.c in Sources */ = {isa = PBXBuildFile; fileRef = EDBDFA9D25AFCCA60093D9C1 /* evutil_time.c */; };
|
||||
|
@ -497,7 +497,7 @@
|
|||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0A6169A50FE5C9A200C66CE6 /* bitfield.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bitfield.c; sourceTree = "<group>"; };
|
||||
0A6169A50FE5C9A200C66CE6 /* bitfield.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = bitfield.cc; sourceTree = "<group>"; };
|
||||
0A6169A60FE5C9A200C66CE6 /* bitfield.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bitfield.h; sourceTree = "<group>"; };
|
||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
|
||||
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
|
||||
|
@ -512,28 +512,28 @@
|
|||
3C7A11920D0B2EE300B5701F /* getgateway.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = getgateway.h; sourceTree = "<group>"; };
|
||||
3C7A11930D0B2EE300B5701F /* natpmp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = natpmp.c; sourceTree = "<group>"; };
|
||||
3C7A11940D0B2EE300B5701F /* natpmp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = natpmp.h; sourceTree = "<group>"; };
|
||||
4394AC640C74FB6000F367E8 /* ptrarray.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ptrarray.c; sourceTree = "<group>"; };
|
||||
4394AC640C74FB6000F367E8 /* ptrarray.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = ptrarray.cc; sourceTree = "<group>"; };
|
||||
4D043A7E090AE979009FEDA8 /* TransmissionDocument.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = TransmissionDocument.icns; path = Images/TransmissionDocument.icns; sourceTree = "<group>"; };
|
||||
4D118E1808CB46B20033958F /* PrefsController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrefsController.h; sourceTree = "<group>"; };
|
||||
4D118E1908CB46B20033958F /* PrefsController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PrefsController.m; sourceTree = "<group>"; };
|
||||
4D18389709DEC0030047D688 /* libtransmission.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libtransmission.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
4D364D9E091FBB2C00377D12 /* TorrentTableView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TorrentTableView.h; sourceTree = "<group>"; };
|
||||
4D364D9F091FBB2C00377D12 /* TorrentTableView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TorrentTableView.m; sourceTree = "<group>"; };
|
||||
4D36BA600CA2F00800A63CA5 /* crypto.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = crypto.c; sourceTree = "<group>"; };
|
||||
4D36BA600CA2F00800A63CA5 /* crypto.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = crypto.cc; sourceTree = "<group>"; };
|
||||
4D36BA610CA2F00800A63CA5 /* crypto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = crypto.h; sourceTree = "<group>"; };
|
||||
4D36BA630CA2F00800A63CA5 /* handshake.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = handshake.c; sourceTree = "<group>"; };
|
||||
4D36BA630CA2F00800A63CA5 /* handshake.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = handshake.cc; sourceTree = "<group>"; };
|
||||
4D36BA640CA2F00800A63CA5 /* handshake.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = handshake.h; sourceTree = "<group>"; };
|
||||
4D36BA650CA2F00800A63CA5 /* peer-io.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "peer-io.c"; sourceTree = "<group>"; };
|
||||
4D36BA650CA2F00800A63CA5 /* peer-io.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "peer-io.cc"; sourceTree = "<group>"; };
|
||||
4D36BA660CA2F00800A63CA5 /* peer-io.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "peer-io.h"; sourceTree = "<group>"; };
|
||||
4D36BA680CA2F00800A63CA5 /* peer-mgr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "peer-mgr.c"; sourceTree = "<group>"; };
|
||||
4D36BA680CA2F00800A63CA5 /* peer-mgr.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "peer-mgr.cc"; sourceTree = "<group>"; };
|
||||
4D36BA690CA2F00800A63CA5 /* peer-mgr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "peer-mgr.h"; sourceTree = "<group>"; };
|
||||
4D36BA6A0CA2F00800A63CA5 /* peer-msgs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "peer-msgs.c"; sourceTree = "<group>"; };
|
||||
4D36BA6A0CA2F00800A63CA5 /* peer-msgs.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "peer-msgs.cc"; sourceTree = "<group>"; };
|
||||
4D36BA6B0CA2F00800A63CA5 /* peer-msgs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "peer-msgs.h"; sourceTree = "<group>"; };
|
||||
4D36BA6C0CA2F00800A63CA5 /* ptrarray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ptrarray.h; sourceTree = "<group>"; };
|
||||
4D3EA0A908AE13C600EA10C2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; };
|
||||
4D8017E810BBC073008A4AF2 /* torrent-magnet.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "torrent-magnet.c"; sourceTree = "<group>"; };
|
||||
4D8017E810BBC073008A4AF2 /* torrent-magnet.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "torrent-magnet.cc"; sourceTree = "<group>"; };
|
||||
4D8017E910BBC073008A4AF2 /* torrent-magnet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "torrent-magnet.h"; sourceTree = "<group>"; };
|
||||
4D80185710BBC0B0008A4AF2 /* magnet.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = magnet.c; sourceTree = "<group>"; };
|
||||
4D80185710BBC0B0008A4AF2 /* magnet.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = magnet.cc; sourceTree = "<group>"; };
|
||||
4D80185810BBC0B0008A4AF2 /* magnet.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = magnet.h; sourceTree = "<group>"; };
|
||||
4DB74F070E8CD75100AEB1A8 /* wildmat.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = wildmat.c; sourceTree = "<group>"; };
|
||||
4DCCBB3C09C3D71100D3CABF /* TorrentCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TorrentCell.m; sourceTree = "<group>"; };
|
||||
|
@ -552,7 +552,7 @@
|
|||
8D1107320486CEB800E47090 /* Transmission.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Transmission.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
A200B8390A2263BA007BBB1E /* InfoWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InfoWindowController.h; sourceTree = "<group>"; };
|
||||
A200B83A0A2263BA007BBB1E /* InfoWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InfoWindowController.m; sourceTree = "<group>"; };
|
||||
A20152790D1C26EB0081714F /* torrent-ctor.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "torrent-ctor.c"; sourceTree = "<group>"; };
|
||||
A20152790D1C26EB0081714F /* torrent-ctor.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "torrent-ctor.cc"; sourceTree = "<group>"; };
|
||||
A20162C713DE48BF00E15488 /* receivedata.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = receivedata.c; sourceTree = "<group>"; };
|
||||
A20162C813DE48BF00E15488 /* receivedata.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = receivedata.h; sourceTree = "<group>"; };
|
||||
A20162CB13DE497000E15488 /* portlistingparse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = portlistingparse.c; sourceTree = "<group>"; };
|
||||
|
@ -602,7 +602,7 @@
|
|||
A209EBF81142FEEE002B02D1 /* InfoOptionsViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InfoOptionsViewController.m; sourceTree = "<group>"; };
|
||||
A209EC13114301C6002B02D1 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/InfoOptionsView.xib; sourceTree = "<group>"; };
|
||||
A209ECA1114319C3002B02D1 /* InfoWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = InfoWindow.xib; sourceTree = "<group>"; };
|
||||
A209EE5A1144B51E002B02D1 /* history.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = history.c; sourceTree = "<group>"; };
|
||||
A209EE5A1144B51E002B02D1 /* history.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = history.cc; sourceTree = "<group>"; };
|
||||
A209EE5B1144B51E002B02D1 /* history.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = history.h; sourceTree = "<group>"; };
|
||||
A20BFFB50D091CC700CE5D2B /* ToolbarSegmentedCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ToolbarSegmentedCell.h; sourceTree = "<group>"; };
|
||||
A20BFFB60D091CC700CE5D2B /* ToolbarSegmentedCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ToolbarSegmentedCell.m; sourceTree = "<group>"; };
|
||||
|
@ -619,9 +619,9 @@
|
|||
A21F15AA11729A8B00CF5A9C /* AddMagnetWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AddMagnetWindowController.m; sourceTree = "<group>"; };
|
||||
A21F15AB11729A8B00CF5A9C /* AddMagnetWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AddMagnetWindowController.h; sourceTree = "<group>"; };
|
||||
A21FBBA90EDA78C300BC3C51 /* bandwidth.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bandwidth.h; sourceTree = "<group>"; };
|
||||
A21FBBAA0EDA78C300BC3C51 /* bandwidth.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bandwidth.c; sourceTree = "<group>"; };
|
||||
A21FBBAA0EDA78C300BC3C51 /* bandwidth.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = bandwidth.cc; sourceTree = "<group>"; };
|
||||
A220AF7A13D7CC460035C512 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/GlobalOptionsPopover.xib; sourceTree = "<group>"; };
|
||||
A220EC59118C8A060022B4BE /* tr-lpd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "tr-lpd.c"; sourceTree = "<group>"; };
|
||||
A220EC59118C8A060022B4BE /* tr-lpd.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "tr-lpd.cc"; sourceTree = "<group>"; };
|
||||
A220EC5A118C8A060022B4BE /* tr-lpd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "tr-lpd.h"; sourceTree = "<group>"; };
|
||||
A220EE6611A8382C0022B4BE /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/AddMagnetWindow.xib; sourceTree = "<group>"; };
|
||||
A220EE6911A838450022B4BE /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/InfoActivityView.xib; sourceTree = "<group>"; };
|
||||
|
@ -668,7 +668,7 @@
|
|||
A22CF7CC0FA5E2DB0009BD3E /* nl */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = nl; path = nl.lproj/GroupRules.xib; sourceTree = "<group>"; };
|
||||
A22CF7D10FA6A19B0009BD3E /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/GroupRules.xib; sourceTree = "<group>"; };
|
||||
A22CFB810FB66EF30009BD3E /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; };
|
||||
A22CFCA60FC24ED80009BD3E /* tr-dht.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "tr-dht.c"; sourceTree = "<group>"; };
|
||||
A22CFCA60FC24ED80009BD3E /* tr-dht.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "tr-dht.cc"; sourceTree = "<group>"; };
|
||||
A22CFCA70FC24ED80009BD3E /* tr-dht.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "tr-dht.h"; sourceTree = "<group>"; };
|
||||
A22CFCBA0FC24F710009BD3E /* libdht.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libdht.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
A22CFCC00FC24F890009BD3E /* dht.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dht.h; sourceTree = "<group>"; };
|
||||
|
@ -681,7 +681,7 @@
|
|||
A233BD680D8CF2C7007EE7B4 /* StatsWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = StatsWindow.xib; sourceTree = "<group>"; };
|
||||
A234EA521453563B000F3E97 /* NSImageAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSImageAdditions.h; sourceTree = "<group>"; };
|
||||
A234EA531453563B000F3E97 /* NSImageAdditions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSImageAdditions.m; sourceTree = "<group>"; };
|
||||
A23547E011CD0B090046EAE6 /* cache.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cache.c; sourceTree = "<group>"; };
|
||||
A23547E011CD0B090046EAE6 /* cache.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = cache.cc; sourceTree = "<group>"; };
|
||||
A23547E111CD0B090046EAE6 /* cache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cache.h; sourceTree = "<group>"; };
|
||||
A236D19215F6BB54000C3DD4 /* es */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
A236D19415F6BCB2000C3DD4 /* da */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
|
@ -691,17 +691,17 @@
|
|||
A238D49D21CDA1A5006B03EA /* InfoTabMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InfoTabMatrix.h; sourceTree = "<group>"; };
|
||||
A238D49E21CDA1A5006B03EA /* InfoTabMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InfoTabMatrix.m; sourceTree = "<group>"; };
|
||||
A23F299F132A447400E9A83B /* announcer-common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "announcer-common.h"; sourceTree = "<group>"; };
|
||||
A23F29A0132A447400E9A83B /* announcer-http.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "announcer-http.c"; sourceTree = "<group>"; };
|
||||
A23F29A0132A447400E9A83B /* announcer-http.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "announcer-http.cc"; sourceTree = "<group>"; };
|
||||
A23F526D0F14395900AA02E3 /* PredicateEditorRowTemplateAny.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PredicateEditorRowTemplateAny.h; sourceTree = "<group>"; };
|
||||
A23F526E0F14395900AA02E3 /* PredicateEditorRowTemplateAny.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PredicateEditorRowTemplateAny.m; sourceTree = "<group>"; };
|
||||
A23FAE52178BC2950053DC5B /* platform-quota.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "platform-quota.c"; sourceTree = "<group>"; };
|
||||
A23FAE52178BC2950053DC5B /* platform-quota.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "platform-quota.cc"; sourceTree = "<group>"; };
|
||||
A23FAE53178BC2950053DC5B /* platform-quota.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "platform-quota.h"; sourceTree = "<group>"; };
|
||||
A242AD9215F05D23002B3A6C /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
A2451E6616ACE4EB00586E0E /* FileRenameSheetController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileRenameSheetController.h; sourceTree = "<group>"; };
|
||||
A2451E6716ACE4EB00586E0E /* FileRenameSheetController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FileRenameSheetController.m; sourceTree = "<group>"; };
|
||||
A2451E6816ACE4EB00586E0E /* FileRenameSheetController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = FileRenameSheetController.xib; sourceTree = "<group>"; };
|
||||
A24621350C769CF400088E81 /* trevent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = trevent.h; sourceTree = "<group>"; };
|
||||
A24621360C769CF400088E81 /* trevent.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = trevent.c; sourceTree = "<group>"; };
|
||||
A24621360C769CF400088E81 /* trevent.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = trevent.cc; sourceTree = "<group>"; };
|
||||
A247A442114C701800547DFC /* InfoViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InfoViewController.h; sourceTree = "<group>"; };
|
||||
A24F19070A3A790800C9C145 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Sparkle.framework; sourceTree = "<group>"; };
|
||||
A250EE800E2ED87B00A688E6 /* web */ = {isa = PBXFileReference; lastKnownFileType = folder; name = web; path = ../web; sourceTree = "<group>"; };
|
||||
|
@ -713,19 +713,19 @@
|
|||
A25892620CF1F7E800CCCDDF /* StatsWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatsWindowController.h; sourceTree = "<group>"; };
|
||||
A25892630CF1F7E800CCCDDF /* StatsWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StatsWindowController.m; sourceTree = "<group>"; };
|
||||
A259316A0A73B2CC002F4FE7 /* TransmissionHelp */ = {isa = PBXFileReference; lastKnownFileType = folder; path = TransmissionHelp; sourceTree = "<group>"; };
|
||||
A25964A4106D73A800453B31 /* announcer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = announcer.c; sourceTree = "<group>"; };
|
||||
A25964A4106D73A800453B31 /* announcer.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = announcer.cc; sourceTree = "<group>"; };
|
||||
A25964A5106D73A800453B31 /* announcer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = announcer.h; sourceTree = "<group>"; };
|
||||
A25BB02812F4F517004B724E /* InfoTabButtonBack.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InfoTabButtonBack.h; sourceTree = "<group>"; };
|
||||
A25BB02912F4F517004B724E /* InfoTabButtonBack.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InfoTabButtonBack.m; sourceTree = "<group>"; };
|
||||
A25BFD63167BED3B0039D1AA /* variant-benc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "variant-benc.c"; sourceTree = "<group>"; };
|
||||
A25BFD63167BED3B0039D1AA /* variant-benc.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "variant-benc.cc"; sourceTree = "<group>"; };
|
||||
A25BFD64167BED3B0039D1AA /* variant-common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "variant-common.h"; sourceTree = "<group>"; };
|
||||
A25BFD65167BED3B0039D1AA /* variant-json.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "variant-json.c"; sourceTree = "<group>"; };
|
||||
A25BFD67167BED3B0039D1AA /* variant.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = variant.c; sourceTree = "<group>"; };
|
||||
A25BFD65167BED3B0039D1AA /* variant-json.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "variant-json.cc"; sourceTree = "<group>"; };
|
||||
A25BFD67167BED3B0039D1AA /* variant.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = variant.cc; sourceTree = "<group>"; };
|
||||
A25BFD68167BED3B0039D1AA /* variant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = variant.h; sourceTree = "<group>"; };
|
||||
A25D2CBA0CF4C7190096A262 /* stats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = stats.h; sourceTree = "<group>"; };
|
||||
A25D2CBB0CF4C7190096A262 /* stats.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = stats.c; sourceTree = "<group>"; };
|
||||
A25D2CBB0CF4C7190096A262 /* stats.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = stats.cc; sourceTree = "<group>"; };
|
||||
A25E03E00E4015380086C225 /* tr-getopt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "tr-getopt.h"; sourceTree = "<group>"; };
|
||||
A25E03E10E4015380086C225 /* tr-getopt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "tr-getopt.c"; sourceTree = "<group>"; };
|
||||
A25E03E10E4015380086C225 /* tr-getopt.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "tr-getopt.cc"; sourceTree = "<group>"; };
|
||||
A25E74440AF5089E006F11AE /* ExpandedPathToPathTransformer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExpandedPathToPathTransformer.m; sourceTree = "<group>"; };
|
||||
A25E74450AF5089E006F11AE /* ExpandedPathToPathTransformer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExpandedPathToPathTransformer.h; sourceTree = "<group>"; };
|
||||
A25E74460AF5089E006F11AE /* ExpandedPathToIconTransformer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ExpandedPathToIconTransformer.m; sourceTree = "<group>"; };
|
||||
|
@ -763,7 +763,7 @@
|
|||
A265A3C20D25AE7800198AC8 /* es */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = es; path = es.lproj/PrefsWindow.xib; sourceTree = "<group>"; };
|
||||
A2661D3A12D0E51A004F69D5 /* FilterBarView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilterBarView.h; sourceTree = "<group>"; };
|
||||
A2661D3B12D0E51B004F69D5 /* FilterBarView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FilterBarView.m; sourceTree = "<group>"; };
|
||||
A2679292130E00A000CB7464 /* tr-utp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "tr-utp.c"; sourceTree = "<group>"; };
|
||||
A2679292130E00A000CB7464 /* tr-utp.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "tr-utp.cc"; sourceTree = "<group>"; };
|
||||
A2679293130E00A000CB7464 /* tr-utp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "tr-utp.h"; sourceTree = "<group>"; };
|
||||
A26AF1040D2855FC00FF7140 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Creator.xib; sourceTree = "<group>"; };
|
||||
A26AF1050D2855FC00FF7140 /* ru */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
|
@ -797,7 +797,7 @@
|
|||
A28393FF10D54A96005C0240 /* de */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
A283940010D54A9D005C0240 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
A283940110D54AA7005C0240 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/PrefsWindow.xib; sourceTree = "<group>"; };
|
||||
A284214212DA663E00FBDDBB /* tr-udp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "tr-udp.c"; sourceTree = "<group>"; };
|
||||
A284214212DA663E00FBDDBB /* tr-udp.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "tr-udp.cc"; sourceTree = "<group>"; };
|
||||
A284214312DA663E00FBDDBB /* tr-udp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "tr-udp.h"; sourceTree = "<group>"; };
|
||||
A28B3A2D160E1BC900D4A2BC /* pt_PT */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = pt_PT; path = pt_PT.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
A28E1DDF0CFFD8EC00E16385 /* ButtonToolbarItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ButtonToolbarItem.h; sourceTree = "<group>"; };
|
||||
|
@ -810,7 +810,7 @@
|
|||
A29147800E195A0C00F60CB2 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||
A29147810E195A0C00F60CB2 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/PrefsWindow.xib; sourceTree = "<group>"; };
|
||||
A292A6E40DFB45E5004B9C0A /* peer-common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "peer-common.h"; sourceTree = "<group>"; };
|
||||
A292A6E50DFB45EC004B9C0A /* webseed.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = webseed.c; sourceTree = "<group>"; };
|
||||
A292A6E50DFB45EC004B9C0A /* webseed.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = webseed.cc; sourceTree = "<group>"; };
|
||||
A292A6E60DFB45EC004B9C0A /* webseed.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = webseed.h; sourceTree = "<group>"; };
|
||||
A292C9E01413BA5F00EF710F /* es */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = es; path = es.lproj/GlobalOptionsPopover.xib; sourceTree = "<group>"; };
|
||||
A292C9E2141593DA00EF710F /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/GlobalOptionsPopover.xib; sourceTree = "<group>"; };
|
||||
|
@ -826,11 +826,11 @@
|
|||
A29C8B350ACC6EB3000ED9F9 /* PortChecker.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PortChecker.m; sourceTree = "<group>"; };
|
||||
A29D84021049C25600D1987A /* NSApplicationAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSApplicationAdditions.h; sourceTree = "<group>"; };
|
||||
A29D84031049C25600D1987A /* NSApplicationAdditions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NSApplicationAdditions.m; sourceTree = "<group>"; };
|
||||
A29DF8B60DB2544C00D04E5A /* resume.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = resume.c; sourceTree = "<group>"; };
|
||||
A29DF8B60DB2544C00D04E5A /* resume.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = resume.cc; sourceTree = "<group>"; };
|
||||
A29DF8B70DB2544C00D04E5A /* resume.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = resume.h; sourceTree = "<group>"; };
|
||||
A29DF8B80DB2544C00D04E5A /* torrent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = torrent.h; sourceTree = "<group>"; };
|
||||
A29E653513F1603100048D71 /* evutil_rand.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = evutil_rand.c; sourceTree = "<group>"; };
|
||||
A29EBE520DC01FC9006CEE80 /* web.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = web.c; sourceTree = "<group>"; };
|
||||
A29EBE520DC01FC9006CEE80 /* web.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = web.cc; sourceTree = "<group>"; };
|
||||
A29EBE530DC01FC9006CEE80 /* web.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = web.h; sourceTree = "<group>"; };
|
||||
A2A1C81D142EC032008C17BF /* nl */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = nl; path = nl.lproj/GlobalOptionsPopover.xib; sourceTree = "<group>"; };
|
||||
A2A1CB770BF29D5500AE959F /* PeerProgressIndicatorCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeerProgressIndicatorCell.h; sourceTree = "<group>"; };
|
||||
|
@ -856,18 +856,18 @@
|
|||
A2A9D124187DD75C00C52A1F /* tr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = tr; path = tr.lproj/GlobalOptionsPopover.xib; sourceTree = "<group>"; };
|
||||
A2AA579A0ADFCAB400CA59F6 /* PiecesView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiecesView.h; sourceTree = "<group>"; };
|
||||
A2AA579B0ADFCAB400CA59F6 /* PiecesView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PiecesView.m; sourceTree = "<group>"; };
|
||||
A2AA9BE0132CAC8D00FA131E /* announcer-udp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "announcer-udp.c"; sourceTree = "<group>"; };
|
||||
A2AA9BE0132CAC8D00FA131E /* announcer-udp.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "announcer-udp.cc"; sourceTree = "<group>"; };
|
||||
A2AA9BE2132CAE2000FA131E /* evdns.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = evdns.c; sourceTree = "<group>"; };
|
||||
A2AAB6580DE0CF6200E04DDA /* rpc-server.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "rpc-server.c"; sourceTree = "<group>"; };
|
||||
A2AAB6580DE0CF6200E04DDA /* rpc-server.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "rpc-server.cc"; sourceTree = "<group>"; };
|
||||
A2AAB6590DE0CF6200E04DDA /* rpcimpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = rpcimpl.h; sourceTree = "<group>"; };
|
||||
A2AAB65A0DE0CF6200E04DDA /* rpc-server.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "rpc-server.h"; sourceTree = "<group>"; };
|
||||
A2AAB65B0DE0CF6200E04DDA /* rpcimpl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = rpcimpl.c; sourceTree = "<group>"; };
|
||||
A2AAB65B0DE0CF6200E04DDA /* rpcimpl.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = rpcimpl.cc; sourceTree = "<group>"; };
|
||||
A2AB883B16A399A6008FAD50 /* VDKQueue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VDKQueue.h; sourceTree = "<group>"; };
|
||||
A2AB883C16A399A6008FAD50 /* VDKQueue.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VDKQueue.m; sourceTree = "<group>"; };
|
||||
A2AC81D60D987E2D00A2878C /* nl */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = nl; path = nl.lproj/AddWindow.xib; sourceTree = "<group>"; };
|
||||
A2AF1C360A3D0F6200F1575D /* FileOutlineView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileOutlineView.h; sourceTree = "<group>"; };
|
||||
A2AF1C370A3D0F6200F1575D /* FileOutlineView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FileOutlineView.m; sourceTree = "<group>"; };
|
||||
A2AF23C616B44FA0003BC59E /* log.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = log.c; sourceTree = "<group>"; };
|
||||
A2AF23C616B44FA0003BC59E /* log.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = log.cc; sourceTree = "<group>"; };
|
||||
A2AF23C716B44FA0003BC59E /* log.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = log.h; sourceTree = "<group>"; };
|
||||
A2B3FB450E5901E700FF78FB /* cli.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cli.c; sourceTree = "<group>"; };
|
||||
A2B5B4E71880665E0071A66A /* ShareTorrentFileHelper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShareTorrentFileHelper.h; sourceTree = "<group>"; };
|
||||
|
@ -878,16 +878,16 @@
|
|||
A2B9F90411BD10BE003FC8CA /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/InfoActivityView.xib; sourceTree = "<group>"; };
|
||||
A2B9F90511BD10BE003FC8CA /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/InfoGeneralView.xib; sourceTree = "<group>"; };
|
||||
A2B9F90611BD10BE003FC8CA /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/InfoOptionsView.xib; sourceTree = "<group>"; };
|
||||
A2BE9C4E0C1E4ADA002D16E6 /* makemeta.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = makemeta.c; sourceTree = "<group>"; };
|
||||
A2BE9C4E0C1E4ADA002D16E6 /* makemeta.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = makemeta.cc; sourceTree = "<group>"; };
|
||||
A2BE9C4F0C1E4ADA002D16E6 /* makemeta.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = makemeta.h; sourceTree = "<group>"; };
|
||||
A2C89D5F0CFCBF57004CC2BC /* ButtonToolbarItem.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ButtonToolbarItem.m; sourceTree = "<group>"; };
|
||||
A2CA772B187F063A00154956 /* tr */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
A2CB38AE0E1E6896002B514C /* COPYING */ = {isa = PBXFileReference; lastKnownFileType = text; name = COPYING; path = ../COPYING; sourceTree = "<group>"; };
|
||||
A2CBDED80D993E4500BB22BC /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/AddWindow.xib; sourceTree = "<group>"; };
|
||||
A2CBDF9E0D9AD08100BB22BC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/AddWindow.xib; sourceTree = "<group>"; };
|
||||
A2D22A100D65EED100007D5F /* verify.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = verify.c; sourceTree = "<group>"; };
|
||||
A2D22A100D65EED100007D5F /* verify.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = verify.cc; sourceTree = "<group>"; };
|
||||
A2D22A110D65EED100007D5F /* verify.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = verify.h; sourceTree = "<group>"; };
|
||||
A2D3078E0D9EC45F0051FD27 /* blocklist.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = blocklist.c; sourceTree = "<group>"; };
|
||||
A2D3078E0D9EC45F0051FD27 /* blocklist.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = blocklist.cc; sourceTree = "<group>"; };
|
||||
A2D307930D9EC4860051FD27 /* blocklist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = blocklist.h; sourceTree = "<group>"; };
|
||||
A2D307A20D9EC6870051FD27 /* BlocklistDownloader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BlocklistDownloader.h; sourceTree = "<group>"; };
|
||||
A2D307A30D9EC6870051FD27 /* BlocklistDownloader.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BlocklistDownloader.m; sourceTree = "<group>"; };
|
||||
|
@ -916,7 +916,7 @@
|
|||
A2E57BA513109E6B00A7DAB1 /* FilterBarController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FilterBarController.h; sourceTree = "<group>"; };
|
||||
A2E57BA613109E6B00A7DAB1 /* FilterBarController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FilterBarController.m; sourceTree = "<group>"; };
|
||||
A2E669780F5B8E5A00B4251A /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
|
||||
A2EA522F1686AC0D00180493 /* quark.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = quark.c; sourceTree = "<group>"; };
|
||||
A2EA522F1686AC0D00180493 /* quark.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = quark.cc; sourceTree = "<group>"; };
|
||||
A2EA52301686AC0D00180493 /* quark.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = quark.h; sourceTree = "<group>"; };
|
||||
A2EA8E3C0CC3C9830081201C /* fr */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
A2EA8E3E0CC3C9830081201C /* fr */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
|
@ -971,47 +971,47 @@
|
|||
BEFC1CF90C07822400B0BB3C /* transmission-remote */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "transmission-remote"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
BEFC1DF00C07861A00B0BB3C /* version.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = "<group>"; };
|
||||
BEFC1DF10C07861A00B0BB3C /* utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = utils.h; sourceTree = "<group>"; };
|
||||
BEFC1DF20C07861A00B0BB3C /* utils.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = utils.c; sourceTree = "<group>"; };
|
||||
BEFC1DF20C07861A00B0BB3C /* utils.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = utils.cc; sourceTree = "<group>"; };
|
||||
BEFC1DF30C07861A00B0BB3C /* upnp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = upnp.h; sourceTree = "<group>"; };
|
||||
BEFC1DF40C07861A00B0BB3C /* upnp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = upnp.c; sourceTree = "<group>"; };
|
||||
BEFC1DF40C07861A00B0BB3C /* upnp.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = upnp.cc; sourceTree = "<group>"; };
|
||||
BEFC1DF50C07861A00B0BB3C /* transmission.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = transmission.h; sourceTree = "<group>"; };
|
||||
BEFC1DF60C07861A00B0BB3C /* session.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = session.c; sourceTree = "<group>"; };
|
||||
BEFC1DF90C07861A00B0BB3C /* torrent.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = torrent.c; sourceTree = "<group>"; };
|
||||
BEFC1DF60C07861A00B0BB3C /* session.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = session.cc; sourceTree = "<group>"; };
|
||||
BEFC1DF90C07861A00B0BB3C /* torrent.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = torrent.cc; sourceTree = "<group>"; };
|
||||
BEFC1DFC0C07861A00B0BB3C /* port-forwarding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "port-forwarding.h"; sourceTree = "<group>"; };
|
||||
BEFC1DFD0C07861A00B0BB3C /* port-forwarding.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "port-forwarding.c"; sourceTree = "<group>"; };
|
||||
BEFC1DFD0C07861A00B0BB3C /* port-forwarding.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "port-forwarding.cc"; sourceTree = "<group>"; };
|
||||
BEFC1E020C07861A00B0BB3C /* platform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = "<group>"; };
|
||||
BEFC1E030C07861A00B0BB3C /* platform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = platform.c; sourceTree = "<group>"; };
|
||||
BEFC1E030C07861A00B0BB3C /* platform.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = platform.cc; sourceTree = "<group>"; };
|
||||
BEFC1E0C0C07861A00B0BB3C /* net.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = net.h; sourceTree = "<group>"; };
|
||||
BEFC1E0D0C07861A00B0BB3C /* net.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = net.c; sourceTree = "<group>"; };
|
||||
BEFC1E0F0C07861A00B0BB3C /* natpmp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = natpmp.c; sourceTree = "<group>"; };
|
||||
BEFC1E0D0C07861A00B0BB3C /* net.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = net.cc; sourceTree = "<group>"; };
|
||||
BEFC1E0F0C07861A00B0BB3C /* natpmp.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = natpmp.cc; sourceTree = "<group>"; };
|
||||
BEFC1E100C07861A00B0BB3C /* metainfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = metainfo.h; sourceTree = "<group>"; };
|
||||
BEFC1E110C07861A00B0BB3C /* metainfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = metainfo.c; sourceTree = "<group>"; };
|
||||
BEFC1E110C07861A00B0BB3C /* metainfo.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = metainfo.cc; sourceTree = "<group>"; };
|
||||
BEFC1E140C07861A00B0BB3C /* session.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = session.h; sourceTree = "<group>"; };
|
||||
BEFC1E150C07861A00B0BB3C /* inout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = inout.h; sourceTree = "<group>"; };
|
||||
BEFC1E160C07861A00B0BB3C /* inout.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = inout.c; sourceTree = "<group>"; };
|
||||
BEFC1E160C07861A00B0BB3C /* inout.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = inout.cc; sourceTree = "<group>"; };
|
||||
BEFC1E190C07861A00B0BB3C /* fdlimit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fdlimit.h; sourceTree = "<group>"; };
|
||||
BEFC1E1A0C07861A00B0BB3C /* fdlimit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fdlimit.c; sourceTree = "<group>"; };
|
||||
BEFC1E1A0C07861A00B0BB3C /* fdlimit.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = fdlimit.cc; sourceTree = "<group>"; };
|
||||
BEFC1E1C0C07861A00B0BB3C /* completion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = completion.h; sourceTree = "<group>"; };
|
||||
BEFC1E1D0C07861A00B0BB3C /* completion.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = completion.c; sourceTree = "<group>"; };
|
||||
BEFC1E1D0C07861A00B0BB3C /* completion.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = completion.cc; sourceTree = "<group>"; };
|
||||
BEFC1E1E0C07861A00B0BB3C /* clients.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = clients.h; sourceTree = "<group>"; };
|
||||
BEFC1E1F0C07861A00B0BB3C /* clients.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = clients.c; sourceTree = "<group>"; };
|
||||
C1033E031A3279B800EF44D8 /* crypto-utils-fallback.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "crypto-utils-fallback.c"; sourceTree = "<group>"; };
|
||||
C1033E041A3279B800EF44D8 /* crypto-utils-openssl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "crypto-utils-openssl.c"; sourceTree = "<group>"; };
|
||||
C1033E051A3279B800EF44D8 /* crypto-utils.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "crypto-utils.c"; sourceTree = "<group>"; };
|
||||
BEFC1E1F0C07861A00B0BB3C /* clients.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = clients.cc; sourceTree = "<group>"; };
|
||||
C1033E031A3279B800EF44D8 /* crypto-utils-fallback.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "crypto-utils-fallback.cc"; sourceTree = "<group>"; };
|
||||
C1033E041A3279B800EF44D8 /* crypto-utils-openssl.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "crypto-utils-openssl.cc"; sourceTree = "<group>"; };
|
||||
C1033E051A3279B800EF44D8 /* crypto-utils.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "crypto-utils.cc"; sourceTree = "<group>"; };
|
||||
C1033E061A3279B800EF44D8 /* crypto-utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "crypto-utils.h"; sourceTree = "<group>"; };
|
||||
C1077A4A183EB29600634C22 /* error.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = error.c; sourceTree = "<group>"; };
|
||||
C1077A4A183EB29600634C22 /* error.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = error.cc; sourceTree = "<group>"; };
|
||||
C1077A4B183EB29600634C22 /* error.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = error.h; sourceTree = "<group>"; };
|
||||
C1077A4C183EB29600634C22 /* file-posix.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "file-posix.c"; sourceTree = "<group>"; };
|
||||
C1077A4C183EB29600634C22 /* file-posix.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = "file-posix.cc"; sourceTree = "<group>"; };
|
||||
C1077A4D183EB29600634C22 /* file.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = file.h; sourceTree = "<group>"; };
|
||||
C10C644B1D9AF328003C1B4C /* session-id.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "session-id.c"; sourceTree = "<group>"; };
|
||||
C10C644B1D9AF328003C1B4C /* session-id.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "session-id.cc"; sourceTree = "<group>"; };
|
||||
C10C644C1D9AF328003C1B4C /* session-id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "session-id.h"; sourceTree = "<group>"; };
|
||||
C11DEA141FCD31C0009E22B9 /* subprocess-posix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "subprocess-posix.c"; sourceTree = "<group>"; };
|
||||
C11DEA141FCD31C0009E22B9 /* subprocess-posix.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "subprocess-posix.cc"; sourceTree = "<group>"; };
|
||||
C11DEA151FCD31C0009E22B9 /* subprocess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = subprocess.h; sourceTree = "<group>"; };
|
||||
C12F19771E1AE3C30005E93F /* upnperrors.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = upnperrors.c; sourceTree = "<group>"; };
|
||||
C12F197A1E1AE4460005E93F /* upnperrors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = upnperrors.h; sourceTree = "<group>"; };
|
||||
C1305EB8186A134000F03351 /* file.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = file.c; sourceTree = "<group>"; };
|
||||
C1305EB8186A134000F03351 /* file.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = file.cc; sourceTree = "<group>"; };
|
||||
C139E3B022BE70FA0007870C /* libssl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libssl.dylib; path = "third-party/openssl/lib/libssl.dylib"; sourceTree = "<group>"; };
|
||||
C1425B321EE9C5EA001DB85F /* tr-assert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "tr-assert.c"; sourceTree = "<group>"; };
|
||||
C1425B321EE9C5EA001DB85F /* tr-assert.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "tr-assert.cc"; sourceTree = "<group>"; };
|
||||
C1425B331EE9C5EA001DB85F /* tr-assert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "tr-assert.h"; sourceTree = "<group>"; };
|
||||
C1425B341EE9C5EA001DB85F /* tr-macros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "tr-macros.h"; sourceTree = "<group>"; };
|
||||
C1425B351EE9C5EA001DB85F /* peer-socket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "peer-socket.h"; sourceTree = "<group>"; };
|
||||
|
@ -1028,13 +1028,13 @@
|
|||
C1F690FC1AD0627500D95CF0 /* daemon-posix.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "daemon-posix.c"; sourceTree = "<group>"; };
|
||||
C1F690FE1AD0628400D95CF0 /* daemon.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = daemon.h; sourceTree = "<group>"; };
|
||||
C1FEE5721C3223CC00D62832 /* watchdir-common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "watchdir-common.h"; sourceTree = "<group>"; };
|
||||
C1FEE5731C3223CC00D62832 /* watchdir-generic.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "watchdir-generic.c"; sourceTree = "<group>"; };
|
||||
C1FEE5741C3223CC00D62832 /* watchdir-kqueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "watchdir-kqueue.c"; sourceTree = "<group>"; };
|
||||
C1FEE5751C3223CC00D62832 /* watchdir.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = watchdir.c; sourceTree = "<group>"; };
|
||||
C1FEE5731C3223CC00D62832 /* watchdir-generic.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "watchdir-generic.cc"; sourceTree = "<group>"; };
|
||||
C1FEE5741C3223CC00D62832 /* watchdir-kqueue.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "watchdir-kqueue.cc"; sourceTree = "<group>"; };
|
||||
C1FEE5751C3223CC00D62832 /* watchdir.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = watchdir.cc; sourceTree = "<group>"; };
|
||||
C1FEE5761C3223CC00D62832 /* watchdir.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = watchdir.h; sourceTree = "<group>"; };
|
||||
CAB35C62252F6F5E00552A55 /* mime-types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "mime-types.h"; sourceTree = "<group>"; };
|
||||
CAB35C63252F6F5E00552A55 /* mime-types.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "mime-types.c"; sourceTree = "<group>"; };
|
||||
D4AF3B2D0C41F7A500D46B6B /* list.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = list.c; sourceTree = "<group>"; };
|
||||
CAB35C63252F6F5E00552A55 /* mime-types.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "mime-types.cc"; sourceTree = "<group>"; };
|
||||
D4AF3B2D0C41F7A500D46B6B /* list.cc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = list.cc; sourceTree = "<group>"; };
|
||||
D4AF3B2E0C41F7A500D46B6B /* list.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = list.h; sourceTree = "<group>"; };
|
||||
E138A9750C04D88F00C5426C /* ProgressGradients.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProgressGradients.h; sourceTree = "<group>"; };
|
||||
E138A9760C04D88F00C5426C /* ProgressGradients.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ProgressGradients.m; sourceTree = "<group>"; };
|
||||
|
@ -1394,136 +1394,136 @@
|
|||
4D1838DC09DEC04A0047D688 /* libtransmission */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CAB35C63252F6F5E00552A55 /* mime-types.c */,
|
||||
CAB35C63252F6F5E00552A55 /* mime-types.cc */,
|
||||
CAB35C62252F6F5E00552A55 /* mime-types.h */,
|
||||
C1077A4A183EB29600634C22 /* error.c */,
|
||||
C1077A4A183EB29600634C22 /* error.cc */,
|
||||
C1077A4B183EB29600634C22 /* error.h */,
|
||||
C1077A4C183EB29600634C22 /* file-posix.c */,
|
||||
C1305EB8186A134000F03351 /* file.c */,
|
||||
C1077A4C183EB29600634C22 /* file-posix.cc */,
|
||||
C1305EB8186A134000F03351 /* file.cc */,
|
||||
C1077A4D183EB29600634C22 /* file.h */,
|
||||
C11DEA141FCD31C0009E22B9 /* subprocess-posix.c */,
|
||||
C11DEA141FCD31C0009E22B9 /* subprocess-posix.cc */,
|
||||
C11DEA151FCD31C0009E22B9 /* subprocess.h */,
|
||||
4D80185710BBC0B0008A4AF2 /* magnet.c */,
|
||||
4D80185710BBC0B0008A4AF2 /* magnet.cc */,
|
||||
4D80185810BBC0B0008A4AF2 /* magnet.h */,
|
||||
4D8017E810BBC073008A4AF2 /* torrent-magnet.c */,
|
||||
4D8017E810BBC073008A4AF2 /* torrent-magnet.cc */,
|
||||
4D8017E910BBC073008A4AF2 /* torrent-magnet.h */,
|
||||
0A6169A50FE5C9A200C66CE6 /* bitfield.c */,
|
||||
0A6169A50FE5C9A200C66CE6 /* bitfield.cc */,
|
||||
0A6169A60FE5C9A200C66CE6 /* bitfield.h */,
|
||||
C1425B321EE9C5EA001DB85F /* tr-assert.c */,
|
||||
C1425B321EE9C5EA001DB85F /* tr-assert.cc */,
|
||||
C1425B331EE9C5EA001DB85F /* tr-assert.h */,
|
||||
A22CFCA60FC24ED80009BD3E /* tr-dht.c */,
|
||||
A22CFCA60FC24ED80009BD3E /* tr-dht.cc */,
|
||||
A22CFCA70FC24ED80009BD3E /* tr-dht.h */,
|
||||
C1425B341EE9C5EA001DB85F /* tr-macros.h */,
|
||||
C1425B351EE9C5EA001DB85F /* peer-socket.h */,
|
||||
A284214212DA663E00FBDDBB /* tr-udp.c */,
|
||||
A284214212DA663E00FBDDBB /* tr-udp.cc */,
|
||||
A284214312DA663E00FBDDBB /* tr-udp.h */,
|
||||
A2679292130E00A000CB7464 /* tr-utp.c */,
|
||||
A2679292130E00A000CB7464 /* tr-utp.cc */,
|
||||
A2679293130E00A000CB7464 /* tr-utp.h */,
|
||||
A220EC59118C8A060022B4BE /* tr-lpd.c */,
|
||||
A220EC59118C8A060022B4BE /* tr-lpd.cc */,
|
||||
A220EC5A118C8A060022B4BE /* tr-lpd.h */,
|
||||
A2AAB65B0DE0CF6200E04DDA /* rpcimpl.c */,
|
||||
A2AAB65B0DE0CF6200E04DDA /* rpcimpl.cc */,
|
||||
A2AAB6590DE0CF6200E04DDA /* rpcimpl.h */,
|
||||
A2AAB6580DE0CF6200E04DDA /* rpc-server.c */,
|
||||
A2AAB6580DE0CF6200E04DDA /* rpc-server.cc */,
|
||||
A2AAB65A0DE0CF6200E04DDA /* rpc-server.h */,
|
||||
A29DF8B60DB2544C00D04E5A /* resume.c */,
|
||||
A29DF8B60DB2544C00D04E5A /* resume.cc */,
|
||||
A29DF8B70DB2544C00D04E5A /* resume.h */,
|
||||
A29DF8B80DB2544C00D04E5A /* torrent.h */,
|
||||
C1033E031A3279B800EF44D8 /* crypto-utils-fallback.c */,
|
||||
C1033E041A3279B800EF44D8 /* crypto-utils-openssl.c */,
|
||||
C1033E051A3279B800EF44D8 /* crypto-utils.c */,
|
||||
C1033E031A3279B800EF44D8 /* crypto-utils-fallback.cc */,
|
||||
C1033E041A3279B800EF44D8 /* crypto-utils-openssl.cc */,
|
||||
C1033E051A3279B800EF44D8 /* crypto-utils.cc */,
|
||||
C1033E061A3279B800EF44D8 /* crypto-utils.h */,
|
||||
4D36BA600CA2F00800A63CA5 /* crypto.c */,
|
||||
4D36BA600CA2F00800A63CA5 /* crypto.cc */,
|
||||
4D36BA610CA2F00800A63CA5 /* crypto.h */,
|
||||
4D36BA630CA2F00800A63CA5 /* handshake.c */,
|
||||
4D36BA630CA2F00800A63CA5 /* handshake.cc */,
|
||||
4D36BA640CA2F00800A63CA5 /* handshake.h */,
|
||||
4D36BA650CA2F00800A63CA5 /* peer-io.c */,
|
||||
4D36BA650CA2F00800A63CA5 /* peer-io.cc */,
|
||||
4D36BA660CA2F00800A63CA5 /* peer-io.h */,
|
||||
4D36BA680CA2F00800A63CA5 /* peer-mgr.c */,
|
||||
4D36BA680CA2F00800A63CA5 /* peer-mgr.cc */,
|
||||
4D36BA690CA2F00800A63CA5 /* peer-mgr.h */,
|
||||
4D36BA6A0CA2F00800A63CA5 /* peer-msgs.c */,
|
||||
4D36BA6A0CA2F00800A63CA5 /* peer-msgs.cc */,
|
||||
4D36BA6B0CA2F00800A63CA5 /* peer-msgs.h */,
|
||||
A292A6E40DFB45E5004B9C0A /* peer-common.h */,
|
||||
A292A6E50DFB45EC004B9C0A /* webseed.c */,
|
||||
A292A6E50DFB45EC004B9C0A /* webseed.cc */,
|
||||
A292A6E60DFB45EC004B9C0A /* webseed.h */,
|
||||
4D36BA6C0CA2F00800A63CA5 /* ptrarray.h */,
|
||||
A24621350C769CF400088E81 /* trevent.h */,
|
||||
A24621360C769CF400088E81 /* trevent.c */,
|
||||
4394AC640C74FB6000F367E8 /* ptrarray.c */,
|
||||
D4AF3B2D0C41F7A500D46B6B /* list.c */,
|
||||
A24621360C769CF400088E81 /* trevent.cc */,
|
||||
4394AC640C74FB6000F367E8 /* ptrarray.cc */,
|
||||
D4AF3B2D0C41F7A500D46B6B /* list.cc */,
|
||||
D4AF3B2E0C41F7A500D46B6B /* list.h */,
|
||||
A2BE9C4E0C1E4ADA002D16E6 /* makemeta.c */,
|
||||
A2BE9C4E0C1E4ADA002D16E6 /* makemeta.cc */,
|
||||
A2BE9C4F0C1E4ADA002D16E6 /* makemeta.h */,
|
||||
BEFC1DF00C07861A00B0BB3C /* version.h */,
|
||||
BEFC1DF10C07861A00B0BB3C /* utils.h */,
|
||||
BEFC1DF20C07861A00B0BB3C /* utils.c */,
|
||||
BEFC1DF20C07861A00B0BB3C /* utils.cc */,
|
||||
BEFC1DF30C07861A00B0BB3C /* upnp.h */,
|
||||
BEFC1DF40C07861A00B0BB3C /* upnp.c */,
|
||||
BEFC1DF40C07861A00B0BB3C /* upnp.cc */,
|
||||
BEFC1DF50C07861A00B0BB3C /* transmission.h */,
|
||||
BEFC1DF60C07861A00B0BB3C /* session.c */,
|
||||
BEFC1DF60C07861A00B0BB3C /* session.cc */,
|
||||
BEFC1E140C07861A00B0BB3C /* session.h */,
|
||||
C10C644B1D9AF328003C1B4C /* session-id.c */,
|
||||
C10C644B1D9AF328003C1B4C /* session-id.cc */,
|
||||
C10C644C1D9AF328003C1B4C /* session-id.h */,
|
||||
A20152790D1C26EB0081714F /* torrent-ctor.c */,
|
||||
A20152790D1C26EB0081714F /* torrent-ctor.cc */,
|
||||
A23F299F132A447400E9A83B /* announcer-common.h */,
|
||||
A25964A4106D73A800453B31 /* announcer.c */,
|
||||
A25964A4106D73A800453B31 /* announcer.cc */,
|
||||
A25964A5106D73A800453B31 /* announcer.h */,
|
||||
A23F29A0132A447400E9A83B /* announcer-http.c */,
|
||||
A2AA9BE0132CAC8D00FA131E /* announcer-udp.c */,
|
||||
BEFC1DF90C07861A00B0BB3C /* torrent.c */,
|
||||
A23F29A0132A447400E9A83B /* announcer-http.cc */,
|
||||
A2AA9BE0132CAC8D00FA131E /* announcer-udp.cc */,
|
||||
BEFC1DF90C07861A00B0BB3C /* torrent.cc */,
|
||||
BEFC1DFC0C07861A00B0BB3C /* port-forwarding.h */,
|
||||
BEFC1DFD0C07861A00B0BB3C /* port-forwarding.c */,
|
||||
BEFC1DFD0C07861A00B0BB3C /* port-forwarding.cc */,
|
||||
A21FBBA90EDA78C300BC3C51 /* bandwidth.h */,
|
||||
A21FBBAA0EDA78C300BC3C51 /* bandwidth.c */,
|
||||
A21FBBAA0EDA78C300BC3C51 /* bandwidth.cc */,
|
||||
A209EE5B1144B51E002B02D1 /* history.h */,
|
||||
A209EE5A1144B51E002B02D1 /* history.c */,
|
||||
A23547E011CD0B090046EAE6 /* cache.c */,
|
||||
A209EE5A1144B51E002B02D1 /* history.cc */,
|
||||
A23547E011CD0B090046EAE6 /* cache.cc */,
|
||||
A23547E111CD0B090046EAE6 /* cache.h */,
|
||||
BEFC1E020C07861A00B0BB3C /* platform.h */,
|
||||
BEFC1E030C07861A00B0BB3C /* platform.c */,
|
||||
BEFC1E030C07861A00B0BB3C /* platform.cc */,
|
||||
A23FAE53178BC2950053DC5B /* platform-quota.h */,
|
||||
A23FAE52178BC2950053DC5B /* platform-quota.c */,
|
||||
A23FAE52178BC2950053DC5B /* platform-quota.cc */,
|
||||
BEFC1E0C0C07861A00B0BB3C /* net.h */,
|
||||
BEFC1E0D0C07861A00B0BB3C /* net.c */,
|
||||
BEFC1E0D0C07861A00B0BB3C /* net.cc */,
|
||||
A2EE726E14DCCC950093C99A /* natpmp_local.h */,
|
||||
BEFC1E0F0C07861A00B0BB3C /* natpmp.c */,
|
||||
BEFC1E0F0C07861A00B0BB3C /* natpmp.cc */,
|
||||
BEFC1E100C07861A00B0BB3C /* metainfo.h */,
|
||||
BEFC1E110C07861A00B0BB3C /* metainfo.c */,
|
||||
BEFC1E110C07861A00B0BB3C /* metainfo.cc */,
|
||||
BEFC1E150C07861A00B0BB3C /* inout.h */,
|
||||
BEFC1E160C07861A00B0BB3C /* inout.c */,
|
||||
BEFC1E160C07861A00B0BB3C /* inout.cc */,
|
||||
BEFC1E190C07861A00B0BB3C /* fdlimit.h */,
|
||||
BEFC1E1A0C07861A00B0BB3C /* fdlimit.c */,
|
||||
BEFC1E1A0C07861A00B0BB3C /* fdlimit.cc */,
|
||||
BEFC1E1C0C07861A00B0BB3C /* completion.h */,
|
||||
BEFC1E1D0C07861A00B0BB3C /* completion.c */,
|
||||
BEFC1E1D0C07861A00B0BB3C /* completion.cc */,
|
||||
BEFC1E1E0C07861A00B0BB3C /* clients.h */,
|
||||
BEFC1E1F0C07861A00B0BB3C /* clients.c */,
|
||||
BEFC1E1F0C07861A00B0BB3C /* clients.cc */,
|
||||
A25D2CBA0CF4C7190096A262 /* stats.h */,
|
||||
A25D2CBB0CF4C7190096A262 /* stats.c */,
|
||||
A25D2CBB0CF4C7190096A262 /* stats.cc */,
|
||||
A2D22A110D65EED100007D5F /* verify.h */,
|
||||
A2D22A100D65EED100007D5F /* verify.c */,
|
||||
A2D22A100D65EED100007D5F /* verify.cc */,
|
||||
A2D307930D9EC4860051FD27 /* blocklist.h */,
|
||||
A2D3078E0D9EC45F0051FD27 /* blocklist.c */,
|
||||
A2D3078E0D9EC45F0051FD27 /* blocklist.cc */,
|
||||
A29EBE530DC01FC9006CEE80 /* web.h */,
|
||||
A29EBE520DC01FC9006CEE80 /* web.c */,
|
||||
A29EBE520DC01FC9006CEE80 /* web.cc */,
|
||||
A25E03E00E4015380086C225 /* tr-getopt.h */,
|
||||
A25E03E10E4015380086C225 /* tr-getopt.c */,
|
||||
A25E03E10E4015380086C225 /* tr-getopt.cc */,
|
||||
A2A7B329164F87D400B98C65 /* jsonsl.h */,
|
||||
A2A7B328164F87D400B98C65 /* jsonsl.c */,
|
||||
A25BFD63167BED3B0039D1AA /* variant-benc.c */,
|
||||
A25BFD63167BED3B0039D1AA /* variant-benc.cc */,
|
||||
A25BFD64167BED3B0039D1AA /* variant-common.h */,
|
||||
A25BFD65167BED3B0039D1AA /* variant-json.c */,
|
||||
A25BFD67167BED3B0039D1AA /* variant.c */,
|
||||
A25BFD65167BED3B0039D1AA /* variant-json.cc */,
|
||||
A25BFD67167BED3B0039D1AA /* variant.cc */,
|
||||
A25BFD68167BED3B0039D1AA /* variant.h */,
|
||||
A2EA522F1686AC0D00180493 /* quark.c */,
|
||||
A2EA522F1686AC0D00180493 /* quark.cc */,
|
||||
A2EA52301686AC0D00180493 /* quark.h */,
|
||||
A2AF23C616B44FA0003BC59E /* log.c */,
|
||||
A2AF23C716B44FA0003BC59E /* log.h */,
|
||||
A2A4EA0B0DE106E8000CE197 /* ConvertUTF.h */,
|
||||
A2A4EA0A0DE106E8000CE197 /* ConvertUTF.c */,
|
||||
4DB74F070E8CD75100AEB1A8 /* wildmat.c */,
|
||||
C1FEE5751C3223CC00D62832 /* watchdir.c */,
|
||||
C1FEE5751C3223CC00D62832 /* watchdir.cc */,
|
||||
C1FEE5761C3223CC00D62832 /* watchdir.h */,
|
||||
C1FEE5731C3223CC00D62832 /* watchdir-generic.c */,
|
||||
C1FEE5741C3223CC00D62832 /* watchdir-kqueue.c */,
|
||||
C1FEE5731C3223CC00D62832 /* watchdir-generic.cc */,
|
||||
C1FEE5741C3223CC00D62832 /* watchdir-kqueue.cc */,
|
||||
C1FEE5721C3223CC00D62832 /* watchdir-common.h */,
|
||||
);
|
||||
path = libtransmission;
|
||||
|
@ -2445,74 +2445,74 @@
|
|||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
BEFC1E2B0C07861A00B0BB3C /* utils.c in Sources */,
|
||||
A2AAB65F0DE0CF6200E04DDA /* rpcimpl.c in Sources */,
|
||||
BEFC1E2D0C07861A00B0BB3C /* upnp.c in Sources */,
|
||||
A2AAB65C0DE0CF6200E04DDA /* rpc-server.c in Sources */,
|
||||
BEFC1E2F0C07861A00B0BB3C /* session.c in Sources */,
|
||||
BEFC1E320C07861A00B0BB3C /* torrent.c in Sources */,
|
||||
BEFC1E360C07861A00B0BB3C /* port-forwarding.c in Sources */,
|
||||
BEFC1E3C0C07861A00B0BB3C /* platform.c in Sources */,
|
||||
BEFC1E460C07861A00B0BB3C /* net.c in Sources */,
|
||||
C1033E091A3279B800EF44D8 /* crypto-utils.c in Sources */,
|
||||
BEFC1E480C07861A00B0BB3C /* natpmp.c in Sources */,
|
||||
C1077A4E183EB29600634C22 /* error.c in Sources */,
|
||||
BEFC1E4A0C07861A00B0BB3C /* metainfo.c in Sources */,
|
||||
BEFC1E4F0C07861A00B0BB3C /* inout.c in Sources */,
|
||||
BEFC1E530C07861A00B0BB3C /* fdlimit.c in Sources */,
|
||||
C1FEE5781C3223CC00D62832 /* watchdir-generic.c in Sources */,
|
||||
BEFC1E560C07861A00B0BB3C /* completion.c in Sources */,
|
||||
BEFC1E580C07861A00B0BB3C /* clients.c in Sources */,
|
||||
A2BE9C520C1E4AF5002D16E6 /* makemeta.c in Sources */,
|
||||
D4AF3B2F0C41F7A500D46B6B /* list.c in Sources */,
|
||||
4394AC670C74FB6000F367E8 /* ptrarray.c in Sources */,
|
||||
A24621420C769D0900088E81 /* trevent.c in Sources */,
|
||||
C11DEA161FCD31C0009E22B9 /* subprocess-posix.c in Sources */,
|
||||
4D36BA6F0CA2F00800A63CA5 /* crypto.c in Sources */,
|
||||
4D36BA720CA2F00800A63CA5 /* handshake.c in Sources */,
|
||||
4D36BA740CA2F00800A63CA5 /* peer-io.c in Sources */,
|
||||
C1033E071A3279B800EF44D8 /* crypto-utils-fallback.c in Sources */,
|
||||
C10C644D1D9AF328003C1B4C /* session-id.c in Sources */,
|
||||
4D36BA770CA2F00800A63CA5 /* peer-mgr.c in Sources */,
|
||||
C1077A50183EB29600634C22 /* file-posix.c in Sources */,
|
||||
4D36BA790CA2F00800A63CA5 /* peer-msgs.c in Sources */,
|
||||
A25D2CBD0CF4C73E0096A262 /* stats.c in Sources */,
|
||||
A201527E0D1C270F0081714F /* torrent-ctor.c in Sources */,
|
||||
A2D22A130D65EEE700007D5F /* verify.c in Sources */,
|
||||
4D4ADFC70DA1631500A68297 /* blocklist.c in Sources */,
|
||||
CAB35C65252F6F5E00552A55 /* mime-types.c in Sources */,
|
||||
A29DF8B90DB2544C00D04E5A /* resume.c in Sources */,
|
||||
A2A4E9220DE0F7EB000CE197 /* web.c in Sources */,
|
||||
BEFC1E2B0C07861A00B0BB3C /* utils.cc in Sources */,
|
||||
A2AAB65F0DE0CF6200E04DDA /* rpcimpl.cc in Sources */,
|
||||
BEFC1E2D0C07861A00B0BB3C /* upnp.cc in Sources */,
|
||||
A2AAB65C0DE0CF6200E04DDA /* rpc-server.cc in Sources */,
|
||||
BEFC1E2F0C07861A00B0BB3C /* session.cc in Sources */,
|
||||
BEFC1E320C07861A00B0BB3C /* torrent.cc in Sources */,
|
||||
BEFC1E360C07861A00B0BB3C /* port-forwarding.cc in Sources */,
|
||||
BEFC1E3C0C07861A00B0BB3C /* platform.cc in Sources */,
|
||||
BEFC1E460C07861A00B0BB3C /* net.cc in Sources */,
|
||||
C1033E091A3279B800EF44D8 /* crypto-utils.cc in Sources */,
|
||||
BEFC1E480C07861A00B0BB3C /* natpmp.cc in Sources */,
|
||||
C1077A4E183EB29600634C22 /* error.cc in Sources */,
|
||||
BEFC1E4A0C07861A00B0BB3C /* metainfo.cc in Sources */,
|
||||
BEFC1E4F0C07861A00B0BB3C /* inout.cc in Sources */,
|
||||
BEFC1E530C07861A00B0BB3C /* fdlimit.cc in Sources */,
|
||||
C1FEE5781C3223CC00D62832 /* watchdir-generic.cc in Sources */,
|
||||
BEFC1E560C07861A00B0BB3C /* completion.cc in Sources */,
|
||||
BEFC1E580C07861A00B0BB3C /* clients.cc in Sources */,
|
||||
A2BE9C520C1E4AF5002D16E6 /* makemeta.cc in Sources */,
|
||||
D4AF3B2F0C41F7A500D46B6B /* list.cc in Sources */,
|
||||
4394AC670C74FB6000F367E8 /* ptrarray.cc in Sources */,
|
||||
A24621420C769D0900088E81 /* trevent.cc in Sources */,
|
||||
C11DEA161FCD31C0009E22B9 /* subprocess-posix.cc in Sources */,
|
||||
4D36BA6F0CA2F00800A63CA5 /* crypto.cc in Sources */,
|
||||
4D36BA720CA2F00800A63CA5 /* handshake.cc in Sources */,
|
||||
4D36BA740CA2F00800A63CA5 /* peer-io.cc in Sources */,
|
||||
C1033E071A3279B800EF44D8 /* crypto-utils-fallback.cc in Sources */,
|
||||
C10C644D1D9AF328003C1B4C /* session-id.cc in Sources */,
|
||||
4D36BA770CA2F00800A63CA5 /* peer-mgr.cc in Sources */,
|
||||
C1077A50183EB29600634C22 /* file-posix.cc in Sources */,
|
||||
4D36BA790CA2F00800A63CA5 /* peer-msgs.cc in Sources */,
|
||||
A25D2CBD0CF4C73E0096A262 /* stats.cc in Sources */,
|
||||
A201527E0D1C270F0081714F /* torrent-ctor.cc in Sources */,
|
||||
A2D22A130D65EEE700007D5F /* verify.cc in Sources */,
|
||||
4D4ADFC70DA1631500A68297 /* blocklist.cc in Sources */,
|
||||
CAB35C65252F6F5E00552A55 /* mime-types.cc in Sources */,
|
||||
A29DF8B90DB2544C00D04E5A /* resume.cc in Sources */,
|
||||
A2A4E9220DE0F7EB000CE197 /* web.cc in Sources */,
|
||||
A2A4EA0E0DE106EB000CE197 /* ConvertUTF.c in Sources */,
|
||||
A292A6E80DFB45FC004B9C0A /* webseed.c in Sources */,
|
||||
A25E03E30E4015380086C225 /* tr-getopt.c in Sources */,
|
||||
C1305EBE186A13B100F03351 /* file.c in Sources */,
|
||||
A292A6E80DFB45FC004B9C0A /* webseed.cc in Sources */,
|
||||
A25E03E30E4015380086C225 /* tr-getopt.cc in Sources */,
|
||||
C1305EBE186A13B100F03351 /* file.cc in Sources */,
|
||||
4DB74F080E8CD75100AEB1A8 /* wildmat.c in Sources */,
|
||||
A21FBBAC0EDA78C300BC3C51 /* bandwidth.c in Sources */,
|
||||
C1033E081A3279B800EF44D8 /* crypto-utils-openssl.c in Sources */,
|
||||
A22CFCA80FC24ED80009BD3E /* tr-dht.c in Sources */,
|
||||
0A6169A70FE5C9A200C66CE6 /* bitfield.c in Sources */,
|
||||
A25964A6106D73A800453B31 /* announcer.c in Sources */,
|
||||
4D8017EA10BBC073008A4AF2 /* torrent-magnet.c in Sources */,
|
||||
4D80185910BBC0B0008A4AF2 /* magnet.c in Sources */,
|
||||
A209EE5C1144B51E002B02D1 /* history.c in Sources */,
|
||||
A220EC5B118C8A060022B4BE /* tr-lpd.c in Sources */,
|
||||
C1FEE57A1C3223CC00D62832 /* watchdir.c in Sources */,
|
||||
A23547E211CD0B090046EAE6 /* cache.c in Sources */,
|
||||
A284214412DA663E00FBDDBB /* tr-udp.c in Sources */,
|
||||
C1425B351EE9C5F5001DB85F /* tr-assert.c in Sources */,
|
||||
A2679294130E00A000CB7464 /* tr-utp.c in Sources */,
|
||||
A23F29A2132A447400E9A83B /* announcer-http.c in Sources */,
|
||||
C1FEE5791C3223CC00D62832 /* watchdir-kqueue.c in Sources */,
|
||||
A2AA9BE1132CAC8E00FA131E /* announcer-udp.c in Sources */,
|
||||
A21FBBAC0EDA78C300BC3C51 /* bandwidth.cc in Sources */,
|
||||
C1033E081A3279B800EF44D8 /* crypto-utils-openssl.cc in Sources */,
|
||||
A22CFCA80FC24ED80009BD3E /* tr-dht.cc in Sources */,
|
||||
0A6169A70FE5C9A200C66CE6 /* bitfield.cc in Sources */,
|
||||
A25964A6106D73A800453B31 /* announcer.cc in Sources */,
|
||||
4D8017EA10BBC073008A4AF2 /* torrent-magnet.cc in Sources */,
|
||||
4D80185910BBC0B0008A4AF2 /* magnet.cc in Sources */,
|
||||
A209EE5C1144B51E002B02D1 /* history.cc in Sources */,
|
||||
A220EC5B118C8A060022B4BE /* tr-lpd.cc in Sources */,
|
||||
C1FEE57A1C3223CC00D62832 /* watchdir.cc in Sources */,
|
||||
A23547E211CD0B090046EAE6 /* cache.cc in Sources */,
|
||||
A284214412DA663E00FBDDBB /* tr-udp.cc in Sources */,
|
||||
C1425B351EE9C5F5001DB85F /* tr-assert.cc in Sources */,
|
||||
A2679294130E00A000CB7464 /* tr-utp.cc in Sources */,
|
||||
A23F29A2132A447400E9A83B /* announcer-http.cc in Sources */,
|
||||
C1FEE5791C3223CC00D62832 /* watchdir-kqueue.cc in Sources */,
|
||||
A2AA9BE1132CAC8E00FA131E /* announcer-udp.cc in Sources */,
|
||||
A2D77452154CC25700A62B93 /* WebSeedTableView.m in Sources */,
|
||||
A2A7B32A164F87D400B98C65 /* jsonsl.c in Sources */,
|
||||
A25BFD69167BED3B0039D1AA /* variant-benc.c in Sources */,
|
||||
A25BFD6B167BED3B0039D1AA /* variant-json.c in Sources */,
|
||||
A25BFD6D167BED3B0039D1AA /* variant.c in Sources */,
|
||||
A2EA52311686AC0D00180493 /* quark.c in Sources */,
|
||||
A2AF23C816B44FA0003BC59E /* log.c in Sources */,
|
||||
A23FAE54178BC2950053DC5B /* platform-quota.c in Sources */,
|
||||
A25BFD69167BED3B0039D1AA /* variant-benc.cc in Sources */,
|
||||
A25BFD6B167BED3B0039D1AA /* variant-json.cc in Sources */,
|
||||
A25BFD6D167BED3B0039D1AA /* variant.cc in Sources */,
|
||||
A2EA52311686AC0D00180493 /* quark.cc in Sources */,
|
||||
A2AF23C816B44FA0003BC59E /* log.cc in Sources */,
|
||||
A23FAE54178BC2950053DC5B /* platform-quota.cc in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -3032,6 +3032,8 @@
|
|||
0053D3D40C86774200545606 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
@ -3221,6 +3223,8 @@
|
|||
4D18389C09DEC01E0047D688 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
@ -3475,6 +3479,8 @@
|
|||
A250CFEE0CDA19680068B4B6 /* Release - Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_OBJC_ARC = NO;
|
||||
HEADER_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
|
|
@ -17,12 +17,12 @@ find_package_handle_standard_args(ICONV
|
|||
)
|
||||
|
||||
if(ICONV_FOUND AND NOT DEFINED ICONV_SECOND_ARGUMENT_IS_CONST)
|
||||
include(CheckCSourceCompiles)
|
||||
include(CheckCXXSourceCompiles)
|
||||
|
||||
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIRS})
|
||||
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
|
||||
|
||||
check_c_source_compiles("
|
||||
check_cxx_source_compiles("
|
||||
#include <iconv.h>
|
||||
int main()
|
||||
{
|
||||
|
@ -35,8 +35,11 @@ if(ICONV_FOUND AND NOT DEFINED ICONV_SECOND_ARGUMENT_IS_CONST)
|
|||
return 0;
|
||||
}"
|
||||
ICONV_SECOND_ARGUMENT_IS_CONST
|
||||
FAIL_REGEX "discards qualifiers in nested pointer types"
|
||||
FAIL_REGEX "incompatible pointer type"
|
||||
FAIL_REGEX "discards qualifiers in nested pointer types")
|
||||
FAIL_REGEX "invalid conversion"
|
||||
FAIL_REGEX "no matching function"
|
||||
)
|
||||
|
||||
set(CMAKE_REQUIRED_INCLUDES)
|
||||
set(CMAKE_REQUIRED_LIBRARIES)
|
||||
|
|
|
@ -49,13 +49,13 @@ if ! find_cfiles -exec clang-format $clang_format_args '{}' '+'; then
|
|||
fi
|
||||
|
||||
# enforce east const
|
||||
matches="$(find_cfiles -exec perl -ne 'print "west const:",$ARGV,":",$_ if /((?:^|[(,;]|\bstatic\s+)\s*)\b(const)\b(?!\s+\w+\s*\[)/' '{}' '+')"
|
||||
matches="$(find_cfiles -exec perl -ne 'print "west const:",$ARGV,":",$_ if /((?:^|[(<,;]|\bstatic\s+)\s*)\b(const)\b(?!\s+\w+\s*\[)/' '{}' '+')"
|
||||
if [ -n "$matches" ]; then
|
||||
echo "$matches"
|
||||
exitcode=1
|
||||
fi
|
||||
if [ -n "$fix" ]; then
|
||||
find_cfiles -exec perl -pi -e 's/((?:^|[(,;]|\bstatic\s+)\s*)\b(const)\b(?!\s+\w+\s*\[)/\1>\2</g' '{}' '+'
|
||||
find_cfiles -exec perl -pi -e 's/((?:^|[(<,;]|\bstatic\s+)\s*)\b(const)\b(?!\s+\w+\s*\[)/\1>\2</g' '{}' '+'
|
||||
fi
|
||||
|
||||
# format JS
|
||||
|
|
|
@ -6,76 +6,76 @@ configure_file(
|
|||
)
|
||||
|
||||
set(PROJECT_FILES
|
||||
announcer.c
|
||||
announcer-http.c
|
||||
announcer-udp.c
|
||||
bandwidth.c
|
||||
bitfield.c
|
||||
blocklist.c
|
||||
cache.c
|
||||
clients.c
|
||||
completion.c
|
||||
crypto.c
|
||||
crypto-utils.c
|
||||
crypto-utils-cyassl.c
|
||||
crypto-utils-fallback.c
|
||||
crypto-utils-openssl.c
|
||||
crypto-utils-polarssl.c
|
||||
error.c
|
||||
fdlimit.c
|
||||
file.c
|
||||
file-posix.c
|
||||
file-win32.c
|
||||
handshake.c
|
||||
history.c
|
||||
inout.c
|
||||
list.c
|
||||
log.c
|
||||
magnet.c
|
||||
makemeta.c
|
||||
metainfo.c
|
||||
mime-types.c
|
||||
natpmp.c
|
||||
net.c
|
||||
peer-io.c
|
||||
peer-mgr.c
|
||||
peer-msgs.c
|
||||
platform.c
|
||||
platform-quota.c
|
||||
port-forwarding.c
|
||||
ptrarray.c
|
||||
quark.c
|
||||
resume.c
|
||||
rpcimpl.c
|
||||
rpc-server.c
|
||||
session.c
|
||||
session-id.c
|
||||
subprocess-posix.c
|
||||
subprocess-win32.c
|
||||
stats.c
|
||||
torrent.c
|
||||
torrent-ctor.c
|
||||
torrent-magnet.c
|
||||
tr-dht.c
|
||||
trevent.c
|
||||
tr-assert.c
|
||||
tr-getopt.c
|
||||
tr-lpd.c
|
||||
tr-udp.c
|
||||
tr-utp.c
|
||||
upnp.c
|
||||
utils.c
|
||||
variant-benc.c
|
||||
variant.c
|
||||
variant-json.c
|
||||
verify.c
|
||||
watchdir.c
|
||||
watchdir-generic.c
|
||||
watchdir-inotify.c
|
||||
watchdir-kqueue.c
|
||||
watchdir-win32.c
|
||||
web.c
|
||||
webseed.c
|
||||
announcer.cc
|
||||
announcer-http.cc
|
||||
announcer-udp.cc
|
||||
bandwidth.cc
|
||||
bitfield.cc
|
||||
blocklist.cc
|
||||
cache.cc
|
||||
clients.cc
|
||||
completion.cc
|
||||
crypto.cc
|
||||
crypto-utils.cc
|
||||
crypto-utils-cyassl.cc
|
||||
crypto-utils-fallback.cc
|
||||
crypto-utils-openssl.cc
|
||||
crypto-utils-polarssl.cc
|
||||
error.cc
|
||||
fdlimit.cc
|
||||
file.cc
|
||||
file-posix.cc
|
||||
file-win32.cc
|
||||
handshake.cc
|
||||
history.cc
|
||||
inout.cc
|
||||
list.cc
|
||||
log.cc
|
||||
magnet.cc
|
||||
makemeta.cc
|
||||
metainfo.cc
|
||||
mime-types.cc
|
||||
natpmp.cc
|
||||
net.cc
|
||||
peer-io.cc
|
||||
peer-mgr.cc
|
||||
peer-msgs.cc
|
||||
platform.cc
|
||||
platform-quota.cc
|
||||
port-forwarding.cc
|
||||
ptrarray.cc
|
||||
quark.cc
|
||||
resume.cc
|
||||
rpcimpl.cc
|
||||
rpc-server.cc
|
||||
session.cc
|
||||
session-id.cc
|
||||
subprocess-posix.cc
|
||||
subprocess-win32.cc
|
||||
stats.cc
|
||||
torrent.cc
|
||||
torrent-ctor.cc
|
||||
torrent-magnet.cc
|
||||
tr-dht.cc
|
||||
trevent.cc
|
||||
tr-assert.cc
|
||||
tr-getopt.cc
|
||||
tr-lpd.cc
|
||||
tr-udp.cc
|
||||
tr-utp.cc
|
||||
upnp.cc
|
||||
utils.cc
|
||||
variant-benc.cc
|
||||
variant.cc
|
||||
variant-json.cc
|
||||
verify.cc
|
||||
watchdir.cc
|
||||
watchdir-generic.cc
|
||||
watchdir-inotify.cc
|
||||
watchdir-kqueue.cc
|
||||
watchdir-win32.cc
|
||||
web.cc
|
||||
webseed.cc
|
||||
)
|
||||
|
||||
string(REPLACE ";" " " C_WARNING_FLAGS_STR "${C_WARNING_FLAGS}")
|
||||
|
@ -94,29 +94,29 @@ set(${PROJECT_NAME}_SOURCES
|
|||
${THIRD_PARTY_FILES}
|
||||
)
|
||||
|
||||
set_source_files_properties(crypto-utils-fallback.c PROPERTIES HEADER_FILE_ONLY ON)
|
||||
set_source_files_properties(crypto-utils-fallback.cc PROPERTIES HEADER_FILE_ONLY ON)
|
||||
foreach(CP cyassl openssl polarssl)
|
||||
if(NOT CP STREQUAL CRYPTO_PKG)
|
||||
set_source_files_properties(crypto-utils-${CP}.c PROPERTIES HEADER_FILE_ONLY ON)
|
||||
set_source_files_properties(crypto-utils-${CP}.cc PROPERTIES HEADER_FILE_ONLY ON)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(WITH_INOTIFY)
|
||||
add_definitions(-DWITH_INOTIFY)
|
||||
else()
|
||||
set_source_files_properties(watchdir-inotify.c PROPERTIES HEADER_FILE_ONLY ON)
|
||||
set_source_files_properties(watchdir-inotify.cc PROPERTIES HEADER_FILE_ONLY ON)
|
||||
endif()
|
||||
|
||||
if(WITH_KQUEUE)
|
||||
add_definitions(-DWITH_KQUEUE)
|
||||
else()
|
||||
set_source_files_properties(watchdir-kqueue.c PROPERTIES HEADER_FILE_ONLY ON)
|
||||
set_source_files_properties(watchdir-kqueue.cc PROPERTIES HEADER_FILE_ONLY ON)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
set_source_files_properties(file-posix.c subprocess-posix.c PROPERTIES HEADER_FILE_ONLY ON)
|
||||
set_source_files_properties(file-posix.cc subprocess-posix.cc PROPERTIES HEADER_FILE_ONLY ON)
|
||||
else()
|
||||
set_source_files_properties(file-win32.c subprocess-win32.c watchdir-win32.c PROPERTIES HEADER_FILE_ONLY ON)
|
||||
set_source_files_properties(file-win32.cc subprocess-win32.cc watchdir-win32.cc PROPERTIES HEADER_FILE_ONLY ON)
|
||||
endif()
|
||||
|
||||
set(${PROJECT_NAME}_PUBLIC_HEADERS
|
||||
|
@ -191,7 +191,7 @@ set(${PROJECT_NAME}_PRIVATE_HEADERS
|
|||
)
|
||||
|
||||
if(NOT ENABLE_UTP)
|
||||
set_source_files_properties(tr-utp.c PROPERTIES HEADER_FILE_ONLY ON)
|
||||
set_source_files_properties(tr-utp.cc PROPERTIES HEADER_FILE_ONLY ON)
|
||||
endif()
|
||||
|
||||
add_definitions(
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# Notes on the C-to-C++ Conversion
|
||||
|
||||
- libtransmission was written in C for fifteen years, so eliminating all
|
||||
Cisms is nearly impossible. **Modernization patches are welcomed** but
|
||||
it won't all happen overnight. `tr_strdup()` and `constexpr` wil exist
|
||||
side-by-side in the codebase for the forseeable future.
|
||||
|
||||
- It's so tempting to refactor all the things! Please keep modernization
|
||||
patches reasonably focused so that they will be easy to review.
|
||||
|
||||
- Prefer `std::` tools over bespoke ones. For example, use `std::vector`
|
||||
instead of tr_ptrArray. Redundant bespoke code should be removed.
|
||||
|
||||
- Consider ripple effects before adding C++ into public headers. Will it
|
||||
break C code that #includes that header?
|
|
@ -183,7 +183,7 @@ struct announce_data
|
|||
|
||||
static void on_announce_done_eventthread(void* vdata)
|
||||
{
|
||||
struct announce_data* data = vdata;
|
||||
auto* data = static_cast<struct announce_data*>(vdata);
|
||||
|
||||
if (data->response_func != NULL)
|
||||
{
|
||||
|
@ -208,7 +208,7 @@ static void on_announce_done(
|
|||
void* vdata)
|
||||
{
|
||||
tr_announce_response* response;
|
||||
struct announce_data* data = vdata;
|
||||
auto* data = static_cast<struct announce_data*>(vdata);
|
||||
|
||||
response = &data->response;
|
||||
response->did_connect = did_connect;
|
||||
|
@ -363,7 +363,7 @@ struct scrape_data
|
|||
|
||||
static void on_scrape_done_eventthread(void* vdata)
|
||||
{
|
||||
struct scrape_data* data = vdata;
|
||||
auto* data = static_cast<struct scrape_data*>(vdata);
|
||||
|
||||
if (data->response_func != NULL)
|
||||
{
|
||||
|
@ -384,10 +384,9 @@ static void on_scrape_done(
|
|||
size_t msglen,
|
||||
void* vdata)
|
||||
{
|
||||
tr_scrape_response* response;
|
||||
struct scrape_data* data = vdata;
|
||||
auto* data = static_cast<struct scrape_data*>(vdata);
|
||||
|
||||
response = &data->response;
|
||||
tr_scrape_response* response = &data->response;
|
||||
response->did_connect = did_connect;
|
||||
response->did_timeout = did_timeout;
|
||||
dbgmsg(data->log_name, "Got scrape response for \"%s\"", response->url);
|
|
@ -69,7 +69,7 @@ static int tau_sendto(tr_session const* session, struct evutil_addrinfo* ai, tr_
|
|||
}
|
||||
|
||||
tau_sockaddr_setport(ai->ai_addr, port);
|
||||
return sendto(sockfd, buf, buflen, 0, ai->ai_addr, ai->ai_addrlen);
|
||||
return sendto(sockfd, static_cast<char const*>(buf), buflen, 0, ai->ai_addr, ai->ai_addrlen);
|
||||
}
|
||||
|
||||
/****
|
||||
|
@ -486,34 +486,34 @@ static void tau_tracker_free(struct tau_tracker* t)
|
|||
|
||||
static void tau_tracker_fail_all(struct tau_tracker* tracker, bool did_connect, bool did_timeout, char const* errmsg)
|
||||
{
|
||||
tr_ptrArray* reqs;
|
||||
|
||||
/* fail all the scrapes */
|
||||
reqs = &tracker->scrapes;
|
||||
tr_ptrArray* reqs = &tracker->scrapes;
|
||||
|
||||
for (int i = 0, n = tr_ptrArraySize(reqs); i < n; ++i)
|
||||
{
|
||||
tau_scrape_request_fail(tr_ptrArrayNth(reqs, i), did_connect, did_timeout, errmsg);
|
||||
auto* req = static_cast<struct tau_scrape_request*>(tr_ptrArrayNth(reqs, i));
|
||||
tau_scrape_request_fail(req, did_connect, did_timeout, errmsg);
|
||||
}
|
||||
|
||||
tr_ptrArrayDestruct(reqs, (PtrArrayForeachFunc)tau_scrape_request_free);
|
||||
*reqs = TR_PTR_ARRAY_INIT;
|
||||
*reqs = {};
|
||||
|
||||
/* fail all the announces */
|
||||
reqs = &tracker->announces;
|
||||
|
||||
for (int i = 0, n = tr_ptrArraySize(reqs); i < n; ++i)
|
||||
{
|
||||
tau_announce_request_fail(tr_ptrArrayNth(reqs, i), did_connect, did_timeout, errmsg);
|
||||
auto* req = static_cast<struct tau_announce_request*>(tr_ptrArrayNth(reqs, i));
|
||||
tau_announce_request_fail(req, did_connect, did_timeout, errmsg);
|
||||
}
|
||||
|
||||
tr_ptrArrayDestruct(reqs, (PtrArrayForeachFunc)tau_announce_request_free);
|
||||
*reqs = TR_PTR_ARRAY_INIT;
|
||||
*reqs = {};
|
||||
}
|
||||
|
||||
static void tau_tracker_on_dns(int errcode, struct evutil_addrinfo* addr, void* vtracker)
|
||||
{
|
||||
struct tau_tracker* tracker = vtracker;
|
||||
auto* tracker = static_cast<struct tau_tracker*>(vtracker);
|
||||
|
||||
tracker->dns_request = NULL;
|
||||
|
||||
|
@ -557,7 +557,7 @@ static void tau_tracker_send_reqs(struct tau_tracker* tracker)
|
|||
|
||||
for (int i = 0, n = tr_ptrArraySize(reqs); i < n; ++i)
|
||||
{
|
||||
struct tau_announce_request* req = tr_ptrArrayNth(reqs, i);
|
||||
auto* req = static_cast<struct tau_announce_request*>(tr_ptrArrayNth(reqs, i));
|
||||
|
||||
if (req->sent_at == 0)
|
||||
{
|
||||
|
@ -579,7 +579,7 @@ static void tau_tracker_send_reqs(struct tau_tracker* tracker)
|
|||
|
||||
for (int i = 0, n = tr_ptrArraySize(reqs); i < n; ++i)
|
||||
{
|
||||
struct tau_scrape_request* req = tr_ptrArrayNth(reqs, i);
|
||||
auto* req = static_cast<struct tau_scrape_request*>(tr_ptrArrayNth(reqs, i));
|
||||
|
||||
if (req->sent_at == 0)
|
||||
{
|
||||
|
@ -648,7 +648,7 @@ static void tau_tracker_timeout_reqs(struct tau_tracker* tracker)
|
|||
|
||||
for (int i = 0, n = tr_ptrArraySize(reqs); i < n; ++i)
|
||||
{
|
||||
struct tau_announce_request* req = tr_ptrArrayNth(reqs, i);
|
||||
auto* req = static_cast<struct tau_announce_request*>(tr_ptrArrayNth(reqs, i));
|
||||
|
||||
if (cancel_all || req->created_at + TAU_REQUEST_TTL < now)
|
||||
{
|
||||
|
@ -665,7 +665,7 @@ static void tau_tracker_timeout_reqs(struct tau_tracker* tracker)
|
|||
|
||||
for (int i = 0, n = tr_ptrArraySize(reqs); i < n; ++i)
|
||||
{
|
||||
struct tau_scrape_request* req = tr_ptrArrayNth(reqs, i);
|
||||
auto* req = static_cast<struct tau_scrape_request*>(tr_ptrArrayNth(reqs, i));
|
||||
|
||||
if (cancel_all || req->created_at + TAU_REQUEST_TTL < now)
|
||||
{
|
||||
|
@ -786,7 +786,7 @@ static struct tr_announcer_udp* announcer_udp_get(tr_session* session)
|
|||
}
|
||||
|
||||
tau = tr_new0(struct tr_announcer_udp, 1);
|
||||
tau->trackers = TR_PTR_ARRAY_INIT;
|
||||
tau->trackers = {};
|
||||
tau->session = session;
|
||||
session->announcer_udp = tau;
|
||||
return tau;
|
||||
|
@ -807,7 +807,7 @@ static struct tau_tracker* tau_session_get_tracker(struct tr_announcer_udp* tau,
|
|||
|
||||
for (int i = 0, n = tr_ptrArraySize(&tau->trackers); tracker == NULL && i < n; ++i)
|
||||
{
|
||||
struct tau_tracker* tmp = tr_ptrArrayNth(&tau->trackers, i);
|
||||
auto* tmp = static_cast<struct tau_tracker*>(tr_ptrArrayNth(&tau->trackers, i));
|
||||
|
||||
if (tr_strcmp0(tmp->key, key) == 0)
|
||||
{
|
||||
|
@ -823,8 +823,8 @@ static struct tau_tracker* tau_session_get_tracker(struct tr_announcer_udp* tau,
|
|||
tracker->key = key;
|
||||
tracker->host = host;
|
||||
tracker->port = port;
|
||||
tracker->scrapes = TR_PTR_ARRAY_INIT;
|
||||
tracker->announces = TR_PTR_ARRAY_INIT;
|
||||
tracker->scrapes = {};
|
||||
tracker->announces = {};
|
||||
tr_ptrArrayAppend(&tau->trackers, tracker);
|
||||
dbgmsg(tracker->key, "New tau_tracker created");
|
||||
}
|
||||
|
@ -861,7 +861,8 @@ bool tr_tracker_udp_is_idle(tr_session const* session)
|
|||
{
|
||||
for (int i = 0, n = tr_ptrArraySize(&tau->trackers); i < n; ++i)
|
||||
{
|
||||
if (!tau_tracker_is_idle(tr_ptrArrayNth(&tau->trackers, i)))
|
||||
auto const* tracker = static_cast<struct tau_tracker const*>(tr_ptrArrayNth(&tau->trackers, i));
|
||||
if (!tau_tracker_is_idle(tracker))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -896,7 +897,7 @@ void tr_tracker_udp_start_shutdown(tr_session* session)
|
|||
{
|
||||
for (int i = 0, n = tr_ptrArraySize(&tau->trackers); i < n; ++i)
|
||||
{
|
||||
struct tau_tracker* tracker = tr_ptrArrayNth(&tau->trackers, i);
|
||||
auto* tracker = static_cast<struct tau_tracker*>(tr_ptrArrayNth(&tau->trackers, i));
|
||||
|
||||
if (tracker->dns_request != NULL)
|
||||
{
|
||||
|
@ -914,7 +915,6 @@ void tr_tracker_udp_start_shutdown(tr_session* session)
|
|||
bool tau_handle_message(tr_session* session, uint8_t const* msg, size_t msglen)
|
||||
{
|
||||
struct tr_announcer_udp* tau;
|
||||
tau_action_t action_id;
|
||||
tau_transaction_t transaction_id;
|
||||
struct evbuffer* buf;
|
||||
|
||||
|
@ -931,7 +931,7 @@ bool tau_handle_message(tr_session* session, uint8_t const* msg, size_t msglen)
|
|||
/* extract the action_id and see if it makes sense */
|
||||
buf = evbuffer_new();
|
||||
evbuffer_add_reference(buf, msg, msglen, NULL, NULL);
|
||||
action_id = evbuffer_read_ntoh_32(buf);
|
||||
auto const action_id = tau_action_t(evbuffer_read_ntoh_32(buf));
|
||||
|
||||
if (!is_tau_response_message(action_id, msglen))
|
||||
{
|
||||
|
@ -946,7 +946,7 @@ bool tau_handle_message(tr_session* session, uint8_t const* msg, size_t msglen)
|
|||
for (int i = 0, n = tr_ptrArraySize(&tau->trackers); i < n; ++i)
|
||||
{
|
||||
tr_ptrArray* reqs;
|
||||
struct tau_tracker* tracker = tr_ptrArrayNth(&tau->trackers, i);
|
||||
auto* tracker = static_cast<struct tau_tracker*>(tr_ptrArrayNth(&tau->trackers, i));
|
||||
|
||||
/* is it a connection response? */
|
||||
if (tracker->connecting_at != 0 && transaction_id == tracker->connection_transaction_id)
|
||||
|
@ -962,7 +962,7 @@ bool tau_handle_message(tr_session* session, uint8_t const* msg, size_t msglen)
|
|||
|
||||
for (int j = 0, jn = tr_ptrArraySize(reqs); j < jn; ++j)
|
||||
{
|
||||
struct tau_announce_request* req = tr_ptrArrayNth(reqs, j);
|
||||
auto* req = static_cast<struct tau_announce_request*>(tr_ptrArrayNth(reqs, j));
|
||||
|
||||
if (req->sent_at != 0 && transaction_id == req->transaction_id)
|
||||
{
|
||||
|
@ -980,7 +980,7 @@ bool tau_handle_message(tr_session* session, uint8_t const* msg, size_t msglen)
|
|||
|
||||
for (int j = 0, jn = tr_ptrArraySize(reqs); j < jn; ++j)
|
||||
{
|
||||
struct tau_scrape_request* req = tr_ptrArrayNth(reqs, j);
|
||||
auto* req = static_cast<struct tau_scrape_request*>(tr_ptrArrayNth(reqs, j));
|
||||
|
||||
if (req->sent_at != 0 && transaction_id == req->transaction_id)
|
||||
{
|
|
@ -119,8 +119,8 @@ static int compareTransfer(uint64_t a_uploaded, uint64_t a_downloaded, uint64_t
|
|||
static int compareStops(void const* va, void const* vb)
|
||||
{
|
||||
int i;
|
||||
tr_announce_request const* a = va;
|
||||
tr_announce_request const* b = vb;
|
||||
auto const* a = static_cast<tr_announce_request const*>(va);
|
||||
auto const* b = static_cast<tr_announce_request const*>(vb);
|
||||
|
||||
/* primary key: volume of data transferred. */
|
||||
if ((i = compareTransfer(a->up, a->down, b->up, b->down)) != 0)
|
||||
|
@ -151,7 +151,7 @@ struct tr_scrape_info
|
|||
|
||||
static void scrapeInfoFree(void* va)
|
||||
{
|
||||
struct tr_scrape_info* a = va;
|
||||
auto* a = static_cast<struct tr_scrape_info*>(va);
|
||||
|
||||
tr_free(a->url);
|
||||
tr_free(a);
|
||||
|
@ -159,8 +159,8 @@ static void scrapeInfoFree(void* va)
|
|||
|
||||
static int compareScrapeInfo(void const* va, void const* vb)
|
||||
{
|
||||
struct tr_scrape_info const* a = va;
|
||||
struct tr_scrape_info const* b = vb;
|
||||
auto const* a = static_cast<struct tr_scrape_info const*>(va);
|
||||
auto const* b = static_cast<struct tr_scrape_info const*>(vb);
|
||||
return tr_strcmp0(a->url, b->url);
|
||||
}
|
||||
|
||||
|
@ -185,11 +185,11 @@ static struct tr_scrape_info* tr_announcerGetScrapeInfo(struct tr_announcer* ann
|
|||
if (!tr_str_is_empty(url))
|
||||
{
|
||||
bool found;
|
||||
struct tr_scrape_info const key = { .url = (char*)url };
|
||||
auto const key = tr_scrape_info{ const_cast<char*>(url), {} };
|
||||
int const pos = tr_ptrArrayLowerBound(&announcer->scrape_info, &key, compareScrapeInfo, &found);
|
||||
if (found)
|
||||
{
|
||||
info = tr_ptrArrayNth(&announcer->scrape_info, pos);
|
||||
info = static_cast<struct tr_scrape_info*>(tr_ptrArrayNth(&announcer->scrape_info, pos));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -210,7 +210,7 @@ void tr_announcerInit(tr_session* session)
|
|||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
tr_announcer* a = tr_new0(tr_announcer, 1);
|
||||
a->stops = TR_PTR_ARRAY_INIT;
|
||||
a->stops = {};
|
||||
a->key = tr_rand_int(INT_MAX);
|
||||
a->session = session;
|
||||
a->upkeepTimer = evtimer_new(session->event_base, onUpkeepTimer, a);
|
||||
|
@ -505,20 +505,12 @@ static tr_tier* getTier(tr_announcer* announcer, uint8_t const* info_hash, int t
|
|||
**** PUBLISH
|
||||
***/
|
||||
|
||||
static tr_tracker_event const TRACKER_EVENT_INIT = { .messageType = TR_TRACKER_WARNING,
|
||||
.text = NULL,
|
||||
.tracker = NULL,
|
||||
.pex = NULL,
|
||||
.pexCount = 0,
|
||||
.seeders = 0,
|
||||
.leechers = 0 };
|
||||
|
||||
static void publishMessage(tr_tier* tier, char const* msg, int type)
|
||||
static void publishMessage(tr_tier* tier, char const* msg, TrackerEventType type)
|
||||
{
|
||||
if (tier != NULL && tier->tor != NULL && tier->tor->tiers != NULL && tier->tor->tiers->callback != NULL)
|
||||
{
|
||||
tr_torrent_tiers* tiers = tier->tor->tiers;
|
||||
tr_tracker_event event = TRACKER_EVENT_INIT;
|
||||
auto event = tr_tracker_event{};
|
||||
event.messageType = type;
|
||||
event.text = msg;
|
||||
|
||||
|
@ -550,7 +542,7 @@ static void publishPeerCounts(tr_tier* tier, int seeders, int leechers)
|
|||
{
|
||||
if (tier->tor->tiers->callback != NULL)
|
||||
{
|
||||
tr_tracker_event e = TRACKER_EVENT_INIT;
|
||||
auto e = tr_tracker_event{};
|
||||
e.messageType = TR_TRACKER_COUNTS;
|
||||
e.seeders = seeders;
|
||||
e.leechers = leechers;
|
||||
|
@ -564,7 +556,7 @@ static void publishPeersPex(tr_tier* tier, int seeders, int leechers, tr_pex con
|
|||
{
|
||||
if (tier->tor->tiers->callback != NULL)
|
||||
{
|
||||
tr_tracker_event e = TRACKER_EVENT_INIT;
|
||||
auto e = tr_tracker_event{};
|
||||
e.messageType = TR_TRACKER_PEERS;
|
||||
e.seeders = seeders;
|
||||
e.leechers = leechers;
|
||||
|
@ -594,8 +586,8 @@ struct ann_tracker_info
|
|||
* secondary key: udp comes before http */
|
||||
static int filter_trackers_compare_func(void const* va, void const* vb)
|
||||
{
|
||||
struct ann_tracker_info const* a = va;
|
||||
struct ann_tracker_info const* b = vb;
|
||||
auto* a = static_cast<struct ann_tracker_info const*>(va);
|
||||
auto* b = static_cast<struct ann_tracker_info const*>(vb);
|
||||
|
||||
if (a->info.tier != b->info.tier)
|
||||
{
|
||||
|
@ -1099,7 +1091,7 @@ static void on_announce_error(tr_tier* tier, char const* err, tr_announce_event
|
|||
|
||||
static void on_announce_done(tr_announce_response const* response, void* vdata)
|
||||
{
|
||||
struct announce_data* data = vdata;
|
||||
auto* data = static_cast<struct announce_data*>(vdata);
|
||||
tr_announcer* announcer = data->session->announcer;
|
||||
tr_tier* tier = getTier(announcer, response->info_hash, data->tierId);
|
||||
time_t const now = tr_time();
|
||||
|
@ -1426,7 +1418,7 @@ static tr_tier* find_tier(tr_torrent* tor, char const* scrape)
|
|||
static void on_scrape_done(tr_scrape_response const* response, void* vsession)
|
||||
{
|
||||
time_t const now = tr_time();
|
||||
tr_session* session = vsession;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
tr_announcer* announcer = session->announcer;
|
||||
|
||||
for (int i = 0; i < response->row_count; ++i)
|
||||
|
@ -1580,12 +1572,12 @@ static void multiscrape(tr_announcer* announcer, tr_ptrArray* tiers)
|
|||
size_t request_count = 0;
|
||||
time_t const now = tr_time();
|
||||
size_t const tier_count = tr_ptrArraySize(tiers);
|
||||
tr_scrape_request requests[MAX_SCRAPES_PER_UPKEEP] = { 0 };
|
||||
tr_scrape_request requests[MAX_SCRAPES_PER_UPKEEP] = {};
|
||||
|
||||
/* batch as many info_hashes into a request as we can */
|
||||
for (size_t i = 0; i < tier_count; ++i)
|
||||
{
|
||||
tr_tier* tier = tr_ptrArrayNth(tiers, i);
|
||||
auto* tier = static_cast<tr_tier*>(tr_ptrArrayNth(tiers, i));
|
||||
struct tr_scrape_info* const scrape_info = tier->currentTracker->scrape_info;
|
||||
uint8_t const* hash = tier->tor->info.hash;
|
||||
bool found = false;
|
||||
|
@ -1637,7 +1629,11 @@ static void flushCloseMessages(tr_announcer* announcer)
|
|||
{
|
||||
for (int i = 0, n = tr_ptrArraySize(&announcer->stops); i < n; ++i)
|
||||
{
|
||||
announce_request_delegate(announcer, tr_ptrArrayNth(&announcer->stops, i), NULL, NULL);
|
||||
announce_request_delegate(
|
||||
announcer,
|
||||
static_cast<tr_announce_request*>(tr_ptrArrayNth(&announcer->stops, i)),
|
||||
nullptr,
|
||||
nullptr);
|
||||
}
|
||||
|
||||
tr_ptrArrayClear(&announcer->stops);
|
||||
|
@ -1718,8 +1714,8 @@ static void scrapeAndAnnounceMore(tr_announcer* announcer)
|
|||
time_t const now = tr_time();
|
||||
|
||||
/* build a list of tiers that need to be announced */
|
||||
tr_ptrArray announceMe = TR_PTR_ARRAY_INIT;
|
||||
tr_ptrArray scrapeMe = TR_PTR_ARRAY_INIT;
|
||||
auto announceMe = tr_ptrArray{};
|
||||
auto scrapeMe = tr_ptrArray{};
|
||||
tr_torrent* tor = NULL;
|
||||
while ((tor = tr_torrentNext(announcer->session, tor)) != NULL)
|
||||
{
|
||||
|
@ -1752,7 +1748,7 @@ static void scrapeAndAnnounceMore(tr_announcer* announcer)
|
|||
int n = MIN(tr_ptrArraySize(&announceMe), MAX_ANNOUNCES_PER_UPKEEP);
|
||||
for (int i = 0; i < n; ++i)
|
||||
{
|
||||
tr_tier* tier = tr_ptrArrayNth(&announceMe, i);
|
||||
auto* tier = static_cast<tr_tier*>(tr_ptrArrayNth(&announceMe, i));
|
||||
tr_logAddTorDbg(tier->tor, "%s", "Announcing to tracker");
|
||||
dbgmsg(tier, "announcing tier %d of %d", i, n);
|
||||
tierAnnounce(announcer, tier);
|
||||
|
@ -1768,7 +1764,7 @@ static void onUpkeepTimer(evutil_socket_t fd, short what, void* vannouncer)
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(what);
|
||||
|
||||
tr_announcer* announcer = vannouncer;
|
||||
auto* announcer = static_cast<tr_announcer*>(vannouncer);
|
||||
tr_session* session = announcer->session;
|
||||
bool const is_closing = session->isClosed;
|
||||
time_t const now = tr_time();
|
||||
|
@ -1940,7 +1936,8 @@ static void copy_tier_attributes_impl(struct tr_tier* tgt, int trackerIndex, tr_
|
|||
tgt->wasCopied = true;
|
||||
tgt->trackers = keep.trackers;
|
||||
tgt->tracker_count = keep.tracker_count;
|
||||
tgt->announce_events = tr_memdup(src->announce_events, sizeof(tr_announce_event) * src->announce_event_count);
|
||||
tgt->announce_events = static_cast<tr_announce_event*>(
|
||||
tr_memdup(src->announce_events, sizeof(tr_announce_event) * src->announce_event_count));
|
||||
tgt->announce_event_priority = src->announce_event_priority;
|
||||
tgt->announce_event_count = src->announce_event_count;
|
||||
tgt->announce_event_alloc = src->announce_event_count;
|
|
@ -85,8 +85,8 @@ static void bytesUsed(uint64_t const now, struct bratecontrol* r, size_t size)
|
|||
|
||||
static int compareBandwidth(void const* va, void const* vb)
|
||||
{
|
||||
tr_bandwidth const* a = va;
|
||||
tr_bandwidth const* b = vb;
|
||||
auto const* a = static_cast<tr_bandwidth const*>(va);
|
||||
auto const* b = static_cast<tr_bandwidth const*>(vb);
|
||||
return a->uniqueKey - b->uniqueKey;
|
||||
}
|
||||
|
||||
|
@ -99,7 +99,7 @@ void tr_bandwidthConstruct(tr_bandwidth* b, tr_session* session, tr_bandwidth* p
|
|||
static unsigned int uniqueKey = 0;
|
||||
|
||||
b->session = session;
|
||||
b->children = TR_PTR_ARRAY_INIT;
|
||||
b->children = {};
|
||||
b->magicNumber = BANDWIDTH_MAGIC_NUMBER;
|
||||
b->uniqueKey = uniqueKey++;
|
||||
b->band[TR_UP].honorParentLimits = true;
|
||||
|
@ -224,10 +224,10 @@ static void phaseOne(tr_ptrArray const* peerArray, tr_direction dir)
|
|||
void tr_bandwidthAllocate(tr_bandwidth* b, tr_direction dir, unsigned int period_msec)
|
||||
{
|
||||
int peerCount;
|
||||
tr_ptrArray tmp = TR_PTR_ARRAY_INIT;
|
||||
tr_ptrArray low = TR_PTR_ARRAY_INIT;
|
||||
tr_ptrArray high = TR_PTR_ARRAY_INIT;
|
||||
tr_ptrArray normal = TR_PTR_ARRAY_INIT;
|
||||
auto tmp = tr_ptrArray{};
|
||||
auto low = tr_ptrArray{};
|
||||
auto high = tr_ptrArray{};
|
||||
auto normal = tr_ptrArray{};
|
||||
struct tr_peerIo** peers;
|
||||
|
||||
/* allocateBandwidth () is a helper function with two purposes:
|
|
@ -13,15 +13,6 @@
|
|||
#include "tr-assert.h"
|
||||
#include "utils.h" /* tr_new0() */
|
||||
|
||||
tr_bitfield const TR_BITFIELD_INIT = {
|
||||
.bits = NULL,
|
||||
.alloc_count = 0,
|
||||
.bit_count = 0,
|
||||
.true_count = 0,
|
||||
.have_all_hint = false,
|
||||
.have_none_hint = false,
|
||||
};
|
||||
|
||||
/****
|
||||
*****
|
||||
****/
|
||||
|
@ -365,7 +356,7 @@ void tr_bitfieldSetRaw(tr_bitfield* b, void const* bits, size_t byte_count, bool
|
|||
byte_count = MIN(byte_count, get_bytes_needed(b->bit_count));
|
||||
}
|
||||
|
||||
b->bits = tr_memdup(bits, byte_count);
|
||||
b->bits = static_cast<uint8_t*>(tr_memdup(bits, byte_count));
|
||||
b->alloc_count = byte_count;
|
||||
|
||||
if (bounded)
|
|
@ -53,8 +53,6 @@ void tr_bitfieldRemRange(tr_bitfield*, size_t begin, size_t end);
|
|||
**** life cycle
|
||||
***/
|
||||
|
||||
extern tr_bitfield const TR_BITFIELD_INIT;
|
||||
|
||||
void tr_bitfieldConstruct(tr_bitfield*, size_t bit_count);
|
||||
|
||||
static inline void tr_bitfieldDestruct(tr_bitfield* b)
|
||||
|
|
|
@ -85,7 +85,7 @@ static void blocklistLoad(tr_blocklistFile* b)
|
|||
return;
|
||||
}
|
||||
|
||||
b->rules = tr_sys_file_map_for_reading(fd, 0, byteCount, &error);
|
||||
b->rules = static_cast<struct tr_ipv4_range*>(tr_sys_file_map_for_reading(fd, 0, byteCount, &error));
|
||||
|
||||
if (b->rules == NULL)
|
||||
{
|
||||
|
@ -114,8 +114,8 @@ static void blocklistEnsureLoaded(tr_blocklistFile* b)
|
|||
|
||||
static int compareAddressToRange(void const* va, void const* vb)
|
||||
{
|
||||
uint32_t const* a = va;
|
||||
struct tr_ipv4_range const* b = vb;
|
||||
auto const* a = static_cast<uint32_t const*>(va);
|
||||
auto const* b = static_cast<struct tr_ipv4_range const*>(vb);
|
||||
|
||||
if (*a < b->begin)
|
||||
{
|
||||
|
@ -193,7 +193,6 @@ bool tr_blocklistFileHasAddress(tr_blocklistFile* b, tr_address const* addr)
|
|||
TR_ASSERT(tr_address_is_valid(addr));
|
||||
|
||||
uint32_t needle;
|
||||
struct tr_ipv4_range const* range;
|
||||
|
||||
if (!b->isEnabled || addr->type == TR_AF_INET6)
|
||||
{
|
||||
|
@ -209,7 +208,8 @@ bool tr_blocklistFileHasAddress(tr_blocklistFile* b, tr_address const* addr)
|
|||
|
||||
needle = ntohl(addr->addr.addr4.s_addr);
|
||||
|
||||
range = bsearch(&needle, b->rules, b->ruleCount, sizeof(struct tr_ipv4_range), compareAddressToRange);
|
||||
auto const* range = static_cast<struct tr_ipv4_range const*>(
|
||||
bsearch(&needle, b->rules, b->ruleCount, sizeof(struct tr_ipv4_range), compareAddressToRange));
|
||||
|
||||
return range != NULL;
|
||||
}
|
||||
|
@ -347,8 +347,8 @@ static bool parseLine(char const* line, struct tr_ipv4_range* range)
|
|||
|
||||
static int compareAddressRangesByFirstAddress(void const* va, void const* vb)
|
||||
{
|
||||
struct tr_ipv4_range const* a = va;
|
||||
struct tr_ipv4_range const* b = vb;
|
||||
auto const* a = static_cast<struct tr_ipv4_range const*>(va);
|
||||
auto const* b = static_cast<struct tr_ipv4_range const*>(vb);
|
||||
|
||||
if (a->begin != b->begin)
|
||||
{
|
|
@ -112,8 +112,8 @@ static int getBlockRun(tr_cache const* cache, int pos, struct run_info* info)
|
|||
/* higher rank comes before lower rank */
|
||||
static int compareRuns(void const* va, void const* vb)
|
||||
{
|
||||
struct run_info const* a = va;
|
||||
struct run_info const* b = vb;
|
||||
auto* a = static_cast<struct run_info const*>(va);
|
||||
auto* b = static_cast<struct run_info const*>(vb);
|
||||
return b->rank - a->rank;
|
||||
}
|
||||
|
||||
|
@ -265,7 +265,7 @@ int64_t tr_cacheGetLimit(tr_cache const* cache)
|
|||
tr_cache* tr_cacheNew(int64_t max_bytes)
|
||||
{
|
||||
tr_cache* cache = tr_new0(tr_cache, 1);
|
||||
cache->blocks = TR_PTR_ARRAY_INIT;
|
||||
cache->blocks = {};
|
||||
cache->max_bytes = max_bytes;
|
||||
cache->max_blocks = getMaxBlocks(max_bytes);
|
||||
return cache;
|
||||
|
@ -285,8 +285,8 @@ void tr_cacheFree(tr_cache* cache)
|
|||
|
||||
static int cache_block_compare(void const* va, void const* vb)
|
||||
{
|
||||
struct cache_block const* a = va;
|
||||
struct cache_block const* b = vb;
|
||||
auto const* a = static_cast<struct cache_block const*>(va);
|
||||
auto const* b = static_cast<struct cache_block const*>(vb);
|
||||
|
||||
/* primary key: torrent id */
|
||||
if (a->tor->uniqueId != b->tor->uniqueId)
|
||||
|
@ -309,7 +309,7 @@ static struct cache_block* findBlock(tr_cache* cache, tr_torrent* torrent, tr_pi
|
|||
struct cache_block key;
|
||||
key.tor = torrent;
|
||||
key.block = _tr_block(torrent, piece, offset);
|
||||
return tr_ptrArrayFindSorted(&cache->blocks, &key, cache_block_compare);
|
||||
return static_cast<struct cache_block*>(tr_ptrArrayFindSorted(&cache->blocks, &key, cache_block_compare));
|
||||
}
|
||||
|
||||
int tr_cacheWriteBlock(
|
||||
|
@ -437,7 +437,7 @@ int tr_cacheFlushFile(tr_cache* cache, tr_torrent* torrent, tr_file_index_t i)
|
|||
/* flush out all the blocks in that file */
|
||||
while (err == 0 && pos < tr_ptrArraySize(&cache->blocks))
|
||||
{
|
||||
struct cache_block const* b = tr_ptrArrayNth(&cache->blocks, pos);
|
||||
auto const* b = static_cast<struct cache_block const*>(tr_ptrArrayNth(&cache->blocks, pos));
|
||||
|
||||
if (b->tor != torrent)
|
||||
{
|
||||
|
@ -463,7 +463,7 @@ int tr_cacheFlushTorrent(tr_cache* cache, tr_torrent* torrent)
|
|||
/* flush out all the blocks in that torrent */
|
||||
while (err == 0 && pos < tr_ptrArraySize(&cache->blocks))
|
||||
{
|
||||
struct cache_block const* b = tr_ptrArrayNth(&cache->blocks, pos);
|
||||
auto const* b = static_cast<struct cache_block const*>(tr_ptrArrayNth(&cache->blocks, pos));
|
||||
|
||||
if (b->tor != torrent)
|
||||
{
|
|
@ -192,8 +192,8 @@ static bool decodeBitCometClient(char* buf, size_t buflen, uint8_t const* id)
|
|||
|
||||
char* tr_clientForId(char* buf, size_t buflen, void const* id_in)
|
||||
{
|
||||
uint8_t const* id = id_in;
|
||||
char const* chid = (char const*)id;
|
||||
auto const* id = static_cast<uint8_t const*>(id_in);
|
||||
auto const* chid = static_cast<char const*>(id_in);
|
||||
|
||||
*buf = '\0';
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
#define TR_CRYPTO_DH_SECRET_FALLBACK
|
||||
#define TR_CRYPTO_X509_FALLBACK
|
||||
#include "crypto-utils-fallback.c"
|
||||
#include "crypto-utils-fallback.cc"
|
||||
|
||||
struct tr_dh_ctx
|
||||
{
|
||||
|
@ -131,8 +131,9 @@ tr_sha1_ctx_t tr_sha1_init(void)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
bool tr_sha1_update(tr_sha1_ctx_t handle, void const* data, size_t data_length)
|
||||
bool tr_sha1_update(tr_sha1_ctx_t raw_handle, void const* data, size_t data_length)
|
||||
{
|
||||
auto* handle = static_cast<Sha*>(raw_handle);
|
||||
TR_ASSERT(handle != NULL);
|
||||
|
||||
if (data_length == 0)
|
||||
|
@ -142,11 +143,12 @@ bool tr_sha1_update(tr_sha1_ctx_t handle, void const* data, size_t data_length)
|
|||
|
||||
TR_ASSERT(data != NULL);
|
||||
|
||||
return check_result(API(ShaUpdate)(handle, data, data_length));
|
||||
return check_result(API(ShaUpdate)(handle, static_cast<byte const*>(data), data_length));
|
||||
}
|
||||
|
||||
bool tr_sha1_final(tr_sha1_ctx_t handle, uint8_t* hash)
|
||||
bool tr_sha1_final(tr_sha1_ctx_t raw_handle, uint8_t* hash)
|
||||
{
|
||||
auto* handle = static_cast<Sha*>(raw_handle);
|
||||
bool ret = true;
|
||||
|
||||
if (hash != NULL)
|
||||
|
@ -190,7 +192,7 @@ tr_dh_ctx_t tr_dh_new(
|
|||
|
||||
void tr_dh_free(tr_dh_ctx_t raw_handle)
|
||||
{
|
||||
struct tr_dh_ctx* handle = raw_handle;
|
||||
auto* handle = static_cast<struct tr_dh_ctx*>(raw_handle);
|
||||
|
||||
if (handle == NULL)
|
||||
{
|
||||
|
@ -209,14 +211,14 @@ bool tr_dh_make_key(tr_dh_ctx_t raw_handle, size_t private_key_length, uint8_t*
|
|||
TR_ASSERT(raw_handle != NULL);
|
||||
TR_ASSERT(public_key != NULL);
|
||||
|
||||
struct tr_dh_ctx* handle = raw_handle;
|
||||
auto* handle = static_cast<struct tr_dh_ctx*>(raw_handle);
|
||||
word32 my_private_key_length;
|
||||
word32 my_public_key_length;
|
||||
tr_lock* rng_lock = get_rng_lock();
|
||||
|
||||
if (handle->private_key == NULL)
|
||||
{
|
||||
handle->private_key = tr_malloc(handle->key_length);
|
||||
handle->private_key = static_cast<uint8_t*>(tr_malloc(handle->key_length));
|
||||
}
|
||||
|
||||
tr_lockLock(rng_lock);
|
||||
|
@ -252,7 +254,7 @@ tr_dh_secret_t tr_dh_agree(tr_dh_ctx_t raw_handle, uint8_t const* other_public_k
|
|||
TR_ASSERT(raw_handle != NULL);
|
||||
TR_ASSERT(other_public_key != NULL);
|
||||
|
||||
struct tr_dh_ctx* handle = raw_handle;
|
||||
auto* handle = static_cast<struct tr_dh_ctx*>(raw_handle);
|
||||
struct tr_dh_secret* ret;
|
||||
word32 my_secret_key_length;
|
||||
|
||||
|
@ -290,7 +292,7 @@ bool tr_rand_buffer(void* buffer, size_t length)
|
|||
tr_lock* rng_lock = get_rng_lock();
|
||||
|
||||
tr_lockLock(rng_lock);
|
||||
ret = check_result(API(RNG_GenerateBlock)(get_rng(), buffer, length));
|
||||
ret = check_result(API(RNG_GenerateBlock)(get_rng(), static_cast<byte*>(buffer), length));
|
||||
tr_lockUnlock(rng_lock);
|
||||
|
||||
return ret;
|
|
@ -33,7 +33,7 @@ struct tr_dh_secret
|
|||
|
||||
static struct tr_dh_secret* tr_dh_secret_new(size_t key_length)
|
||||
{
|
||||
struct tr_dh_secret* handle = tr_malloc(sizeof(struct tr_dh_secret) + key_length);
|
||||
auto* handle = static_cast<struct tr_dh_secret*>(tr_malloc(sizeof(struct tr_dh_secret) + key_length));
|
||||
handle->key_length = key_length;
|
||||
return handle;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ bool tr_dh_secret_derive(
|
|||
TR_ASSERT(raw_handle != NULL);
|
||||
TR_ASSERT(hash != NULL);
|
||||
|
||||
struct tr_dh_secret* handle = raw_handle;
|
||||
auto* handle = static_cast<struct tr_dh_secret*>(raw_handle);
|
||||
|
||||
return tr_sha1(
|
||||
hash,
|
|
@ -28,7 +28,7 @@
|
|||
#include "utils.h"
|
||||
|
||||
#define TR_CRYPTO_DH_SECRET_FALLBACK
|
||||
#include "crypto-utils-fallback.c"
|
||||
#include "crypto-utils-fallback.cc"
|
||||
|
||||
/***
|
||||
****
|
||||
|
@ -114,8 +114,10 @@ tr_sha1_ctx_t tr_sha1_init(void)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
bool tr_sha1_update(tr_sha1_ctx_t handle, void const* data, size_t data_length)
|
||||
bool tr_sha1_update(tr_sha1_ctx_t raw_handle, void const* data, size_t data_length)
|
||||
{
|
||||
auto* handle = static_cast<EVP_MD_CTX*>(raw_handle);
|
||||
|
||||
TR_ASSERT(handle != NULL);
|
||||
|
||||
if (data_length == 0)
|
||||
|
@ -128,8 +130,10 @@ bool tr_sha1_update(tr_sha1_ctx_t handle, void const* data, size_t data_length)
|
|||
return check_result(EVP_DigestUpdate(handle, data, data_length));
|
||||
}
|
||||
|
||||
bool tr_sha1_final(tr_sha1_ctx_t handle, uint8_t* hash)
|
||||
bool tr_sha1_final(tr_sha1_ctx_t raw_handle, uint8_t* hash)
|
||||
{
|
||||
auto* handle = static_cast<EVP_MD_CTX*>(raw_handle);
|
||||
|
||||
bool ret = true;
|
||||
|
||||
if (hash != NULL)
|
||||
|
@ -271,8 +275,10 @@ tr_dh_ctx_t tr_dh_new(
|
|||
return handle;
|
||||
}
|
||||
|
||||
void tr_dh_free(tr_dh_ctx_t handle)
|
||||
void tr_dh_free(tr_dh_ctx_t raw_handle)
|
||||
{
|
||||
auto* handle = static_cast<DH*>(raw_handle);
|
||||
|
||||
if (handle == NULL)
|
||||
{
|
||||
return;
|
||||
|
@ -286,7 +292,7 @@ bool tr_dh_make_key(tr_dh_ctx_t raw_handle, size_t private_key_length, uint8_t*
|
|||
TR_ASSERT(raw_handle != NULL);
|
||||
TR_ASSERT(public_key != NULL);
|
||||
|
||||
DH* handle = raw_handle;
|
||||
auto* handle = static_cast<DH*>(raw_handle);
|
||||
int dh_size;
|
||||
int my_public_key_length;
|
||||
BIGNUM const* my_public_key;
|
||||
|
@ -313,8 +319,10 @@ bool tr_dh_make_key(tr_dh_ctx_t raw_handle, size_t private_key_length, uint8_t*
|
|||
return true;
|
||||
}
|
||||
|
||||
tr_dh_secret_t tr_dh_agree(tr_dh_ctx_t handle, uint8_t const* other_public_key, size_t other_public_key_length)
|
||||
tr_dh_secret_t tr_dh_agree(tr_dh_ctx_t raw_handle, uint8_t const* other_public_key, size_t other_public_key_length)
|
||||
{
|
||||
auto* handle = static_cast<DH*>(raw_handle);
|
||||
|
||||
TR_ASSERT(handle != NULL);
|
||||
TR_ASSERT(other_public_key != NULL);
|
||||
|
||||
|
@ -358,7 +366,7 @@ tr_x509_store_t tr_ssl_get_x509_store(tr_ssl_ctx_t handle)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
return SSL_CTX_get_cert_store(handle);
|
||||
return SSL_CTX_get_cert_store(static_cast<SSL_CTX const*>(handle));
|
||||
}
|
||||
|
||||
bool tr_x509_store_add(tr_x509_store_t handle, tr_x509_cert_t cert)
|
||||
|
@ -366,7 +374,7 @@ bool tr_x509_store_add(tr_x509_store_t handle, tr_x509_cert_t cert)
|
|||
TR_ASSERT(handle != NULL);
|
||||
TR_ASSERT(cert != NULL);
|
||||
|
||||
return check_result(X509_STORE_add_cert(handle, cert));
|
||||
return check_result(X509_STORE_add_cert(static_cast<X509_STORE*>(handle), static_cast<X509*>(cert)));
|
||||
}
|
||||
|
||||
tr_x509_cert_t tr_x509_cert_new(void const* der, size_t der_length)
|
||||
|
@ -390,7 +398,7 @@ void tr_x509_cert_free(tr_x509_cert_t handle)
|
|||
return;
|
||||
}
|
||||
|
||||
X509_free(handle);
|
||||
X509_free(static_cast<X509*>(handle));
|
||||
}
|
||||
|
||||
/***
|
||||
|
@ -401,5 +409,5 @@ bool tr_rand_buffer(void* buffer, size_t length)
|
|||
{
|
||||
TR_ASSERT(buffer != NULL);
|
||||
|
||||
return check_result(RAND_bytes(buffer, (int)length));
|
||||
return check_result(RAND_bytes(static_cast<unsigned char*>(buffer), (int)length));
|
||||
}
|
|
@ -32,7 +32,7 @@
|
|||
|
||||
#define TR_CRYPTO_DH_SECRET_FALLBACK
|
||||
#define TR_CRYPTO_X509_FALLBACK
|
||||
#include "crypto-utils-fallback.c"
|
||||
#include "crypto-utils-fallback.cc"
|
||||
|
||||
/***
|
||||
****
|
||||
|
@ -148,8 +148,9 @@ tr_sha1_ctx_t tr_sha1_init(void)
|
|||
return handle;
|
||||
}
|
||||
|
||||
bool tr_sha1_update(tr_sha1_ctx_t handle, void const* data, size_t data_length)
|
||||
bool tr_sha1_update(tr_sha1_ctx_t raw_handle, void const* data, size_t data_length)
|
||||
{
|
||||
auto* handle = static_cast<api_sha1_context*>(raw_handle);
|
||||
TR_ASSERT(handle != NULL);
|
||||
|
||||
if (data_length == 0)
|
||||
|
@ -159,12 +160,14 @@ bool tr_sha1_update(tr_sha1_ctx_t handle, void const* data, size_t data_length)
|
|||
|
||||
TR_ASSERT(data != NULL);
|
||||
|
||||
API(sha1_update)(handle, data, data_length);
|
||||
API(sha1_update)(handle, static_cast<unsigned char const*>(data), data_length);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool tr_sha1_final(tr_sha1_ctx_t handle, uint8_t* hash)
|
||||
bool tr_sha1_final(tr_sha1_ctx_t raw_handle, uint8_t* hash)
|
||||
{
|
||||
auto* handle = static_cast<api_sha1_context*>(raw_handle);
|
||||
|
||||
if (hash != NULL)
|
||||
{
|
||||
TR_ASSERT(handle != NULL);
|
||||
|
@ -211,8 +214,10 @@ tr_dh_ctx_t tr_dh_new(
|
|||
return handle;
|
||||
}
|
||||
|
||||
void tr_dh_free(tr_dh_ctx_t handle)
|
||||
void tr_dh_free(tr_dh_ctx_t raw_handle)
|
||||
{
|
||||
auto* handle = static_cast<api_dhm_context*>(raw_handle);
|
||||
|
||||
if (handle == NULL)
|
||||
{
|
||||
return;
|
||||
|
@ -226,7 +231,7 @@ bool tr_dh_make_key(tr_dh_ctx_t raw_handle, size_t private_key_length, uint8_t*
|
|||
TR_ASSERT(raw_handle != NULL);
|
||||
TR_ASSERT(public_key != NULL);
|
||||
|
||||
api_dhm_context* handle = raw_handle;
|
||||
auto* handle = static_cast<api_dhm_context*>(raw_handle);
|
||||
|
||||
if (public_key_length != NULL)
|
||||
{
|
||||
|
@ -241,7 +246,7 @@ tr_dh_secret_t tr_dh_agree(tr_dh_ctx_t raw_handle, uint8_t const* other_public_k
|
|||
TR_ASSERT(raw_handle != NULL);
|
||||
TR_ASSERT(other_public_key != NULL);
|
||||
|
||||
api_dhm_context* handle = raw_handle;
|
||||
auto* handle = static_cast<api_dhm_context*>(raw_handle);
|
||||
struct tr_dh_secret* ret;
|
||||
size_t secret_key_length;
|
||||
|
||||
|
@ -286,7 +291,7 @@ bool tr_rand_buffer(void* buffer, size_t length)
|
|||
tr_lock* rng_lock = get_rng_lock();
|
||||
|
||||
tr_lockLock(rng_lock);
|
||||
ret = check_result(API(ctr_drbg_random)(get_rng(), buffer, length));
|
||||
ret = check_result(API(ctr_drbg_random)(get_rng(), static_cast<unsigned char*>(buffer), length));
|
||||
tr_lockUnlock(rng_lock);
|
||||
|
||||
return ret;
|
|
@ -11,8 +11,12 @@
|
|||
#include <string.h> /* memcpy(), memmove(), memset(), strcmp(), strlen() */
|
||||
|
||||
#include <arc4.h>
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include <b64/cdecode.h>
|
||||
#include <b64/cencode.h>
|
||||
}
|
||||
|
||||
#include "transmission.h"
|
||||
#include "crypto-utils.h"
|
||||
|
@ -207,7 +211,7 @@ void* tr_base64_encode(void const* input, size_t input_length, size_t* output_le
|
|||
ret = tr_new(char, ret_length + 8);
|
||||
|
||||
base64_init_encodestate(&state);
|
||||
ret_length = base64_encode_block(input, input_length, ret, &state);
|
||||
ret_length = base64_encode_block(static_cast<char const*>(input), input_length, ret, &state);
|
||||
ret_length += base64_encode_blockend(ret + ret_length, &state);
|
||||
|
||||
if (output_length != NULL)
|
||||
|
@ -256,7 +260,7 @@ void* tr_base64_decode(void const* input, size_t input_length, size_t* output_le
|
|||
ret = tr_new(char, ret_length + 8);
|
||||
|
||||
base64_init_decodestate(&state);
|
||||
ret_length = base64_decode_block(input, input_length, ret, &state);
|
||||
ret_length = base64_decode_block(static_cast<char const*>(input), input_length, ret, &state);
|
||||
|
||||
if (output_length != NULL)
|
||||
{
|
|
@ -271,20 +271,12 @@ struct tr_fileset
|
|||
|
||||
static void fileset_construct(struct tr_fileset* set, int n)
|
||||
{
|
||||
struct tr_cached_file const TR_CACHED_FILE_INIT = {
|
||||
.is_writable = false,
|
||||
.fd = TR_BAD_SYS_FILE,
|
||||
.torrent_id = 0,
|
||||
.file_index = 0,
|
||||
.used_at = 0,
|
||||
};
|
||||
|
||||
set->begin = tr_new(struct tr_cached_file, n);
|
||||
set->end = set->begin + n;
|
||||
|
||||
for (struct tr_cached_file* o = set->begin; o != set->end; ++o)
|
||||
{
|
||||
*o = TR_CACHED_FILE_INIT;
|
||||
*o = { false, TR_BAD_SYS_FILE, 0, 0, 0 };
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -456,7 +448,7 @@ tr_sys_file_t tr_fdFileGetCached(tr_session* s, int torrent_id, tr_file_index_t
|
|||
bool tr_fdFileGetCachedMTime(tr_session* s, int torrent_id, tr_file_index_t i, time_t* mtime)
|
||||
{
|
||||
struct tr_cached_file const* o = fileset_lookup(get_fileset(s), torrent_id, i);
|
||||
tr_sys_path_info info = { 0 };
|
||||
auto info = tr_sys_path_info{};
|
||||
bool const success = o != NULL && tr_sys_file_get_info(o->fd, &info, NULL);
|
||||
|
||||
if (success)
|
||||
|
@ -560,7 +552,7 @@ tr_socket_t tr_fdSocketCreate(tr_session* session, int domain, int type)
|
|||
int i = 0;
|
||||
socklen_t size = sizeof(i);
|
||||
|
||||
if (getsockopt(s, SOL_SOCKET, SO_SNDBUF, (void*)&i, &size) != -1)
|
||||
if (getsockopt(s, SOL_SOCKET, SO_SNDBUF, reinterpret_cast<char*>(&i), &size) != -1)
|
||||
{
|
||||
tr_logAddDebug("SO_SNDBUF size is %d", i);
|
||||
}
|
||||
|
@ -568,7 +560,7 @@ tr_socket_t tr_fdSocketCreate(tr_session* session, int domain, int type)
|
|||
i = 0;
|
||||
size = sizeof(i);
|
||||
|
||||
if (getsockopt(s, SOL_SOCKET, SO_RCVBUF, (void*)&i, &size) != -1)
|
||||
if (getsockopt(s, SOL_SOCKET, SO_RCVBUF, reinterpret_cast<char*>(&i), &size) != -1)
|
||||
{
|
||||
tr_logAddDebug("SO_RCVBUF size is %d", i);
|
||||
}
|
|
@ -513,7 +513,7 @@ bool tr_sys_path_copy(char const* src_path, char const* dst_path, tr_error** err
|
|||
/* Fallback to user-space copy. */
|
||||
|
||||
size_t const buflen = 1024 * 1024; /* 1024 KiB buffer */
|
||||
char* buf = tr_malloc(buflen);
|
||||
auto* buf = static_cast<char*>(tr_malloc(buflen));
|
||||
|
||||
while (file_size > 0)
|
||||
{
|
||||
|
@ -946,15 +946,11 @@ bool tr_sys_file_advise(tr_sys_file_t handle, uint64_t offset, uint64_t size, tr
|
|||
|
||||
#elif defined(__APPLE__)
|
||||
|
||||
if (advice != TR_SYS_FILE_ADVICE_WILL_NEED)
|
||||
if (advice == TR_SYS_FILE_ADVICE_WILL_NEED)
|
||||
{
|
||||
goto skip_darwin_fcntl;
|
||||
}
|
||||
|
||||
struct radvisory const radv = {
|
||||
.ra_offset = offset,
|
||||
.ra_count = size,
|
||||
};
|
||||
auto radv = radvisory{};
|
||||
radv.ra_offset = offset;
|
||||
radv.ra_count = size;
|
||||
|
||||
ret = fcntl(handle, F_RDADVISE, &radv) != -1;
|
||||
|
||||
|
@ -962,8 +958,7 @@ bool tr_sys_file_advise(tr_sys_file_t handle, uint64_t offset, uint64_t size, tr
|
|||
{
|
||||
set_system_error(error, errno);
|
||||
}
|
||||
|
||||
skip_darwin_fcntl:
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
|
@ -1126,7 +1121,7 @@ bool tr_sys_file_lock(tr_sys_file_t handle, int operation, tr_error** error)
|
|||
|
||||
#if defined(F_OFD_SETLK)
|
||||
|
||||
struct flock fl = { 0 };
|
||||
struct flock fl = {};
|
||||
|
||||
switch (operation & (TR_SYS_FILE_LOCK_SH | TR_SYS_FILE_LOCK_EX | TR_SYS_FILE_LOCK_UN))
|
||||
{
|
|
@ -773,7 +773,7 @@ bool tr_sys_path_copy(char const* src_path, char const* dst_path, tr_error** err
|
|||
goto out;
|
||||
}
|
||||
|
||||
LPBOOL cancel = FALSE;
|
||||
auto cancel = BOOL{ FALSE };
|
||||
DWORD const flags = COPY_FILE_ALLOW_DECRYPTED_DESTINATION | COPY_FILE_FAIL_IF_EXISTS;
|
||||
if (CopyFileExW(wide_src_path, wide_dst_path, NULL, NULL, &cancel, flags) == 0)
|
||||
{
|
||||
|
@ -1306,7 +1306,7 @@ bool tr_sys_file_lock(tr_sys_file_t handle, int operation, tr_error** error)
|
|||
!!(operation & TR_SYS_FILE_LOCK_SH) + !!(operation & TR_SYS_FILE_LOCK_EX) + !!(operation & TR_SYS_FILE_LOCK_UN) == 1);
|
||||
|
||||
bool ret;
|
||||
OVERLAPPED overlapped = { .Pointer = 0, .hEvent = NULL };
|
||||
auto overlapped = OVERLAPPED{};
|
||||
|
||||
if ((operation & TR_SYS_FILE_LOCK_UN) == 0)
|
||||
{
|
|
@ -567,7 +567,7 @@ static ReadState readPadD(tr_handshake* handshake, struct evbuffer* inbuf)
|
|||
|
||||
tr_peerIoDrain(handshake->io, inbuf, needlen);
|
||||
|
||||
tr_peerIoSetEncryption(handshake->io, handshake->crypto_select);
|
||||
tr_peerIoSetEncryption(handshake->io, static_cast<tr_encryption_type>(handshake->crypto_select));
|
||||
|
||||
setState(handshake, AWAITING_HANDSHAKE);
|
||||
return READ_NOW;
|
||||
|
@ -999,12 +999,13 @@ static ReadState readPayloadStream(tr_handshake* handshake, struct evbuffer* inb
|
|||
****
|
||||
***/
|
||||
|
||||
static ReadState canRead(struct tr_peerIo* io, void* arg, size_t* piece)
|
||||
static ReadState canRead(struct tr_peerIo* io, void* vhandshake, size_t* piece)
|
||||
{
|
||||
TR_ASSERT(tr_isPeerIo(io));
|
||||
|
||||
ReadState ret;
|
||||
tr_handshake* handshake = arg;
|
||||
auto* handshake = static_cast<tr_handshake*>(vhandshake);
|
||||
|
||||
struct evbuffer* inbuf = tr_peerIoGetReadBuffer(io);
|
||||
bool readyForMore = true;
|
||||
|
||||
|
@ -1141,7 +1142,7 @@ void tr_handshakeAbort(tr_handshake* handshake)
|
|||
static void gotError(tr_peerIo* io, short what, void* vhandshake)
|
||||
{
|
||||
int errcode = errno;
|
||||
tr_handshake* handshake = vhandshake;
|
||||
auto* handshake = static_cast<tr_handshake*>(vhandshake);
|
||||
|
||||
if (io->socket.type == TR_PEER_SOCKET_TYPE_UTP && !io->isIncoming && handshake->state == AWAITING_YB)
|
||||
{
|
||||
|
@ -1204,7 +1205,7 @@ static void handshakeTimeout(evutil_socket_t s, short type, void* handshake)
|
|||
TR_UNUSED(s);
|
||||
TR_UNUSED(type);
|
||||
|
||||
tr_handshakeAbort(handshake);
|
||||
tr_handshakeAbort(static_cast<tr_handshake*>(handshake));
|
||||
}
|
||||
|
||||
tr_handshake* tr_handshakeNew(tr_peerIo* io, tr_encryption_mode encryptionMode, handshakeDoneCB doneCB, void* doneUserData)
|
|
@ -92,7 +92,8 @@ static int readOrWriteBytes(
|
|||
{
|
||||
/* open (and maybe create) the file */
|
||||
char* filename = tr_buildPath(base, subpath, NULL);
|
||||
int const prealloc = (file->dnd || !doWrite) ? TR_PREALLOCATE_NONE : tor->session->preallocationMode;
|
||||
tr_preallocation_mode const prealloc = (file->dnd || !doWrite) ? TR_PREALLOCATE_NONE :
|
||||
tor->session->preallocationMode;
|
||||
|
||||
if ((fd = tr_fdFileCheckout(session, tor->uniqueId, fileIndex, filename, doWrite, prealloc, file->length)) ==
|
||||
TR_BAD_SYS_FILE)
|
||||
|
@ -153,8 +154,8 @@ static int readOrWriteBytes(
|
|||
|
||||
static int compareOffsetToFile(void const* a, void const* b)
|
||||
{
|
||||
uint64_t const offset = *(uint64_t const*)a;
|
||||
tr_file const* file = b;
|
||||
auto const offset = *static_cast<uint64_t const*>(a);
|
||||
auto const* file = static_cast<tr_file const*>(b);
|
||||
|
||||
if (offset < file->offset)
|
||||
{
|
||||
|
@ -179,16 +180,14 @@ void tr_ioFindFileLocation(
|
|||
TR_ASSERT(tr_isTorrent(tor));
|
||||
|
||||
uint64_t const offset = tr_pieceOffset(tor, pieceIndex, pieceOffset, 0);
|
||||
|
||||
TR_ASSERT(offset < tor->info.totalSize);
|
||||
|
||||
tr_file const* file = bsearch(&offset, tor->info.files, tor->info.fileCount, sizeof(tr_file), compareOffsetToFile);
|
||||
|
||||
auto const* file = static_cast<tr_file const*>(
|
||||
bsearch(&offset, tor->info.files, tor->info.fileCount, sizeof(tr_file), compareOffsetToFile));
|
||||
TR_ASSERT(file != NULL);
|
||||
|
||||
*fileIndex = file - tor->info.files;
|
||||
*fileOffset = offset - file->offset;
|
||||
|
||||
TR_ASSERT(*fileIndex < tor->info.fileCount);
|
||||
TR_ASSERT(*fileOffset < file->length);
|
||||
TR_ASSERT(tor->info.files[*fileIndex].offset + *fileOffset == offset);
|
||||
|
@ -280,7 +279,7 @@ static bool recalculateHash(tr_torrent* tor, tr_piece_index_t pieceIndex, uint8_
|
|||
while (bytesLeft != 0)
|
||||
{
|
||||
size_t const len = MIN(bytesLeft, buflen);
|
||||
success = tr_cacheReadBlock(tor->session->cache, tor, pieceIndex, offset, len, buffer) == 0;
|
||||
success = tr_cacheReadBlock(tor->session->cache, tor, pieceIndex, offset, len, static_cast<uint8_t*>(buffer)) == 0;
|
||||
|
||||
if (!success)
|
||||
{
|
|
@ -11,12 +11,6 @@
|
|||
#include "platform.h"
|
||||
#include "utils.h"
|
||||
|
||||
static tr_list const TR_LIST_CLEAR = {
|
||||
.data = NULL,
|
||||
.next = NULL,
|
||||
.prev = NULL,
|
||||
};
|
||||
|
||||
static tr_list* recycled_nodes = NULL;
|
||||
|
||||
static tr_lock* getRecycledNodesLock(void)
|
||||
|
@ -51,7 +45,7 @@ static tr_list* node_alloc(void)
|
|||
ret = tr_new(tr_list, 1);
|
||||
}
|
||||
|
||||
*ret = TR_LIST_CLEAR;
|
||||
*ret = {};
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -61,7 +55,7 @@ static void node_free(tr_list* node)
|
|||
|
||||
if (node != NULL)
|
||||
{
|
||||
*node = TR_LIST_CLEAR;
|
||||
*node = {};
|
||||
tr_lockLock(lock);
|
||||
node->next = recycled_nodes;
|
||||
recycled_nodes = node;
|
|
@ -206,9 +206,9 @@ tr_magnet_info* tr_magnetParse(char const* uri)
|
|||
info = tr_new0(tr_magnet_info, 1);
|
||||
info->displayName = displayName;
|
||||
info->trackerCount = trCount;
|
||||
info->trackers = tr_memdup(tr, sizeof(char*) * trCount);
|
||||
info->trackers = static_cast<char**>(tr_memdup(tr, sizeof(char*) * trCount));
|
||||
info->webseedCount = wsCount;
|
||||
info->webseeds = tr_memdup(ws, sizeof(char*) * wsCount);
|
||||
info->webseeds = static_cast<char**>(tr_memdup(ws, sizeof(char*) * wsCount));
|
||||
memcpy(info->hash, sha1, sizeof(uint8_t) * SHA_DIGEST_LENGTH);
|
||||
}
|
||||
else
|
|
@ -126,8 +126,8 @@ static uint32_t bestPieceSize(uint64_t totalSize)
|
|||
|
||||
static int builderFileCompare(void const* va, void const* vb)
|
||||
{
|
||||
tr_metainfo_builder_file const* a = va;
|
||||
tr_metainfo_builder_file const* b = vb;
|
||||
auto const* a = static_cast<tr_metainfo_builder_file const*>(va);
|
||||
auto const* b = static_cast<tr_metainfo_builder_file const*>(vb);
|
||||
|
||||
return evutil_ascii_strcasecmp(a->filename, b->filename);
|
||||
}
|
||||
|
@ -254,10 +254,7 @@ static uint8_t* getHashInfo(tr_metainfo_builder* b)
|
|||
uint32_t fileIndex = 0;
|
||||
uint8_t* ret = tr_new0(uint8_t, SHA_DIGEST_LENGTH * b->pieceCount);
|
||||
uint8_t* walk = ret;
|
||||
uint8_t* buf;
|
||||
uint64_t totalRemain;
|
||||
uint64_t off = 0;
|
||||
tr_sys_file_t fd;
|
||||
tr_error* error = NULL;
|
||||
|
||||
if (b->totalSize == 0)
|
||||
|
@ -265,11 +262,11 @@ static uint8_t* getHashInfo(tr_metainfo_builder* b)
|
|||
return ret;
|
||||
}
|
||||
|
||||
buf = tr_malloc(b->pieceSize);
|
||||
auto* const buf = static_cast<uint8_t*>(tr_malloc(b->pieceSize));
|
||||
b->pieceIndex = 0;
|
||||
totalRemain = b->totalSize;
|
||||
fd = tr_sys_file_open(b->files[fileIndex].filename, TR_SYS_FILE_READ | TR_SYS_FILE_SEQUENTIAL, 0, &error);
|
||||
uint64_t totalRemain = b->totalSize;
|
||||
|
||||
tr_sys_file_t fd = tr_sys_file_open(b->files[fileIndex].filename, TR_SYS_FILE_READ | TR_SYS_FILE_SEQUENTIAL, 0, &error);
|
||||
if (fd == TR_BAD_SYS_FILE)
|
||||
{
|
||||
b->my_errno = error->code;
|
||||
|
@ -589,7 +586,7 @@ void tr_makeMetaInfo(
|
|||
|
||||
/* initialize the builder variables */
|
||||
builder->abortFlag = false;
|
||||
builder->result = 0;
|
||||
builder->result = TR_MAKEMETA_OK;
|
||||
builder->isDone = false;
|
||||
builder->pieceIndex = 0;
|
||||
builder->trackerCount = trackerCount;
|
|
@ -115,9 +115,9 @@ static void setCommandTime(struct tr_natpmp* nat)
|
|||
nat->command_time = tr_time() + COMMAND_WAIT_SECS;
|
||||
}
|
||||
|
||||
int tr_natpmpPulse(struct tr_natpmp* nat, tr_port private_port, bool is_enabled, tr_port* public_port)
|
||||
tr_port_forwarding tr_natpmpPulse(struct tr_natpmp* nat, tr_port private_port, bool is_enabled, tr_port* public_port)
|
||||
{
|
||||
int ret;
|
||||
tr_port_forwarding ret;
|
||||
|
||||
if (is_enabled && nat->state == TR_NATPMP_DISCOVER)
|
||||
{
|
|
@ -23,6 +23,6 @@ tr_natpmp* tr_natpmpInit(void);
|
|||
|
||||
void tr_natpmpClose(tr_natpmp*);
|
||||
|
||||
int tr_natpmpPulse(tr_natpmp*, tr_port port, bool isEnabled, tr_port* public_port);
|
||||
tr_port_forwarding tr_natpmpPulse(tr_natpmp*, tr_port port, bool isEnabled, tr_port* public_port);
|
||||
|
||||
/* @} */
|
||||
|
|
|
@ -52,15 +52,9 @@
|
|||
#define IN_MULTICAST(a) (((a)&0xf0000000) == 0xe0000000)
|
||||
#endif
|
||||
|
||||
tr_address const tr_in6addr_any = {
|
||||
.type = TR_AF_INET6,
|
||||
.addr.addr6 = IN6ADDR_ANY_INIT,
|
||||
};
|
||||
tr_address const tr_in6addr_any = { TR_AF_INET6, { IN6ADDR_ANY_INIT } };
|
||||
|
||||
tr_address const tr_inaddr_any = {
|
||||
.type = TR_AF_INET,
|
||||
.addr.addr4.s_addr = INADDR_ANY,
|
||||
};
|
||||
tr_address const tr_inaddr_any = { TR_AF_INET, { { { { INADDR_ANY } } } } };
|
||||
|
||||
char* tr_net_strerror(char* buf, size_t buflen, int err)
|
||||
{
|
||||
|
@ -279,7 +273,7 @@ struct tr_peer_socket tr_netOpenPeerSocket(tr_session* session, tr_address const
|
|||
{
|
||||
TR_ASSERT(tr_address_is_valid(addr));
|
||||
|
||||
struct tr_peer_socket ret = TR_PEER_SOCKET_INIT;
|
||||
auto ret = tr_peer_socket{};
|
||||
|
||||
static int const domains[NUM_TR_AF_INET_TYPES] = { AF_INET, AF_INET6 };
|
||||
tr_socket_t s;
|
||||
|
@ -307,7 +301,7 @@ struct tr_peer_socket tr_netOpenPeerSocket(tr_session* session, tr_address const
|
|||
{
|
||||
int n = 8192;
|
||||
|
||||
if (setsockopt(s, SOL_SOCKET, SO_RCVBUF, (void const*)&n, sizeof(n)) == -1)
|
||||
if (setsockopt(s, SOL_SOCKET, SO_RCVBUF, reinterpret_cast<char const*>(&n), sizeof(n)) == -1)
|
||||
{
|
||||
tr_logAddInfo(
|
||||
"Unable to set SO_RCVBUF on socket %" PRIdMAX ": %s",
|
||||
|
@ -380,7 +374,7 @@ struct tr_peer_socket tr_netOpenPeerUTPSocket(tr_session* session, tr_address co
|
|||
{
|
||||
TR_UNUSED(clientIsSeed);
|
||||
|
||||
struct tr_peer_socket ret = TR_PEER_SOCKET_INIT;
|
||||
auto ret = tr_peer_socket{};
|
||||
|
||||
if (tr_address_is_valid_for_peers(addr, port))
|
||||
{
|
||||
|
@ -423,13 +417,13 @@ static tr_socket_t tr_netBindTCPImpl(tr_address const* addr, tr_port port, bool
|
|||
}
|
||||
|
||||
optval = 1;
|
||||
(void)setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void const*)&optval, sizeof(optval));
|
||||
(void)setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void const*)&optval, sizeof(optval));
|
||||
(void)setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, reinterpret_cast<char const*>(&optval), sizeof(optval));
|
||||
(void)setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, reinterpret_cast<char const*>(&optval), sizeof(optval));
|
||||
|
||||
#ifdef IPV6_V6ONLY
|
||||
|
||||
if ((addr->type == TR_AF_INET6) &&
|
||||
(setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, (void const*)&optval, sizeof(optval)) == -1) &&
|
||||
(setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY, reinterpret_cast<char const*>(&optval), sizeof(optval)) == -1) &&
|
||||
(sockerrno != ENOPROTOOPT)) // if the kernel doesn't support it, ignore it
|
||||
{
|
||||
*errOut = sockerrno;
|
||||
|
@ -489,7 +483,7 @@ static tr_socket_t tr_netBindTCPImpl(tr_address const* addr, tr_port port, bool
|
|||
#endif
|
||||
|
||||
optval = 5;
|
||||
(void)setsockopt(fd, SOL_TCP, TCP_FASTOPEN, (void const*)&optval, sizeof(optval));
|
||||
(void)setsockopt(fd, SOL_TCP, TCP_FASTOPEN, reinterpret_cast<char const*>(&optval), sizeof(optval));
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -756,7 +750,7 @@ static bool isMartianAddr(struct tr_address const* a)
|
|||
{
|
||||
TR_ASSERT(tr_address_is_valid(a));
|
||||
|
||||
static unsigned char const zeroes[16] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
|
||||
static unsigned char const zeroes[16] = {};
|
||||
|
||||
switch (a->type)
|
||||
{
|
||||
|
@ -786,13 +780,15 @@ bool tr_address_is_valid_for_peers(tr_address const* addr, tr_port port)
|
|||
struct tr_peer_socket tr_peer_socket_tcp_create(tr_socket_t const handle)
|
||||
{
|
||||
TR_ASSERT(handle != TR_BAD_SOCKET);
|
||||
struct tr_peer_socket const ret = { .type = TR_PEER_SOCKET_TYPE_TCP, .handle.tcp = handle };
|
||||
return ret;
|
||||
|
||||
return { TR_PEER_SOCKET_TYPE_TCP, { handle } };
|
||||
}
|
||||
|
||||
struct tr_peer_socket tr_peer_socket_utp_create(struct UTPSocket* const handle)
|
||||
{
|
||||
TR_ASSERT(handle != NULL);
|
||||
struct tr_peer_socket const ret = { .type = TR_PEER_SOCKET_TYPE_UTP, .handle.utp = handle };
|
||||
|
||||
auto ret = tr_peer_socket{ TR_PEER_SOCKET_TYPE_UTP, {} };
|
||||
ret.handle.utp = handle;
|
||||
return ret;
|
||||
}
|
|
@ -66,8 +66,6 @@ typedef struct
|
|||
tr_port port; /* for GOT_PORT */
|
||||
} tr_peer_event;
|
||||
|
||||
extern tr_peer_event const TR_PEER_EVENT_INIT;
|
||||
|
||||
typedef void (*tr_peer_callback)(struct tr_peer* peer, tr_peer_event const* event, void* client_data);
|
||||
|
||||
/***
|
||||
|
@ -150,8 +148,6 @@ typedef struct tr_swarm_stats
|
|||
int peerFromCount[TR_PEER_FROM__MAX];
|
||||
} tr_swarm_stats;
|
||||
|
||||
extern tr_swarm_stats const TR_SWARM_STATS_INIT;
|
||||
|
||||
void tr_swarmGetStats(struct tr_swarm const* swarm, tr_swarm_stats* setme);
|
||||
|
||||
void tr_swarmIncrementActivePeers(struct tr_swarm* swarm, tr_direction direction, bool is_active);
|
||||
|
|
|
@ -94,12 +94,6 @@ struct tr_datatype
|
|||
|
||||
static struct tr_datatype* datatype_pool = NULL;
|
||||
|
||||
static struct tr_datatype const TR_DATATYPE_INIT = {
|
||||
.next = NULL,
|
||||
.length = 0,
|
||||
.isPieceData = false,
|
||||
};
|
||||
|
||||
static struct tr_datatype* datatype_new(void)
|
||||
{
|
||||
struct tr_datatype* ret;
|
||||
|
@ -114,7 +108,7 @@ static struct tr_datatype* datatype_new(void)
|
|||
datatype_pool = datatype_pool->next;
|
||||
}
|
||||
|
||||
*ret = TR_DATATYPE_INIT;
|
||||
*ret = {};
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -272,7 +266,7 @@ static void event_read_cb(evutil_socket_t fd, short event, void* vio)
|
|||
{
|
||||
TR_UNUSED(event);
|
||||
|
||||
tr_peerIo* io = vio;
|
||||
auto* io = static_cast<tr_peerIo*>(vio);
|
||||
|
||||
TR_ASSERT(tr_isPeerIo(io));
|
||||
TR_ASSERT(io->socket.type == TR_PEER_SOCKET_TYPE_TCP);
|
||||
|
@ -365,7 +359,7 @@ static void event_write_cb(evutil_socket_t fd, short event, void* vio)
|
|||
{
|
||||
TR_UNUSED(event);
|
||||
|
||||
tr_peerIo* io = vio;
|
||||
auto* io = static_cast<tr_peerIo*>(vio);
|
||||
|
||||
TR_ASSERT(tr_isPeerIo(io));
|
||||
TR_ASSERT(io->socket.type == TR_PEER_SOCKET_TYPE_TCP);
|
||||
|
@ -458,9 +452,9 @@ static void maybeSetCongestionAlgorithm(tr_socket_t socket, char const* algorith
|
|||
#ifdef WITH_UTP
|
||||
/* UTP callbacks */
|
||||
|
||||
static void utp_on_read(void* closure, unsigned char const* buf, size_t buflen)
|
||||
static void utp_on_read(void* vio, unsigned char const* buf, size_t buflen)
|
||||
{
|
||||
tr_peerIo* io = closure;
|
||||
auto* io = static_cast<tr_peerIo*>(vio);
|
||||
|
||||
TR_ASSERT(tr_isPeerIo(io));
|
||||
|
||||
|
@ -477,9 +471,9 @@ static void utp_on_read(void* closure, unsigned char const* buf, size_t buflen)
|
|||
canReadWrapper(io);
|
||||
}
|
||||
|
||||
static void utp_on_write(void* closure, unsigned char* buf, size_t buflen)
|
||||
static void utp_on_write(void* vio, unsigned char* buf, size_t buflen)
|
||||
{
|
||||
tr_peerIo* io = closure;
|
||||
auto* io = static_cast<tr_peerIo*>(vio);
|
||||
|
||||
TR_ASSERT(tr_isPeerIo(io));
|
||||
|
||||
|
@ -495,9 +489,9 @@ static void utp_on_write(void* closure, unsigned char* buf, size_t buflen)
|
|||
didWriteWrapper(io, buflen);
|
||||
}
|
||||
|
||||
static size_t utp_get_rb_size(void* closure)
|
||||
static size_t utp_get_rb_size(void* vio)
|
||||
{
|
||||
tr_peerIo const* const io = closure;
|
||||
auto const* const io = static_cast<tr_peerIo const*>(vio);
|
||||
|
||||
TR_ASSERT(tr_isPeerIo(io));
|
||||
|
||||
|
@ -519,9 +513,9 @@ static void utp_on_writable(tr_peerIo* io)
|
|||
tr_peerIoSetEnabled(io, TR_UP, n != 0 && evbuffer_get_length(io->outbuf) != 0);
|
||||
}
|
||||
|
||||
static void utp_on_state_change(void* closure, int state)
|
||||
static void utp_on_state_change(void* vio, int state)
|
||||
{
|
||||
tr_peerIo* io = closure;
|
||||
auto* io = static_cast<tr_peerIo*>(vio);
|
||||
|
||||
TR_ASSERT(tr_isPeerIo(io));
|
||||
|
||||
|
@ -557,9 +551,9 @@ static void utp_on_state_change(void* closure, int state)
|
|||
}
|
||||
}
|
||||
|
||||
static void utp_on_error(void* closure, int errcode)
|
||||
static void utp_on_error(void* vio, int errcode)
|
||||
{
|
||||
tr_peerIo* io = closure;
|
||||
auto* io = static_cast<tr_peerIo*>(vio);
|
||||
|
||||
TR_ASSERT(tr_isPeerIo(io));
|
||||
|
||||
|
@ -572,11 +566,11 @@ static void utp_on_error(void* closure, int errcode)
|
|||
}
|
||||
}
|
||||
|
||||
static void utp_on_overhead(void* closure, uint8_t /* bool */ send, size_t count, int type)
|
||||
static void utp_on_overhead(void* vio, bool send, size_t count, int type)
|
||||
{
|
||||
TR_UNUSED(type);
|
||||
|
||||
tr_peerIo* io = closure;
|
||||
auto* io = static_cast<tr_peerIo*>(vio);
|
||||
|
||||
TR_ASSERT(tr_isPeerIo(io));
|
||||
|
||||
|
@ -585,13 +579,8 @@ static void utp_on_overhead(void* closure, uint8_t /* bool */ send, size_t count
|
|||
tr_bandwidthUsed(&io->bandwidth, send ? TR_UP : TR_DOWN, count, false, tr_time_msec());
|
||||
}
|
||||
|
||||
static struct UTPFunctionTable utp_function_table = {
|
||||
.on_read = utp_on_read,
|
||||
.on_write = utp_on_write,
|
||||
.get_rb_size = utp_get_rb_size,
|
||||
.on_state = utp_on_state_change,
|
||||
.on_error = utp_on_error,
|
||||
.on_overhead = utp_on_overhead,
|
||||
static auto utp_function_table = UTPFunctionTable{
|
||||
utp_on_read, utp_on_write, utp_get_rb_size, utp_on_state_change, utp_on_error, utp_on_overhead,
|
||||
};
|
||||
|
||||
/* Dummy UTP callbacks. */
|
||||
|
@ -637,7 +626,7 @@ static void dummy_on_error(void* closure, int errcode)
|
|||
TR_UNUSED(errcode);
|
||||
}
|
||||
|
||||
static void dummy_on_overhead(void* closure, uint8_t /* bool */ send, size_t count, int type)
|
||||
static void dummy_on_overhead(void* closure, bool send, size_t count, int type)
|
||||
{
|
||||
TR_UNUSED(closure);
|
||||
TR_UNUSED(send);
|
||||
|
@ -645,13 +634,8 @@ static void dummy_on_overhead(void* closure, uint8_t /* bool */ send, size_t cou
|
|||
TR_UNUSED(type);
|
||||
}
|
||||
|
||||
static struct UTPFunctionTable dummy_utp_function_table = {
|
||||
.on_read = dummy_read,
|
||||
.on_write = dummy_write,
|
||||
.get_rb_size = dummy_get_rb_size,
|
||||
.on_state = dummy_on_state_change,
|
||||
.on_error = dummy_on_error,
|
||||
.on_overhead = dummy_on_overhead,
|
||||
static auto dummy_utp_function_table = UTPFunctionTable{
|
||||
dummy_read, dummy_write, dummy_get_rb_size, dummy_on_state_change, dummy_on_error, dummy_on_overhead,
|
||||
};
|
||||
|
||||
#endif /* #ifdef WITH_UTP */
|
||||
|
@ -758,7 +742,7 @@ tr_peerIo* tr_peerIoNewOutgoing(
|
|||
TR_ASSERT(tr_address_is_valid(addr));
|
||||
TR_ASSERT(torrentHash != NULL);
|
||||
|
||||
struct tr_peer_socket socket = TR_PEER_SOCKET_INIT;
|
||||
auto socket = tr_peer_socket{};
|
||||
|
||||
if (utp)
|
||||
{
|
||||
|
@ -911,7 +895,7 @@ static void io_close_socket(tr_peerIo* io)
|
|||
TR_ASSERT_MSG(false, "unsupported peer socket type %d", io->socket.type);
|
||||
}
|
||||
|
||||
io->socket = TR_PEER_SOCKET_INIT;
|
||||
io->socket = {};
|
||||
|
||||
if (io->event_read != NULL)
|
||||
{
|
||||
|
@ -928,7 +912,7 @@ static void io_close_socket(tr_peerIo* io)
|
|||
|
||||
static void io_dtor(void* vio)
|
||||
{
|
||||
tr_peerIo* io = vio;
|
||||
auto* io = static_cast<tr_peerIo*>(vio);
|
||||
|
||||
TR_ASSERT(tr_isPeerIo(io));
|
||||
TR_ASSERT(tr_amInEventThread(io->session));
|
|
@ -82,23 +82,6 @@ enum
|
|||
CANCEL_HISTORY_SEC = 60
|
||||
};
|
||||
|
||||
tr_peer_event const TR_PEER_EVENT_INIT = {
|
||||
.eventType = TR_PEER_CLIENT_GOT_BLOCK,
|
||||
.pieceIndex = 0,
|
||||
.bitfield = NULL,
|
||||
.offset = 0,
|
||||
.length = 0,
|
||||
.err = 0,
|
||||
.port = 0,
|
||||
};
|
||||
|
||||
tr_swarm_stats const TR_SWARM_STATS_INIT = {
|
||||
.activePeerCount = { 0, 0 },
|
||||
.activeWebseedCount = 0,
|
||||
.peerCount = 0,
|
||||
.peerFromCount = { 0, 0, 0, 0, 0, 0, 0 },
|
||||
};
|
||||
|
||||
/**
|
||||
***
|
||||
**/
|
||||
|
@ -339,14 +322,16 @@ static inline bool swarmIsLocked(tr_swarm const* swarm)
|
|||
|
||||
static int handshakeCompareToAddr(void const* va, void const* vb)
|
||||
{
|
||||
tr_handshake const* a = va;
|
||||
auto const* const a = static_cast<tr_handshake const*>(va);
|
||||
auto const* const b = static_cast<tr_address const*>(vb);
|
||||
|
||||
return tr_address_compare(tr_handshakeGetAddr(a, NULL), vb);
|
||||
return tr_address_compare(tr_handshakeGetAddr(a, nullptr), b);
|
||||
}
|
||||
|
||||
static int handshakeCompare(void const* a, void const* b)
|
||||
static int handshakeCompare(void const* va, void const* vb)
|
||||
{
|
||||
return handshakeCompareToAddr(a, tr_handshakeGetAddr(b, NULL));
|
||||
auto const* const b = static_cast<tr_handshake const*>(vb);
|
||||
return handshakeCompareToAddr(va, tr_handshakeGetAddr(b, nullptr));
|
||||
}
|
||||
|
||||
static inline tr_handshake* getExistingHandshake(tr_ptrArray* handshakes, tr_address const* addr)
|
||||
|
@ -356,19 +341,20 @@ static inline tr_handshake* getExistingHandshake(tr_ptrArray* handshakes, tr_add
|
|||
return NULL;
|
||||
}
|
||||
|
||||
return tr_ptrArrayFindSorted(handshakes, addr, handshakeCompareToAddr);
|
||||
return static_cast<tr_handshake*>(tr_ptrArrayFindSorted(handshakes, addr, handshakeCompareToAddr));
|
||||
}
|
||||
|
||||
static int comparePeerAtomToAddress(void const* va, void const* vb)
|
||||
{
|
||||
struct peer_atom const* a = va;
|
||||
auto const* const a = static_cast<struct peer_atom const*>(va);
|
||||
auto const* const b = static_cast<tr_address const*>(vb);
|
||||
|
||||
return tr_address_compare(&a->addr, vb);
|
||||
return tr_address_compare(&a->addr, b);
|
||||
}
|
||||
|
||||
static int compareAtomsByAddress(void const* va, void const* vb)
|
||||
{
|
||||
struct peer_atom const* b = vb;
|
||||
auto const* const b = static_cast<struct peer_atom const*>(vb);
|
||||
|
||||
TR_ASSERT(tr_isAtom(b));
|
||||
|
||||
|
@ -391,15 +377,17 @@ static tr_swarm* getExistingSwarm(tr_peerMgr* manager, uint8_t const* hash)
|
|||
return tor == NULL ? NULL : tor->swarm;
|
||||
}
|
||||
|
||||
static int peerCompare(void const* a, void const* b)
|
||||
static int peerCompare(void const* va, void const* vb)
|
||||
{
|
||||
auto const* const a = static_cast<tr_peer const*>(va);
|
||||
auto const* const b = static_cast<tr_peer const*>(vb);
|
||||
return tr_address_compare(tr_peerAddress(a), tr_peerAddress(b));
|
||||
}
|
||||
|
||||
static struct peer_atom* getExistingAtom(tr_swarm const* cswarm, tr_address const* addr)
|
||||
{
|
||||
tr_swarm* swarm = (tr_swarm*)cswarm;
|
||||
return tr_ptrArrayFindSorted(&swarm->pool, addr, comparePeerAtomToAddress);
|
||||
return static_cast<struct peer_atom*>(tr_ptrArrayFindSorted(&swarm->pool, addr, comparePeerAtomToAddress));
|
||||
}
|
||||
|
||||
static bool peerIsInUse(tr_swarm const* cs, struct peer_atom const* atom)
|
||||
|
@ -440,7 +428,7 @@ static void replicationNew(tr_swarm* s)
|
|||
|
||||
for (int peer_i = 0; peer_i < n; ++peer_i)
|
||||
{
|
||||
tr_peer const* const peer = tr_ptrArrayNth(&s->peers, peer_i);
|
||||
auto const* const peer = static_cast<tr_peer const*>(tr_ptrArrayNth(&s->peers, peer_i));
|
||||
|
||||
if (tr_bitfieldHas(&peer->have, piece_i))
|
||||
{
|
||||
|
@ -454,7 +442,7 @@ static void replicationNew(tr_swarm* s)
|
|||
|
||||
static void swarmFree(void* vs)
|
||||
{
|
||||
tr_swarm* s = vs;
|
||||
auto* s = static_cast<tr_swarm*>(vs);
|
||||
|
||||
TR_ASSERT(s != NULL);
|
||||
TR_ASSERT(!s->isRunning);
|
||||
|
@ -466,7 +454,7 @@ static void swarmFree(void* vs)
|
|||
tr_ptrArrayDestruct(&s->pool, (PtrArrayForeachFunc)tr_free);
|
||||
tr_ptrArrayDestruct(&s->outgoingHandshakes, NULL);
|
||||
tr_ptrArrayDestruct(&s->peers, NULL);
|
||||
s->stats = TR_SWARM_STATS_INIT;
|
||||
s->stats = {};
|
||||
|
||||
replicationFree(s);
|
||||
|
||||
|
@ -483,7 +471,7 @@ static void rebuildWebseedArray(tr_swarm* s, tr_torrent* tor)
|
|||
|
||||
/* clear the array */
|
||||
tr_ptrArrayDestruct(&s->webseeds, (PtrArrayForeachFunc)tr_peerFree);
|
||||
s->webseeds = TR_PTR_ARRAY_INIT;
|
||||
s->webseeds = {};
|
||||
s->stats.activeWebseedCount = 0;
|
||||
|
||||
/* repopulate it */
|
||||
|
@ -501,10 +489,10 @@ static tr_swarm* swarmNew(tr_peerMgr* manager, tr_torrent* tor)
|
|||
s = tr_new0(tr_swarm, 1);
|
||||
s->manager = manager;
|
||||
s->tor = tor;
|
||||
s->pool = TR_PTR_ARRAY_INIT;
|
||||
s->peers = TR_PTR_ARRAY_INIT;
|
||||
s->webseeds = TR_PTR_ARRAY_INIT;
|
||||
s->outgoingHandshakes = TR_PTR_ARRAY_INIT;
|
||||
s->pool = {};
|
||||
s->peers = {};
|
||||
s->webseeds = {};
|
||||
s->outgoingHandshakes = {};
|
||||
|
||||
rebuildWebseedArray(s, tor);
|
||||
|
||||
|
@ -517,7 +505,7 @@ tr_peerMgr* tr_peerMgrNew(tr_session* session)
|
|||
{
|
||||
tr_peerMgr* m = tr_new0(tr_peerMgr, 1);
|
||||
m->session = session;
|
||||
m->incomingHandshakes = TR_PTR_ARRAY_INIT;
|
||||
m->incomingHandshakes = {};
|
||||
ensureMgrTimersExist(m);
|
||||
return m;
|
||||
}
|
||||
|
@ -549,7 +537,7 @@ void tr_peerMgrFree(tr_peerMgr* manager)
|
|||
* the item from manager->handshakes, so this is a little roundabout... */
|
||||
while (!tr_ptrArrayEmpty(&manager->incomingHandshakes))
|
||||
{
|
||||
tr_handshakeAbort(tr_ptrArrayNth(&manager->incomingHandshakes, 0));
|
||||
tr_handshakeAbort(static_cast<tr_handshake*>(tr_ptrArrayNth(&manager->incomingHandshakes, 0)));
|
||||
}
|
||||
|
||||
tr_ptrArrayDestruct(&manager->incomingHandshakes, NULL);
|
||||
|
@ -575,7 +563,7 @@ void tr_peerMgrOnBlocklistChanged(tr_peerMgr* mgr)
|
|||
|
||||
for (int i = 0, n = tr_ptrArraySize(&s->pool); i < n; ++i)
|
||||
{
|
||||
struct peer_atom* atom = tr_ptrArrayNth(&s->pool, i);
|
||||
auto* const atom = static_cast<struct peer_atom*>(tr_ptrArrayNth(&s->pool, i));
|
||||
atom->blocklisted = -1;
|
||||
}
|
||||
}
|
||||
|
@ -662,8 +650,8 @@ void tr_peerMgrSetUtpFailed(tr_torrent* tor, tr_address const* addr, bool failed
|
|||
|
||||
static int compareReqByBlock(void const* va, void const* vb)
|
||||
{
|
||||
struct block_request const* a = va;
|
||||
struct block_request const* b = vb;
|
||||
auto const* const a = static_cast<struct block_request const*>(va);
|
||||
auto const* const b = static_cast<struct block_request const*>(vb);
|
||||
|
||||
/* primary key: block */
|
||||
if (a->block < b->block)
|
||||
|
@ -730,7 +718,8 @@ static struct block_request* requestListLookup(tr_swarm* s, tr_block_index_t blo
|
|||
key.block = block;
|
||||
key.peer = (tr_peer*)peer;
|
||||
|
||||
return bsearch(&key, s->requests, s->requestCount, sizeof(struct block_request), compareReqByBlock);
|
||||
return static_cast<struct block_request*>(
|
||||
bsearch(&key, s->requests, s->requestCount, sizeof(struct block_request), compareReqByBlock));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -794,7 +783,7 @@ static int countActiveWebseeds(tr_swarm* s)
|
|||
|
||||
for (int i = 0, n = tr_ptrArraySize(&s->webseeds); i < n; ++i)
|
||||
{
|
||||
if (tr_peerIsTransferringPieces(tr_ptrArrayNth(&s->webseeds, i), now, TR_DOWN, NULL))
|
||||
if (tr_peerIsTransferringPieces(static_cast<tr_peer const*>(tr_ptrArrayNth(&s->webseeds, i)), now, TR_DOWN, NULL))
|
||||
{
|
||||
++activeCount;
|
||||
}
|
||||
|
@ -827,7 +816,7 @@ static void updateEndgame(tr_swarm* s)
|
|||
/* add the active bittorrent peers... */
|
||||
for (int i = 0, n = tr_ptrArraySize(&s->peers); i < n; ++i)
|
||||
{
|
||||
tr_peer const* p = tr_ptrArrayNth(&s->peers, i);
|
||||
auto const* const p = static_cast<tr_peer const*>(tr_ptrArrayNth(&s->peers, i));
|
||||
|
||||
if (p->pendingReqsToPeer > 0)
|
||||
{
|
||||
|
@ -873,8 +862,8 @@ static void setComparePieceByWeightTorrent(tr_swarm* s)
|
|||
* and that partially-complete pieces come before empty ones. */
|
||||
static int comparePieceByWeight(void const* va, void const* vb)
|
||||
{
|
||||
struct weighted_piece const* a = va;
|
||||
struct weighted_piece const* b = vb;
|
||||
auto const* const a = static_cast<struct weighted_piece const*>(va);
|
||||
auto const* const b = static_cast<struct weighted_piece const*>(vb);
|
||||
int ia;
|
||||
int ib;
|
||||
int missing;
|
||||
|
@ -945,8 +934,8 @@ static int comparePieceByWeight(void const* va, void const* vb)
|
|||
|
||||
static int comparePieceByIndex(void const* va, void const* vb)
|
||||
{
|
||||
struct weighted_piece const* a = va;
|
||||
struct weighted_piece const* b = vb;
|
||||
auto const* const a = static_cast<struct weighted_piece const*>(va);
|
||||
auto const* const b = static_cast<struct weighted_piece const*>(vb);
|
||||
|
||||
if (a->index < b->index)
|
||||
{
|
||||
|
@ -1356,7 +1345,7 @@ void tr_peerMgrGetNextRequests(
|
|||
{
|
||||
tr_block_index_t first;
|
||||
tr_block_index_t last;
|
||||
tr_ptrArray peerArr = TR_PTR_ARRAY_INIT;
|
||||
tr_ptrArray peerArr = {};
|
||||
|
||||
tr_torGetPieceBlockRange(tor, p->index, &first, &last);
|
||||
|
||||
|
@ -1490,7 +1479,7 @@ static void refillUpkeep(evutil_socket_t fd, short what, void* vmgr)
|
|||
tr_torrent* tor;
|
||||
int cancel_buflen = 0;
|
||||
struct block_request* cancel = NULL;
|
||||
tr_peerMgr* mgr = vmgr;
|
||||
auto* mgr = static_cast<tr_peerMgr*>(vmgr);
|
||||
managerLock(mgr);
|
||||
|
||||
now = tr_time();
|
||||
|
@ -1684,13 +1673,11 @@ static void peerDeclinedAllRequests(tr_swarm* s, tr_peer const* peer)
|
|||
|
||||
static void cancelAllRequestsForBlock(tr_swarm* s, tr_block_index_t block, tr_peer* no_notify)
|
||||
{
|
||||
int peerCount;
|
||||
tr_peer** peers;
|
||||
tr_ptrArray peerArr;
|
||||
|
||||
peerArr = TR_PTR_ARRAY_INIT;
|
||||
auto peerArr = tr_ptrArray{};
|
||||
getBlockRequestPeers(s, block, &peerArr);
|
||||
peers = (tr_peer**)tr_ptrArrayPeek(&peerArr, &peerCount);
|
||||
|
||||
int peerCount;
|
||||
tr_peer** peers = (tr_peer**)tr_ptrArrayPeek(&peerArr, &peerCount);
|
||||
|
||||
for (int i = 0; i < peerCount; ++i)
|
||||
{
|
||||
|
@ -1716,7 +1703,7 @@ void tr_peerMgrPieceCompleted(tr_torrent* tor, tr_piece_index_t p)
|
|||
/* walk through our peers */
|
||||
for (int i = 0, n = tr_ptrArraySize(&s->peers); i < n; ++i)
|
||||
{
|
||||
tr_peer* peer = tr_ptrArrayNth(&s->peers, i);
|
||||
auto* peer = static_cast<tr_peer*>(tr_ptrArrayNth(&s->peers, i));
|
||||
|
||||
/* notify the peer that we now have this piece */
|
||||
tr_peerMsgsHave(PEER_MSGS(peer), p);
|
||||
|
@ -1741,7 +1728,7 @@ static void peerCallbackFunc(tr_peer* peer, tr_peer_event const* e, void* vs)
|
|||
{
|
||||
TR_ASSERT(peer != NULL);
|
||||
|
||||
tr_swarm* s = vs;
|
||||
auto* s = static_cast<tr_swarm*>(vs);
|
||||
|
||||
swarmLock(s);
|
||||
|
||||
|
@ -2014,7 +2001,7 @@ static bool myHandshakeDoneCB(
|
|||
bool success = false;
|
||||
tr_port port;
|
||||
tr_address const* addr;
|
||||
tr_peerMgr* manager = vmanager;
|
||||
auto* manager = static_cast<tr_peerMgr*>(vmanager);
|
||||
tr_swarm* s = tr_peerIoHasTorrentHash(io) ? getExistingSwarm(manager, tr_peerIoGetTorrentHash(io)) : NULL;
|
||||
|
||||
if (tr_peerIoIsIncoming(io))
|
||||
|
@ -2225,7 +2212,7 @@ tr_pex* tr_peerMgrCompactToPex(
|
|||
size_t* pexCount)
|
||||
{
|
||||
size_t n = compactLen / 6;
|
||||
uint8_t const* walk = compact;
|
||||
auto const* walk = static_cast<uint8_t const*>(compact);
|
||||
tr_pex* pex = tr_new0(tr_pex, n);
|
||||
|
||||
for (size_t i = 0; i < n; ++i)
|
||||
|
@ -2254,7 +2241,7 @@ tr_pex* tr_peerMgrCompact6ToPex(
|
|||
size_t* pexCount)
|
||||
{
|
||||
size_t n = compactLen / 18;
|
||||
uint8_t const* walk = compact;
|
||||
auto const* walk = static_cast<uint8_t const*>(compact);
|
||||
tr_pex* pex = tr_new0(tr_pex, n);
|
||||
|
||||
for (size_t i = 0; i < n; ++i)
|
||||
|
@ -2286,7 +2273,7 @@ void tr_peerMgrGotBadPiece(tr_torrent* tor, tr_piece_index_t pieceIndex)
|
|||
|
||||
for (int i = 0, n = tr_ptrArraySize(&s->peers); i != n; ++i)
|
||||
{
|
||||
tr_peer* peer = tr_ptrArrayNth(&s->peers, i);
|
||||
auto* const peer = static_cast<tr_peer*>(tr_ptrArrayNth(&s->peers, i));
|
||||
|
||||
if (tr_bitfieldHas(&peer->blame, pieceIndex))
|
||||
{
|
||||
|
@ -2305,8 +2292,8 @@ void tr_peerMgrGotBadPiece(tr_torrent* tor, tr_piece_index_t pieceIndex)
|
|||
|
||||
int tr_pexCompare(void const* va, void const* vb)
|
||||
{
|
||||
tr_pex const* a = va;
|
||||
tr_pex const* b = vb;
|
||||
auto const* const a = static_cast<tr_pex const*>(va);
|
||||
auto const* const b = static_cast<tr_pex const*>(vb);
|
||||
|
||||
TR_ASSERT(tr_isPex(a));
|
||||
TR_ASSERT(tr_isPex(b));
|
||||
|
@ -2528,7 +2515,7 @@ static void stopSwarm(tr_swarm* swarm)
|
|||
* which removes the handshake from t->outgoingHandshakes... */
|
||||
while (!tr_ptrArrayEmpty(&swarm->outgoingHandshakes))
|
||||
{
|
||||
tr_handshakeAbort(tr_ptrArrayNth(&swarm->outgoingHandshakes, 0));
|
||||
tr_handshakeAbort(static_cast<tr_handshake*>(tr_ptrArrayNth(&swarm->outgoingHandshakes, 0)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2782,8 +2769,9 @@ double* tr_peerMgrWebSpeeds_KBps(tr_torrent const* tor)
|
|||
for (unsigned int i = 0; i < n; ++i)
|
||||
{
|
||||
unsigned int Bps = 0;
|
||||
auto const* const peer = static_cast<tr_peer*>(tr_ptrArrayNth(&s->webseeds, i));
|
||||
|
||||
if (tr_peerIsTransferringPieces(tr_ptrArrayNth(&s->webseeds, i), now, TR_DOWN, &Bps))
|
||||
if (tr_peerIsTransferringPieces(peer, now, TR_DOWN, &Bps))
|
||||
{
|
||||
ret[i] = Bps / (double)tr_speed_K;
|
||||
}
|
||||
|
@ -2924,7 +2912,7 @@ void tr_peerMgrClearInterest(tr_torrent* tor)
|
|||
|
||||
for (int i = 0; i < peerCount; ++i)
|
||||
{
|
||||
tr_peerMsgsSetInterested(tr_ptrArrayNth(&s->peers, i), false);
|
||||
tr_peerMsgsSetInterested(static_cast<tr_peerMsgs*>(tr_ptrArrayNth(&s->peers, i)), false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2967,8 +2955,8 @@ struct tr_rechoke_info
|
|||
|
||||
static int compare_rechoke_info(void const* va, void const* vb)
|
||||
{
|
||||
struct tr_rechoke_info const* a = va;
|
||||
struct tr_rechoke_info const* b = vb;
|
||||
auto const* const a = static_cast<struct tr_rechoke_info const*>(va);
|
||||
auto const* const b = static_cast<struct tr_rechoke_info const*>(vb);
|
||||
|
||||
if (a->rechoke_state != b->rechoke_state)
|
||||
{
|
||||
|
@ -3021,7 +3009,7 @@ static void rechokeDownloads(tr_swarm* s)
|
|||
*/
|
||||
for (int i = 0; i < peerCount; ++i)
|
||||
{
|
||||
tr_peer const* peer = tr_ptrArrayNth(&s->peers, i);
|
||||
auto const* const peer = static_cast<tr_peer const*>(tr_ptrArrayNth(&s->peers, i));
|
||||
int const b = tr_historyGet(&peer->blocksSentToClient, now, CANCEL_HISTORY_SEC);
|
||||
int const c = tr_historyGet(&peer->cancelsSentToPeer, now, CANCEL_HISTORY_SEC);
|
||||
|
||||
|
@ -3096,7 +3084,7 @@ static void rechokeDownloads(tr_swarm* s)
|
|||
/* decide WHICH peers to be interested in (based on their cancel-to-block ratio) */
|
||||
for (int i = 0; i < peerCount; ++i)
|
||||
{
|
||||
tr_peer* peer = tr_ptrArrayNth(&s->peers, i);
|
||||
auto* const peer = static_cast<tr_peer*>(tr_ptrArrayNth(&s->peers, i));
|
||||
|
||||
if (!isPeerInteresting(s->tor, piece_is_interesting, peer))
|
||||
{
|
||||
|
@ -3178,8 +3166,8 @@ struct ChokeData
|
|||
|
||||
static int compareChoke(void const* va, void const* vb)
|
||||
{
|
||||
struct ChokeData const* a = va;
|
||||
struct ChokeData const* b = vb;
|
||||
auto const* const a = static_cast<struct ChokeData const*>(va);
|
||||
auto const* const b = static_cast<struct ChokeData const*>(vb);
|
||||
|
||||
if (a->rate != b->rate) /* prefer higher overall speeds */
|
||||
{
|
||||
|
@ -3335,8 +3323,7 @@ static void rechokeUploads(tr_swarm* s, uint64_t const now)
|
|||
if (s->optimistic == NULL && !isMaxedOut && checkedChokeCount < size)
|
||||
{
|
||||
int n;
|
||||
struct ChokeData* c;
|
||||
tr_ptrArray randPool = TR_PTR_ARRAY_INIT;
|
||||
auto randPool = tr_ptrArray{};
|
||||
|
||||
for (int i = checkedChokeCount; i < size; ++i)
|
||||
{
|
||||
|
@ -3354,7 +3341,7 @@ static void rechokeUploads(tr_swarm* s, uint64_t const now)
|
|||
|
||||
if ((n = tr_ptrArraySize(&randPool)) != 0)
|
||||
{
|
||||
c = tr_ptrArrayNth(&randPool, tr_rand_int_weak(n));
|
||||
auto* c = static_cast<struct ChokeData*>(tr_ptrArrayNth(&randPool, tr_rand_int_weak(n)));
|
||||
c->isChoked = false;
|
||||
s->optimistic = c->msgs;
|
||||
s->optimisticUnchokeTimeScaler = OPTIMISTIC_UNCHOKE_MULTIPLIER;
|
||||
|
@ -3378,7 +3365,7 @@ static void rechokePulse(evutil_socket_t fd, short what, void* vmgr)
|
|||
TR_UNUSED(what);
|
||||
|
||||
tr_torrent* tor = NULL;
|
||||
tr_peerMgr* mgr = vmgr;
|
||||
auto* mgr = static_cast<tr_peerMgr*>(vmgr);
|
||||
uint64_t const now = tr_time_msec();
|
||||
|
||||
managerLock(mgr);
|
||||
|
@ -3587,7 +3574,7 @@ static void removeAllPeers(tr_swarm* s)
|
|||
{
|
||||
while (!tr_ptrArrayEmpty(&s->peers))
|
||||
{
|
||||
removePeer(s, tr_ptrArrayNth(&s->peers, 0));
|
||||
removePeer(s, static_cast<tr_peer*>(tr_ptrArrayNth(&s->peers, 0)));
|
||||
}
|
||||
|
||||
TR_ASSERT(s->stats.peerCount == 0);
|
||||
|
@ -3623,8 +3610,8 @@ struct peer_liveliness
|
|||
|
||||
static int comparePeerLiveliness(void const* va, void const* vb)
|
||||
{
|
||||
struct peer_liveliness const* a = va;
|
||||
struct peer_liveliness const* b = vb;
|
||||
auto const* const a = static_cast<struct peer_liveliness const*>(va);
|
||||
auto const* const b = static_cast<struct peer_liveliness const*>(vb);
|
||||
|
||||
if (a->doPurge != b->doPurge)
|
||||
{
|
||||
|
@ -3705,7 +3692,7 @@ static void enforceTorrentPeerLimit(tr_swarm* s, uint64_t now)
|
|||
if (n > max)
|
||||
{
|
||||
void const* const base = tr_ptrArrayBase(&s->peers);
|
||||
tr_peer** const peers = tr_memdup(base, n * sizeof(tr_peer*));
|
||||
auto** const peers = static_cast<tr_peer**>(tr_memdup(base, n * sizeof(tr_peer*)));
|
||||
sortPeersByLiveliness(peers, NULL, n, now);
|
||||
|
||||
while (n > max)
|
||||
|
@ -3745,7 +3732,7 @@ static void enforceSessionPeerLimit(tr_session* session, uint64_t now)
|
|||
|
||||
for (int i = 0, tn = tr_ptrArraySize(&s->peers); i < tn; ++i)
|
||||
{
|
||||
peers[n] = tr_ptrArrayNth(&s->peers, i);
|
||||
peers[n] = static_cast<tr_peer*>(tr_ptrArrayNth(&s->peers, i));
|
||||
swarms[n] = s;
|
||||
++n;
|
||||
}
|
||||
|
@ -3774,7 +3761,7 @@ static void reconnectPulse(evutil_socket_t fd, short what, void* vmgr)
|
|||
TR_UNUSED(what);
|
||||
|
||||
tr_torrent* tor;
|
||||
tr_peerMgr* mgr = vmgr;
|
||||
auto* mgr = static_cast<tr_peerMgr*>(vmgr);
|
||||
time_t const now_sec = tr_time();
|
||||
uint64_t const now_msec = tr_time_msec();
|
||||
|
||||
|
@ -3832,14 +3819,14 @@ static void pumpAllPeers(tr_peerMgr* mgr)
|
|||
|
||||
for (int j = 0, n = tr_ptrArraySize(&s->peers); j < n; ++j)
|
||||
{
|
||||
tr_peerMsgsPulse(tr_ptrArrayNth(&s->peers, j));
|
||||
tr_peerMsgsPulse(static_cast<tr_peerMsgs*>(tr_ptrArrayNth(&s->peers, j)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void queuePulseForeach(void* vtor)
|
||||
{
|
||||
tr_torrent* tor = vtor;
|
||||
auto* tor = static_cast<tr_torrent*>(vtor);
|
||||
|
||||
tr_torrentStartNow(tor);
|
||||
|
||||
|
@ -3856,7 +3843,7 @@ static void queuePulse(tr_session* session, tr_direction dir)
|
|||
|
||||
if (tr_sessionGetQueueEnabled(session, dir))
|
||||
{
|
||||
tr_ptrArray torrents = TR_PTR_ARRAY_INIT;
|
||||
auto torrents = tr_ptrArray{};
|
||||
|
||||
tr_sessionGetNextQueuedTorrents(session, dir, tr_sessionCountQueueFreeSlots(session, dir), &torrents);
|
||||
|
||||
|
@ -3871,8 +3858,7 @@ static void bandwidthPulse(evutil_socket_t fd, short what, void* vmgr)
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(what);
|
||||
|
||||
tr_torrent* tor;
|
||||
tr_peerMgr* mgr = vmgr;
|
||||
auto* mgr = static_cast<tr_peerMgr*>(vmgr);
|
||||
tr_session* session = mgr->session;
|
||||
managerLock(mgr);
|
||||
|
||||
|
@ -3883,8 +3869,7 @@ static void bandwidthPulse(evutil_socket_t fd, short what, void* vmgr)
|
|||
tr_bandwidthAllocate(&session->bandwidth, TR_DOWN, BANDWIDTH_PERIOD_MSEC);
|
||||
|
||||
/* torrent upkeep */
|
||||
tor = NULL;
|
||||
|
||||
tr_torrent* tor = NULL;
|
||||
while ((tor = tr_torrentNext(session, tor)) != NULL)
|
||||
{
|
||||
/* possibly stop torrents that have seeded enough */
|
||||
|
@ -3984,10 +3969,10 @@ static void atomPulse(evutil_socket_t fd, short what, void* vmgr)
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(what);
|
||||
|
||||
tr_torrent* tor = NULL;
|
||||
tr_peerMgr* mgr = vmgr;
|
||||
auto* mgr = static_cast<tr_peerMgr*>(vmgr);
|
||||
managerLock(mgr);
|
||||
|
||||
tr_torrent* tor = NULL;
|
||||
while ((tor = tr_torrentNext(mgr->session, tor)) != NULL)
|
||||
{
|
||||
int atomCount;
|
||||
|
@ -4038,7 +4023,7 @@ static void atomPulse(evutil_socket_t fd, short what, void* vmgr)
|
|||
|
||||
/* rebuild Torrent.pool with what's left */
|
||||
tr_ptrArrayDestruct(&s->pool, NULL);
|
||||
s->pool = TR_PTR_ARRAY_INIT;
|
||||
s->pool = {};
|
||||
qsort(keep, keepCount, sizeof(struct peer_atom*), compareAtomPtrsByAddress);
|
||||
|
||||
for (i = 0; i < keepCount; ++i)
|
||||
|
@ -4181,8 +4166,8 @@ static uint64_t getPeerCandidateScore(tr_torrent const* tor, struct peer_atom co
|
|||
static int comparePeerCandidates(void const* va, void const* vb)
|
||||
{
|
||||
int ret;
|
||||
struct peer_candidate const* a = va;
|
||||
struct peer_candidate const* b = vb;
|
||||
auto const* const a = static_cast<struct peer_candidate const*>(va);
|
||||
auto const* const b = static_cast<struct peer_candidate const*>(vb);
|
||||
|
||||
if (a->score < b->score)
|
||||
{
|
|
@ -457,7 +457,7 @@ static void publish(tr_peerMsgs* msgs, tr_peer_event* e)
|
|||
|
||||
static void fireError(tr_peerMsgs* msgs, int err)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_ERROR;
|
||||
e.err = err;
|
||||
publish(msgs, &e);
|
||||
|
@ -465,7 +465,7 @@ static void fireError(tr_peerMsgs* msgs, int err)
|
|||
|
||||
static void fireGotBlock(tr_peerMsgs* msgs, struct peer_request const* req)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_BLOCK;
|
||||
e.pieceIndex = req->index;
|
||||
e.offset = req->offset;
|
||||
|
@ -475,7 +475,7 @@ static void fireGotBlock(tr_peerMsgs* msgs, struct peer_request const* req)
|
|||
|
||||
static void fireGotRej(tr_peerMsgs* msgs, struct peer_request const* req)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_REJ;
|
||||
e.pieceIndex = req->index;
|
||||
e.offset = req->offset;
|
||||
|
@ -485,28 +485,28 @@ static void fireGotRej(tr_peerMsgs* msgs, struct peer_request const* req)
|
|||
|
||||
static void fireGotChoke(tr_peerMsgs* msgs)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_CHOKE;
|
||||
publish(msgs, &e);
|
||||
}
|
||||
|
||||
static void fireClientGotHaveAll(tr_peerMsgs* msgs)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_HAVE_ALL;
|
||||
publish(msgs, &e);
|
||||
}
|
||||
|
||||
static void fireClientGotHaveNone(tr_peerMsgs* msgs)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_HAVE_NONE;
|
||||
publish(msgs, &e);
|
||||
}
|
||||
|
||||
static void fireClientGotPieceData(tr_peerMsgs* msgs, uint32_t length)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.length = length;
|
||||
e.eventType = TR_PEER_CLIENT_GOT_PIECE_DATA;
|
||||
publish(msgs, &e);
|
||||
|
@ -514,7 +514,7 @@ static void fireClientGotPieceData(tr_peerMsgs* msgs, uint32_t length)
|
|||
|
||||
static void firePeerGotPieceData(tr_peerMsgs* msgs, uint32_t length)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.length = length;
|
||||
e.eventType = TR_PEER_PEER_GOT_PIECE_DATA;
|
||||
publish(msgs, &e);
|
||||
|
@ -522,7 +522,7 @@ static void firePeerGotPieceData(tr_peerMsgs* msgs, uint32_t length)
|
|||
|
||||
static void fireClientGotSuggest(tr_peerMsgs* msgs, uint32_t pieceIndex)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_SUGGEST;
|
||||
e.pieceIndex = pieceIndex;
|
||||
publish(msgs, &e);
|
||||
|
@ -530,7 +530,7 @@ static void fireClientGotSuggest(tr_peerMsgs* msgs, uint32_t pieceIndex)
|
|||
|
||||
static void fireClientGotPort(tr_peerMsgs* msgs, tr_port port)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_PORT;
|
||||
e.port = port;
|
||||
publish(msgs, &e);
|
||||
|
@ -538,7 +538,7 @@ static void fireClientGotPort(tr_peerMsgs* msgs, tr_port port)
|
|||
|
||||
static void fireClientGotAllowedFast(tr_peerMsgs* msgs, uint32_t pieceIndex)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_ALLOWED_FAST;
|
||||
e.pieceIndex = pieceIndex;
|
||||
publish(msgs, &e);
|
||||
|
@ -546,7 +546,7 @@ static void fireClientGotAllowedFast(tr_peerMsgs* msgs, uint32_t pieceIndex)
|
|||
|
||||
static void fireClientGotBitfield(tr_peerMsgs* msgs, tr_bitfield* bitfield)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_BITFIELD;
|
||||
e.bitfield = bitfield;
|
||||
publish(msgs, &e);
|
||||
|
@ -554,7 +554,7 @@ static void fireClientGotBitfield(tr_peerMsgs* msgs, tr_bitfield* bitfield)
|
|||
|
||||
static void fireClientGotHave(tr_peerMsgs* msgs, tr_piece_index_t index)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_HAVE;
|
||||
e.pieceIndex = index;
|
||||
publish(msgs, &e);
|
||||
|
@ -1235,7 +1235,7 @@ static void parseLtep(tr_peerMsgs* msgs, uint32_t msglen, struct evbuffer* inbuf
|
|||
}
|
||||
}
|
||||
|
||||
static int readBtLength(tr_peerMsgs* msgs, struct evbuffer* inbuf, size_t inlen)
|
||||
static ReadState readBtLength(tr_peerMsgs* msgs, struct evbuffer* inbuf, size_t inlen)
|
||||
{
|
||||
uint32_t len;
|
||||
|
||||
|
@ -1259,9 +1259,9 @@ static int readBtLength(tr_peerMsgs* msgs, struct evbuffer* inbuf, size_t inlen)
|
|||
return READ_NOW;
|
||||
}
|
||||
|
||||
static int readBtMessage(tr_peerMsgs*, struct evbuffer*, size_t);
|
||||
static ReadState readBtMessage(tr_peerMsgs*, struct evbuffer*, size_t);
|
||||
|
||||
static int readBtId(tr_peerMsgs* msgs, struct evbuffer* inbuf, size_t inlen)
|
||||
static ReadState readBtId(tr_peerMsgs* msgs, struct evbuffer* inbuf, size_t inlen)
|
||||
{
|
||||
uint8_t id;
|
||||
|
||||
|
@ -1410,7 +1410,7 @@ static bool messageLengthIsCorrect(tr_peerMsgs const* msg, uint8_t id, uint32_t
|
|||
|
||||
static int clientGotBlock(tr_peerMsgs* msgs, struct evbuffer* block, struct peer_request const* req);
|
||||
|
||||
static int readBtPiece(tr_peerMsgs* msgs, struct evbuffer* inbuf, size_t inlen, size_t* setme_piece_bytes_read)
|
||||
static ReadState readBtPiece(tr_peerMsgs* msgs, struct evbuffer* inbuf, size_t inlen, size_t* setme_piece_bytes_read)
|
||||
{
|
||||
TR_ASSERT(evbuffer_get_length(inbuf) >= inlen);
|
||||
|
||||
|
@ -1480,7 +1480,7 @@ static int readBtPiece(tr_peerMsgs* msgs, struct evbuffer* inbuf, size_t inlen,
|
|||
|
||||
static void updateDesiredRequestCount(tr_peerMsgs* msgs);
|
||||
|
||||
static int readBtMessage(tr_peerMsgs* msgs, struct evbuffer* inbuf, size_t inlen)
|
||||
static ReadState readBtMessage(tr_peerMsgs* msgs, struct evbuffer* inbuf, size_t inlen)
|
||||
{
|
||||
uint8_t const id = msgs->incoming.id;
|
||||
#ifdef TR_ENABLE_ASSERTS
|
||||
|
@ -1788,7 +1788,7 @@ static void peerPulse(void* vmsgs);
|
|||
|
||||
static void didWrite(tr_peerIo* io, size_t bytesWritten, bool wasPieceData, void* vmsgs)
|
||||
{
|
||||
tr_peerMsgs* msgs = vmsgs;
|
||||
auto* msgs = static_cast<tr_peerMsgs*>(vmsgs);
|
||||
|
||||
if (wasPieceData)
|
||||
{
|
||||
|
@ -1804,7 +1804,7 @@ static void didWrite(tr_peerIo* io, size_t bytesWritten, bool wasPieceData, void
|
|||
static ReadState canRead(tr_peerIo* io, void* vmsgs, size_t* piece)
|
||||
{
|
||||
ReadState ret;
|
||||
tr_peerMsgs* msgs = vmsgs;
|
||||
auto* msgs = static_cast<tr_peerMsgs*>(vmsgs);
|
||||
struct evbuffer* in = tr_peerIoGetReadBuffer(io);
|
||||
size_t const inlen = evbuffer_get_length(in);
|
||||
|
||||
|
@ -1999,11 +1999,10 @@ static size_t fillOutputBuffer(tr_peerMsgs* msgs, time_t now)
|
|||
|
||||
if (tr_peerIoGetWriteBufferSpace(msgs->io, now) >= METADATA_PIECE_SIZE && popNextMetadataRequest(msgs, &piece))
|
||||
{
|
||||
char* data;
|
||||
size_t dataLen;
|
||||
bool ok = false;
|
||||
|
||||
data = tr_torrentGetMetadataPiece(msgs->torrent, piece, &dataLen);
|
||||
auto* data = static_cast<char*>(tr_torrentGetMetadataPiece(msgs->torrent, piece, &dataLen));
|
||||
|
||||
if (data != NULL)
|
||||
{
|
||||
|
@ -2089,7 +2088,7 @@ static size_t fillOutputBuffer(tr_peerMsgs* msgs, time_t now)
|
|||
req.index,
|
||||
req.offset,
|
||||
req.length,
|
||||
iovec[0].iov_base) != 0;
|
||||
static_cast<uint8_t*>(iovec[0].iov_base)) != 0;
|
||||
iovec[0].iov_len = req.length;
|
||||
evbuffer_commit_space(out, iovec, 1);
|
||||
|
||||
|
@ -2160,7 +2159,7 @@ static size_t fillOutputBuffer(tr_peerMsgs* msgs, time_t now)
|
|||
|
||||
static void peerPulse(void* vmsgs)
|
||||
{
|
||||
tr_peerMsgs* msgs = vmsgs;
|
||||
auto* msgs = static_cast<tr_peerMsgs*>(vmsgs);
|
||||
time_t const now = tr_time();
|
||||
|
||||
if (tr_isPeerIo(msgs->io))
|
||||
|
@ -2189,19 +2188,21 @@ void tr_peerMsgsPulse(tr_peerMsgs* msgs)
|
|||
|
||||
static void gotError(tr_peerIo* io, short what, void* vmsgs)
|
||||
{
|
||||
auto* msgs = static_cast<tr_peerMsgs*>(vmsgs);
|
||||
|
||||
TR_UNUSED(io);
|
||||
|
||||
if ((what & BEV_EVENT_TIMEOUT) != 0)
|
||||
{
|
||||
dbgmsg(vmsgs, "libevent got a timeout, what=%hd", what);
|
||||
dbgmsg(msgs, "libevent got a timeout, what=%hd", what);
|
||||
}
|
||||
|
||||
if ((what & (BEV_EVENT_EOF | BEV_EVENT_ERROR)) != 0)
|
||||
{
|
||||
dbgmsg(vmsgs, "libevent got an error! what=%hd, errno=%d (%s)", what, errno, tr_strerror(errno));
|
||||
dbgmsg(msgs, "libevent got an error! what=%hd, errno=%d (%s)", what, errno, tr_strerror(errno));
|
||||
}
|
||||
|
||||
fireError(vmsgs, ENOTCONN);
|
||||
fireError(msgs, ENOTCONN);
|
||||
}
|
||||
|
||||
static void sendBitfield(tr_peerMsgs* msgs)
|
||||
|
@ -2262,8 +2263,8 @@ typedef struct
|
|||
|
||||
static void pexAddedCb(void const* vpex, void* userData)
|
||||
{
|
||||
PexDiffs* diffs = userData;
|
||||
tr_pex const* pex = vpex;
|
||||
auto* diffs = static_cast<PexDiffs*>(userData);
|
||||
auto const* pex = static_cast<tr_pex const*>(vpex);
|
||||
|
||||
if (diffs->addedCount < MAX_PEX_ADDED)
|
||||
{
|
||||
|
@ -2274,8 +2275,8 @@ static void pexAddedCb(void const* vpex, void* userData)
|
|||
|
||||
static inline void pexDroppedCb(void const* vpex, void* userData)
|
||||
{
|
||||
PexDiffs* diffs = userData;
|
||||
tr_pex const* pex = vpex;
|
||||
auto* diffs = static_cast<PexDiffs*>(userData);
|
||||
auto const* pex = static_cast<tr_pex const*>(vpex);
|
||||
|
||||
if (diffs->droppedCount < MAX_PEX_DROPPED)
|
||||
{
|
||||
|
@ -2285,8 +2286,8 @@ static inline void pexDroppedCb(void const* vpex, void* userData)
|
|||
|
||||
static inline void pexElementCb(void const* vpex, void* userData)
|
||||
{
|
||||
PexDiffs* diffs = userData;
|
||||
tr_pex const* pex = vpex;
|
||||
auto* diffs = static_cast<PexDiffs*>(userData);
|
||||
auto const* pex = static_cast<tr_pex const*>(vpex);
|
||||
|
||||
diffs->elements[diffs->elementCount++] = *pex;
|
||||
}
|
||||
|
@ -2318,8 +2319,8 @@ static void tr_set_compare(
|
|||
tr_set_func in_both_cb,
|
||||
void* userData)
|
||||
{
|
||||
uint8_t const* a = va;
|
||||
uint8_t const* b = vb;
|
||||
auto* a = static_cast<uint8_t const*>(va);
|
||||
auto* b = static_cast<uint8_t const*>(vb);
|
||||
uint8_t const* aend = a + elementSize * aCount;
|
||||
uint8_t const* bend = b + elementSize * bCount;
|
||||
|
||||
|
@ -2568,7 +2569,7 @@ static void pexPulse(evutil_socket_t fd, short what, void* vmsgs)
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(what);
|
||||
|
||||
struct tr_peerMsgs* msgs = vmsgs;
|
||||
auto* msgs = static_cast<tr_peerMsgs*>(vmsgs);
|
||||
|
||||
sendPex(msgs);
|
||||
|
||||
|
@ -2638,8 +2639,8 @@ static void peermsgs_destruct(tr_peer* peer)
|
|||
}
|
||||
|
||||
static struct tr_peer_virtual_funcs const my_funcs = {
|
||||
.destruct = peermsgs_destruct,
|
||||
.is_transferring_pieces = peermsgs_is_transferring_pieces,
|
||||
peermsgs_destruct,
|
||||
peermsgs_is_transferring_pieces,
|
||||
};
|
||||
|
||||
/***
|
||||
|
@ -2713,7 +2714,8 @@ bool tr_isPeerMsgs(void const* msgs)
|
|||
|
||||
tr_peerMsgs* tr_peerMsgsCast(void* vm)
|
||||
{
|
||||
return tr_isPeerMsgs(vm) ? vm : NULL;
|
||||
auto* m = static_cast<tr_peerMsgs*>(vm);
|
||||
return tr_isPeerMsgs(m) ? m : NULL;
|
||||
}
|
||||
|
||||
tr_peerMsgs* tr_peerMsgsNew(struct tr_torrent* torrent, struct tr_peerIo* io, tr_peer_callback callback, void* callbackData)
|
|
@ -37,8 +37,6 @@ struct tr_peer_socket
|
|||
union tr_peer_socket_handle handle;
|
||||
};
|
||||
|
||||
#define TR_PEER_SOCKET_INIT ((struct tr_peer_socket){ .type = TR_PEER_SOCKET_TYPE_NONE })
|
||||
|
||||
struct tr_peer_socket tr_peer_socket_tcp_create(tr_socket_t const handle);
|
||||
|
||||
struct tr_peer_socket tr_peer_socket_utp_create(struct UTPSocket* const handle);
|
||||
|
|
|
@ -263,7 +263,10 @@ static char const* getblkdev(char const* path)
|
|||
|
||||
#if defined(__NetBSD__) && __NetBSD_Version__ >= 600000000
|
||||
|
||||
extern "C"
|
||||
{
|
||||
#include <quota.h>
|
||||
}
|
||||
|
||||
static int64_t getquota(char const* device)
|
||||
{
|
|
@ -99,7 +99,7 @@ static ThreadFuncReturnType ThreadFunc(void* _t)
|
|||
pthread_detach(pthread_self());
|
||||
#endif
|
||||
|
||||
tr_thread* t = _t;
|
||||
auto* t = static_cast<tr_thread*>(_t);
|
||||
|
||||
t->func(t->arg);
|
||||
|
||||
|
@ -115,7 +115,7 @@ static ThreadFuncReturnType ThreadFunc(void* _t)
|
|||
|
||||
tr_thread* tr_threadNew(void (*func)(void*), void* arg)
|
||||
{
|
||||
tr_thread* t = tr_new0(tr_thread, 1);
|
||||
auto* t = static_cast<tr_thread*>(tr_new0(tr_thread, 1));
|
||||
|
||||
t->func = func;
|
||||
t->arg = arg;
|
||||
|
@ -263,7 +263,7 @@ static char const* getHomeDir(void)
|
|||
{
|
||||
#ifdef _WIN32
|
||||
|
||||
home = win32_get_known_folder(&FOLDERID_Profile);
|
||||
home = win32_get_known_folder(FOLDERID_Profile);
|
||||
|
||||
#else
|
||||
|
||||
|
@ -347,7 +347,7 @@ char const* tr_getDefaultConfigDir(char const* appname)
|
|||
|
||||
#elif defined(_WIN32)
|
||||
|
||||
char* appdata = win32_get_known_folder(&FOLDERID_LocalAppData);
|
||||
char* appdata = win32_get_known_folder(FOLDERID_LocalAppData);
|
||||
s = tr_buildPath(appdata, appname, NULL);
|
||||
tr_free(appdata);
|
||||
|
||||
|
@ -440,7 +440,7 @@ char const* tr_getDefaultDownloadDir(void)
|
|||
|
||||
if (user_dir == NULL)
|
||||
{
|
||||
user_dir = win32_get_known_folder(&FOLDERID_Downloads);
|
||||
user_dir = win32_get_known_folder(FOLDERID_Downloads);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -497,13 +497,13 @@ char const* tr_getWebClientDir(tr_session const* session)
|
|||
|
||||
if (!isWebClientDir(s))
|
||||
{
|
||||
tr_free(s);
|
||||
tr_free(const_cast<char*>(s));
|
||||
|
||||
CFURLRef appURL = CFBundleCopyBundleURL(CFBundleGetMainBundle());
|
||||
CFStringRef appRef = CFURLCopyFileSystemPath(appURL, kCFURLPOSIXPathStyle);
|
||||
CFIndex const appStringLength = CFStringGetMaximumSizeOfFileSystemRepresentation(appRef);
|
||||
|
||||
char* appString = tr_malloc(appStringLength);
|
||||
char* appString = static_cast<char*>(tr_malloc(appStringLength));
|
||||
bool const success = CFStringGetFileSystemRepresentation(appRef, appString, appStringLength);
|
||||
TR_ASSERT(success);
|
||||
|
||||
|
@ -515,7 +515,7 @@ char const* tr_getWebClientDir(tr_session const* session)
|
|||
|
||||
if (!isWebClientDir(s))
|
||||
{
|
||||
tr_free(s);
|
||||
tr_free(const_cast<char*>(s));
|
||||
s = NULL;
|
||||
}
|
||||
|
||||
|
@ -529,7 +529,7 @@ char const* tr_getWebClientDir(tr_session const* session)
|
|||
/* Generally, Web interface should be stored in a Web subdir of
|
||||
* calling executable dir. */
|
||||
|
||||
static REFKNOWNFOLDERID known_folder_ids[] = {
|
||||
static KNOWNFOLDERID const* const known_folder_ids[] = {
|
||||
&FOLDERID_LocalAppData,
|
||||
&FOLDERID_RoamingAppData,
|
||||
&FOLDERID_ProgramData,
|
||||
|
@ -537,14 +537,17 @@ char const* tr_getWebClientDir(tr_session const* session)
|
|||
|
||||
for (size_t i = 0; s == NULL && i < TR_N_ELEMENTS(known_folder_ids); ++i)
|
||||
{
|
||||
char* dir = win32_get_known_folder(known_folder_ids[i]);
|
||||
s = tr_buildPath(dir, "Transmission", "Web", NULL);
|
||||
char* dir = win32_get_known_folder(*known_folder_ids[i]);
|
||||
char* path = tr_buildPath(dir, "Transmission", "Web", NULL);
|
||||
tr_free(dir);
|
||||
|
||||
if (!isWebClientDir(s))
|
||||
if (isWebClientDir(path))
|
||||
{
|
||||
tr_free(s);
|
||||
s = NULL;
|
||||
s = path;
|
||||
}
|
||||
else
|
||||
{
|
||||
tr_free(path);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -560,13 +563,16 @@ char const* tr_getWebClientDir(tr_session const* session)
|
|||
|
||||
if (dir != NULL)
|
||||
{
|
||||
s = tr_buildPath(dir, "Web", NULL);
|
||||
char* path = tr_buildPath(dir, "Web", NULL);
|
||||
tr_free(dir);
|
||||
|
||||
if (!isWebClientDir(s))
|
||||
if (isWebClientDir(path))
|
||||
{
|
||||
tr_free(s);
|
||||
s = NULL;
|
||||
s = path;
|
||||
}
|
||||
else
|
||||
{
|
||||
tr_free(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -627,7 +633,7 @@ char const* tr_getWebClientDir(tr_session const* session)
|
|||
/* walk through the candidates & look for a match */
|
||||
for (tr_list* l = candidates; l != NULL; l = l->next)
|
||||
{
|
||||
char* path = tr_buildPath(l->data, "transmission", "public_html", NULL);
|
||||
char* path = tr_buildPath(static_cast<char const*>(l->data), "transmission", "public_html", NULL);
|
||||
bool const found = isWebClientDir(path);
|
||||
|
||||
if (found)
|
||||
|
@ -656,7 +662,7 @@ char* tr_getSessionIdDir(void)
|
|||
|
||||
#else
|
||||
|
||||
char* program_data_dir = win32_get_known_folder_ex(&FOLDERID_ProgramData, KF_FLAG_CREATE);
|
||||
char* program_data_dir = win32_get_known_folder_ex(FOLDERID_ProgramData, KF_FLAG_CREATE);
|
||||
char* result = tr_buildPath(program_data_dir, "Transmission", NULL);
|
||||
tr_free(program_data_dir);
|
||||
tr_sys_dir_create(result, 0, 0, NULL);
|
|
@ -148,7 +148,7 @@ static void onTimer(evutil_socket_t fd, short what, void* vshared)
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(what);
|
||||
|
||||
tr_shared* s = vshared;
|
||||
auto* s = static_cast<tr_shared*>(vshared);
|
||||
|
||||
TR_ASSERT(s != NULL);
|
||||
TR_ASSERT(s->timer != NULL);
|
|
@ -15,8 +15,6 @@
|
|||
|
||||
#define FLOOR 32
|
||||
|
||||
tr_ptrArray const TR_PTR_ARRAY_INIT = TR_PTR_ARRAY_INIT_STATIC;
|
||||
|
||||
void tr_ptrArrayDestruct(tr_ptrArray* p, PtrArrayForeachFunc func)
|
||||
{
|
||||
TR_ASSERT(p != NULL);
|
|
@ -34,13 +34,6 @@ typedef tr_voidptr_compare_func PtrArrayCompareFunc;
|
|||
|
||||
typedef void (*PtrArrayForeachFunc)(void*);
|
||||
|
||||
#define TR_PTR_ARRAY_INIT_STATIC \
|
||||
{ \
|
||||
NULL, 0, 0, \
|
||||
}
|
||||
|
||||
extern tr_ptrArray const TR_PTR_ARRAY_INIT;
|
||||
|
||||
/** @brief Destructor to free a tr_ptrArray's internal memory */
|
||||
void tr_ptrArrayDestruct(tr_ptrArray*, PtrArrayForeachFunc func);
|
||||
|
||||
|
|
|
@ -421,11 +421,10 @@ static struct tr_key_struct const my_static[] = {
|
|||
|
||||
static int compareKeys(void const* va, void const* vb)
|
||||
{
|
||||
int ret;
|
||||
struct tr_key_struct const* a = va;
|
||||
struct tr_key_struct const* b = vb;
|
||||
auto const* a = static_cast<struct tr_key_struct const*>(va);
|
||||
auto const* b = static_cast<struct tr_key_struct const*>(vb);
|
||||
|
||||
ret = memcmp(a->str, b->str, MIN(a->len, b->len));
|
||||
int ret = memcmp(a->str, b->str, MIN(a->len, b->len));
|
||||
|
||||
if (ret == 0 && a->len != b->len)
|
||||
{
|
||||
|
@ -435,7 +434,7 @@ static int compareKeys(void const* va, void const* vb)
|
|||
return ret;
|
||||
}
|
||||
|
||||
static tr_ptrArray my_runtime = TR_PTR_ARRAY_INIT_STATIC;
|
||||
static tr_ptrArray my_runtime = {};
|
||||
|
||||
bool tr_quark_lookup(void const* str, size_t len, tr_quark* setme)
|
||||
{
|
||||
|
@ -443,11 +442,12 @@ bool tr_quark_lookup(void const* str, size_t len, tr_quark* setme)
|
|||
TR_ASSERT(n_static == TR_N_KEYS);
|
||||
|
||||
struct tr_key_struct tmp;
|
||||
tmp.str = str;
|
||||
tmp.str = static_cast<char const*>(str);
|
||||
tmp.len = len;
|
||||
|
||||
/* is it in our static array? */
|
||||
struct tr_key_struct const* const match = bsearch(&tmp, my_static, n_static, sizeof(struct tr_key_struct), compareKeys);
|
||||
auto const* match = static_cast<struct tr_key_struct const*>(
|
||||
bsearch(&tmp, my_static, n_static, sizeof(struct tr_key_struct), compareKeys));
|
||||
|
||||
bool success = false;
|
||||
if (match != NULL)
|
||||
|
@ -496,7 +496,7 @@ tr_quark tr_quark_new(void const* str, size_t len)
|
|||
{
|
||||
if (len == TR_BAD_SIZE)
|
||||
{
|
||||
len = strlen(str);
|
||||
len = strlen(static_cast<char const*>(str));
|
||||
}
|
||||
|
||||
if (!tr_quark_lookup(str, len, &ret))
|
||||
|
@ -518,7 +518,7 @@ char const* tr_quark_get_string(tr_quark q, size_t* len)
|
|||
}
|
||||
else
|
||||
{
|
||||
tmp = tr_ptrArrayNth(&my_runtime, q - TR_N_KEYS);
|
||||
tmp = static_cast<struct tr_key_struct const*>(tr_ptrArrayNth(&my_runtime, q - TR_N_KEYS));
|
||||
}
|
||||
|
||||
if (len != NULL)
|
|
@ -345,7 +345,7 @@ static uint64_t loadRatioLimits(tr_variant* dict, tr_torrent* tor)
|
|||
|
||||
if (tr_variantDictFindInt(d, TR_KEY_ratio_mode, &i))
|
||||
{
|
||||
tr_torrentSetRatioMode(tor, i);
|
||||
tr_torrentSetRatioMode(tor, tr_ratiolimit(i));
|
||||
}
|
||||
|
||||
ret = TR_FR_RATIOLIMIT;
|
||||
|
@ -371,7 +371,7 @@ static uint64_t loadIdleLimits(tr_variant* dict, tr_torrent* tor)
|
|||
|
||||
if (tr_variantDictFindInt(d, TR_KEY_idle_mode, &i))
|
||||
{
|
||||
tr_torrentSetIdleMode(tor, i);
|
||||
tr_torrentSetIdleMode(tor, tr_idlelimit(i));
|
||||
}
|
||||
|
||||
ret = TR_FR_IDLELIMIT;
|
||||
|
@ -482,7 +482,7 @@ static void bitfieldToBenc(tr_bitfield const* b, tr_variant* benc)
|
|||
else
|
||||
{
|
||||
size_t byte_count = 0;
|
||||
uint8_t* raw = tr_bitfieldGetRaw(b, &byte_count);
|
||||
auto* raw = static_cast<uint8_t*>(tr_bitfieldGetRaw(b, &byte_count));
|
||||
tr_variantInitRaw(benc, raw, byte_count);
|
||||
tr_free(raw);
|
||||
}
|
||||
|
@ -588,7 +588,7 @@ static uint64_t loadProgress(tr_variant* dict, tr_torrent* tor)
|
|||
uint8_t const* raw;
|
||||
size_t rawlen;
|
||||
tr_variant* l;
|
||||
struct tr_bitfield blocks = TR_BITFIELD_INIT;
|
||||
struct tr_bitfield blocks = {};
|
||||
|
||||
if (tr_variantDictFindList(prog, TR_KEY_time_checked, &l))
|
||||
{
|
||||
|
@ -992,7 +992,7 @@ static uint64_t loadFromFile(tr_torrent* tor, uint64_t fieldsToLoad, bool* didRe
|
|||
return fieldsLoaded;
|
||||
}
|
||||
|
||||
static uint64_t setFromCtor(tr_torrent* tor, uint64_t fields, tr_ctor const* ctor, int mode)
|
||||
static uint64_t setFromCtor(tr_torrent* tor, uint64_t fields, tr_ctor const* ctor, tr_ctorMode mode)
|
||||
{
|
||||
uint64_t ret = 0;
|
||||
|
|
@ -173,7 +173,7 @@ static void handle_upload(struct evhttp_request* req, struct tr_rpc_server* serv
|
|||
{
|
||||
int n;
|
||||
bool hasSessionId = false;
|
||||
tr_ptrArray parts = TR_PTR_ARRAY_INIT;
|
||||
auto parts = tr_ptrArray{};
|
||||
|
||||
char const* query = strchr(req->uri, '?');
|
||||
bool const paused = query != NULL && strstr(query + 1, "paused=true") != NULL;
|
||||
|
@ -184,7 +184,7 @@ static void handle_upload(struct evhttp_request* req, struct tr_rpc_server* serv
|
|||
/* first look for the session id */
|
||||
for (int i = 0; i < n; ++i)
|
||||
{
|
||||
struct tr_mimepart const* p = tr_ptrArrayNth(&parts, i);
|
||||
auto const* const p = static_cast<struct tr_mimepart const*>(tr_ptrArrayNth(&parts, i));
|
||||
|
||||
if (tr_strcasestr(p->headers, TR_RPC_SESSION_ID_HEADER) != NULL)
|
||||
{
|
||||
|
@ -208,7 +208,7 @@ static void handle_upload(struct evhttp_request* req, struct tr_rpc_server* serv
|
|||
{
|
||||
for (int i = 0; i < n; ++i)
|
||||
{
|
||||
struct tr_mimepart const* p = tr_ptrArrayNth(&parts, i);
|
||||
auto const* const p = static_cast<struct tr_mimepart const*>(tr_ptrArrayNth(&parts, i));
|
||||
size_t body_len = p->body_len;
|
||||
tr_variant top;
|
||||
tr_variant* args;
|
||||
|
@ -233,7 +233,7 @@ static void handle_upload(struct evhttp_request* req, struct tr_rpc_server* serv
|
|||
}
|
||||
else if (tr_variantFromBenc(&test, body, body_len) == 0)
|
||||
{
|
||||
char* b64 = tr_base64_encode(body, body_len, NULL);
|
||||
auto* b64 = static_cast<char*>(tr_base64_encode(body, body_len, NULL));
|
||||
tr_variantDictAddStr(args, TR_KEY_metainfo, b64);
|
||||
tr_free(b64);
|
||||
have_source = true;
|
||||
|
@ -335,14 +335,14 @@ static void add_response(
|
|||
deflateInit2(&server->stream, compressionLevel, Z_DEFLATED, 15 + 16, 8, Z_DEFAULT_STRATEGY);
|
||||
}
|
||||
|
||||
server->stream.next_in = content_ptr;
|
||||
server->stream.next_in = static_cast<Bytef*>(content_ptr);
|
||||
server->stream.avail_in = content_len;
|
||||
|
||||
/* allocate space for the raw data and call deflate() just once --
|
||||
* we won't use the deflated data if it's longer than the raw data,
|
||||
* so it's okay to let deflate() run out of output buffer space */
|
||||
evbuffer_reserve_space(out, content_len, iovec, 1);
|
||||
server->stream.next_out = iovec[0].iov_base;
|
||||
server->stream.next_out = static_cast<Bytef*>(iovec[0].iov_base);
|
||||
server->stream.avail_out = iovec[0].iov_len;
|
||||
state = deflate(&server->stream, Z_FINISH);
|
||||
|
||||
|
@ -493,7 +493,7 @@ static void rpc_response_func(tr_session* session, tr_variant* response, void* u
|
|||
{
|
||||
TR_UNUSED(session);
|
||||
|
||||
struct rpc_response_data* data = user_data;
|
||||
auto* data = static_cast<struct rpc_response_data*>(user_data);
|
||||
struct evbuffer* response_buf = tr_variantToBuf(response, TR_VARIANT_FMT_JSON_LEAN);
|
||||
struct evbuffer* buf = evbuffer_new();
|
||||
|
||||
|
@ -562,7 +562,7 @@ static bool isAddressAllowed(tr_rpc_server const* server, char const* address)
|
|||
|
||||
for (tr_list* l = server->whitelist; l != NULL; l = l->next)
|
||||
{
|
||||
if (tr_wildmat(address, l->data))
|
||||
if (tr_wildmat(address, static_cast<char const*>(l->data)))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -621,7 +621,7 @@ static bool isHostnameAllowed(tr_rpc_server const* server, struct evhttp_request
|
|||
/* Otherwise, hostname must be whitelisted. */
|
||||
for (tr_list* l = server->hostWhitelist; l != NULL; l = l->next)
|
||||
{
|
||||
if (tr_wildmat(hostname, l->data))
|
||||
if (tr_wildmat(hostname, static_cast<char const*>(l->data)))
|
||||
{
|
||||
tr_free(hostname);
|
||||
return true;
|
||||
|
@ -642,7 +642,7 @@ static bool test_session_id(struct tr_rpc_server* server, struct evhttp_request*
|
|||
|
||||
static void handle_request(struct evhttp_request* req, void* arg)
|
||||
{
|
||||
struct tr_rpc_server* server = arg;
|
||||
auto* server = static_cast<struct tr_rpc_server*>(arg);
|
||||
|
||||
if (req != NULL && req->evcon != NULL)
|
||||
{
|
||||
|
@ -674,7 +674,7 @@ static void handle_request(struct evhttp_request* req, void* arg)
|
|||
|
||||
if (auth != NULL && evutil_ascii_strncasecmp(auth, "basic ", 6) == 0)
|
||||
{
|
||||
char* p = tr_base64_decode_str(auth + 6, NULL);
|
||||
auto* p = static_cast<char*>(tr_base64_decode_str(auth + 6, NULL));
|
||||
|
||||
if (p != NULL)
|
||||
{
|
||||
|
@ -827,7 +827,7 @@ static void rpc_server_start_retry_cancel(tr_rpc_server* server)
|
|||
|
||||
static void startServer(void* vserver)
|
||||
{
|
||||
tr_rpc_server* server = vserver;
|
||||
auto* server = static_cast<tr_rpc_server*>(vserver);
|
||||
|
||||
if (server->httpd != NULL)
|
||||
{
|
||||
|
@ -892,7 +892,7 @@ static void stopServer(tr_rpc_server* server)
|
|||
|
||||
static void onEnabledChanged(void* vserver)
|
||||
{
|
||||
tr_rpc_server* server = vserver;
|
||||
auto* server = static_cast<tr_rpc_server*>(vserver);
|
||||
|
||||
if (!server->isEnabled)
|
||||
{
|
||||
|
@ -918,7 +918,7 @@ bool tr_rpcIsEnabled(tr_rpc_server const* server)
|
|||
|
||||
static void restartServer(void* vserver)
|
||||
{
|
||||
tr_rpc_server* server = vserver;
|
||||
auto* server = static_cast<tr_rpc_server*>(vserver);
|
||||
|
||||
if (server->isEnabled)
|
||||
{
|
||||
|
@ -1122,25 +1122,25 @@ void tr_rpcSetAntiBruteForceThreshold(tr_rpc_server* server, int badRequests)
|
|||
static void closeServer(void* vserver)
|
||||
{
|
||||
void* tmp;
|
||||
tr_rpc_server* s = vserver;
|
||||
auto* server = static_cast<tr_rpc_server*>(vserver);
|
||||
|
||||
stopServer(s);
|
||||
stopServer(server);
|
||||
|
||||
while ((tmp = tr_list_pop_front(&s->whitelist)) != NULL)
|
||||
while ((tmp = tr_list_pop_front(&server->whitelist)) != NULL)
|
||||
{
|
||||
tr_free(tmp);
|
||||
}
|
||||
|
||||
if (s->isStreamInitialized)
|
||||
if (server->isStreamInitialized)
|
||||
{
|
||||
deflateEnd(&s->stream);
|
||||
deflateEnd(&server->stream);
|
||||
}
|
||||
|
||||
tr_free(s->url);
|
||||
tr_free(s->whitelistStr);
|
||||
tr_free(s->username);
|
||||
tr_free(s->password);
|
||||
tr_free(s);
|
||||
tr_free(server->url);
|
||||
tr_free(server->whitelistStr);
|
||||
tr_free(server->username);
|
||||
tr_free(server->password);
|
||||
tr_free(server);
|
||||
}
|
||||
|
||||
void tr_rpcClose(tr_rpc_server** ps)
|
||||
|
@ -1157,14 +1157,13 @@ static void missing_settings_key(tr_quark const q)
|
|||
|
||||
tr_rpc_server* tr_rpcInit(tr_session* session, tr_variant* settings)
|
||||
{
|
||||
tr_rpc_server* s;
|
||||
bool boolVal;
|
||||
int64_t i;
|
||||
char const* str;
|
||||
tr_quark key;
|
||||
tr_address address;
|
||||
|
||||
s = tr_new0(tr_rpc_server, 1);
|
||||
tr_rpc_server* s = tr_new0(tr_rpc_server, 1);
|
||||
s->session = session;
|
||||
|
||||
key = TR_KEY_rpc_enabled;
|
|
@ -59,9 +59,9 @@ typedef enum
|
|||
****
|
||||
***/
|
||||
|
||||
static tr_rpc_callback_status notify(tr_session* session, int type, tr_torrent* tor)
|
||||
static tr_rpc_callback_status notify(tr_session* session, tr_rpc_callback_type type, tr_torrent* tor)
|
||||
{
|
||||
tr_rpc_callback_status status = 0;
|
||||
tr_rpc_callback_status status = TR_RPC_OK;
|
||||
|
||||
if (session->rpc_func != NULL)
|
||||
{
|
||||
|
@ -799,7 +799,7 @@ static void initField(
|
|||
{
|
||||
size_t byte_count = 0;
|
||||
void* bytes = tr_torrentCreatePieceBitfield(tor, &byte_count);
|
||||
char* enc = tr_base64_encode(bytes, byte_count, NULL);
|
||||
auto* enc = static_cast<char*>(tr_base64_encode(bytes, byte_count, NULL));
|
||||
tr_variantInitStr(initme, enc != NULL ? enc : "", TR_BAD_SIZE);
|
||||
tr_free(enc);
|
||||
tr_free(bytes);
|
||||
|
@ -1075,7 +1075,7 @@ static char const* setLabels(tr_torrent* tor, tr_variant* list)
|
|||
{
|
||||
size_t const n = tr_variantListSize(list);
|
||||
char const* errmsg = NULL;
|
||||
tr_ptrArray labels = TR_PTR_ARRAY_INIT;
|
||||
auto labels = tr_ptrArray{};
|
||||
int labelcount = 0;
|
||||
for (size_t i = 0; i < n; ++i)
|
||||
{
|
||||
|
@ -1606,7 +1606,7 @@ static char const* torrentSetLocation(
|
|||
static void torrentRenamePathDone(tr_torrent* tor, char const* oldpath, char const* newname, int error, void* user_data)
|
||||
{
|
||||
char const* result;
|
||||
struct tr_rpc_idle_data* data = user_data;
|
||||
auto* data = static_cast<struct tr_rpc_idle_data*>(user_data);
|
||||
|
||||
tr_variantDictAddInt(data->args_out, TR_KEY_id, tr_torrentId(tor));
|
||||
tr_variantDictAddStr(data->args_out, TR_KEY_path, oldpath);
|
||||
|
@ -1673,7 +1673,7 @@ static void portTested(
|
|||
TR_UNUSED(did_timeout);
|
||||
|
||||
char result[1024];
|
||||
struct tr_rpc_idle_data* data = user_data;
|
||||
auto* data = static_cast<struct tr_rpc_idle_data*>(user_data);
|
||||
|
||||
if (response_code != 200)
|
||||
{
|
||||
|
@ -1723,7 +1723,7 @@ static void gotNewBlocklist(
|
|||
TR_UNUSED(did_timeout);
|
||||
|
||||
char result[1024];
|
||||
struct tr_rpc_idle_data* data = user_data;
|
||||
auto* data = static_cast<struct tr_rpc_idle_data*>(user_data);
|
||||
|
||||
*result = '\0';
|
||||
|
||||
|
@ -1742,7 +1742,7 @@ static void gotNewBlocklist(
|
|||
z_stream stream;
|
||||
char const* configDir = tr_sessionGetConfigDir(session);
|
||||
size_t const buflen = 1024 * 128; /* 128 KiB buffer */
|
||||
uint8_t* const buf = tr_malloc(buflen);
|
||||
auto* const buf = static_cast<uint8_t*>(tr_malloc(buflen));
|
||||
tr_error* error = NULL;
|
||||
|
||||
/* this is an odd Magic Number required by zlib to enable gz support.
|
||||
|
@ -1752,7 +1752,7 @@ static void gotNewBlocklist(
|
|||
stream.zalloc = (alloc_func)Z_NULL;
|
||||
stream.zfree = (free_func)Z_NULL;
|
||||
stream.opaque = (voidpf)Z_NULL;
|
||||
stream.next_in = response;
|
||||
stream.next_in = static_cast<Bytef const*>(response);
|
||||
stream.avail_in = response_byte_count;
|
||||
inflateInit2(&stream, windowBits);
|
||||
|
||||
|
@ -1767,7 +1767,7 @@ static void gotNewBlocklist(
|
|||
|
||||
for (;;)
|
||||
{
|
||||
stream.next_out = (void*)buf;
|
||||
stream.next_out = static_cast<Bytef*>(buf);
|
||||
stream.avail_out = buflen;
|
||||
err = inflate(&stream, Z_NO_FLUSH);
|
||||
|
||||
|
@ -1907,7 +1907,7 @@ static void gotMetadataFromURL(
|
|||
TR_UNUSED(did_connect);
|
||||
TR_UNUSED(did_timeout);
|
||||
|
||||
struct add_torrent_idle_data* data = user_data;
|
||||
auto* data = static_cast<struct add_torrent_idle_data*>(user_data);
|
||||
|
||||
dbgmsg(
|
||||
"torrentAdd: HTTP response code was %ld (%s); response length was %zu bytes",
|
||||
|
@ -2079,7 +2079,7 @@ static char const* torrentAdd(
|
|||
if (fname == NULL)
|
||||
{
|
||||
size_t len;
|
||||
char* metainfo = tr_base64_decode_str(metainfo_base64, &len);
|
||||
auto* metainfo = static_cast<char*>(tr_base64_decode_str(metainfo_base64, &len));
|
||||
tr_ctorSetMetainfo(ctor, (uint8_t*)metainfo, len);
|
||||
tr_free(metainfo);
|
||||
}
|
||||
|
@ -2165,7 +2165,7 @@ static char const* sessionSet(
|
|||
|
||||
if (tr_variantDictFindInt(args_in, TR_KEY_alt_speed_time_day, &i))
|
||||
{
|
||||
tr_sessionSetAltSpeedDay(session, i);
|
||||
tr_sessionSetAltSpeedDay(session, tr_sched_day(i));
|
||||
}
|
||||
|
||||
if (tr_variantDictFindBool(args_in, TR_KEY_alt_speed_time_enabled, &boolVal))
|
||||
|
@ -2382,9 +2382,8 @@ static char const* sessionStats(
|
|||
|
||||
int running = 0;
|
||||
int total = 0;
|
||||
tr_variant* d;
|
||||
tr_session_stats currentStats = TR_SESSION_STATS_INIT;
|
||||
tr_session_stats cumulativeStats = TR_SESSION_STATS_INIT;
|
||||
auto currentStats = tr_session_stats{};
|
||||
auto cumulativeStats = tr_session_stats{};
|
||||
tr_torrent* tor = NULL;
|
||||
|
||||
while ((tor = tr_torrentNext(session, tor)) != NULL)
|
||||
|
@ -2406,7 +2405,7 @@ static char const* sessionStats(
|
|||
tr_variantDictAddInt(args_out, TR_KEY_torrentCount, total);
|
||||
tr_variantDictAddReal(args_out, TR_KEY_uploadSpeed, tr_sessionGetPieceSpeed_Bps(session, TR_UP));
|
||||
|
||||
d = tr_variantDictAddDict(args_out, TR_KEY_cumulative_stats, 5);
|
||||
tr_variant* d = tr_variantDictAddDict(args_out, TR_KEY_cumulative_stats, 5);
|
||||
tr_variantDictAddInt(d, TR_KEY_downloadedBytes, cumulativeStats.downloadedBytes);
|
||||
tr_variantDictAddInt(d, TR_KEY_filesAdded, cumulativeStats.filesAdded);
|
||||
tr_variantDictAddInt(d, TR_KEY_secondsActive, cumulativeStats.secondsActive);
|
|
@ -171,7 +171,7 @@ static void accept_incoming_peer(evutil_socket_t fd, short what, void* vsession)
|
|||
tr_socket_t clientSocket;
|
||||
tr_port clientPort;
|
||||
tr_address clientAddr;
|
||||
tr_session* session = vsession;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
clientSocket = tr_netAccept(session, fd, &clientAddr, &clientPort);
|
||||
|
||||
|
@ -585,8 +585,8 @@ static void onSaveTimer(evutil_socket_t fd, short what, void* vsession)
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(what);
|
||||
|
||||
tr_torrent* tor = NULL;
|
||||
tr_session* session = vsession;
|
||||
tr_torrent* tor = nullptr;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
if (tr_cacheFlushDone(session->cache) != 0)
|
||||
{
|
||||
|
@ -636,16 +636,16 @@ tr_session* tr_sessionInit(char const* configDir, bool messageQueuingEnabled, tr
|
|||
session->cache = tr_cacheNew(1024 * 1024 * 2);
|
||||
session->magicNumber = SESSION_MAGIC_NUMBER;
|
||||
session->session_id = tr_session_id_new();
|
||||
session->torrentsSortedByHash = TR_PTR_ARRAY_INIT;
|
||||
session->torrentsSortedByHashString = TR_PTR_ARRAY_INIT;
|
||||
session->torrentsSortedById = TR_PTR_ARRAY_INIT;
|
||||
session->torrentsSortedByHash = {};
|
||||
session->torrentsSortedByHashString = {};
|
||||
session->torrentsSortedById = {};
|
||||
tr_bandwidthConstruct(&session->bandwidth, session, NULL);
|
||||
tr_variantInitList(&session->removedTorrents, 0);
|
||||
|
||||
/* nice to start logging at the very beginning */
|
||||
if (tr_variantDictFindInt(clientSettings, TR_KEY_message_level, &i))
|
||||
{
|
||||
tr_logSetLevel(i);
|
||||
tr_logSetLevel(tr_log_level(i));
|
||||
}
|
||||
|
||||
/* start the libtransmission thread */
|
||||
|
@ -676,7 +676,7 @@ static void onNowTimer(evutil_socket_t fd, short what, void* vsession)
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(what);
|
||||
|
||||
tr_session* session = vsession;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
TR_ASSERT(session->nowTimer != NULL);
|
||||
|
@ -741,7 +741,7 @@ static void loadBlocklists(tr_session* session);
|
|||
|
||||
static void tr_sessionInitImpl(void* vdata)
|
||||
{
|
||||
struct init_data* data = vdata;
|
||||
auto* data = static_cast<struct init_data*>(vdata);
|
||||
tr_variant const* const clientSettings = data->clientSettings;
|
||||
tr_session* session = data->session;
|
||||
|
||||
|
@ -816,7 +816,7 @@ static void setPeerPort(tr_session* session, tr_port port);
|
|||
|
||||
static void sessionSetImpl(void* vdata)
|
||||
{
|
||||
struct init_data* data = vdata;
|
||||
auto* data = static_cast<struct init_data*>(vdata);
|
||||
tr_session* session = data->session;
|
||||
tr_variant* settings = data->clientSettings;
|
||||
|
||||
|
@ -833,7 +833,7 @@ static void sessionSetImpl(void* vdata)
|
|||
|
||||
if (tr_variantDictFindInt(settings, TR_KEY_message_level, &i))
|
||||
{
|
||||
tr_logSetLevel(i);
|
||||
tr_logSetLevel(tr_log_level(i));
|
||||
}
|
||||
|
||||
#ifndef _WIN32
|
||||
|
@ -879,7 +879,7 @@ static void sessionSetImpl(void* vdata)
|
|||
|
||||
if (tr_variantDictFindInt(settings, TR_KEY_encryption, &i))
|
||||
{
|
||||
tr_sessionSetEncryption(session, i);
|
||||
tr_sessionSetEncryption(session, tr_encryption_mode(i));
|
||||
}
|
||||
|
||||
if (tr_variantDictFindStr(settings, TR_KEY_peer_socket_tos, &str, NULL))
|
||||
|
@ -960,7 +960,7 @@ static void sessionSetImpl(void* vdata)
|
|||
|
||||
if (tr_variantDictFindInt(settings, TR_KEY_preallocation, &i))
|
||||
{
|
||||
session->preallocationMode = i;
|
||||
session->preallocationMode = tr_preallocation_mode(i);
|
||||
}
|
||||
|
||||
if (tr_variantDictFindStr(settings, TR_KEY_download_dir, &str, NULL))
|
||||
|
@ -1002,7 +1002,7 @@ static void sessionSetImpl(void* vdata)
|
|||
}
|
||||
|
||||
b.socket = TR_BAD_SOCKET;
|
||||
session->bind_ipv4 = tr_memdup(&b, sizeof(struct tr_bindinfo));
|
||||
session->bind_ipv4 = static_cast<struct tr_bindinfo*>(tr_memdup(&b, sizeof(struct tr_bindinfo)));
|
||||
|
||||
if (!tr_variantDictFindStr(settings, TR_KEY_bind_address_ipv6, &str, NULL) || !tr_address_from_string(&b.addr, str) ||
|
||||
b.addr.type != TR_AF_INET6)
|
||||
|
@ -1011,7 +1011,7 @@ static void sessionSetImpl(void* vdata)
|
|||
}
|
||||
|
||||
b.socket = TR_BAD_SOCKET;
|
||||
session->bind_ipv6 = tr_memdup(&b, sizeof(struct tr_bindinfo));
|
||||
session->bind_ipv6 = static_cast<tr_bindinfo*>(tr_memdup(&b, sizeof(struct tr_bindinfo)));
|
||||
|
||||
/* incoming peer port */
|
||||
if (tr_variantDictFindInt(settings, TR_KEY_peer_port_random_low, &i))
|
||||
|
@ -1121,7 +1121,7 @@ static void sessionSetImpl(void* vdata)
|
|||
|
||||
if (tr_variantDictFindInt(settings, TR_KEY_alt_speed_time_day, &i))
|
||||
{
|
||||
turtle->days = i;
|
||||
turtle->days = tr_sched_day(i);
|
||||
}
|
||||
|
||||
if (tr_variantDictFindBool(settings, TR_KEY_alt_speed_time_enabled, &boolVal))
|
||||
|
@ -1319,8 +1319,9 @@ bool tr_sessionIsLocked(tr_session const* session)
|
|||
**** Peer Port
|
||||
***/
|
||||
|
||||
static void peerPortChanged(void* session)
|
||||
static void peerPortChanged(void* vsession)
|
||||
{
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
tr_torrent* tor = NULL;
|
||||
|
@ -1382,7 +1383,7 @@ tr_port_forwarding tr_sessionGetPortForwarding(tr_session const* session)
|
|||
{
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
return tr_sharedTraversalStatus(session->shared);
|
||||
return tr_port_forwarding(tr_sharedTraversalStatus(session->shared));
|
||||
}
|
||||
|
||||
/***
|
||||
|
@ -1534,7 +1535,7 @@ static void turtleUpdateTable(struct tr_turtle_info* t)
|
|||
|
||||
static void altSpeedToggled(void* vsession)
|
||||
{
|
||||
tr_session* session = vsession;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
|
@ -2012,7 +2013,7 @@ static void sessionCloseImplWaitForIdleUdp(evutil_socket_t fd, short what, void*
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(what);
|
||||
|
||||
tr_session* session = vsession;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
|
@ -2051,7 +2052,7 @@ static void sessionCloseImplFinish(tr_session* session)
|
|||
|
||||
static void sessionCloseImpl(void* vsession)
|
||||
{
|
||||
tr_session* session = vsession;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
|
@ -2165,8 +2166,7 @@ struct sessionLoadTorrentsData
|
|||
|
||||
static void sessionLoadTorrents(void* vdata)
|
||||
{
|
||||
struct sessionLoadTorrentsData* data = vdata;
|
||||
|
||||
auto* data = static_cast<struct sessionLoadTorrentsData*>(vdata);
|
||||
TR_ASSERT(tr_isSession(data->session));
|
||||
|
||||
int i;
|
||||
|
@ -2281,9 +2281,9 @@ bool tr_sessionIsDHTEnabled(tr_session const* session)
|
|||
return session->isDHTEnabled;
|
||||
}
|
||||
|
||||
static void toggleDHTImpl(void* data)
|
||||
static void toggleDHTImpl(void* vsession)
|
||||
{
|
||||
tr_session* session = data;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
|
@ -2317,9 +2317,9 @@ bool tr_sessionIsUTPEnabled(tr_session const* session)
|
|||
#endif
|
||||
}
|
||||
|
||||
static void toggle_utp(void* data)
|
||||
static void toggle_utp(void* vsession)
|
||||
{
|
||||
tr_session* session = data;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
|
@ -2345,9 +2345,9 @@ void tr_sessionSetUTPEnabled(tr_session* session, bool enabled)
|
|||
****
|
||||
***/
|
||||
|
||||
static void toggleLPDImpl(void* data)
|
||||
static void toggleLPDImpl(void* vsession)
|
||||
{
|
||||
tr_session* session = data;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
TR_ASSERT(tr_isSession(session));
|
||||
|
||||
|
@ -2416,7 +2416,7 @@ struct port_forwarding_data
|
|||
|
||||
static void setPortForwardingEnabled(void* vdata)
|
||||
{
|
||||
struct port_forwarding_data* data = vdata;
|
||||
auto* data = static_cast<struct port_forwarding_data*>(vdata);
|
||||
tr_sharedTraversalEnable(data->shared, data->enabled);
|
||||
tr_free(data);
|
||||
}
|
||||
|
@ -2455,7 +2455,7 @@ static void loadBlocklists(tr_session* session)
|
|||
char* dirname;
|
||||
char const* name;
|
||||
tr_list* blocklists = NULL;
|
||||
tr_ptrArray loadme = TR_PTR_ARRAY_INIT;
|
||||
auto loadme = tr_ptrArray{};
|
||||
bool const isEnabled = session->isBlocklistEnabled;
|
||||
|
||||
/* walk the blocklist directory... */
|
||||
|
@ -2587,7 +2587,8 @@ int tr_blocklistGetRuleCount(tr_session const* session)
|
|||
|
||||
for (tr_list* l = session->blocklists; l != NULL; l = l->next)
|
||||
{
|
||||
n += tr_blocklistFileGetRuleCount(l->data);
|
||||
auto const* blocklistFile = static_cast<tr_blocklistFile*>(l->data);
|
||||
n += tr_blocklistFileGetRuleCount(blocklistFile);
|
||||
}
|
||||
|
||||
return n;
|
||||
|
@ -2608,7 +2609,8 @@ void tr_blocklistSetEnabled(tr_session* session, bool isEnabled)
|
|||
|
||||
for (tr_list* l = session->blocklists; l != NULL; l = l->next)
|
||||
{
|
||||
tr_blocklistFileSetEnabled(l->data, isEnabled);
|
||||
auto* blocklistFile = static_cast<tr_blocklistFile*>(l->data);
|
||||
tr_blocklistFileSetEnabled(blocklistFile, isEnabled);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2628,9 +2630,10 @@ int tr_blocklistSetContent(tr_session* session, char const* contentFilename)
|
|||
|
||||
for (tr_list* l = session->blocklists; b == NULL && l != NULL; l = l->next)
|
||||
{
|
||||
if (tr_stringEndsWith(tr_blocklistFileGetFilename(l->data), defaultName))
|
||||
auto const* blocklistFile = static_cast<tr_blocklistFile*>(l->data);
|
||||
if (tr_stringEndsWith(tr_blocklistFileGetFilename(blocklistFile), defaultName))
|
||||
{
|
||||
b = l->data;
|
||||
b = static_cast<tr_blocklistFile*>(l->data);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2653,7 +2656,7 @@ bool tr_sessionIsAddressBlocked(tr_session const* session, tr_address const* add
|
|||
|
||||
for (tr_list* l = session->blocklists; l != NULL; l = l->next)
|
||||
{
|
||||
if (tr_blocklistFileHasAddress(l->data, addr))
|
||||
if (tr_blocklistFileHasAddress(static_cast<tr_blocklistFile*>(l->data), addr))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -3022,8 +3025,8 @@ struct TorrentAndPosition
|
|||
static int compareTorrentAndPositions(void const* va, void const* vb)
|
||||
{
|
||||
int ret;
|
||||
struct TorrentAndPosition const* a = va;
|
||||
struct TorrentAndPosition const* b = vb;
|
||||
auto const* a = static_cast<struct TorrentAndPosition const*>(va);
|
||||
auto const* b = static_cast<struct TorrentAndPosition const*>(vb);
|
||||
|
||||
if (a->position > b->position)
|
||||
{
|
||||
|
@ -3136,22 +3139,22 @@ int tr_sessionCountQueueFreeSlots(tr_session* session, tr_direction dir)
|
|||
|
||||
static int compareTorrentsById(void const* va, void const* vb)
|
||||
{
|
||||
tr_torrent const* const a = va;
|
||||
tr_torrent const* const b = vb;
|
||||
auto const* const a = static_cast<tr_torrent const*>(va);
|
||||
auto const* const b = static_cast<tr_torrent const*>(vb);
|
||||
return a->uniqueId - b->uniqueId;
|
||||
}
|
||||
|
||||
static int compareTorrentsByHashString(void const* va, void const* vb)
|
||||
{
|
||||
tr_torrent const* const a = va;
|
||||
tr_torrent const* const b = vb;
|
||||
auto const* const a = static_cast<tr_torrent const*>(va);
|
||||
auto const* const b = static_cast<tr_torrent const*>(vb);
|
||||
return evutil_ascii_strcasecmp(a->info.hashString, b->info.hashString);
|
||||
}
|
||||
|
||||
static int compareTorrentsByHash(void const* va, void const* vb)
|
||||
{
|
||||
tr_torrent const* const a = va;
|
||||
tr_torrent const* const b = vb;
|
||||
auto const* const a = static_cast<tr_torrent const*>(va);
|
||||
auto const* const b = static_cast<tr_torrent const*>(vb);
|
||||
return memcmp(a->info.hash, b->info.hash, SHA_DIGEST_LENGTH);
|
||||
}
|
||||
|
|
@ -18,15 +18,6 @@
|
|||
****
|
||||
***/
|
||||
|
||||
struct tr_session_stats const TR_SESSION_STATS_INIT = {
|
||||
.ratio = 0.0F,
|
||||
.uploadedBytes = 0,
|
||||
.downloadedBytes = 0,
|
||||
.filesAdded = 0,
|
||||
.sessionCount = 0,
|
||||
.secondsActive = 0,
|
||||
};
|
||||
|
||||
/** @brief Opaque, per-session data structure for bandwidth use statistics */
|
||||
struct tr_stats_handle
|
||||
{
|
||||
|
@ -145,7 +136,7 @@ void tr_statsSaveDirty(tr_session* session)
|
|||
|
||||
if (h != NULL && h->isDirty)
|
||||
{
|
||||
tr_session_stats cumulative = TR_SESSION_STATS_INIT;
|
||||
auto cumulative = tr_session_stats{};
|
||||
tr_sessionGetCumulativeStats(session, &cumulative);
|
||||
saveCumulativeStats(session, &cumulative);
|
||||
h->isDirty = false;
|
||||
|
@ -194,7 +185,7 @@ void tr_sessionGetStats(tr_session const* session, tr_session_stats* setme)
|
|||
void tr_sessionGetCumulativeStats(tr_session const* session, tr_session_stats* setme)
|
||||
{
|
||||
struct tr_stats_handle const* stats = getStats(session);
|
||||
tr_session_stats current = TR_SESSION_STATS_INIT;
|
||||
auto current = tr_session_stats{};
|
||||
|
||||
if (stats != NULL)
|
||||
{
|
|
@ -12,8 +12,6 @@
|
|||
#error only libtransmission should #include this header.
|
||||
#endif
|
||||
|
||||
extern struct tr_session_stats const TR_SESSION_STATS_INIT;
|
||||
|
||||
void tr_statsInit(tr_session* session);
|
||||
void tr_statsClose(tr_session* session);
|
||||
void tr_statsSaveDirty(tr_session* session);
|
||||
|
|
|
@ -62,7 +62,7 @@ static bool parse_env_block_part(wchar_t const* part, size_t* full_len, size_t*
|
|||
{
|
||||
TR_ASSERT(part != NULL);
|
||||
|
||||
wchar_t* const equals_pos = wcschr(part, L'=');
|
||||
auto const* const equals_pos = wcschr(part, L'=');
|
||||
|
||||
if (equals_pos == NULL)
|
||||
{
|
||||
|
@ -104,9 +104,11 @@ static int compare_wide_strings_ci(wchar_t const* lhs, size_t lhs_len, wchar_t c
|
|||
return diff;
|
||||
}
|
||||
|
||||
static int compare_env_part_names(wchar_t const** lhs, wchar_t const** rhs)
|
||||
static int compare_env_part_names(void const* vlhs, void const* vrhs)
|
||||
{
|
||||
int ret = 0;
|
||||
auto const* const* const lhs = reinterpret_cast<wchar_t const* const*>(vlhs);
|
||||
auto const* const* const rhs = reinterpret_cast<wchar_t const* const*>(vrhs);
|
||||
|
||||
size_t lhs_part_len;
|
||||
size_t lhs_name_len;
|
||||
|
@ -395,11 +397,10 @@ bool tr_spawn_async(char* const* cmd, char* const* env, char const* work_dir, tr
|
|||
|
||||
wchar_t* current_dir = work_dir != NULL ? tr_win32_utf8_to_native(work_dir, -1) : NULL;
|
||||
|
||||
STARTUPINFOW si = {
|
||||
.cb = sizeof(si),
|
||||
.dwFlags = STARTF_USESHOWWINDOW,
|
||||
.wShowWindow = SW_HIDE,
|
||||
};
|
||||
auto si = STARTUPINFOW{};
|
||||
si.cb = sizeof(si);
|
||||
si.dwFlags = STARTF_USESHOWWINDOW;
|
||||
si.wShowWindow = SW_HIDE;
|
||||
|
||||
PROCESS_INFORMATION pi;
|
||||
|
|
@ -221,7 +221,7 @@ void tr_ctorSetFilePriorities(tr_ctor* ctor, tr_file_index_t const* files, tr_fi
|
|||
}
|
||||
|
||||
tr_free(*myfiles);
|
||||
*myfiles = tr_memdup(files, sizeof(tr_file_index_t) * fileCount);
|
||||
*myfiles = static_cast<tr_file_index_t*>(tr_memdup(files, sizeof(tr_file_index_t) * fileCount));
|
||||
*mycount = fileCount;
|
||||
}
|
||||
|
||||
|
@ -249,7 +249,7 @@ void tr_ctorSetFilesWanted(tr_ctor* ctor, tr_file_index_t const* files, tr_file_
|
|||
tr_file_index_t* mycount = wanted ? &ctor->wantSize : &ctor->notWantSize;
|
||||
|
||||
tr_free(*myfiles);
|
||||
*myfiles = tr_memdup(files, sizeof(tr_file_index_t) * fileCount);
|
||||
*myfiles = static_cast<tr_file_index_t*>(tr_memdup(files, sizeof(tr_file_index_t) * fileCount));
|
||||
*mycount = fileCount;
|
||||
}
|
||||
|
|
@ -75,38 +75,40 @@ int tr_torrentId(tr_torrent const* tor)
|
|||
|
||||
static int compareKeyToTorrentId(void const* va, void const* vb)
|
||||
{
|
||||
tr_torrent const* const a = va;
|
||||
int const b = *(int const*)vb;
|
||||
auto const* const a = static_cast<tr_torrent const*>(va);
|
||||
auto const b = *static_cast<int const*>(vb);
|
||||
return a->uniqueId - b;
|
||||
}
|
||||
|
||||
tr_torrent* tr_torrentFindFromId(tr_session* session, int id)
|
||||
{
|
||||
return tr_ptrArrayFindSorted(&session->torrentsSortedById, &id, compareKeyToTorrentId);
|
||||
return static_cast<tr_torrent*>(tr_ptrArrayFindSorted(&session->torrentsSortedById, &id, compareKeyToTorrentId));
|
||||
}
|
||||
|
||||
static int compareKeyToTorrentHashString(void const* va, void const* vb)
|
||||
{
|
||||
tr_torrent const* const a = va;
|
||||
char const* const b = vb;
|
||||
auto const* const a = static_cast<tr_torrent const*>(va);
|
||||
auto const* const b = static_cast<char const*>(vb);
|
||||
return evutil_ascii_strcasecmp(a->info.hashString, b);
|
||||
}
|
||||
|
||||
tr_torrent* tr_torrentFindFromHashString(tr_session* session, char const* str)
|
||||
{
|
||||
return tr_ptrArrayFindSorted(&session->torrentsSortedByHashString, str, compareKeyToTorrentHashString);
|
||||
return static_cast<tr_torrent*>(
|
||||
tr_ptrArrayFindSorted(&session->torrentsSortedByHashString, str, compareKeyToTorrentHashString));
|
||||
}
|
||||
|
||||
static int compareKeyToTorrentHash(void const* va, void const* vb)
|
||||
{
|
||||
tr_torrent const* const a = va;
|
||||
uint8_t const* const b = vb;
|
||||
auto const* const a = static_cast<tr_torrent const*>(va);
|
||||
auto const* const b = static_cast<uint8_t const*>(vb);
|
||||
return memcmp(a->info.hash, b, SHA_DIGEST_LENGTH);
|
||||
}
|
||||
|
||||
tr_torrent* tr_torrentFindFromHash(tr_session* session, uint8_t const* torrentHash)
|
||||
{
|
||||
return tr_ptrArrayFindSorted(&session->torrentsSortedByHash, torrentHash, compareKeyToTorrentHash);
|
||||
return static_cast<tr_torrent*>(
|
||||
tr_ptrArrayFindSorted(&session->torrentsSortedByHash, torrentHash, compareKeyToTorrentHash));
|
||||
}
|
||||
|
||||
tr_torrent* tr_torrentFindFromMagnetLink(tr_session* session, char const* magnet)
|
||||
|
@ -882,7 +884,7 @@ static void torrentInit(tr_torrent* tor, tr_ctor const* ctor)
|
|||
tor->uniqueId = nextUniqueId++;
|
||||
tor->magicNumber = TORRENT_MAGIC_NUMBER;
|
||||
tor->queuePosition = session->torrentCount;
|
||||
tor->labels = TR_PTR_ARRAY_INIT;
|
||||
tor->labels = {};
|
||||
|
||||
tr_sha1(tor->obfuscatedHash, "req2", 4, tor->info.hash, SHA_DIGEST_LENGTH, NULL);
|
||||
|
||||
|
@ -1164,7 +1166,7 @@ void tr_torrentChangeMyPort(tr_torrent* tor)
|
|||
|
||||
static inline void tr_torrentManualUpdateImpl(void* vtor)
|
||||
{
|
||||
tr_torrent* tor = vtor;
|
||||
auto* tor = static_cast<tr_torrent*>(vtor);
|
||||
|
||||
TR_ASSERT(tr_isTorrent(tor));
|
||||
|
||||
|
@ -1287,7 +1289,7 @@ tr_stat const* tr_torrentStat(tr_torrent* tor)
|
|||
uint16_t seedIdleMinutes;
|
||||
unsigned int pieceUploadSpeed_Bps;
|
||||
unsigned int pieceDownloadSpeed_Bps;
|
||||
struct tr_swarm_stats swarm_stats;
|
||||
auto swarm_stats = tr_swarm_stats{};
|
||||
|
||||
tor->lastStatTime = tr_time();
|
||||
|
||||
|
@ -1295,10 +1297,6 @@ tr_stat const* tr_torrentStat(tr_torrent* tor)
|
|||
{
|
||||
tr_swarmGetStats(tor->swarm, &swarm_stats);
|
||||
}
|
||||
else
|
||||
{
|
||||
swarm_stats = TR_SWARM_STATS_INIT;
|
||||
}
|
||||
|
||||
s = &tor->stats;
|
||||
s->id = tor->uniqueId;
|
||||
|
@ -1677,7 +1675,7 @@ static void torrentSetQueued(tr_torrent* tor, bool queued);
|
|||
|
||||
static void torrentStartImpl(void* vtor)
|
||||
{
|
||||
tr_torrent* tor = vtor;
|
||||
auto* tor = static_cast<tr_torrent*>(vtor);
|
||||
|
||||
TR_ASSERT(tr_isTorrent(tor));
|
||||
|
||||
|
@ -1822,7 +1820,7 @@ struct verify_data
|
|||
|
||||
static void onVerifyDoneThreadFunc(void* vdata)
|
||||
{
|
||||
struct verify_data* data = vdata;
|
||||
auto* data = static_cast<struct verify_data*>(vdata);
|
||||
tr_torrent* tor = data->tor;
|
||||
|
||||
if (!tor->isDeleting)
|
||||
|
@ -1849,7 +1847,7 @@ static void onVerifyDoneThreadFunc(void* vdata)
|
|||
|
||||
static void onVerifyDone(tr_torrent* tor, bool aborted, void* vdata)
|
||||
{
|
||||
struct verify_data* data = vdata;
|
||||
auto* data = static_cast<struct verify_data*>(vdata);
|
||||
|
||||
TR_ASSERT(data->tor == tor);
|
||||
|
||||
|
@ -1865,8 +1863,8 @@ static void onVerifyDone(tr_torrent* tor, bool aborted, void* vdata)
|
|||
|
||||
static void verifyTorrent(void* vdata)
|
||||
{
|
||||
auto* data = static_cast<struct verify_data*>(vdata);
|
||||
bool startAfter;
|
||||
struct verify_data* data = vdata;
|
||||
tr_torrent* tor = data->tor;
|
||||
tr_sessionLock(tor->session);
|
||||
|
||||
|
@ -1903,9 +1901,7 @@ unlock:
|
|||
|
||||
void tr_torrentVerify(tr_torrent* tor, tr_verify_done_func callback_func, void* callback_data)
|
||||
{
|
||||
struct verify_data* data;
|
||||
|
||||
data = tr_new(struct verify_data, 1);
|
||||
struct verify_data* const data = tr_new(struct verify_data, 1);
|
||||
data->tor = tor;
|
||||
data->aborted = false;
|
||||
data->callback_func = callback_func;
|
||||
|
@ -1926,7 +1922,7 @@ void tr_torrentSave(tr_torrent* tor)
|
|||
|
||||
static void stopTorrent(void* vtor)
|
||||
{
|
||||
tr_torrent* tor = vtor;
|
||||
auto* tor = static_cast<tr_torrent*>(vtor);
|
||||
|
||||
TR_ASSERT(tr_isTorrent(tor));
|
||||
|
||||
|
@ -1979,7 +1975,7 @@ void tr_torrentStop(tr_torrent* tor)
|
|||
|
||||
static void closeTorrent(void* vtor)
|
||||
{
|
||||
tr_torrent* tor = vtor;
|
||||
auto* tor = static_cast<tr_torrent*>(vtor);
|
||||
|
||||
TR_ASSERT(tr_isTorrent(tor));
|
||||
|
||||
|
@ -2030,7 +2026,7 @@ static void tr_torrentDeleteLocalData(tr_torrent*, tr_fileFunc);
|
|||
|
||||
static void removeTorrent(void* vdata)
|
||||
{
|
||||
struct remove_data* data = vdata;
|
||||
auto* data = static_cast<struct remove_data*>(vdata);
|
||||
tr_session* session = data->tor->session;
|
||||
tr_sessionLock(session);
|
||||
|
||||
|
@ -2442,7 +2438,7 @@ void tr_torrentSetLabels(tr_torrent* tor, tr_ptrArray* labels)
|
|||
tr_torrentLock(tor);
|
||||
|
||||
tr_ptrArrayDestruct(&tor->labels, tr_free);
|
||||
tor->labels = TR_PTR_ARRAY_INIT;
|
||||
tor->labels = {};
|
||||
char** l = (char**)tr_ptrArrayBase(labels);
|
||||
int const n = tr_ptrArraySize(labels);
|
||||
for (int i = 0; i < n; i++)
|
||||
|
@ -2713,8 +2709,8 @@ bool tr_torrentPieceNeedsCheck(tr_torrent const* tor, tr_piece_index_t p)
|
|||
|
||||
static int compareTrackerByTier(void const* va, void const* vb)
|
||||
{
|
||||
tr_tracker_info const* a = va;
|
||||
tr_tracker_info const* b = vb;
|
||||
auto const* const a = static_cast<tr_tracker_info const*>(va);
|
||||
auto const* const b = static_cast<tr_tracker_info const*>(vb);
|
||||
|
||||
/* sort by tier */
|
||||
if (a->tier != b->tier)
|
||||
|
@ -2734,10 +2730,9 @@ bool tr_torrentSetAnnounceList(tr_torrent* tor, tr_tracker_info const* trackers_
|
|||
|
||||
tr_variant metainfo;
|
||||
bool ok = true;
|
||||
tr_tracker_info* trackers;
|
||||
|
||||
/* ensure the trackers' tiers are in ascending order */
|
||||
trackers = tr_memdup(trackers_in, sizeof(tr_tracker_info) * trackerCount);
|
||||
auto* trackers = static_cast<tr_tracker_info*>(tr_memdup(trackers_in, sizeof(tr_tracker_info) * trackerCount));
|
||||
qsort(trackers, trackerCount, sizeof(tr_tracker_info), compareTrackerByTier);
|
||||
|
||||
/* look for bad URLs */
|
||||
|
@ -2985,11 +2980,8 @@ static void removeEmptyFoldersAndJunkFiles(char const* folder)
|
|||
*/
|
||||
static void deleteLocalData(tr_torrent* tor, tr_fileFunc func)
|
||||
{
|
||||
char* base;
|
||||
tr_sys_dir_t odir;
|
||||
char* tmpdir = NULL;
|
||||
tr_ptrArray files = TR_PTR_ARRAY_INIT;
|
||||
tr_ptrArray folders = TR_PTR_ARRAY_INIT;
|
||||
auto files = tr_ptrArray{};
|
||||
auto folders = tr_ptrArray{};
|
||||
PtrArrayCompareFunc vstrcmp = (PtrArrayCompareFunc)strcmp;
|
||||
char const* const top = tor->currentDir;
|
||||
|
||||
|
@ -3009,8 +3001,8 @@ static void deleteLocalData(tr_torrent* tor, tr_fileFunc func)
|
|||
**** Move the local data to a new tmpdir
|
||||
***/
|
||||
|
||||
base = tr_strdup_printf("%s__XXXXXX", tr_torrentName(tor));
|
||||
tmpdir = tr_buildPath(top, base, NULL);
|
||||
char* base = tr_strdup_printf("%s__XXXXXX", tr_torrentName(tor));
|
||||
char* tmpdir = tr_buildPath(top, base, NULL);
|
||||
tr_sys_dir_create_temp(tmpdir, NULL);
|
||||
tr_free(base);
|
||||
|
||||
|
@ -3055,6 +3047,7 @@ static void deleteLocalData(tr_torrent* tor, tr_fileFunc func)
|
|||
***/
|
||||
|
||||
/* try deleting the local data's top-level files & folders */
|
||||
tr_sys_dir_t odir;
|
||||
if ((odir = tr_sys_dir_open(tmpdir, NULL)) != TR_BAD_SYS_DIR)
|
||||
{
|
||||
char const* name;
|
||||
|
@ -3139,7 +3132,7 @@ static void deleteLocalData(tr_torrent* tor, tr_fileFunc func)
|
|||
|
||||
for (int i = 0, n = tr_ptrArraySize(&folders); i < n; ++i)
|
||||
{
|
||||
removeEmptyFoldersAndJunkFiles(tr_ptrArrayNth(&folders, i));
|
||||
removeEmptyFoldersAndJunkFiles(static_cast<char const*>(tr_ptrArrayNth(&folders, i)));
|
||||
}
|
||||
|
||||
/* cleanup */
|
||||
|
@ -3180,7 +3173,7 @@ struct LocationData
|
|||
|
||||
static void setLocation(void* vdata)
|
||||
{
|
||||
struct LocationData* data = vdata;
|
||||
auto* data = static_cast<struct LocationData*>(vdata);
|
||||
tr_torrent* tor = data->tor;
|
||||
|
||||
TR_ASSERT(tr_isTorrent(tor));
|
||||
|
@ -3492,7 +3485,7 @@ bool tr_torrentFindFile2(tr_torrent const* tor, tr_file_index_t fileNum, char co
|
|||
tr_file const* file;
|
||||
char const* b = NULL;
|
||||
char const* s = NULL;
|
||||
tr_sys_path_info file_info = { 0 };
|
||||
auto file_info = tr_sys_path_info{};
|
||||
|
||||
file = &tor->info.files[fileNum];
|
||||
|
||||
|
@ -3690,7 +3683,7 @@ void tr_torrentSetQueuePosition(tr_torrent* tor, int pos)
|
|||
|
||||
void tr_torrentsQueueMoveTop(tr_torrent** torrents_in, int n)
|
||||
{
|
||||
tr_torrent** torrents = tr_memdup(torrents_in, sizeof(tr_torrent*) * n);
|
||||
auto** torrents = static_cast<tr_torrent**>(tr_memdup(torrents_in, sizeof(tr_torrent*) * n));
|
||||
qsort(torrents, n, sizeof(tr_torrent*), compareTorrentByQueuePosition);
|
||||
|
||||
for (int i = n - 1; i >= 0; --i)
|
||||
|
@ -3703,9 +3696,7 @@ void tr_torrentsQueueMoveTop(tr_torrent** torrents_in, int n)
|
|||
|
||||
void tr_torrentsQueueMoveUp(tr_torrent** torrents_in, int n)
|
||||
{
|
||||
tr_torrent** torrents;
|
||||
|
||||
torrents = tr_memdup(torrents_in, sizeof(tr_torrent*) * n);
|
||||
auto** torrents = static_cast<tr_torrent**>(tr_memdup(torrents_in, sizeof(tr_torrent*) * n));
|
||||
qsort(torrents, n, sizeof(tr_torrent*), compareTorrentByQueuePosition);
|
||||
|
||||
for (int i = 0; i < n; ++i)
|
||||
|
@ -3718,9 +3709,7 @@ void tr_torrentsQueueMoveUp(tr_torrent** torrents_in, int n)
|
|||
|
||||
void tr_torrentsQueueMoveDown(tr_torrent** torrents_in, int n)
|
||||
{
|
||||
tr_torrent** torrents;
|
||||
|
||||
torrents = tr_memdup(torrents_in, sizeof(tr_torrent*) * n);
|
||||
auto** torrents = static_cast<tr_torrent**>(tr_memdup(torrents_in, sizeof(tr_torrent*) * n));
|
||||
qsort(torrents, n, sizeof(tr_torrent*), compareTorrentByQueuePosition);
|
||||
|
||||
for (int i = n - 1; i >= 0; --i)
|
||||
|
@ -3733,9 +3722,7 @@ void tr_torrentsQueueMoveDown(tr_torrent** torrents_in, int n)
|
|||
|
||||
void tr_torrentsQueueMoveBottom(tr_torrent** torrents_in, int n)
|
||||
{
|
||||
tr_torrent** torrents;
|
||||
|
||||
torrents = tr_memdup(torrents_in, sizeof(tr_torrent*) * n);
|
||||
auto** torrents = static_cast<tr_torrent**>(tr_memdup(torrents_in, sizeof(tr_torrent*) * n));
|
||||
qsort(torrents, n, sizeof(tr_torrent*), compareTorrentByQueuePosition);
|
||||
|
||||
for (int i = 0; i < n; ++i)
|
||||
|
@ -3929,7 +3916,7 @@ struct rename_data
|
|||
|
||||
static void torrentRenamePath(void* vdata)
|
||||
{
|
||||
struct rename_data* data = vdata;
|
||||
auto* data = static_cast<struct rename_data*>(vdata);
|
||||
tr_torrent* const tor = data->tor;
|
||||
|
||||
TR_ASSERT(tr_isTorrent(tor));
|
|
@ -158,7 +158,7 @@ static void bootstrap_from_name(char const* name, tr_port port, int af)
|
|||
|
||||
static void dht_bootstrap(void* closure)
|
||||
{
|
||||
struct bootstrap_closure* cl = closure;
|
||||
auto* cl = static_cast<struct bootstrap_closure*>(closure);
|
||||
int num = cl->len / 6;
|
||||
int num6 = cl->len6 / 18;
|
||||
|
||||
|
@ -242,15 +242,13 @@ static void dht_bootstrap(void* closure)
|
|||
for (;;)
|
||||
{
|
||||
char buf[201];
|
||||
char* p;
|
||||
int port = 0;
|
||||
|
||||
if (!tr_sys_file_read_line(f, buf, 200, NULL))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
p = memchr(buf, ' ', strlen(buf));
|
||||
auto* p = static_cast<char*>(memchr(buf, ' ', strlen(buf)));
|
||||
int port = 0;
|
||||
|
||||
if (p != NULL)
|
||||
{
|
||||
|
@ -357,12 +355,12 @@ int tr_dhtInit(tr_session* ss)
|
|||
|
||||
if (ss->udp_socket != TR_BAD_SOCKET && tr_variantDictFindRaw(&benc, TR_KEY_nodes, &raw, &len) && len % 6 == 0)
|
||||
{
|
||||
nodes = tr_memdup(raw, len);
|
||||
nodes = static_cast<uint8_t*>(tr_memdup(raw, len));
|
||||
}
|
||||
|
||||
if (ss->udp6_socket != TR_BAD_SOCKET && tr_variantDictFindRaw(&benc, TR_KEY_nodes6, &raw, &len6) && len6 % 18 == 0)
|
||||
{
|
||||
nodes6 = tr_memdup(raw, len6);
|
||||
nodes6 = static_cast<uint8_t*>(tr_memdup(raw, len6));
|
||||
}
|
||||
|
||||
tr_variantFree(&benc);
|
||||
|
@ -523,7 +521,7 @@ struct getstatus_closure
|
|||
|
||||
static void getstatus(void* cl)
|
||||
{
|
||||
struct getstatus_closure* closure = cl;
|
||||
auto* closure = static_cast<struct getstatus_closure*>(cl);
|
||||
int good;
|
||||
int dubious;
|
||||
int incoming;
|
||||
|
@ -552,7 +550,7 @@ static void getstatus(void* cl)
|
|||
|
||||
int tr_dhtStatus(tr_session* session, int af, int* nodes_return)
|
||||
{
|
||||
struct getstatus_closure closure = { .af = af, .status = -1, .count = -1 };
|
||||
auto closure = getstatus_closure{ af, -1, -1 };
|
||||
|
||||
if (!tr_dhtEnabled(session) || (af == AF_INET && session->udp_socket == TR_BAD_SOCKET) ||
|
||||
(af == AF_INET6 && session->udp6_socket == TR_BAD_SOCKET))
|
||||
|
@ -800,7 +798,7 @@ void tr_dhtUpkeep(tr_session* session)
|
|||
|
||||
void tr_dhtCallback(unsigned char* buf, int buflen, struct sockaddr* from, socklen_t fromlen, void* sv)
|
||||
{
|
||||
TR_ASSERT(tr_isSession(sv));
|
||||
TR_ASSERT(tr_isSession(static_cast<tr_session*>(sv)));
|
||||
|
||||
if (sv != session_)
|
||||
{
|
||||
|
@ -872,12 +870,12 @@ int dht_random_bytes(void* buf, size_t size)
|
|||
|
||||
int dht_sendto(int sockfd, void const* buf, int len, int flags, struct sockaddr const* to, int tolen)
|
||||
{
|
||||
return sendto(sockfd, buf, len, flags, to, tolen);
|
||||
return sendto(sockfd, static_cast<char const*>(buf), len, flags, to, tolen);
|
||||
}
|
||||
|
||||
#if defined(_WIN32) && !defined(__MINGW32__)
|
||||
|
||||
int dht_gettimeofday(struct timeval* tv, struct timezone* tz)
|
||||
extern "C" int dht_gettimeofday(struct timeval* tv, struct timezone* tz)
|
||||
{
|
||||
TR_ASSERT(tz == NULL);
|
||||
|
|
@ -337,7 +337,7 @@ int tr_lpdInit(tr_session* ss, tr_address* tr_addr)
|
|||
goto fail;
|
||||
}
|
||||
|
||||
if (setsockopt(lpd_socket, SOL_SOCKET, SO_REUSEADDR, (void const*)&opt_on, sizeof(opt_on)) == -1)
|
||||
if (setsockopt(lpd_socket, SOL_SOCKET, SO_REUSEADDR, reinterpret_cast<char const*>(&opt_on), sizeof(opt_on)) == -1)
|
||||
{
|
||||
goto fail;
|
||||
}
|
||||
|
@ -361,12 +361,14 @@ int tr_lpdInit(tr_session* ss, tr_address* tr_addr)
|
|||
mcastReq.imr_multiaddr = lpd_mcastAddr.sin_addr;
|
||||
mcastReq.imr_interface.s_addr = htonl(INADDR_ANY);
|
||||
|
||||
if (setsockopt(lpd_socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, (void const*)&mcastReq, sizeof(mcastReq)) == -1)
|
||||
if (setsockopt(lpd_socket, IPPROTO_IP, IP_ADD_MEMBERSHIP, reinterpret_cast<char const*>(&mcastReq), sizeof(mcastReq)) ==
|
||||
-1)
|
||||
{
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (setsockopt(lpd_socket, IPPROTO_IP, IP_MULTICAST_LOOP, (void const*)&opt_off, sizeof(opt_off)) == -1)
|
||||
if (setsockopt(lpd_socket, IPPROTO_IP, IP_MULTICAST_LOOP, reinterpret_cast<char const*>(&opt_off), sizeof(opt_off)) ==
|
||||
-1)
|
||||
{
|
||||
goto fail;
|
||||
}
|
||||
|
@ -389,12 +391,13 @@ int tr_lpdInit(tr_session* ss, tr_address* tr_addr)
|
|||
}
|
||||
|
||||
/* configure outbound multicast TTL */
|
||||
if (setsockopt(lpd_socket2, IPPROTO_IP, IP_MULTICAST_TTL, (void const*)&scope, sizeof(scope)) == -1)
|
||||
if (setsockopt(lpd_socket2, IPPROTO_IP, IP_MULTICAST_TTL, reinterpret_cast<char const*>(&scope), sizeof(scope)) == -1)
|
||||
{
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (setsockopt(lpd_socket2, IPPROTO_IP, IP_MULTICAST_LOOP, (void const*)&opt_off, sizeof(opt_off)) == -1)
|
||||
if (setsockopt(lpd_socket2, IPPROTO_IP, IP_MULTICAST_LOOP, reinterpret_cast<char const*>(&opt_off), sizeof(opt_off)) ==
|
||||
-1)
|
||||
{
|
||||
goto fail;
|
||||
}
|
||||
|
@ -508,13 +511,7 @@ bool tr_lpdSendAnnounce(tr_torrent const* t)
|
|||
|
||||
/* destination address info has already been set up in tr_lpdInit(),
|
||||
* so we refrain from preparing another sockaddr_in here */
|
||||
int res = sendto(
|
||||
lpd_socket2,
|
||||
(void const*)query,
|
||||
len,
|
||||
0,
|
||||
(struct sockaddr const*)&lpd_mcastAddr,
|
||||
sizeof(lpd_mcastAddr));
|
||||
int res = sendto(lpd_socket2, query, len, 0, (struct sockaddr const*)&lpd_mcastAddr, sizeof(lpd_mcastAddr));
|
||||
|
||||
if (res != len)
|
||||
{
|
||||
|
@ -549,7 +546,7 @@ static int tr_lpdConsiderAnnounce(tr_pex* peer, char const* const msg)
|
|||
maxHashLen = SIZEOF_HASH_STRING
|
||||
};
|
||||
|
||||
struct lpd_protocolVersion ver = { .major = -1, .minor = -1 };
|
||||
auto ver = lpd_protocolVersion{ -1, -1 };
|
||||
char value[maxValueLen] = { 0 };
|
||||
char hashString[maxHashLen] = { 0 };
|
||||
int res = 0;
|
||||
|
@ -727,7 +724,7 @@ static void event_callback(evutil_socket_t s, short type, void* user_data)
|
|||
/* process local announcement from foreign peer */
|
||||
int res = recvfrom(
|
||||
lpd_socket,
|
||||
(void*)foreignMsg,
|
||||
foreignMsg,
|
||||
lpd_maxDatagramLength,
|
||||
0,
|
||||
(struct sockaddr*)&foreignAddr,
|
||||
|
@ -741,10 +738,7 @@ static void event_callback(evutil_socket_t s, short type, void* user_data)
|
|||
|
||||
if (res > 0 && res <= lpd_maxDatagramLength)
|
||||
{
|
||||
struct tr_pex foreignPeer = {
|
||||
.port = 0, /* the peer-to-peer port is yet unknown */
|
||||
.flags = 0,
|
||||
};
|
||||
auto foreignPeer = tr_pex{};
|
||||
|
||||
/* be paranoid enough about zero terminating the foreign string */
|
||||
foreignMsg[res] = '\0';
|
|
@ -62,7 +62,7 @@ static void set_socket_buffers(tr_socket_t fd, bool large)
|
|||
char err_buf[512];
|
||||
|
||||
size = large ? RECV_BUFFER_SIZE : SMALL_BUFFER_SIZE;
|
||||
rc = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (void const*)&size, sizeof(size));
|
||||
rc = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, reinterpret_cast<char const*>(&size), sizeof(size));
|
||||
|
||||
if (rc < 0)
|
||||
{
|
||||
|
@ -70,7 +70,7 @@ static void set_socket_buffers(tr_socket_t fd, bool large)
|
|||
}
|
||||
|
||||
size = large ? SEND_BUFFER_SIZE : SMALL_BUFFER_SIZE;
|
||||
rc = setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (void const*)&size, sizeof(size));
|
||||
rc = setsockopt(fd, SOL_SOCKET, SO_SNDBUF, reinterpret_cast<char const*>(&size), sizeof(size));
|
||||
|
||||
if (rc < 0)
|
||||
{
|
||||
|
@ -79,14 +79,14 @@ static void set_socket_buffers(tr_socket_t fd, bool large)
|
|||
|
||||
if (large)
|
||||
{
|
||||
rc = getsockopt(fd, SOL_SOCKET, SO_RCVBUF, (void*)&rbuf, &rbuf_len);
|
||||
rc = getsockopt(fd, SOL_SOCKET, SO_RCVBUF, reinterpret_cast<char*>(&rbuf), &rbuf_len);
|
||||
|
||||
if (rc < 0)
|
||||
{
|
||||
rbuf = 0;
|
||||
}
|
||||
|
||||
rc = getsockopt(fd, SOL_SOCKET, SO_SNDBUF, (void*)&sbuf, &sbuf_len);
|
||||
rc = getsockopt(fd, SOL_SOCKET, SO_SNDBUF, reinterpret_cast<char*>(&sbuf), &sbuf_len);
|
||||
|
||||
if (rc < 0)
|
||||
{
|
||||
|
@ -167,7 +167,7 @@ static void rebind_ipv6(tr_session* ss, bool force)
|
|||
#ifdef IPV6_V6ONLY
|
||||
/* Since we always open an IPv4 socket on the same port, this
|
||||
shouldn't matter. But I'm superstitious. */
|
||||
(void)setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, (void const*)&one, sizeof(one));
|
||||
(void)setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY, reinterpret_cast<char const*>(&one), sizeof(one));
|
||||
#endif
|
||||
|
||||
memset(&sin6, 0, sizeof(sin6));
|
||||
|
@ -212,7 +212,7 @@ static void rebind_ipv6(tr_session* ss, bool force)
|
|||
|
||||
if (ss->udp6_bound == NULL)
|
||||
{
|
||||
ss->udp6_bound = malloc(16);
|
||||
ss->udp6_bound = static_cast<unsigned char*>(malloc(16));
|
||||
}
|
||||
|
||||
if (ss->udp6_bound != NULL)
|
||||
|
@ -239,21 +239,21 @@ FAIL:
|
|||
}
|
||||
}
|
||||
|
||||
static void event_callback(evutil_socket_t s, short type, void* sv)
|
||||
static void event_callback(evutil_socket_t s, short type, void* vsession)
|
||||
{
|
||||
TR_UNUSED(type);
|
||||
|
||||
TR_ASSERT(tr_isSession(sv));
|
||||
TR_ASSERT(tr_isSession(static_cast<tr_session*>(vsession)));
|
||||
TR_ASSERT(type == EV_READ);
|
||||
|
||||
int rc;
|
||||
socklen_t fromlen;
|
||||
unsigned char buf[4096];
|
||||
struct sockaddr_storage from;
|
||||
tr_session* ss = sv;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
fromlen = sizeof(from);
|
||||
rc = recvfrom(s, (void*)buf, 4096 - 1, 0, (struct sockaddr*)&from, &fromlen);
|
||||
rc = recvfrom(s, reinterpret_cast<char*>(buf), 4096 - 1, 0, (struct sockaddr*)&from, &fromlen);
|
||||
|
||||
/* Since most packets we receive here are µTP, make quick inline
|
||||
checks for the other protocols. The logic is as follows:
|
||||
|
@ -266,15 +266,15 @@ static void event_callback(evutil_socket_t s, short type, void* sv)
|
|||
{
|
||||
if (buf[0] == 'd')
|
||||
{
|
||||
if (tr_sessionAllowsDHT(ss))
|
||||
if (tr_sessionAllowsDHT(session))
|
||||
{
|
||||
buf[rc] = '\0'; /* required by the DHT code */
|
||||
tr_dhtCallback(buf, rc, (struct sockaddr*)&from, fromlen, sv);
|
||||
tr_dhtCallback(buf, rc, (struct sockaddr*)&from, fromlen, vsession);
|
||||
}
|
||||
}
|
||||
else if (rc >= 8 && buf[0] == 0 && buf[1] == 0 && buf[2] == 0 && buf[3] <= 3)
|
||||
{
|
||||
rc = tau_handle_message(ss, buf, rc);
|
||||
rc = tau_handle_message(session, buf, rc);
|
||||
|
||||
if (rc == 0)
|
||||
{
|
||||
|
@ -283,9 +283,9 @@ static void event_callback(evutil_socket_t s, short type, void* sv)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (tr_sessionIsUTPEnabled(ss))
|
||||
if (tr_sessionIsUTPEnabled(session))
|
||||
{
|
||||
rc = tr_utpPacket(buf, rc, (struct sockaddr*)&from, fromlen, ss);
|
||||
rc = tr_utpPacket(buf, rc, (struct sockaddr*)&from, fromlen, session);
|
||||
|
||||
if (rc == 0)
|
||||
{
|
|
@ -104,16 +104,16 @@ void tr_utpSendTo(void* closure, unsigned char const* buf, size_t buflen, struct
|
|||
|
||||
#define UTP_INTERVAL_US 50000
|
||||
|
||||
static void incoming(void* closure, struct UTPSocket* s)
|
||||
static void incoming(void* vsession, struct UTPSocket* s)
|
||||
{
|
||||
tr_session* ss = closure;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
struct sockaddr_storage from_storage;
|
||||
struct sockaddr* from = (struct sockaddr*)&from_storage;
|
||||
socklen_t fromlen = sizeof(from_storage);
|
||||
tr_address addr;
|
||||
tr_port port;
|
||||
|
||||
if (!tr_sessionIsUTPEnabled(ss))
|
||||
if (!tr_sessionIsUTPEnabled(session))
|
||||
{
|
||||
UTP_Close(s);
|
||||
return;
|
||||
|
@ -128,20 +128,20 @@ static void incoming(void* closure, struct UTPSocket* s)
|
|||
return;
|
||||
}
|
||||
|
||||
tr_peerMgrAddIncoming(ss->peerMgr, &addr, port, tr_peer_socket_utp_create(s));
|
||||
tr_peerMgrAddIncoming(session->peerMgr, &addr, port, tr_peer_socket_utp_create(s));
|
||||
}
|
||||
|
||||
void tr_utpSendTo(void* closure, unsigned char const* buf, size_t buflen, struct sockaddr const* to, socklen_t tolen)
|
||||
{
|
||||
tr_session const* const ss = closure;
|
||||
auto const* const ss = static_cast<tr_session const*>(closure);
|
||||
|
||||
if (to->sa_family == AF_INET && ss->udp_socket != TR_BAD_SOCKET)
|
||||
{
|
||||
sendto(ss->udp_socket, (void const*)buf, buflen, 0, to, tolen);
|
||||
sendto(ss->udp_socket, reinterpret_cast<char const*>(buf), buflen, 0, to, tolen);
|
||||
}
|
||||
else if (to->sa_family == AF_INET6 && ss->udp6_socket != TR_BAD_SOCKET)
|
||||
{
|
||||
sendto(ss->udp6_socket, (void const*)buf, buflen, 0, to, tolen);
|
||||
sendto(ss->udp6_socket, reinterpret_cast<char const*>(buf), buflen, 0, to, tolen);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -169,14 +169,14 @@ static void reset_timer(tr_session* ss)
|
|||
tr_timerAdd(ss->utp_timer, sec, usec);
|
||||
}
|
||||
|
||||
static void timer_callback(evutil_socket_t s, short type, void* closure)
|
||||
static void timer_callback(evutil_socket_t s, short type, void* vsession)
|
||||
{
|
||||
TR_UNUSED(s);
|
||||
TR_UNUSED(type);
|
||||
|
||||
tr_session* ss = closure;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
UTP_CheckTimeouts();
|
||||
reset_timer(ss);
|
||||
reset_timer(session);
|
||||
}
|
||||
|
||||
int tr_utpPacket(unsigned char const* buf, size_t buflen, struct sockaddr const* from, socklen_t fromlen, tr_session* ss)
|
|
@ -104,7 +104,7 @@ static int pgpipe(tr_pipe_end_t handles[2])
|
|||
|
||||
static int piperead(tr_pipe_end_t s, void* buf, int len)
|
||||
{
|
||||
int ret = recv(s, buf, len, 0);
|
||||
int ret = recv(s, static_cast<char*>(buf), len, 0);
|
||||
|
||||
if (ret == -1)
|
||||
{
|
||||
|
@ -169,15 +169,14 @@ struct tr_run_data
|
|||
|
||||
static void readFromPipe(evutil_socket_t fd, short eventType, void* veh)
|
||||
{
|
||||
char ch;
|
||||
int ret;
|
||||
tr_event_handle* eh = veh;
|
||||
auto* eh = static_cast<tr_event_handle*>(veh);
|
||||
|
||||
dbgmsg("readFromPipe: eventType is %hd", eventType);
|
||||
|
||||
/* read the command type */
|
||||
ch = '\0';
|
||||
char ch = '\0';
|
||||
|
||||
int ret;
|
||||
do
|
||||
{
|
||||
ret = piperead(fd, &ch, 1);
|
||||
|
@ -233,8 +232,7 @@ static void logFunc(int severity, char const* message)
|
|||
|
||||
static void libeventThreadFunc(void* veh)
|
||||
{
|
||||
struct event_base* base;
|
||||
tr_event_handle* eh = veh;
|
||||
auto* eh = static_cast<tr_event_handle*>(veh);
|
||||
|
||||
#ifndef _WIN32
|
||||
/* Don't exit when writing on a broken socket */
|
||||
|
@ -242,7 +240,7 @@ static void libeventThreadFunc(void* veh)
|
|||
#endif
|
||||
|
||||
/* create the libevent bases */
|
||||
base = event_base_new();
|
||||
struct event_base* base = event_base_new();
|
||||
|
||||
/* set the struct's fields */
|
||||
eh->base = base;
|
|
@ -223,9 +223,9 @@ enum
|
|||
UPNP_IGD_INVALID = 3
|
||||
};
|
||||
|
||||
int tr_upnpPulse(tr_upnp* handle, tr_port port, bool isEnabled, bool doPortCheck)
|
||||
tr_port_forwarding tr_upnpPulse(tr_upnp* handle, tr_port port, bool isEnabled, bool doPortCheck)
|
||||
{
|
||||
int ret;
|
||||
tr_port_forwarding ret;
|
||||
|
||||
if (isEnabled && handle->state == TR_UPNP_DISCOVER)
|
||||
{
|
|
@ -23,6 +23,6 @@ tr_upnp* tr_upnpInit(void);
|
|||
|
||||
void tr_upnpClose(tr_upnp*);
|
||||
|
||||
int tr_upnpPulse(tr_upnp*, tr_port port, bool isEnabled, bool doPortCheck);
|
||||
tr_port_forwarding tr_upnpPulse(tr_upnp*, tr_port port, bool isEnabled, bool doPortCheck);
|
||||
|
||||
/* @} */
|
||||
|
|
|
@ -276,7 +276,6 @@ void tr_timerAddMsec(struct event* timer, int msec)
|
|||
|
||||
uint8_t* tr_loadFile(char const* path, size_t* size, tr_error** error)
|
||||
{
|
||||
uint8_t* buf;
|
||||
tr_sys_path_info info;
|
||||
tr_sys_file_t fd;
|
||||
tr_error* my_error = NULL;
|
||||
|
@ -313,7 +312,7 @@ uint8_t* tr_loadFile(char const* path, size_t* size, tr_error** error)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
buf = tr_malloc(info.size + 1);
|
||||
auto* buf = static_cast<uint8_t*>(tr_malloc(info.size + 1));
|
||||
|
||||
if (!tr_sys_file_read(fd, buf, info.size, NULL, &my_error))
|
||||
{
|
||||
|
@ -426,7 +425,7 @@ char* evbuffer_free_to_str(struct evbuffer* buf, size_t* result_len)
|
|||
|
||||
char* tr_strdup(void const* in)
|
||||
{
|
||||
return tr_strndup(in, in != NULL ? strlen(in) : 0);
|
||||
return tr_strndup(in, in != NULL ? strlen(static_cast<char const*>(in)) : 0);
|
||||
}
|
||||
|
||||
char* tr_strndup(void const* in, size_t len)
|
||||
|
@ -439,7 +438,7 @@ char* tr_strndup(void const* in, size_t len)
|
|||
}
|
||||
else if (in != NULL)
|
||||
{
|
||||
out = tr_malloc(len + 1);
|
||||
out = static_cast<char*>(tr_malloc(len + 1));
|
||||
|
||||
if (out != NULL)
|
||||
{
|
||||
|
@ -455,7 +454,7 @@ char const* tr_memmem(char const* haystack, size_t haystacklen, char const* need
|
|||
{
|
||||
#ifdef HAVE_MEMMEM
|
||||
|
||||
return memmem(haystack, haystacklen, needle, needlelen);
|
||||
return static_cast<char const*>(memmem(haystack, haystacklen, needle, needlelen));
|
||||
|
||||
#else
|
||||
|
||||
|
@ -709,11 +708,10 @@ void tr_wait_msec(long int msec)
|
|||
|
||||
int tr_snprintf(void* buf, size_t buflen, char const* fmt, ...)
|
||||
{
|
||||
int len;
|
||||
va_list args;
|
||||
|
||||
va_start(args, fmt);
|
||||
len = evutil_vsnprintf(buf, buflen, fmt, args);
|
||||
int len = evutil_vsnprintf(static_cast<char*>(buf), buflen, fmt, args);
|
||||
va_end(args);
|
||||
return len;
|
||||
}
|
||||
|
@ -723,8 +721,11 @@ int tr_snprintf(void* buf, size_t buflen, char const* fmt, ...)
|
|||
* will be copied. Always NUL terminates (unless siz == 0).
|
||||
* Returns strlen (src); if retval >= siz, truncation occurred.
|
||||
*/
|
||||
size_t tr_strlcpy(void* dst, void const* src, size_t siz)
|
||||
size_t tr_strlcpy(void* vdst, void const* vsrc, size_t siz)
|
||||
{
|
||||
auto* dst = static_cast<char*>(vdst);
|
||||
auto const* const src = static_cast<char const*>(vsrc);
|
||||
|
||||
TR_ASSERT(dst != NULL);
|
||||
TR_ASSERT(src != NULL);
|
||||
|
||||
|
@ -734,8 +735,8 @@ size_t tr_strlcpy(void* dst, void const* src, size_t siz)
|
|||
|
||||
#else
|
||||
|
||||
char* d = dst;
|
||||
char const* s = src;
|
||||
auto* d = dst;
|
||||
auto* s = src;
|
||||
size_t n = siz;
|
||||
|
||||
/* Copy as many bytes as will fit */
|
||||
|
@ -796,8 +797,8 @@ void tr_binary_to_hex(void const* vinput, void* voutput, size_t byte_length)
|
|||
{
|
||||
static char const hex[] = "0123456789abcdef";
|
||||
|
||||
uint8_t const* input = vinput;
|
||||
char* output = voutput;
|
||||
auto const* input = static_cast<uint8_t const*>(vinput);
|
||||
auto* output = static_cast<char*>(voutput);
|
||||
|
||||
/* go from back to front to allow for in-place conversion */
|
||||
input += byte_length;
|
||||
|
@ -817,8 +818,8 @@ void tr_hex_to_binary(void const* vinput, void* voutput, size_t byte_length)
|
|||
{
|
||||
static char const hex[] = "0123456789abcdef";
|
||||
|
||||
uint8_t const* input = (uint8_t const*)vinput;
|
||||
uint8_t* output = voutput;
|
||||
auto const* input = static_cast<uint8_t const*>(vinput);
|
||||
auto* output = static_cast<uint8_t*>(voutput);
|
||||
|
||||
for (size_t i = 0; i < byte_length; ++i)
|
||||
{
|
||||
|
@ -966,7 +967,7 @@ bool tr_urlParse(char const* url, size_t url_len, char** setme_scheme, char** se
|
|||
url_len -= scheme_len + 3;
|
||||
|
||||
char const* authority = url;
|
||||
char const* authority_end = memchr(authority, '/', url_len);
|
||||
auto const* authority_end = static_cast<char const*>(memchr(authority, '/', url_len));
|
||||
|
||||
if (authority_end == NULL)
|
||||
{
|
||||
|
@ -983,7 +984,7 @@ bool tr_urlParse(char const* url, size_t url_len, char** setme_scheme, char** se
|
|||
url += authority_len;
|
||||
url_len -= authority_len;
|
||||
|
||||
char const* host_end = memchr(authority, ':', authority_len);
|
||||
auto const* host_end = static_cast<char const*>(memchr(authority, ':', authority_len));
|
||||
|
||||
size_t const host_len = host_end != NULL ? (size_t)(host_end - authority) : authority_len;
|
||||
|
||||
|
@ -1030,7 +1031,7 @@ bool tr_urlParse(char const* url, size_t url_len, char** setme_scheme, char** se
|
|||
|
||||
void tr_removeElementFromArray(void* array, size_t index_to_remove, size_t sizeof_element, size_t nmemb)
|
||||
{
|
||||
char* a = array;
|
||||
auto* a = static_cast<char*>(array);
|
||||
|
||||
memmove(
|
||||
a + sizeof_element * index_to_remove,
|
||||
|
@ -1047,7 +1048,7 @@ int tr_lowerBound(
|
|||
bool* exact_match)
|
||||
{
|
||||
size_t first = 0;
|
||||
char const* cbase = base;
|
||||
auto const* cbase = static_cast<char const*>(base);
|
||||
bool exact = false;
|
||||
|
||||
while (nmemb != 0)
|
||||
|
@ -1086,9 +1087,9 @@ int tr_lowerBound(
|
|||
#define SWAP(a, b, size) \
|
||||
do \
|
||||
{ \
|
||||
register size_t __size = (size); \
|
||||
register char* __a = (a); \
|
||||
register char* __b = (b); \
|
||||
size_t __size = (size); \
|
||||
char* __a = (a); \
|
||||
char* __b = (b); \
|
||||
if (__a != __b) \
|
||||
{ \
|
||||
do \
|
||||
|
@ -1169,7 +1170,7 @@ static void quickfindFirstK(char* base, size_t left, size_t right, size_t size,
|
|||
|
||||
#ifdef TR_ENABLE_ASSERTS
|
||||
|
||||
static void checkBestScoresComeFirst(char* base, size_t nmemb, size_t size, tr_voidptr_compare_func compar, size_t k)
|
||||
static void checkBestScoresComeFirst(char const* base, size_t nmemb, size_t size, tr_voidptr_compare_func compar, size_t k)
|
||||
{
|
||||
size_t worstFirstPos = 0;
|
||||
|
||||
|
@ -1198,10 +1199,10 @@ void tr_quickfindFirstK(void* base, size_t nmemb, size_t size, tr_voidptr_compar
|
|||
{
|
||||
if (k < nmemb)
|
||||
{
|
||||
quickfindFirstK(base, 0, nmemb - 1, size, compar, k);
|
||||
quickfindFirstK(static_cast<char*>(base), 0, nmemb - 1, size, compar, k);
|
||||
|
||||
#ifdef TR_ENABLE_ASSERTS
|
||||
checkBestScoresComeFirst(base, nmemb, size, compar, k);
|
||||
checkBestScoresComeFirst(static_cast<char const*>(base), nmemb, size, compar, k);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -1242,9 +1243,9 @@ static char* to_utf8(char const* in, size_t inlen)
|
|||
for (size_t i = 0; ret == NULL && i < TR_N_ELEMENTS(encodings); ++i)
|
||||
{
|
||||
#ifdef ICONV_SECOND_ARGUMENT_IS_CONST
|
||||
char const* inbuf = in;
|
||||
auto const* inbuf = in;
|
||||
#else
|
||||
char* inbuf = (char*)in;
|
||||
auto* inbuf = const_cast<char*>(in);
|
||||
#endif
|
||||
char* outbuf = out;
|
||||
size_t inbytesleft = inlen;
|
||||
|
@ -1626,7 +1627,7 @@ int* tr_parseNumberRange(char const* str_in, size_t len, int* setmeCount)
|
|||
|
||||
for (tr_list* l = ranges; l != NULL; l = l->next)
|
||||
{
|
||||
struct number_range const* r = l->data;
|
||||
auto const* r = static_cast<struct number_range const*>(l->data);
|
||||
n += r->high + 1 - r->low;
|
||||
}
|
||||
|
||||
|
@ -1641,7 +1642,7 @@ int* tr_parseNumberRange(char const* str_in, size_t len, int* setmeCount)
|
|||
{
|
||||
for (tr_list* l = ranges; l != NULL; l = l->next)
|
||||
{
|
||||
struct number_range const* r = l->data;
|
||||
auto const* r = static_cast<struct number_range const*>(l->data);
|
||||
|
||||
for (int i = r->low; i <= r->high; ++i)
|
||||
{
|
||||
|
@ -2008,7 +2009,7 @@ char* tr_formatter_mem_B(char* buf, size_t bytes_per_second, size_t buflen)
|
|||
void tr_formatter_get_units(void* vdict)
|
||||
{
|
||||
tr_variant* l;
|
||||
tr_variant* dict = vdict;
|
||||
auto* dict = static_cast<tr_variant*>(vdict);
|
||||
|
||||
tr_variantDictReserve(dict, 6);
|
||||
|
||||
|
@ -2151,8 +2152,8 @@ void tr_net_init(void)
|
|||
|
||||
static int compareSuffix(void const* va, void const* vb)
|
||||
{
|
||||
char const* suffix = va;
|
||||
struct mime_type_suffix const* entry = vb;
|
||||
auto const* suffix = static_cast<char const*>(va);
|
||||
auto const* entry = static_cast<struct mime_type_suffix const*>(vb);
|
||||
return tr_strcmp0(suffix, entry->suffix);
|
||||
}
|
||||
|
||||
|
@ -2175,12 +2176,12 @@ char const* tr_get_mime_type_for_filename(char const* filename)
|
|||
|
||||
*out = '\0';
|
||||
|
||||
info = bsearch(
|
||||
info = static_cast<struct mime_type_suffix const*>(bsearch(
|
||||
lowercase_suffix,
|
||||
mime_type_suffixes,
|
||||
TR_N_ELEMENTS(mime_type_suffixes),
|
||||
sizeof(*mime_type_suffixes),
|
||||
compareSuffix);
|
||||
compareSuffix));
|
||||
}
|
||||
}
|
||||
|
|
@ -41,10 +41,6 @@ int tr_bencParseInt(void const* vbuf, void const* vbufend, uint8_t const** setme
|
|||
{
|
||||
uint8_t const* const buf = (uint8_t const*)vbuf;
|
||||
uint8_t const* const bufend = (uint8_t const*)vbufend;
|
||||
char* endptr;
|
||||
void const* begin;
|
||||
void const* end;
|
||||
int64_t val;
|
||||
|
||||
if (buf >= bufend)
|
||||
{
|
||||
|
@ -56,8 +52,8 @@ int tr_bencParseInt(void const* vbuf, void const* vbufend, uint8_t const** setme
|
|||
return EILSEQ;
|
||||
}
|
||||
|
||||
begin = buf + 1;
|
||||
end = memchr(begin, 'e', (bufend - buf) - 1);
|
||||
void const* begin = buf + 1;
|
||||
void const* end = memchr(begin, 'e', (bufend - buf) - 1);
|
||||
|
||||
if (end == NULL)
|
||||
{
|
||||
|
@ -65,7 +61,8 @@ int tr_bencParseInt(void const* vbuf, void const* vbufend, uint8_t const** setme
|
|||
}
|
||||
|
||||
errno = 0;
|
||||
val = evutil_strtoll(begin, &endptr, 10);
|
||||
char* endptr;
|
||||
int64_t val = evutil_strtoll(static_cast<char const*>(begin), &endptr, 10);
|
||||
|
||||
if (errno != 0 || endptr != end) /* incomplete parse */
|
||||
{
|
||||
|
@ -98,51 +95,32 @@ int tr_bencParseStr(
|
|||
uint8_t const* const buf = (uint8_t const*)vbuf;
|
||||
uint8_t const* const bufend = (uint8_t const*)vbufend;
|
||||
|
||||
void const* end;
|
||||
size_t len;
|
||||
char* ulend;
|
||||
uint8_t const* strbegin;
|
||||
uint8_t const* strend;
|
||||
|
||||
if (buf >= bufend)
|
||||
if ((buf < bufend) && isdigit(*buf))
|
||||
{
|
||||
goto ERR;
|
||||
}
|
||||
void const* end = memchr(buf, ':', bufend - buf);
|
||||
|
||||
if (!isdigit(*buf))
|
||||
if (end != NULL)
|
||||
{
|
||||
goto ERR;
|
||||
}
|
||||
|
||||
end = memchr(buf, ':', bufend - buf);
|
||||
|
||||
if (end == NULL)
|
||||
{
|
||||
goto ERR;
|
||||
}
|
||||
|
||||
errno = 0;
|
||||
len = strtoul((char const*)buf, &ulend, 10);
|
||||
char* ulend;
|
||||
size_t len = strtoul((char const*)buf, &ulend, 10);
|
||||
|
||||
if (errno != 0 || ulend != end || len > MAX_BENC_STR_LENGTH)
|
||||
if (errno == 0 && ulend == end && len <= MAX_BENC_STR_LENGTH)
|
||||
{
|
||||
goto ERR;
|
||||
}
|
||||
uint8_t const* strbegin = (uint8_t const*)end + 1;
|
||||
uint8_t const* strend = strbegin + len;
|
||||
|
||||
strbegin = (uint8_t const*)end + 1;
|
||||
strend = strbegin + len;
|
||||
|
||||
if (strend < strbegin || strend > bufend)
|
||||
if (strbegin <= strend && strend <= bufend)
|
||||
{
|
||||
goto ERR;
|
||||
}
|
||||
|
||||
*setme_end = (uint8_t const*)end + 1 + len;
|
||||
*setme_str = (uint8_t const*)end + 1;
|
||||
*setme_strlen = len;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ERR:
|
||||
*setme_end = NULL;
|
||||
*setme_str = NULL;
|
||||
*setme_strlen = 0;
|
||||
|
@ -159,7 +137,7 @@ static tr_variant* get_node(tr_ptrArray* stack, tr_quark* key, tr_variant* top,
|
|||
}
|
||||
else
|
||||
{
|
||||
tr_variant* parent = tr_ptrArrayBack(stack);
|
||||
auto* parent = static_cast<tr_variant*>(tr_ptrArrayBack(stack));
|
||||
|
||||
if (tr_variantIsList(parent))
|
||||
{
|
||||
|
@ -187,9 +165,9 @@ static tr_variant* get_node(tr_ptrArray* stack, tr_quark* key, tr_variant* top,
|
|||
int tr_variantParseBenc(void const* buf_in, void const* bufend_in, tr_variant* top, char const** setme_end)
|
||||
{
|
||||
int err = 0;
|
||||
uint8_t const* buf = buf_in;
|
||||
uint8_t const* bufend = bufend_in;
|
||||
tr_ptrArray stack = TR_PTR_ARRAY_INIT;
|
||||
auto const* buf = static_cast<uint8_t const*>(buf_in);
|
||||
auto const* const bufend = static_cast<uint8_t const*>(bufend_in);
|
||||
auto stack = tr_ptrArray{};
|
||||
tr_quark key = 0;
|
||||
|
||||
if ((buf_in == NULL) || (bufend_in == NULL) || (top == NULL))
|
||||
|
@ -286,7 +264,7 @@ int tr_variantParseBenc(void const* buf_in, void const* bufend_in, tr_variant* t
|
|||
|
||||
buf = end;
|
||||
|
||||
if (key == 0 && !tr_ptrArrayEmpty(&stack) && tr_variantIsDict(tr_ptrArrayBack(&stack)))
|
||||
if (key == 0 && !tr_ptrArrayEmpty(&stack) && tr_variantIsDict(static_cast<tr_variant*>(tr_ptrArrayBack(&stack))))
|
||||
{
|
||||
key = tr_quark_new(str, str_len);
|
||||
}
|
||||
|
@ -332,13 +310,15 @@ int tr_variantParseBenc(void const* buf_in, void const* bufend_in, tr_variant* t
|
|||
*****
|
||||
****/
|
||||
|
||||
static void saveIntFunc(tr_variant const* val, void* evbuf)
|
||||
static void saveIntFunc(tr_variant const* val, void* vevbuf)
|
||||
{
|
||||
auto* evbuf = static_cast<struct evbuffer*>(vevbuf);
|
||||
evbuffer_add_printf(evbuf, "i%" PRId64 "e", val->val.i);
|
||||
}
|
||||
|
||||
static void saveBoolFunc(tr_variant const* val, void* evbuf)
|
||||
static void saveBoolFunc(tr_variant const* val, void* vevbuf)
|
||||
{
|
||||
auto* evbuf = static_cast<struct evbuffer*>(vevbuf);
|
||||
if (val->val.b)
|
||||
{
|
||||
evbuffer_add(evbuf, "i1e", 3);
|
||||
|
@ -349,17 +329,17 @@ static void saveBoolFunc(tr_variant const* val, void* evbuf)
|
|||
}
|
||||
}
|
||||
|
||||
static void saveRealFunc(tr_variant const* val, void* evbuf)
|
||||
static void saveRealFunc(tr_variant const* val, void* vevbuf)
|
||||
{
|
||||
int len;
|
||||
char buf[128];
|
||||
int const len = tr_snprintf(buf, sizeof(buf), "%f", val->val.d);
|
||||
|
||||
len = tr_snprintf(buf, sizeof(buf), "%f", val->val.d);
|
||||
auto* evbuf = static_cast<struct evbuffer*>(vevbuf);
|
||||
evbuffer_add_printf(evbuf, "%d:", len);
|
||||
evbuffer_add(evbuf, buf, len);
|
||||
}
|
||||
|
||||
static void saveStringFunc(tr_variant const* v, void* evbuf)
|
||||
static void saveStringFunc(tr_variant const* v, void* vevbuf)
|
||||
{
|
||||
size_t len;
|
||||
char const* str;
|
||||
|
@ -369,28 +349,32 @@ static void saveStringFunc(tr_variant const* v, void* evbuf)
|
|||
str = NULL;
|
||||
}
|
||||
|
||||
auto* evbuf = static_cast<struct evbuffer*>(vevbuf);
|
||||
evbuffer_add_printf(evbuf, "%zu:", len);
|
||||
evbuffer_add(evbuf, str, len);
|
||||
}
|
||||
|
||||
static void saveDictBeginFunc(tr_variant const* val, void* evbuf)
|
||||
static void saveDictBeginFunc(tr_variant const* val, void* vevbuf)
|
||||
{
|
||||
TR_UNUSED(val);
|
||||
|
||||
auto* evbuf = static_cast<struct evbuffer*>(vevbuf);
|
||||
evbuffer_add(evbuf, "d", 1);
|
||||
}
|
||||
|
||||
static void saveListBeginFunc(tr_variant const* val, void* evbuf)
|
||||
static void saveListBeginFunc(tr_variant const* val, void* vevbuf)
|
||||
{
|
||||
TR_UNUSED(val);
|
||||
|
||||
auto* evbuf = static_cast<struct evbuffer*>(vevbuf);
|
||||
evbuffer_add(evbuf, "l", 1);
|
||||
}
|
||||
|
||||
static void saveContainerEndFunc(tr_variant const* val, void* evbuf)
|
||||
static void saveContainerEndFunc(tr_variant const* val, void* vevbuf)
|
||||
{
|
||||
TR_UNUSED(val);
|
||||
|
||||
auto* evbuf = static_cast<struct evbuffer*>(vevbuf);
|
||||
evbuffer_add(evbuf, "e", 1);
|
||||
}
|
||||
|
|
@ -52,12 +52,11 @@ struct json_wrapper_data
|
|||
|
||||
static tr_variant* get_node(struct jsonsl_st* jsn)
|
||||
{
|
||||
tr_variant* parent;
|
||||
auto* data = static_cast<struct json_wrapper_data*>(jsn->data);
|
||||
|
||||
auto* parent = static_cast<tr_variant*>(tr_ptrArrayEmpty(&data->stack) ? NULL : tr_ptrArrayBack(&data->stack));
|
||||
|
||||
tr_variant* node = NULL;
|
||||
struct json_wrapper_data* data = jsn->data;
|
||||
|
||||
parent = tr_ptrArrayEmpty(&data->stack) ? NULL : tr_ptrArrayBack(&data->stack);
|
||||
|
||||
if (parent == NULL)
|
||||
{
|
||||
node = data->top;
|
||||
|
@ -81,7 +80,7 @@ static void error_handler(jsonsl_t jsn, jsonsl_error_t error, struct jsonsl_stat
|
|||
{
|
||||
TR_UNUSED(state);
|
||||
|
||||
struct json_wrapper_data* data = jsn->data;
|
||||
auto* data = static_cast<struct json_wrapper_data*>(jsn->data);
|
||||
|
||||
if (data->source != NULL)
|
||||
{
|
||||
|
@ -112,7 +111,7 @@ static void action_callback_PUSH(jsonsl_t jsn, jsonsl_action_t action, struct js
|
|||
TR_UNUSED(buf);
|
||||
|
||||
tr_variant* node;
|
||||
struct json_wrapper_data* data = jsn->data;
|
||||
auto* data = static_cast<struct json_wrapper_data*>(jsn->data);
|
||||
|
||||
if ((state->type == JSONSL_T_LIST) || (state->type == JSONSL_T_OBJECT))
|
||||
{
|
||||
|
@ -248,7 +247,7 @@ static char* extract_escaped_string(char const* in, size_t in_len, size_t* len,
|
|||
UTF8* str8_walk = str8_buf;
|
||||
UTF8* str8_end = str8_buf + 8;
|
||||
|
||||
if (ConvertUTF32toUTF8(&str32_walk, str32_end, &str8_walk, str8_end, 0) == 0)
|
||||
if (ConvertUTF32toUTF8(&str32_walk, str32_end, &str8_walk, str8_end, {}) == 0)
|
||||
{
|
||||
evbuffer_add(buf, str8_buf, str8_walk - str8_buf);
|
||||
unescaped = true;
|
||||
|
@ -310,7 +309,7 @@ static void action_callback_POP(jsonsl_t jsn, jsonsl_action_t action, struct jso
|
|||
TR_UNUSED(action);
|
||||
TR_UNUSED(buf);
|
||||
|
||||
struct json_wrapper_data* data = jsn->data;
|
||||
auto* data = static_cast<struct json_wrapper_data*>(jsn->data);
|
||||
|
||||
if (state->type == JSONSL_T_STRING)
|
||||
{
|
||||
|
@ -327,7 +326,7 @@ static void action_callback_POP(jsonsl_t jsn, jsonsl_action_t action, struct jso
|
|||
else if (state->type == JSONSL_T_LIST || state->type == JSONSL_T_OBJECT)
|
||||
{
|
||||
int const depth = tr_ptrArraySize(&data->stack);
|
||||
tr_variant const* v = tr_ptrArrayPop(&data->stack);
|
||||
auto* v = static_cast<tr_variant const*>(tr_ptrArrayPop(&data->stack));
|
||||
if (depth < MAX_DEPTH)
|
||||
{
|
||||
data->preallocGuess[depth] = v->val.l.count;
|
||||
|
@ -378,7 +377,7 @@ int tr_jsonParse(char const* source, void const* vbuf, size_t len, tr_variant* s
|
|||
data.has_content = false;
|
||||
data.key = NULL;
|
||||
data.top = setme_variant;
|
||||
data.stack = TR_PTR_ARRAY_INIT;
|
||||
data.stack = {};
|
||||
data.source = source;
|
||||
data.keybuf = evbuffer_new();
|
||||
data.strbuf = evbuffer_new();
|
||||
|
@ -388,7 +387,7 @@ int tr_jsonParse(char const* source, void const* vbuf, size_t len, tr_variant* s
|
|||
}
|
||||
|
||||
/* parse it */
|
||||
jsonsl_feed(jsn, vbuf, len);
|
||||
jsonsl_feed(jsn, static_cast<jsonsl_char_t const*>(vbuf), len);
|
||||
|
||||
/* EINVAL if there was no content */
|
||||
if (data.error == 0 && !data.has_content)
|
||||
|
@ -449,7 +448,7 @@ static void jsonChildFunc(struct jsonWalk* data)
|
|||
{
|
||||
if (data->parents != NULL && data->parents->data != NULL)
|
||||
{
|
||||
struct ParentState* pstate = data->parents->data;
|
||||
auto* pstate = static_cast<struct ParentState*>(data->parents->data);
|
||||
|
||||
switch (pstate->variantType)
|
||||
{
|
||||
|
@ -519,14 +518,14 @@ static void jsonPopParent(struct jsonWalk* data)
|
|||
|
||||
static void jsonIntFunc(tr_variant const* val, void* vdata)
|
||||
{
|
||||
struct jsonWalk* data = vdata;
|
||||
auto* data = static_cast<struct jsonWalk*>(vdata);
|
||||
evbuffer_add_printf(data->out, "%" PRId64, val->val.i);
|
||||
jsonChildFunc(data);
|
||||
}
|
||||
|
||||
static void jsonBoolFunc(tr_variant const* val, void* vdata)
|
||||
{
|
||||
struct jsonWalk* data = vdata;
|
||||
auto* data = static_cast<struct jsonWalk*>(vdata);
|
||||
|
||||
if (val->val.b)
|
||||
{
|
||||
|
@ -542,7 +541,7 @@ static void jsonBoolFunc(tr_variant const* val, void* vdata)
|
|||
|
||||
static void jsonRealFunc(tr_variant const* val, void* vdata)
|
||||
{
|
||||
struct jsonWalk* data = vdata;
|
||||
auto* data = static_cast<struct jsonWalk*>(vdata);
|
||||
|
||||
if (fabs(val->val.d - (int)val->val.d) < 0.00001)
|
||||
{
|
||||
|
@ -558,23 +557,20 @@ static void jsonRealFunc(tr_variant const* val, void* vdata)
|
|||
|
||||
static void jsonStringFunc(tr_variant const* val, void* vdata)
|
||||
{
|
||||
char* out;
|
||||
char* outwalk;
|
||||
struct evbuffer_iovec vec[1];
|
||||
struct jsonWalk* const data = vdata;
|
||||
unsigned char const* it;
|
||||
auto* data = static_cast<struct jsonWalk*>(vdata);
|
||||
|
||||
char const* str = NULL;
|
||||
size_t len = 0;
|
||||
(void)tr_variantGetStr(val, &str, &len);
|
||||
it = (unsigned char const*)str;
|
||||
auto const* it = reinterpret_cast<unsigned char const*>(str);
|
||||
unsigned char const* const end = it + len;
|
||||
|
||||
evbuffer_reserve_space(data->out, len * 4, vec, 1);
|
||||
out = vec[0].iov_base;
|
||||
auto* out = static_cast<char*>(vec[0].iov_base);
|
||||
char const* const outend = out + vec[0].iov_len;
|
||||
|
||||
outwalk = out;
|
||||
char* outwalk = out;
|
||||
*outwalk++ = '"';
|
||||
|
||||
for (; it != end; ++it)
|
||||
|
@ -626,7 +622,7 @@ static void jsonStringFunc(tr_variant const* val, void* vdata)
|
|||
UTF8 const* tmp = it;
|
||||
UTF32 buf[1] = { 0 };
|
||||
UTF32* u32 = buf;
|
||||
ConversionResult result = ConvertUTF8toUTF32(&tmp, end, &u32, buf + 1, 0);
|
||||
ConversionResult result = ConvertUTF8toUTF32(&tmp, end, &u32, buf + 1, {});
|
||||
|
||||
if ((result == conversionOK || result == targetExhausted) && tmp != it)
|
||||
{
|
||||
|
@ -648,7 +644,7 @@ static void jsonStringFunc(tr_variant const* val, void* vdata)
|
|||
|
||||
static void jsonDictBeginFunc(tr_variant const* val, void* vdata)
|
||||
{
|
||||
struct jsonWalk* data = vdata;
|
||||
auto* data = static_cast<struct jsonWalk*>(vdata);
|
||||
|
||||
jsonPushParent(data, val);
|
||||
evbuffer_add(data->out, "{", 1);
|
||||
|
@ -662,7 +658,7 @@ static void jsonDictBeginFunc(tr_variant const* val, void* vdata)
|
|||
static void jsonListBeginFunc(tr_variant const* val, void* vdata)
|
||||
{
|
||||
size_t const nChildren = tr_variantListSize(val);
|
||||
struct jsonWalk* data = vdata;
|
||||
auto* data = static_cast<struct jsonWalk*>(vdata);
|
||||
|
||||
jsonPushParent(data, val);
|
||||
evbuffer_add(data->out, "[", 1);
|
||||
|
@ -675,7 +671,7 @@ static void jsonListBeginFunc(tr_variant const* val, void* vdata)
|
|||
|
||||
static void jsonContainerEndFunc(tr_variant const* val, void* vdata)
|
||||
{
|
||||
struct jsonWalk* data = vdata;
|
||||
auto* data = static_cast<struct jsonWalk*>(vdata);
|
||||
bool emptyContainer = false;
|
||||
|
||||
jsonPopParent(data);
|
|
@ -129,11 +129,11 @@ void tr_variantInit(tr_variant* v, char type)
|
|||
****
|
||||
***/
|
||||
|
||||
static struct tr_variant_string const STRING_INIT = {
|
||||
.type = TR_STRING_TYPE_QUARK,
|
||||
.quark = TR_KEY_NONE,
|
||||
.len = 0,
|
||||
.str.str = "",
|
||||
static auto constexpr STRING_INIT = tr_variant_string{
|
||||
TR_STRING_TYPE_QUARK,
|
||||
TR_KEY_NONE,
|
||||
0,
|
||||
{},
|
||||
};
|
||||
|
||||
static void tr_variant_string_clear(struct tr_variant_string* str)
|
||||
|
@ -455,7 +455,7 @@ bool tr_variantDictFindRaw(tr_variant* dict, tr_quark const key, uint8_t const**
|
|||
void tr_variantInitRaw(tr_variant* v, void const* src, size_t byteCount)
|
||||
{
|
||||
tr_variantInit(v, TR_VARIANT_TYPE_STR);
|
||||
tr_variant_string_set_string(&v->val.s, src, byteCount);
|
||||
tr_variant_string_set_string(&v->val.s, static_cast<char const*>(src), byteCount);
|
||||
}
|
||||
|
||||
void tr_variantInitQuark(tr_variant* v, tr_quark const q)
|
||||
|
@ -467,7 +467,7 @@ void tr_variantInitQuark(tr_variant* v, tr_quark const q)
|
|||
void tr_variantInitStr(tr_variant* v, void const* str, size_t len)
|
||||
{
|
||||
tr_variantInit(v, TR_VARIANT_TYPE_STR);
|
||||
tr_variant_string_set_string(&v->val.s, str, len);
|
||||
tr_variant_string_set_string(&v->val.s, static_cast<char const*>(str), len);
|
||||
}
|
||||
|
||||
void tr_variantInitBool(tr_variant* v, bool value)
|
||||
|
@ -745,8 +745,8 @@ struct KeyIndex
|
|||
|
||||
static int compareKeyIndex(void const* va, void const* vb)
|
||||
{
|
||||
struct KeyIndex const* a = va;
|
||||
struct KeyIndex const* b = vb;
|
||||
auto const* const a = static_cast<struct KeyIndex const*>(va);
|
||||
auto const* const b = static_cast<struct KeyIndex const*>(vb);
|
||||
|
||||
return strcmp(a->keystr, b->keystr);
|
||||
}
|
|
@ -43,7 +43,7 @@ static bool verifyTorrent(tr_torrent* tor, bool* stopFlag)
|
|||
tr_piece_index_t pieceIndex = 0;
|
||||
time_t const begin = tr_time();
|
||||
size_t const buflen = 1024 * 128; // 128 KiB buffer
|
||||
uint8_t* const buffer = tr_malloc(buflen);
|
||||
auto* const buffer = static_cast<uint8_t*>(tr_malloc(buflen));
|
||||
|
||||
tr_sha1_ctx_t sha = tr_sha1_init();
|
||||
|
||||
|
@ -203,11 +203,10 @@ static void verifyThreadFunc(void* user_data)
|
|||
{
|
||||
bool changed = false;
|
||||
tr_torrent* tor;
|
||||
struct verify_node* node;
|
||||
|
||||
tr_lockLock(getVerifyLock());
|
||||
stopCurrent = false;
|
||||
node = verifyList != NULL ? verifyList->data : NULL;
|
||||
auto* node = static_cast<struct verify_node*>(verifyList != NULL ? verifyList->data : NULL);
|
||||
|
||||
if (node == NULL)
|
||||
{
|
||||
|
@ -244,8 +243,8 @@ static void verifyThreadFunc(void* user_data)
|
|||
|
||||
static int compareVerifyByPriorityAndSize(void const* va, void const* vb)
|
||||
{
|
||||
struct verify_node const* a = va;
|
||||
struct verify_node const* b = vb;
|
||||
auto const* a = static_cast<struct verify_node const*>(va);
|
||||
auto const* b = static_cast<struct verify_node const*>(vb);
|
||||
|
||||
/* higher priority comes before lower priority */
|
||||
tr_priority_t const pa = tr_torrentGetPriority(a->torrent);
|
||||
|
@ -295,8 +294,8 @@ void tr_verifyAdd(tr_torrent* tor, tr_verify_done_func callback_func, void* call
|
|||
|
||||
static int compareVerifyByTorrent(void const* va, void const* vb)
|
||||
{
|
||||
struct verify_node const* a = va;
|
||||
tr_torrent const* b = vb;
|
||||
auto const* const a = static_cast<struct verify_node const*>(va);
|
||||
auto const* const b = static_cast<tr_torrent const*>(vb);
|
||||
return a->torrent - b;
|
||||
}
|
||||
|
||||
|
@ -320,7 +319,7 @@ void tr_verifyRemove(tr_torrent* tor)
|
|||
}
|
||||
else
|
||||
{
|
||||
struct verify_node* node = tr_list_remove(&verifyList, tor, compareVerifyByTorrent);
|
||||
auto* node = static_cast<struct verify_node*>(tr_list_remove(&verifyList, tor, compareVerifyByTorrent));
|
||||
|
||||
tr_torrentSetVerifyState(tor, TR_VERIFY_NONE);
|
||||
|
|
@ -42,8 +42,8 @@ typedef struct tr_watchdir_generic
|
|||
|
||||
#define BACKEND_UPCAST(b) ((tr_watchdir_generic*)(b))
|
||||
|
||||
/* Non-static and mutable for unit tests */
|
||||
struct timeval tr_watchdir_generic_interval = { .tv_sec = 10, .tv_usec = 0 };
|
||||
/* Non-static and mutable for unit tests. default to 10 sec. */
|
||||
auto tr_watchdir_generic_interval = timeval{ 10, 0 };
|
||||
|
||||
/***
|
||||
****
|
||||
|
@ -54,7 +54,7 @@ static void tr_watchdir_generic_on_event(evutil_socket_t fd, short type, void* c
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(type);
|
||||
|
||||
tr_watchdir_t const handle = context;
|
||||
auto const handle = static_cast<tr_watchdir_t>(context);
|
||||
tr_watchdir_generic* const backend = BACKEND_UPCAST(tr_watchdir_get_backend(handle));
|
||||
|
||||
tr_watchdir_scan(handle, &backend->dir_entries);
|
|
@ -60,7 +60,7 @@ static void tr_watchdir_inotify_on_first_scan(evutil_socket_t fd, short type, vo
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(type);
|
||||
|
||||
tr_watchdir_t const handle = context;
|
||||
auto const handle = static_cast<tr_watchdir_t>(context);
|
||||
|
||||
tr_watchdir_scan(handle, NULL);
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ static void tr_watchdir_inotify_on_event(struct bufferevent* event, void* contex
|
|||
{
|
||||
TR_ASSERT(context != NULL);
|
||||
|
||||
tr_watchdir_t const handle = context;
|
||||
auto const handle = static_cast<tr_watchdir_t>(context);
|
||||
#ifdef TR_ENABLE_ASSERTS
|
||||
tr_watchdir_inotify const* const backend = BACKEND_UPCAST(tr_watchdir_get_backend(handle));
|
||||
#endif
|
|
@ -66,10 +66,10 @@ static void tr_watchdir_kqueue_on_event(evutil_socket_t fd, short type, void* co
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(type);
|
||||
|
||||
tr_watchdir_t const handle = context;
|
||||
auto const handle = static_cast<tr_watchdir_t>(context);
|
||||
tr_watchdir_kqueue* const backend = BACKEND_UPCAST(tr_watchdir_get_backend(handle));
|
||||
struct kevent ke;
|
||||
struct timespec const ts = { .tv_sec = 0, .tv_nsec = 0 };
|
||||
auto ts = timespec{};
|
||||
|
||||
if (kevent(backend->kq, NULL, 0, &ke, 1, &ts) == -1)
|
||||
{
|
|
@ -103,7 +103,7 @@ static BOOL tr_get_overlapped_result_ex(
|
|||
|
||||
static unsigned int __stdcall tr_watchdir_win32_thread(void* context)
|
||||
{
|
||||
tr_watchdir_t const handle = context;
|
||||
auto const handle = static_cast<tr_watchdir_t>(context);
|
||||
tr_watchdir_win32* const backend = BACKEND_UPCAST(tr_watchdir_get_backend(handle));
|
||||
DWORD bytes_transferred;
|
||||
|
||||
|
@ -148,17 +148,17 @@ static void tr_watchdir_win32_on_first_scan(evutil_socket_t fd, short type, void
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(type);
|
||||
|
||||
tr_watchdir_t const handle = context;
|
||||
auto const handle = static_cast<tr_watchdir_t>(context);
|
||||
|
||||
tr_watchdir_scan(handle, NULL);
|
||||
}
|
||||
|
||||
static void tr_watchdir_win32_on_event(struct bufferevent* event, void* context)
|
||||
{
|
||||
tr_watchdir_t const handle = context;
|
||||
auto const handle = static_cast<tr_watchdir_t>(context);
|
||||
size_t nread;
|
||||
size_t name_size = MAX_PATH * sizeof(WCHAR);
|
||||
char* buffer = tr_malloc(sizeof(FILE_NOTIFY_INFORMATION) + name_size);
|
||||
auto* buffer = static_cast<char*>(tr_malloc(sizeof(FILE_NOTIFY_INFORMATION) + name_size));
|
||||
PFILE_NOTIFY_INFORMATION ev = (PFILE_NOTIFY_INFORMATION)buffer;
|
||||
size_t const header_size = offsetof(FILE_NOTIFY_INFORMATION, FileName);
|
||||
|
||||
|
@ -187,7 +187,7 @@ static void tr_watchdir_win32_on_event(struct bufferevent* event, void* context)
|
|||
if (nleft > name_size)
|
||||
{
|
||||
name_size = nleft;
|
||||
buffer = tr_realloc(buffer, sizeof(FILE_NOTIFY_INFORMATION) + name_size);
|
||||
buffer = static_cast<char*>(tr_realloc(buffer, sizeof(FILE_NOTIFY_INFORMATION) + name_size));
|
||||
ev = (PFILE_NOTIFY_INFORMATION)buffer;
|
||||
}
|
||||
|
|
@ -55,7 +55,7 @@ struct tr_watchdir
|
|||
static bool is_regular_file(char const* dir, char const* name)
|
||||
{
|
||||
char* const path = tr_buildPath(dir, name, NULL);
|
||||
tr_sys_path_info path_info = { 0 };
|
||||
auto path_info = tr_sys_path_info{};
|
||||
tr_error* error = NULL;
|
||||
|
||||
bool const ret = tr_sys_path_get_info(path, 0, &path_info, &error) && (path_info.type == TR_SYS_PATH_IS_FILE);
|
||||
|
@ -117,15 +117,15 @@ typedef struct tr_watchdir_retry
|
|||
{
|
||||
tr_watchdir_t handle;
|
||||
char* name;
|
||||
unsigned int counter;
|
||||
size_t counter;
|
||||
struct event* timer;
|
||||
struct timeval interval;
|
||||
} tr_watchdir_retry;
|
||||
|
||||
/* Non-static and mutable for unit tests */
|
||||
unsigned int tr_watchdir_retry_limit = 3;
|
||||
struct timeval tr_watchdir_retry_start_interval = { .tv_sec = 1, .tv_usec = 0 };
|
||||
struct timeval tr_watchdir_retry_max_interval = { .tv_sec = 10, .tv_usec = 0 };
|
||||
auto tr_watchdir_retry_limit = size_t{ 3 };
|
||||
auto tr_watchdir_retry_start_interval = timeval{ 1, 0 };
|
||||
auto tr_watchdir_retry_max_interval = timeval{ 10, 0 };
|
||||
|
||||
#define tr_watchdir_retries_init(r) (void)0
|
||||
#define tr_watchdir_retries_destroy(r) tr_ptrArrayDestruct((r), (PtrArrayForeachFunc)&tr_watchdir_retry_free)
|
||||
|
@ -147,7 +147,7 @@ static void tr_watchdir_on_retry_timer(evutil_socket_t fd, short type, void* con
|
|||
|
||||
TR_ASSERT(context != NULL);
|
||||
|
||||
tr_watchdir_retry* const retry = context;
|
||||
auto* const retry = static_cast<tr_watchdir_retry*>(context);
|
||||
tr_watchdir_t const handle = retry->handle;
|
||||
|
||||
if (tr_watchdir_process_impl(handle, retry->name) == TR_WATCHDIR_RETRY)
|
||||
|
@ -313,10 +313,9 @@ void tr_watchdir_process(tr_watchdir_t handle, char const* name)
|
|||
{
|
||||
TR_ASSERT(handle != NULL);
|
||||
|
||||
tr_watchdir_retry const search_key = { .name = (char*)name };
|
||||
tr_watchdir_retry* existing_retry;
|
||||
|
||||
if ((existing_retry = tr_watchdir_retries_find(&handle->active_retries, &search_key)) != NULL)
|
||||
auto const search_key = tr_watchdir_retry{ {}, const_cast<char*>(name), {}, {}, {} };
|
||||
auto* existing_retry = static_cast<tr_watchdir_retry*>(tr_watchdir_retries_find(&handle->active_retries, &search_key));
|
||||
if (existing_retry != nullptr)
|
||||
{
|
||||
tr_watchdir_retry_restart(existing_retry);
|
||||
return;
|
||||
|
@ -333,7 +332,7 @@ void tr_watchdir_scan(tr_watchdir_t handle, tr_ptrArray* dir_entries)
|
|||
{
|
||||
tr_sys_dir_t dir;
|
||||
char const* name;
|
||||
tr_ptrArray new_dir_entries = TR_PTR_ARRAY_INIT_STATIC;
|
||||
auto new_dir_entries = tr_ptrArray{};
|
||||
PtrArrayCompareFunc const name_compare_func = (PtrArrayCompareFunc)&strcmp;
|
||||
tr_error* error = NULL;
|
||||
|
|
@ -108,7 +108,7 @@ struct tr_web
|
|||
static size_t writeFunc(void* ptr, size_t size, size_t nmemb, void* vtask)
|
||||
{
|
||||
size_t const byteCount = size * nmemb;
|
||||
struct tr_web_task* task = vtask;
|
||||
auto* task = static_cast<struct tr_web_task*>(vtask);
|
||||
|
||||
/* webseed downloads should be speed limited */
|
||||
if (task->torrentId != -1)
|
||||
|
@ -133,7 +133,7 @@ static int sockoptfunction(void* vtask, curl_socket_t fd, curlsocktype purpose)
|
|||
{
|
||||
TR_UNUSED(purpose);
|
||||
|
||||
struct tr_web_task const* const task = vtask;
|
||||
auto* task = static_cast<struct tr_web_task*>(vtask);
|
||||
bool const isScrape = strstr(task->url, "scrape") != NULL;
|
||||
bool const isAnnounce = strstr(task->url, "announce") != NULL;
|
||||
|
||||
|
@ -144,8 +144,8 @@ static int sockoptfunction(void* vtask, curl_socket_t fd, curlsocktype purpose)
|
|||
int const rcvbuf = isScrape ? 4096 : 3072;
|
||||
/* ignore the sockopt() return values -- these are suggestions
|
||||
rather than hard requirements & it's OK for them to fail */
|
||||
(void)setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (void const*)&sndbuf, sizeof(sndbuf));
|
||||
(void)setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (void const*)&rcvbuf, sizeof(rcvbuf));
|
||||
(void)setsockopt(fd, SOL_SOCKET, SO_SNDBUF, reinterpret_cast<char const*>(&sndbuf), sizeof(sndbuf));
|
||||
(void)setsockopt(fd, SOL_SOCKET, SO_RCVBUF, reinterpret_cast<char const*>(&rcvbuf), sizeof(rcvbuf));
|
||||
}
|
||||
|
||||
/* return nonzero if this function encountered an error */
|
||||
|
@ -319,7 +319,7 @@ static CURL* createEasy(tr_session* s, struct tr_web* web, struct tr_web_task* t
|
|||
|
||||
static void task_finish_func(void* vtask)
|
||||
{
|
||||
struct tr_web_task* task = vtask;
|
||||
auto* task = static_cast<struct tr_web_task*>(vtask);
|
||||
dbgmsg("finished web task %p; got %ld", (void*)task, task->code);
|
||||
|
||||
if (task->done_func != NULL)
|
||||
|
@ -419,8 +419,8 @@ static void tr_webThreadFunc(void* vsession)
|
|||
CURLM* multi;
|
||||
struct tr_web* web;
|
||||
int taskCount = 0;
|
||||
tr_session* session = vsession;
|
||||
uint32_t repeats = 0;
|
||||
auto* session = static_cast<tr_session*>(vsession);
|
||||
|
||||
/* try to enable ssl for https support; but if that fails,
|
||||
* try a plain vanilla init */
|
|
@ -84,7 +84,7 @@ static void publish(tr_webseed* w, tr_peer_event* e)
|
|||
|
||||
static void fire_client_got_rejs(tr_torrent* tor, tr_webseed* w, tr_block_index_t block, tr_block_index_t count)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_REJ;
|
||||
tr_torrentGetBlockLocation(tor, block, &e.pieceIndex, &e.offset, &e.length);
|
||||
|
||||
|
@ -102,7 +102,7 @@ static void fire_client_got_rejs(tr_torrent* tor, tr_webseed* w, tr_block_index_
|
|||
|
||||
static void fire_client_got_blocks(tr_torrent* tor, tr_webseed* w, tr_block_index_t block, tr_block_index_t count)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_BLOCK;
|
||||
tr_torrentGetBlockLocation(tor, block, &e.pieceIndex, &e.offset, &e.length);
|
||||
|
||||
|
@ -120,7 +120,7 @@ static void fire_client_got_blocks(tr_torrent* tor, tr_webseed* w, tr_block_inde
|
|||
|
||||
static void fire_client_got_piece_data(tr_webseed* w, uint32_t length)
|
||||
{
|
||||
tr_peer_event e = TR_PEER_EVENT_INIT;
|
||||
auto e = tr_peer_event{};
|
||||
e.eventType = TR_PEER_CLIENT_GOT_PIECE_DATA;
|
||||
e.length = length;
|
||||
publish(w, &e);
|
||||
|
@ -144,7 +144,7 @@ struct write_block_data
|
|||
|
||||
static void write_block_func(void* vdata)
|
||||
{
|
||||
struct write_block_data* data = vdata;
|
||||
auto* data = static_cast<struct write_block_data*>(vdata);
|
||||
struct tr_webseed* w = data->webseed;
|
||||
struct evbuffer* buf = data->content;
|
||||
struct tr_torrent* tor;
|
||||
|
@ -190,7 +190,7 @@ struct connection_succeeded_data
|
|||
|
||||
static void connection_succeeded(void* vdata)
|
||||
{
|
||||
struct connection_succeeded_data* data = vdata;
|
||||
auto* data = static_cast<struct connection_succeeded_data*>(vdata);
|
||||
struct tr_webseed* w = data->webseed;
|
||||
|
||||
if (++w->active_transfers >= w->retry_challenge && w->retry_challenge != 0)
|
||||
|
@ -226,7 +226,7 @@ static void connection_succeeded(void* vdata)
|
|||
static void on_content_changed(struct evbuffer* buf, struct evbuffer_cb_info const* info, void* vtask)
|
||||
{
|
||||
size_t const n_added = info->n_added;
|
||||
struct tr_webseed_task* task = vtask;
|
||||
auto* task = static_cast<struct tr_webseed_task*>(vtask);
|
||||
tr_session* session = task->session;
|
||||
|
||||
tr_sessionLock(session);
|
||||
|
@ -370,9 +370,7 @@ static void web_response_func(
|
|||
TR_UNUSED(response);
|
||||
TR_UNUSED(response_byte_count);
|
||||
|
||||
tr_webseed* w;
|
||||
tr_torrent* tor;
|
||||
struct tr_webseed_task* t = vtask;
|
||||
auto* t = static_cast<struct tr_webseed_task*>(vtask);
|
||||
bool const success = response_code == 206;
|
||||
|
||||
if (t->dead)
|
||||
|
@ -382,8 +380,8 @@ static void web_response_func(
|
|||
return;
|
||||
}
|
||||
|
||||
w = t->webseed;
|
||||
tor = tr_torrentFindFromId(session, w->torrent_id);
|
||||
tr_webseed* w = t->webseed;
|
||||
tr_torrent* tor = tr_torrentFindFromId(session, w->torrent_id);
|
||||
|
||||
if (tor != NULL)
|
||||
{
|
||||
|
@ -512,7 +510,7 @@ static void webseed_timer_func(evutil_socket_t fd, short what, void* vw)
|
|||
TR_UNUSED(fd);
|
||||
TR_UNUSED(what);
|
||||
|
||||
tr_webseed* w = vw;
|
||||
auto* w = static_cast<tr_webseed*>(vw);
|
||||
|
||||
if (w->retry_tickcount != 0)
|
||||
{
|
||||
|
@ -555,7 +553,7 @@ static void webseed_destruct(tr_peer* peer)
|
|||
/* flag all the pending tasks as dead */
|
||||
for (tr_list* l = w->tasks; l != NULL; l = l->next)
|
||||
{
|
||||
struct tr_webseed_task* task = l->data;
|
||||
auto* task = static_cast<struct tr_webseed_task*>(l->data);
|
||||
task->dead = true;
|
||||
}
|
||||
|
||||
|
@ -585,8 +583,8 @@ static void webseed_destruct(tr_peer* peer)
|
|||
}
|
||||
|
||||
static struct tr_peer_virtual_funcs const my_funcs = {
|
||||
.destruct = webseed_destruct,
|
||||
.is_transferring_pieces = webseed_is_transferring_pieces,
|
||||
webseed_destruct,
|
||||
webseed_is_transferring_pieces,
|
||||
};
|
||||
|
||||
/***
|
|
@ -23,13 +23,10 @@
|
|||
****
|
||||
***/
|
||||
|
||||
extern "C"
|
||||
{
|
||||
extern struct timeval tr_watchdir_generic_interval;
|
||||
extern unsigned int tr_watchdir_retry_limit;
|
||||
extern struct timeval tr_watchdir_retry_start_interval;
|
||||
extern struct timeval tr_watchdir_retry_max_interval;
|
||||
}
|
||||
extern struct timeval tr_watchdir_generic_interval;
|
||||
extern size_t tr_watchdir_retry_limit;
|
||||
extern struct timeval tr_watchdir_retry_start_interval;
|
||||
extern struct timeval tr_watchdir_retry_max_interval;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue