Skip to content

Commit 1e0b318

Browse files
committed
Initial implementation of FTP protocol
1 parent 3ee0925 commit 1e0b318

17 files changed

+1579
-821
lines changed

Foundation.xcodeproj/project.pbxproj

Lines changed: 35 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -304,9 +304,12 @@
304304
5FE52C951D147D1C00F7D270 /* TestNSTextCheckingResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FE52C941D147D1C00F7D270 /* TestNSTextCheckingResult.swift */; };
305305
61E0117D1C1B5590000037DD /* RunLoop.swift in Sources */ = {isa = PBXBuildFile; fileRef = EADE0B761BD15DFF00C49C64 /* RunLoop.swift */; };
306306
61E0117E1C1B55B9000037DD /* Timer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC3F481BCC5DCB00ED97BB /* Timer.swift */; };
307+
617F57F31F1F5CD30004F3F0 /* FTPURLProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 617F57F21F1F5CD30004F3F0 /* FTPURLProtocol.swift */; };
308+
61827A9E1F2208E400016214 /* FTPServer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61827A9D1F2208E400016214 /* FTPServer.swift */; };
307309
61E0117F1C1B5990000037DD /* CFRunLoop.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B5D88D81BBC9AD800234F36 /* CFRunLoop.c */; };
308310
61E011811C1B5998000037DD /* CFMessagePort.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B5D88DC1BBC9AEC00234F36 /* CFMessagePort.c */; };
309311
61E011821C1B599A000037DD /* CFMachPort.c in Sources */ = {isa = PBXBuildFile; fileRef = 5B5D88D01BBC9AAC00234F36 /* CFMachPort.c */; };
312+
61EE04551F208805002051A2 /* NativeProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61EE04541F208805002051A2 /* NativeProtocol.swift */; };
310313
63DCE9D21EAA430100E9CB02 /* ISO8601DateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63DCE9D11EAA430100E9CB02 /* ISO8601DateFormatter.swift */; };
311314
63DCE9D41EAA432400E9CB02 /* TestISO8601DateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63DCE9D31EAA432400E9CB02 /* TestISO8601DateFormatter.swift */; };
312315
6EB768281D18C12C00D4B719 /* UUID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EB768271D18C12C00D4B719 /* UUID.swift */; };
@@ -324,7 +327,6 @@
324327
B910957B1EEF237800A71930 /* NSString-UTF16-BE-data.txt in Resources */ = {isa = PBXBuildFile; fileRef = B91095791EEF237800A71930 /* NSString-UTF16-BE-data.txt */; };
325328
B933A79E1F3055F700FE6846 /* NSString-UTF32-BE-data.txt in Resources */ = {isa = PBXBuildFile; fileRef = B933A79C1F3055F600FE6846 /* NSString-UTF32-BE-data.txt */; };
326329
B933A79F1F3055F700FE6846 /* NSString-UTF32-LE-data.txt in Resources */ = {isa = PBXBuildFile; fileRef = B933A79D1F3055F600FE6846 /* NSString-UTF32-LE-data.txt */; };
327-
B9974B961EDF4A22007F15B8 /* TransferState.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9974B8F1EDF4A22007F15B8 /* TransferState.swift */; };
328330
B9974B971EDF4A22007F15B8 /* MultiHandle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9974B901EDF4A22007F15B8 /* MultiHandle.swift */; };
329331
B9974B981EDF4A22007F15B8 /* libcurlHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9974B911EDF4A22007F15B8 /* libcurlHelpers.swift */; };
330332
B9974B991EDF4A22007F15B8 /* HTTPURLProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9974B921EDF4A22007F15B8 /* HTTPURLProtocol.swift */; };
@@ -761,10 +763,13 @@
761763
5EB6A15C1C188FC40037DCB8 /* TestJSONSerialization.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestJSONSerialization.swift; sourceTree = "<group>"; };
762764
5EF673AB1C28B527006212A3 /* TestNotificationQueue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNotificationQueue.swift; sourceTree = "<group>"; };
763765
5FE52C941D147D1C00F7D270 /* TestNSTextCheckingResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSTextCheckingResult.swift; sourceTree = "<group>"; };
766+
617F57F21F1F5CD30004F3F0 /* FTPURLProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FTPURLProtocol.swift; sourceTree = "<group>"; };
767+
61827A9D1F2208E400016214 /* FTPServer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FTPServer.swift; sourceTree = "<group>"; };
764768
61A395F91C2484490029B337 /* TestNSLocale.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSLocale.swift; sourceTree = "<group>"; };
765769
61D6C9EE1C1DFE9500DEF583 /* TestTimer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestTimer.swift; sourceTree = "<group>"; };
766770
61E0117B1C1B554D000037DD /* TestRunLoop.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestRunLoop.swift; sourceTree = "<group>"; };
767-
61F8AE7C1C180FC600FB62F0 /* TestNotificationCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNotificationCenter.swift; sourceTree = "<group>"; };
771+
61EE04541F208805002051A2 /* NativeProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NativeProtocol.swift; sourceTree = "<group>"; };
772+
61F8AE7C1C180FC600FB62F0 /* TestNotificationCenter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestNSNotificationCenter.swift; sourceTree = "<group>"; };
768773
63DCE9D11EAA430100E9CB02 /* ISO8601DateFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ISO8601DateFormatter.swift; sourceTree = "<group>"; };
769774
63DCE9D31EAA432400E9CB02 /* TestISO8601DateFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestISO8601DateFormatter.swift; sourceTree = "<group>"; };
770775
6E203B8C1C1303BB003B2576 /* TestBundle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestBundle.swift; sourceTree = "<group>"; };
@@ -791,13 +796,12 @@
791796
B91095791EEF237800A71930 /* NSString-UTF16-BE-data.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "NSString-UTF16-BE-data.txt"; sourceTree = "<group>"; };
792797
B933A79C1F3055F600FE6846 /* NSString-UTF32-BE-data.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "NSString-UTF32-BE-data.txt"; sourceTree = "<group>"; };
793798
B933A79D1F3055F600FE6846 /* NSString-UTF32-LE-data.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "NSString-UTF32-LE-data.txt"; sourceTree = "<group>"; };
794-
B9974B8F1EDF4A22007F15B8 /* TransferState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TransferState.swift; path = http/TransferState.swift; sourceTree = "<group>"; };
795-
B9974B901EDF4A22007F15B8 /* MultiHandle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MultiHandle.swift; path = http/MultiHandle.swift; sourceTree = "<group>"; };
796-
B9974B911EDF4A22007F15B8 /* libcurlHelpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = libcurlHelpers.swift; path = http/libcurlHelpers.swift; sourceTree = "<group>"; };
799+
B9974B901EDF4A22007F15B8 /* MultiHandle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultiHandle.swift; sourceTree = "<group>"; };
800+
B9974B911EDF4A22007F15B8 /* libcurlHelpers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = libcurlHelpers.swift; sourceTree = "<group>"; };
797801
B9974B921EDF4A22007F15B8 /* HTTPURLProtocol.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HTTPURLProtocol.swift; path = http/HTTPURLProtocol.swift; sourceTree = "<group>"; };
798802
B9974B931EDF4A22007F15B8 /* HTTPMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HTTPMessage.swift; path = http/HTTPMessage.swift; sourceTree = "<group>"; };
799803
B9974B941EDF4A22007F15B8 /* HTTPBodySource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = HTTPBodySource.swift; path = http/HTTPBodySource.swift; sourceTree = "<group>"; };
800-
B9974B951EDF4A22007F15B8 /* EasyHandle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EasyHandle.swift; path = http/EasyHandle.swift; sourceTree = "<group>"; };
804+
B9974B951EDF4A22007F15B8 /* EasyHandle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EasyHandle.swift; sourceTree = "<group>"; };
801805
BD8042151E09857800487EB8 /* TestLengthFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestLengthFormatter.swift; sourceTree = "<group>"; };
802806
BDBB658F1E256BFA001A7286 /* TestEnergyFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestEnergyFormatter.swift; sourceTree = "<group>"; };
803807
BDFDF0A61DFF5B3E00C04CC5 /* TestPersonNameComponents.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestPersonNameComponents.swift; sourceTree = "<group>"; };
@@ -987,13 +991,16 @@
987991
5B1FD9C71D6D162D0080E83C /* Session */ = {
988992
isa = PBXGroup;
989993
children = (
994+
617F57F11F1F5C5F0004F3F0 /* ftp */,
995+
617F57F01F1F5C4B0004F3F0 /* libcurl */,
990996
E4F889331E9CF04D008A70EB /* http */,
991997
5B1FD9C81D6D16580080E83C /* Configuration.swift */,
992998
5B1FD9CE1D6D16580080E83C /* URLSession.swift */,
993999
5B1FD9CF1D6D16580080E83C /* URLSessionConfiguration.swift */,
9941000
5B1FD9D01D6D16580080E83C /* URLSessionDelegate.swift */,
9951001
5B1FD9D11D6D16580080E83C /* URLSessionTask.swift */,
9961002
5B1FD9D21D6D16580080E83C /* TaskRegistry.swift */,
1003+
61EE04541F208805002051A2 /* NativeProtocol.swift */,
9971004
);
9981005
name = Session;
9991006
path = URLSession;
@@ -1345,6 +1352,24 @@
13451352
path = Foundation;
13461353
sourceTree = "<group>";
13471354
};
1355+
617F57F01F1F5C4B0004F3F0 /* libcurl */ = {
1356+
isa = PBXGroup;
1357+
children = (
1358+
B9974B911EDF4A22007F15B8 /* libcurlHelpers.swift */,
1359+
B9974B951EDF4A22007F15B8 /* EasyHandle.swift */,
1360+
B9974B901EDF4A22007F15B8 /* MultiHandle.swift */,
1361+
);
1362+
path = libcurl;
1363+
sourceTree = "<group>";
1364+
};
1365+
617F57F11F1F5C5F0004F3F0 /* ftp */ = {
1366+
isa = PBXGroup;
1367+
children = (
1368+
617F57F21F1F5CD30004F3F0 /* FTPURLProtocol.swift */,
1369+
);
1370+
path = ftp;
1371+
sourceTree = "<group>";
1372+
};
13481373
9F4ADBCF1ECD4F56001F0B3D /* xdgTestHelper */ = {
13491374
isa = PBXGroup;
13501375
children = (
@@ -1359,12 +1384,8 @@
13591384
isa = PBXGroup;
13601385
children = (
13611386
B9974B921EDF4A22007F15B8 /* HTTPURLProtocol.swift */,
1362-
B9974B8F1EDF4A22007F15B8 /* TransferState.swift */,
1363-
B9974B901EDF4A22007F15B8 /* MultiHandle.swift */,
1364-
B9974B911EDF4A22007F15B8 /* libcurlHelpers.swift */,
13651387
B9974B931EDF4A22007F15B8 /* HTTPMessage.swift */,
13661388
B9974B941EDF4A22007F15B8 /* HTTPBodySource.swift */,
1367-
B9974B951EDF4A22007F15B8 /* EasyHandle.swift */,
13681389
);
13691390
name = http;
13701391
sourceTree = "<group>";
@@ -1383,6 +1404,7 @@
13831404
isa = PBXGroup;
13841405
children = (
13851406
1520469A1D8AEABE00D02E36 /* HTTPServer.swift */,
1407+
61827A9D1F2208E400016214 /* FTPServer.swift */,
13861408
EA66F6381BF1619600136161 /* main.swift */,
13871409
9F4ADBCF1ECD4F56001F0B3D /* xdgTestHelper */,
13881410
EA66F65A1BF1976100136161 /* Tests */,
@@ -2206,7 +2228,6 @@
22062228
EADE0BB31BD15E0000C49C64 /* NSRegularExpression.swift in Sources */,
22072229
EADE0BA41BD15E0000C49C64 /* LengthFormatter.swift in Sources */,
22082230
5BDC3FCA1BCF176100ED97BB /* NSCFArray.swift in Sources */,
2209-
B9974B961EDF4A22007F15B8 /* TransferState.swift in Sources */,
22102231
EADE0BB21BD15E0000C49C64 /* Progress.swift in Sources */,
22112232
EADE0B961BD15DFF00C49C64 /* DateIntervalFormatter.swift in Sources */,
22122233
5B5BFEAC1E6CC0C200AC8D9E /* NSCFBoolean.swift in Sources */,
@@ -2216,6 +2237,7 @@
22162237
EADE0BB81BD15E0000C49C64 /* Process.swift in Sources */,
22172238
5BF7AEB31BCD51F9008F214A /* NSObjCRuntime.swift in Sources */,
22182239
5BD31D3F1D5D19D600563814 /* Dictionary.swift in Sources */,
2240+
617F57F31F1F5CD30004F3F0 /* FTPURLProtocol.swift in Sources */,
22192241
B9974B9B1EDF4A22007F15B8 /* HTTPBodySource.swift in Sources */,
22202242
5B94E8821C430DE70055C035 /* NSStringAPI.swift in Sources */,
22212243
5B0163BB1D024EB7003CCD96 /* DateComponents.swift in Sources */,
@@ -2251,6 +2273,7 @@
22512273
EADE0BA61BD15E0000C49C64 /* MassFormatter.swift in Sources */,
22522274
5BECBA3A1D1CAE9A00B39B1F /* NSMeasurement.swift in Sources */,
22532275
5BF7AEB21BCD51F9008F214A /* NSNumber.swift in Sources */,
2276+
61EE04551F208805002051A2 /* NativeProtocol.swift in Sources */,
22542277
B9974B991EDF4A22007F15B8 /* HTTPURLProtocol.swift in Sources */,
22552278
5BCD03821D3EE35C00E3FF9B /* TimeZone.swift in Sources */,
22562279
EADE0BBC1BD15E0000C49C64 /* URLCache.swift in Sources */,
@@ -2416,6 +2439,7 @@
24162439
D5C40F331CDA1D460005690C /* TestOperationQueue.swift in Sources */,
24172440
BDBB65901E256BFA001A7286 /* TestEnergyFormatter.swift in Sources */,
24182441
5B13B32F1C582D4C00651CE2 /* TestNSGeometry.swift in Sources */,
2442+
61827A9E1F2208E400016214 /* FTPServer.swift in Sources */,
24192443
EA08126C1DA810BE00651B70 /* ProgressFraction.swift in Sources */,
24202444
5B13B3351C582D4C00651CE2 /* TestNSKeyedUnarchiver.swift in Sources */,
24212445
5B13B33D1C582D4C00651CE2 /* TestPipe.swift in Sources */,

0 commit comments

Comments
 (0)