NSProcessInfo hostName holds the process for 30+ seconds

We have used ::gethostname to retrieve hostname in our tunnel provider extension and found it returns "localhost" on iOS 17+. So we changed to use [[NSProcessInfo processInfo] hostName]. However it often caused 30+ delay in the extension process on a few devices and always returns "localhost".

The sysdiagnose shows a lot of DNS query logs as below:

default mDNSResponder 2025-03-19 17:15:12.453769 +0800 75281: 0x11ad501 [R80937] DNSServiceCreateConnection START PID[79767](ACExtension)
default mDNSResponder 2025-03-19 17:15:12.453892 +0800 75281: 0x11ad501 [R80938] DNSServiceQueryRecord START -- qname: <mask.hash: 'fNnSAdyuhKXqCny8+neXvw=='>, qtype: PTR, flags: 0x15000, interface index: -1, client pid: 79767 (ACExtension), name hash: 84de01e1
default mDNSResponder 2025-03-19 17:15:12.458395 +0800 75281: 0x11ad501 [R80939] DNSServiceQueryRecord START -- qname: <mask.hash: '2X6qN/YT0yh2psKwrGWokg=='>, qtype: PTR, flags: 0x15000, interface index: 0, client pid: 79767 (ACExtension), name hash: f25c923e
default mDNSResponder 2025-03-19 17:15:12.462924 +0800 75281: 0x11ad501 [R80940] DNSServiceQueryRecord START -- qname: <mask.hash: 'peyRWEblLKbNvcOXPjSeMQ=='>, qtype: PTR, flags: 0x15000, interface index: 0, client pid: 79767 (ACExtension), name hash: 83323cc4
Answered by DTS Engineer in 831838022

A 30 second delay suggests that it’s doing a DNS operation and failing. That’s not uncommon, and it’s likely made worse by the environment in which your NE provider is running [1].

What are you using this value for?

In general, host names don’t make a lot of sense on iOS. I’ve talked about this many times before, so I decided to write it up properly in On Host Names. Please read that thread and post back here if you have follow-up questions.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] See A Peek Behind the NECP Curtain.

[2] Honestly, they don’t make a lot of sense on macOS either, because they’re traditionally tied to

Accepted Answer

A 30 second delay suggests that it’s doing a DNS operation and failing. That’s not uncommon, and it’s likely made worse by the environment in which your NE provider is running [1].

What are you using this value for?

In general, host names don’t make a lot of sense on iOS. I’ve talked about this many times before, so I decided to write it up properly in On Host Names. Please read that thread and post back here if you have follow-up questions.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] See A Peek Behind the NECP Curtain.

[2] Honestly, they don’t make a lot of sense on macOS either, because they’re traditionally tied to

NSProcessInfo hostName holds the process for 30+ seconds
 
 
Q