Skip to content

Commit 2948fe1

Browse files
committed
swift: add NWConnection-inspired Swift 6 compatible Tailscale.framework
updates tailscale/tailscale#13937 Builds a TailscaleKit.framework which wraps libtailscale.a in an actor, providing IncomingConnection, Listener, and OutgoingConnection types which are more usable in pure async Swift code. The method signatures are intended to be similar in form to NWConnection. We also provide an extension to URLSession so you can make URL requests via the user-space proxy. Adds a static library mirroring much of the test control utilities in go, minus the dependency on testing, so that we can export the signatures and link it to tests that cannot run in go. Added functionality to get both the local interface IPs as well as the remote IP of incoming connections accepted by a listener. Fixed a bug in the log writer so we append a newline. This also updates to the latest go toolchain and tailscale version. Signed-off-by: Jonathan Nobels <[email protected]>
1 parent 9095651 commit 2948fe1

34 files changed

+3139
-260
lines changed

.gitignore

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,21 @@ libtailscale.so
22
libtailscale.a
33
libtailscale.h
44
libtailscale.tar*
5+
6+
/tstestcontrol/libtstestcontrol.a
7+
/tstestcontrol/libtstestcontrol.h
8+
9+
/swift/build
10+
511
/ruby/tmp/
612
/ruby/pkg/
713
/ruby/doc/
814
/ruby/ext/libtailscale/*.go
915
/ruby/ext/libtailscale/go.mod
1016
/ruby/ext/libtailscale/go.sum
1117
/ruby/LICENSE
18+
1219
/sourcepkg/libtailscale
1320
/sourcepkg/libtailscale.tar*
14-
/vendor/
21+
22+
/vendor/

go.mod

Lines changed: 74 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,99 @@
11
module github.com/tailscale/libtailscale
22

3-
go 1.21
3+
go 1.23.1
44

5-
require tailscale.com v1.48.0
5+
require tailscale.com v1.76.6
66

77
require (
8-
filippo.io/edwards25519 v1.0.0 // indirect
9-
github.com/BurntSushi/toml v1.2.1 // indirect
10-
github.com/Microsoft/go-winio v0.6.1 // indirect
8+
filippo.io/edwards25519 v1.1.0 // indirect
9+
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect
1110
github.com/akutz/memconn v0.1.0 // indirect
12-
github.com/alexbrainman/sspi v0.0.0-20210105120005-909beea2cc74 // indirect
11+
github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa // indirect
1312
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be // indirect
14-
github.com/aws/aws-sdk-go-v2 v1.18.0 // indirect
15-
github.com/aws/aws-sdk-go-v2/config v1.18.22 // indirect
16-
github.com/aws/aws-sdk-go-v2/credentials v1.13.21 // indirect
17-
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3 // indirect
18-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33 // indirect
19-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27 // indirect
20-
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34 // indirect
21-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27 // indirect
22-
github.com/aws/aws-sdk-go-v2/service/ssm v1.36.3 // indirect
23-
github.com/aws/aws-sdk-go-v2/service/sso v1.12.9 // indirect
24-
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.9 // indirect
25-
github.com/aws/aws-sdk-go-v2/service/sts v1.18.10 // indirect
26-
github.com/aws/smithy-go v1.13.5 // indirect
27-
github.com/coreos/go-iptables v0.6.0 // indirect
28-
github.com/creack/pty v1.1.18 // indirect
29-
github.com/dblohm7/wingoes v0.0.0-20230803162905-5c6286bb8c6e // indirect
30-
github.com/fxamacker/cbor/v2 v2.4.0 // indirect
31-
github.com/go-ole/go-ole v1.2.6 // indirect
32-
github.com/godbus/dbus/v5 v5.1.0 // indirect
13+
github.com/aws/aws-sdk-go-v2 v1.24.1 // indirect
14+
github.com/aws/aws-sdk-go-v2/config v1.26.5 // indirect
15+
github.com/aws/aws-sdk-go-v2/credentials v1.16.16 // indirect
16+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.14.11 // indirect
17+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.2.10 // indirect
18+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.5.10 // indirect
19+
github.com/aws/aws-sdk-go-v2/internal/ini v1.7.2 // indirect
20+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.10.4 // indirect
21+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.10.10 // indirect
22+
github.com/aws/aws-sdk-go-v2/service/ssm v1.44.7 // indirect
23+
github.com/aws/aws-sdk-go-v2/service/sso v1.18.7 // indirect
24+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.21.7 // indirect
25+
github.com/aws/aws-sdk-go-v2/service/sts v1.26.7 // indirect
26+
github.com/aws/smithy-go v1.19.0 // indirect
27+
github.com/bits-and-blooms/bitset v1.13.0 // indirect
28+
github.com/coder/websocket v1.8.12 // indirect
29+
github.com/coreos/go-iptables v0.7.1-0.20240112124308-65c67c9f46e6 // indirect
30+
github.com/creack/pty v1.1.23 // indirect
31+
github.com/dblohm7/wingoes v0.0.0-20240119213807-a09d6be7affa // indirect
32+
github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e // indirect
33+
github.com/djherbis/times v1.6.0 // indirect
34+
github.com/fxamacker/cbor/v2 v2.6.0 // indirect
35+
github.com/gaissmai/bart v0.11.1 // indirect
36+
github.com/go-json-experiment/json v0.0.0-20231102232822-2e55bd4e08b0 // indirect
37+
github.com/go-ole/go-ole v1.3.0 // indirect
38+
github.com/godbus/dbus/v5 v5.1.1-0.20230522191255-76236955d466 // indirect
3339
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
3440
github.com/google/btree v1.1.2 // indirect
35-
github.com/google/go-cmp v0.5.9 // indirect
36-
github.com/google/nftables v0.1.1-0.20230115205135-9aa6fdf5a28c // indirect
37-
github.com/hdevalence/ed25519consensus v0.1.0 // indirect
38-
github.com/illarion/gonotify v1.0.1 // indirect
39-
github.com/insomniacslk/dhcp v0.0.0-20230407062729-974c6f05fe16 // indirect
41+
github.com/google/go-cmp v0.6.0 // indirect
42+
github.com/google/nftables v0.2.1-0.20240414091927-5e242ec57806 // indirect
43+
github.com/google/uuid v1.6.0 // indirect
44+
github.com/gorilla/csrf v1.7.2 // indirect
45+
github.com/gorilla/securecookie v1.1.2 // indirect
46+
github.com/hdevalence/ed25519consensus v0.2.0 // indirect
47+
github.com/illarion/gonotify/v2 v2.0.3 // indirect
48+
github.com/insomniacslk/dhcp v0.0.0-20231206064809-8c70d406f6d2 // indirect
49+
github.com/jellydator/ttlcache/v3 v3.1.0 // indirect
4050
github.com/jmespath/go-jmespath v0.4.0 // indirect
4151
github.com/josharian/native v1.1.1-0.20230202152459-5c7d0dd6ab86 // indirect
42-
github.com/jsimonetti/rtnetlink v1.3.2 // indirect
43-
github.com/klauspost/compress v1.16.7 // indirect
52+
github.com/jsimonetti/rtnetlink v1.4.0 // indirect
53+
github.com/klauspost/compress v1.17.4 // indirect
4454
github.com/kortschak/wol v0.0.0-20200729010619-da482cc4850a // indirect
4555
github.com/kr/fs v0.1.0 // indirect
4656
github.com/mdlayher/genetlink v1.3.2 // indirect
4757
github.com/mdlayher/netlink v1.7.2 // indirect
4858
github.com/mdlayher/sdnotify v1.0.0 // indirect
49-
github.com/mdlayher/socket v0.4.1 // indirect
50-
github.com/miekg/dns v1.1.55 // indirect
59+
github.com/mdlayher/socket v0.5.0 // indirect
60+
github.com/miekg/dns v1.1.58 // indirect
5161
github.com/mitchellh/go-ps v1.0.0 // indirect
52-
github.com/pierrec/lz4/v4 v4.1.17 // indirect
53-
github.com/pkg/errors v0.9.1 // indirect
54-
github.com/pkg/sftp v1.13.5 // indirect
55-
github.com/tailscale/certstore v0.1.1-0.20220316223106-78d6e1c49d8d // indirect
56-
github.com/tailscale/golang-x-crypto v0.0.0-20230713185742-f0b76a10a08e // indirect
62+
github.com/pierrec/lz4/v4 v4.1.21 // indirect
63+
github.com/pkg/sftp v1.13.6 // indirect
64+
github.com/prometheus-community/pro-bing v0.4.0 // indirect
65+
github.com/safchain/ethtool v0.3.0 // indirect
66+
github.com/tailscale/certstore v0.1.1-0.20231202035212-d3fa0460f47e // indirect
67+
github.com/tailscale/go-winio v0.0.0-20231025203758-c4f33415bf55 // indirect
68+
github.com/tailscale/golang-x-crypto v0.0.0-20240604161659-3fde5e568aa4 // indirect
5769
github.com/tailscale/goupnp v1.0.1-0.20210804011211-c64d0f06ea05 // indirect
58-
github.com/tailscale/netlink v1.1.1-0.20211101221916-cabfb018fe85 // indirect
59-
github.com/tailscale/wireguard-go v0.0.0-20230710185534-bb2c8f22eccf // indirect
70+
github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a // indirect
71+
github.com/tailscale/netlink v1.1.1-0.20240822203006-4d49adab4de7 // indirect
72+
github.com/tailscale/peercred v0.0.0-20240214030740-b535050b2aa4 // indirect
73+
github.com/tailscale/web-client-prebuilt v0.0.0-20240226180453-5db17b287bf1 // indirect
74+
github.com/tailscale/wf v0.0.0-20240214030419-6fbb0a674ee6 // indirect
75+
github.com/tailscale/wireguard-go v0.0.0-20240905161824-799c1978fafc // indirect
76+
github.com/tailscale/xnet v0.0.0-20240729143630-8497ac4dab2e // indirect
6077
github.com/tcnksm/go-httpstat v0.2.0 // indirect
61-
github.com/u-root/u-root v0.11.0 // indirect
62-
github.com/u-root/uio v0.0.0-20230305220412-3e8cd9d6bf63 // indirect
63-
github.com/vishvananda/netlink v1.2.1-beta.2 // indirect
78+
github.com/u-root/u-root v0.12.0 // indirect
79+
github.com/u-root/uio v0.0.0-20240118234441-a3c409a6018e // indirect
6480
github.com/vishvananda/netns v0.0.4 // indirect
6581
github.com/x448/float16 v0.8.4 // indirect
6682
go4.org/mem v0.0.0-20220726221520-4f986261bf13 // indirect
67-
go4.org/netipx v0.0.0-20230728180743-ad4cb58a6516 // indirect
68-
golang.org/x/crypto v0.11.0 // indirect
69-
golang.org/x/exp v0.0.0-20230725093048-515e97ebf090 // indirect
70-
golang.org/x/exp/typeparams v0.0.0-20230425010034-47ecfdc1ba53 // indirect
71-
golang.org/x/mod v0.11.0 // indirect
72-
golang.org/x/net v0.10.0 // indirect
73-
golang.org/x/sync v0.2.0 // indirect
74-
golang.org/x/sys v0.10.0 // indirect
75-
golang.org/x/term v0.10.0 // indirect
76-
golang.org/x/text v0.11.0 // indirect
77-
golang.org/x/time v0.3.0 // indirect
78-
golang.org/x/tools v0.9.1 // indirect
83+
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
84+
golang.org/x/crypto v0.25.0 // indirect
85+
golang.org/x/exp v0.0.0-20240119083558-1b970713d09a // indirect
86+
golang.org/x/exp/typeparams v0.0.0-20240314144324-c7f7c6466f7f // indirect
87+
golang.org/x/mod v0.19.0 // indirect
88+
golang.org/x/net v0.27.0 // indirect
89+
golang.org/x/sync v0.7.0 // indirect
90+
golang.org/x/sys v0.22.0 // indirect
91+
golang.org/x/term v0.22.0 // indirect
92+
golang.org/x/text v0.16.0 // indirect
93+
golang.org/x/time v0.5.0 // indirect
94+
golang.org/x/tools v0.23.0 // indirect
7995
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
8096
golang.zx2c4.com/wireguard/windows v0.5.3 // indirect
81-
gvisor.dev/gvisor v0.0.0-20230504175454-7b0a1988a28f // indirect
82-
honnef.co/go/tools v0.4.3 // indirect
83-
inet.af/peercred v0.0.0-20210906144145-0893ea02156a // indirect
84-
inet.af/wf v0.0.0-20221017222439-36129f591884 // indirect
85-
nhooyr.io/websocket v1.8.7 // indirect
97+
gvisor.dev/gvisor v0.0.0-20240722211153-64c016c92987 // indirect
98+
honnef.co/go/tools v0.5.1 // indirect
8699
)

0 commit comments

Comments
 (0)