Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IOS-742 implement wgOpenInTunnelICMP #11

Draft
wants to merge 29 commits into
base: mullvad-master
Choose a base branch
from

Conversation

acb-mv
Copy link

@acb-mv acb-mv commented Jul 9, 2024

An implementation of wgOpenInTunnelICMP, which returns a pair of file descriptors for an ICMP connection


This change is Reviewable

@acb-mv acb-mv marked this pull request as draft July 9, 2024 14:52
Copy link

@pinkisemils pinkisemils left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we might have to do all the parsing of ICMP packets in the go side and use single byte writes to issue ICMP request packets, for fear of non-atomic writes over the pipe. However, if we can make do without that, that'd be ideal. So far, this looks good, and I'm anxiously waiting on the unit tests.

Reviewed 1 of 1 files at r1, all commit messages.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @acb-mv)

Copy link

@pinkisemils pinkisemils left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: all files reviewed, 1 unresolved discussion (waiting on @acb-mv)


Sources/WireGuardKitGo/api-apple.go line 299 at r1 (raw file):

	rxShutdown := make(chan struct{})
	go func() { // the sender
		select {

This function would benefit from a

defer send_r.Close()

Same for the other go routine.

@houmie
Copy link

houmie commented Jul 12, 2024

Hello @pinkisemils,

Apologies, the issue section is not open, so I had no choice but to address this here.

The commit cdd6038 breaks the connection handshake, and I can no longer connect to the Wireguard servers.

However, when I revert to the previous commit, 15242e1, everything works again.

Has the former commit been tested, or is it still experimental?

Many thanks.

Copy link

@pinkisemils pinkisemils left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hiya @houmie, are you using our repo to build the vanilla WireGuard app? If so, I'd suggest you do not - the changes we make in this repository are there to only serve Mullvad's iOS app and we're only looking to make changes to WireGuardKit. We don't intend to have this repo work for any other usecase. In any case, this PR is not the best place to ask for support either.

Reviewable status: 0 of 2 files reviewed, 1 unresolved discussion (waiting on @acb-mv)

@acb-mv acb-mv force-pushed the ios-742-wgOpenInTunnelICMP branch from 3a659ea to 95ee998 Compare August 6, 2024 09:49
@acb-mv acb-mv force-pushed the ios-742-wgOpenInTunnelICMP branch from c6d191d to 9d71a84 Compare August 15, 2024 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants