Commit Graph

31 Commits

Author SHA1 Message Date
Davide De Rosa 01554713b8 Move IP header logic to separate struct 2020-05-12 13:07:09 +02:00
Davide De Rosa f1a28a8d32 Revert to more efficient ternary op in IP header
See #169 and 753927f36b
2020-05-12 12:59:33 +02:00
Davide De Rosa 60213bafb8 Fix and improve #169
- Use constants
- Check packet length for OOB read
- Replace assertion with logging
2020-05-08 21:01:36 +02:00
Roopesh Chander 753927f36b Fix how NETunnelInterface handles IP protocol number
The IP protocol number passed to NEPacketTunnelFlow is determined per
packet based on the IP header, instead of determining it based on
whether IPv6 settings are available or not.
2020-05-06 09:37:24 +05:30
Johan Kool 78e332d48b Force IPv4 on Mojave otherwise it breaks 2020-04-10 13:37:15 +02:00
Davide De Rosa a7aa78141e Update copyright clause 2020-01-11 09:26:41 +01:00
Davide De Rosa 21eee24e7c Add missing documentation 2019-05-24 16:02:06 +02:00
Davide De Rosa 72ce14b676 Make AppExtension entities public 2019-05-24 16:02:06 +02:00
Davide De Rosa 9445b825d0 Make AppExtension generic
- Make AppExtension a standalone util subspec
- Move OpenVPN tunnel provider to OpenVPN subspec
- Move Utils to Core subspec
- Depend OpenVPN on Core + AppExtension
2019-05-24 10:41:26 +02:00
Davide De Rosa 930f05c984 Move OpenVPN timeouts out of Core 2019-05-19 12:39:51 +02:00
Davide De Rosa 9da7fa9667 Split Core into Core+OpenVPN
Two Obj-C modules:

- __TunnelKitCore
- __TunnelKitOpenVPN

Seems the only way to do it in multiple module maps.

Move OpenVPN specifics out of CoreConfiguration.
2019-05-19 12:22:32 +02:00
Davide De Rosa 491092f2a3 Drop extra header lines 2019-05-19 12:21:44 +02:00
Davide De Rosa 713a46d817 Update GitHub URL
Move to passepartoutvpn org.
2019-05-14 10:58:47 +02:00
Davide De Rosa 1b8647bcac Convert PacketSteram to Obj-C
For better TCP efficiency.
2019-04-25 12:42:29 +02:00
Davide De Rosa 23b6e3b98e Relax negotiation timeouts 2019-04-16 23:59:56 +02:00
Davide De Rosa 8dfd5f23c1 Handle unknown enum defaults 2019-03-30 23:18:45 +01:00
Davide De Rosa 7d69e09c53 Update copyright 2019-03-09 11:44:18 +01:00
Davide De Rosa b32c1848be Unmask harmless destination port 2018-11-05 15:48:34 +01:00
Davide De Rosa ae85337e91 Mask log.debug 2018-10-24 18:47:41 +02:00
Davide De Rosa 033763f372 Mask log.info 2018-10-24 18:47:41 +02:00
Davide De Rosa 91349fd780 Take shouldChangeProtocol out of GenericSocket
Behavior is not exactly similar in UDP and TCP.
2018-10-24 09:42:03 +02:00
Davide De Rosa f93634bd7a Respect link MTU in TCP
Mitigates #39
2018-10-22 00:56:08 +02:00
Davide De Rosa 856fa9e12e Take PacketStream out and make public
Useful for reuse in TCP streams.
2018-09-19 22:04:52 +02:00
Davide De Rosa 8adb9871c3 Dispose tunnel if can't try next protocol
Return boolean in socketShouldChangeProtocol indicating whether
another protocol is available.
2018-09-08 00:10:35 +02:00
Davide De Rosa ec2950171b Use AF_INET6 according to IPv6 availability 2018-08-31 01:59:08 +02:00
Davide De Rosa b172f79719 Re-license with proper per-file notices
Clarify explicitly the author/extent of the fork, with proper
credit to the original project's license and copyright holder.
2018-08-28 12:53:14 +02:00
Davide De Rosa c4b0964c3c Improve split naming
*Socket + *Link
2018-08-24 12:44:17 +02:00
Davide De Rosa 6208fe8e21 Split GenericSocket and LinkInterface
Keep socket and link logic separated. Allows for setting MTU
specifically for the link.

- UDP: hardcoded 1000
- TCP: ignored (.max)
2018-08-24 12:36:35 +02:00
Davide De Rosa dfac465c1d Drop support for PIA HARD_RESET patch 2018-08-23 12:11:55 +02:00
Davide De Rosa 4d03df7066 Finish up renaming in headers and prefixes 2018-08-23 12:10:56 +02:00
Davide De Rosa fe665e8ad5 Rename library to TunnelKit 2018-08-23 12:10:41 +02:00