Ever since I've updated to Xcode 15.2 (I'm currently using Xcode 15.3) my console gets flooded with logs from CFNetwork and DataDetectorsUI. I've never seen those logs before. Is there a way to suppress them? I can't even find my own logs anymore without filters.
CFNetwork
Task <50C80E0E-9DA5-428F-A473-9D0228088022>.<4> resuming, timeouts(25.0, 604800.0) QOS(0x15) Voucher (null)
[Telemetry]: Activity <nw_activity 12:2[78557FD1-54F3-4B77-8C5C-57F500D67286] (reporting strategy default)> on Task <50C80E0E-9DA5-428F-A473-9D0228088022>.<4> was not selected for reporting
Connection 29: set is idle false
Task <50C80E0E-9DA5-428F-A473-9D0228088022>.<4> now using Connection 29
Task <50C80E0E-9DA5-428F-A473-9D0228088022>.<4> sent request, body S 535
Task <50C80E0E-9DA5-428F-A473-9D0228088022>.<4> received response, status 201 content U
Task <50C80E0E-9DA5-428F-A473-9D0228088022>.<4> done using Connection 29
Connection 29: set is idle true
HTTP/2 Connection 29 Stream 7 ended successfully true
Task <50C80E0E-9DA5-428F-A473-9D0228088022>.<4> request *** is NOT allowed to set HSTS for main doc (null)
Task <50C80E0E-9DA5-428F-A473-9D0228088022>.<4> response ended
Task <50C80E0E-9DA5-428F-A473-9D0228088022>.<4> finished successfully
Connection 19: cleaning up
Connection 19: done
Applying proxy auth: response=(null), proxyURL=(null), request=(null), credentials=(null), handle=0x11c2f7d30
Connection 21: cleaning up
Connection 23: cleaning up
Connection 22: cleaning up
DataDetectorsUI
operation 0x10ff7e560
operation 0x10ff7e560 is discarded
Calling the completion block for 0x10ff7e560
dispatchScanQueryCreationWithCompletionBlock of operation <DDTextKitOperation: 0x10ff7e560> completion block: success: 0
operation 0x10ff7e560
operation 0x10ff7e560
operation 0x10fb2f850
really creating scan query in operation 0x10fb2f850!
operation 0x10fb2f850
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Created
It seems like a WKWebView doesn't handle 421 responses automatically.
What basically happened is the following:
The client requests a page at foo.example.com
During TLS negotiation, the server presents a certificate which is valid for both foo.example.com and bar.example.com (and the client accepts it). This could be done with a wildcard certificate or a SAN certificate.
The client reuses the connection to make a request for bar.example.com.
The server is unable or unwilling to support cross-domain connection reuse and serves HTTP 421.
The client does not automatically retry with a new connection.
According to the RFC7540 section 9.1.2 we MAY retry the request manually with a new TCP connection.
The iOS' Safari browser and all web browsers handled this correctly by retrying the request.
Isn't the webview also supposed to handle this automatically? @eskimo