Hello,
In a simple macOS tool, I'm trying to bind a socket to the default interface like "en0" or a VPN interface like "utun5" to make the socket send the data only through that interface.
int idx = (int)if_nametoindex("utun5");
if (setsockopt(sock, IPPROTO_IP, IP_BOUND_IF, &idx, sizeof(idx)) == -1)
{
perror("setsockopt");
exit(1);
}
The method setsockopt succeeds however the data doesn't go through the bound interface, but it goes through the default interface like if there has been no binding at all.
I tried also with libcurl, which is based on sockets, but the data goes through the default interface like before, even if the method succeed.
if (curl_easy_setopt(curlH, CURLOPT_INTERFACE, "utun5") != CURLE_OK)
{
perror("CURLOPT_INTERFACE");
exit(1);
}
May someone suggest how to bind an interface to a socket in a way that makes all the data transmitted by that socket go only through the bound interface?
Any constructive suggestion is very welcome.
Thank you!
Best regards,
Luca Severini
Post
Replies
Boosts
Views
Activity
Hello everybody,
Does someone knowledgeable know why on macOS (11.6.2 Big Sur at list in my case), there is that mounted volume /System/Volumes/Data/home that is usually empty (at least for me) and appears to be a kinda of network volume that (of course for a network volume) doesn't support the fast searchfs functionality ?
What's its use?
For some context, here is the list of mounted volumes on my MacBook Pro with two volumes visible on the Desktop, Macintosh HD (/ + /System/Volumes/Data) and Data (/Volumes/Data) :
/dev/disk1s1s1 (apfs): /
devfs (devfs): /dev (doesn't support searchfs)
/dev/disk1s5 (apfs): /System/Volumes/VM
/dev/disk1s3 (apfs): /System/Volumes/Preboot
/dev/disk1s6 (apfs): /System/Volumes/Update
/dev/disk1s2 (apfs): /System/Volumes/Data
/dev/disk1s7 (apfs): /Volumes/Data
map auto_home (autofs): /System/Volumes/Data/home (doesn't support searchfs)
Thank you!
Best regards,
Luca Severini
Hello,
How can I remove the old Build reports that keep accumulating in the Report Navigator?
Thank you!
Luca Severini