macos: delegate sock_* calls to bkg daemons 31/14431/12 master
authorMarcio Barbosa <mbarbosa@sinenomine.net>
Fri, 9 Apr 2021 15:14:52 +0000 (15:14 +0000)
committerBenjamin Kaduk <kaduk@mit.edu>
Sat, 10 Apr 2021 01:02:06 +0000 (21:02 -0400)
commit70e5c4f6a45854ae3a4241568769279747a8b76f
treed3edf9f4bdde75a9f7c7a0a3c9ce0d846682169e
parent40c6f3aa5576d7e1ac23caff1ae4ffd69e74dc44
macos: delegate sock_* calls to bkg daemons

As part of Apple's ongoing effort to modernize macOS, improve security
and reliability, the deprecation of kernel extensions was officially
announced at WWDC19. According to this announcement, Kernel programming
interfaces will be deprecated as alternatives become available, and
future OS releases will no longer load kernel extensions that use
deprecated KPIs by default.

Unfortunately, the following KPIs, extensively used by rx, are included
in the list of deprecated KPIs as of macOS 10.15:

- sock_receivembuf
- sock_close
- sock_send
- sock_socket
- sock_setsockopt
- sock_bind

To workaround this problem, delegate calls to the functions mentioned
above to bkg daemons forked by afsd. Notice that the ifadd_* and ifnet_*
functions are also deprecated. Fortunately, these calls can be avoided
enabling AFS_USERSPACE_IP_ADDR.

Thanks to Andrew Deason for his assistance (ideas, suggestions,
documentation, etc).

Change-Id: I916b66455bec73138c55e2764cc1146b998cb19f
Reviewed-on: https://gerrit.openafs.org/14431
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
src/afs/afs_call.c
src/afsd/afsd.c
src/config/afs_args.h
src/config/param.x86_darwin_190.h
src/config/param.x86_darwin_200.h
src/rx/DARWIN/rx_kmutex.c
src/rx/DARWIN/rx_knet.c
src/rx/rx_kcommon.c
src/rx/rx_prototypes.h