NEFilterSocketFlow: Why is the socketID property private?

When you print the description of a NEFilterSocketFlow instance, you see the socketID value (which is displayed without a 0x but as a hex value…).

When you look at the NEFilterSocketFlow header file, there are no such properties.

When you google this, you end up with some sites displaying the class-dump of the NEFilterSocketFlow class and this property does exist (at least at the time of the class-dump and at the time of this writing).

2 related questions:
  • Why is this property private?

  • Is this property not more reliable than the identifier property when you need to identify a socket inside a flow?

Answered by DTS Engineer in 622364022

Why is this property private?

Because there’s no guarantee that it will exist in the long term. Apple is in the process of moving to a user-space networking stack and, in that context, sockets (that is, file descriptors that indirectly reference a structure in the kernel) make no sense at all.

Share and Enjoy

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

Why is this property private?

Because there’s no guarantee that it will exist in the long term. Apple is in the process of moving to a user-space networking stack and, in that context, sockets (that is, file descriptors that indirectly reference a structure in the kernel) make no sense at all.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@apple.com"
NEFilterSocketFlow: Why is the socketID property private?
 
 
Q