This is an automated email from the git hooks/post-receive script. sthibault pushed a commit to branch dde in repository hurd.
commit 8ca14292386a51b592a933af7453d78366540e14 Author: Justus Winter <4win...@informatik.uni-hamburg.de> Date: Fri Apr 11 22:47:13 2014 +0200 eth-filter: improve the demuxer function Handle multiple request types as recommended by the Mach Server Writer's Guide section 4, subsection "Handling Multiple Request Types". This avoids initializing the reply message in every X_server function. The reply message has already been properly initialized in libports, so there is no need to call mig_reply_setup. * eth-filter/filter.c (filter_demuxer): Improve the demuxer function. Also, move it below the ethernet_demuxer function to avoid the need for a forward declaration. Prioritize the ethernet_demuxer. --- eth-filter/filter.c | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/eth-filter/filter.c b/eth-filter/filter.c index 7a25c10..482b080 100644 --- a/eth-filter/filter.c +++ b/eth-filter/filter.c @@ -194,17 +194,6 @@ clean_proxy_device (void *p) device->proxy->device = NULL; } -static int -filter_demuxer (mach_msg_header_t *inp, - mach_msg_header_t *outp) -{ - extern int device_server (mach_msg_header_t *, mach_msg_header_t *); - extern int notify_server (mach_msg_header_t *, mach_msg_header_t *); - extern int ethernet_demuxer (mach_msg_header_t *, mach_msg_header_t *); - return device_server (inp, outp) || notify_server (inp, outp) - || ethernet_demuxer (inp, outp) || trivfs_demuxer (inp, outp); -} - int ethernet_demuxer (mach_msg_header_t *inp, mach_msg_header_t *outp) @@ -233,6 +222,24 @@ ethernet_demuxer (mach_msg_header_t *inp, return 1; } +static int +filter_demuxer (mach_msg_header_t *inp, + mach_msg_header_t *outp) +{ + mig_routine_t routine; + if ((routine = NULL, ethernet_demuxer (inp, outp)) || + (routine = device_server_routine (inp)) || + (routine = notify_server_routine (inp)) || + (routine = NULL, trivfs_demuxer (inp, outp))) + { + if (routine) + (*routine) (inp, outp); + return TRUE; + } + else + return FALSE; +} + /* Implementation of notify interface */ kern_return_t do_mach_notify_port_deleted (struct port_info *pi, -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hurd/hurd.git