Our application (VPN solution) works well on macOS 13 and this issue only occurred on macOS 14 beta.
This issue is:
If we connect the cable to a Mac mini’s ethernet port, and enable the VPN in our application, then the Tunnel is enabled under System Settings->Network->VPN & Filter, after that, the DNS stops resolving.
If we use a “USB-C LAN” adapter to connect the cable to Mac mini’s USB-C port, this issue disappears. Only enable Wi-Fi can also avoid this issue.
The confusion is what’s the difference between connect to Ethernet directly and use an adapter?
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Environments:
MacOS 12.5.1
A squid proxy sever is set up on my local machine(127.0.0.1 with port 3128), and it requires username and password. In System Preferences->Network->Advanced, enable "Secure Web Proxy (HTTPS)", input the server 127.0.0.1 and port 3128, and do not enable "Proxy server requires password".
Open a website on Chrome, an dialog will pop up to ask user to input the credentials for proxy server 127.0.0.1.
I want to do the same but met this issue. As I understand, the delegate method - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler should be called after [mTask resume],
but the actual behaviour is - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error was called, and the current session was terminated. Error message in console is "[] nw_http_connect_send_auth_request_block_invoke Proxy authentication failed with error -1002, cancelling connection".
BTW, I tried put proxy server and port into connectionProxyDictionary, then didReceiveChallenge can be called. AM I misuse the APIs? or this is a bug in MSURLSession?
Here is the codes for testing:
// proxyHandler.h
#import <Foundation/Foundation.h>
@interface proxyHandler : NSObject <NSURLSessionTaskDelegate>
- (void)submitRequest;
@end
//proxyHandler.m
#import "proxyHandler.h"
@interface proxyHandler()
{
NSURLSession *mSession;
NSURLSessionTask *mTask;
}
@end
@implementation proxyHandler
- (void)submitRequest
{
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration]; // connectionProxyDictionary is NULL, which means that tasks use the default system settings.
mSession = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"https://www.google.com"]];
mTask = [mSession dataTaskWithRequest:request];
[mTask resume];
}
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error {
NSLog(@"Task compelter with error domain : %s, error code: %ld\n", [error.domain UTF8String], error.code);
}
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler{
NSLog(@"Task challenge: %@, isProxy: %d", challenge.protectionSpace.authenticationMethod, [challenge.protectionSpace isProxy]);
}
@end