diff options
-rw-r--r-- | auth/auth.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/auth/auth.c b/auth/auth.c index 91a21e45..a395e79d 100644 --- a/auth/auth.c +++ b/auth/auth.c @@ -468,10 +468,20 @@ S_auth_server_authenticate (struct authhandle *serverauth, static int auth_demuxer (mach_msg_header_t *inp, mach_msg_header_t *outp) { - extern int auth_server (mach_msg_header_t *inp, mach_msg_header_t *outp); - return (auth_server (inp, outp) || - ports_interrupt_server (inp, outp) || - ports_notify_server (inp, outp)); + mig_routine_t auth_server_routine (mach_msg_header_t *); + mig_routine_t ports_notify_server_routine (mach_msg_header_t *); + mig_routine_t ports_interrupt_server_routine (mach_msg_header_t *); + + mig_routine_t routine; + if ((routine = auth_server_routine (inp)) || + (routine = ports_notify_server_routine (inp)) || + (routine = ports_interrupt_server_routine (inp))) + { + (*routine) (inp, outp); + return TRUE; + } + else + return FALSE; } |