[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd] 16/25: eth-filter: improve the demuxer function
From: |
Samuel Thibault |
Subject: |
[hurd] 16/25: eth-filter: improve the demuxer function |
Date: |
Tue, 27 May 2014 08:32:03 +0000 |
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 <address@hidden>
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
- [hurd] 14/25: devnode: improve the demuxer function, (continued)
- [hurd] 14/25: devnode: improve the demuxer function, Samuel Thibault, 2014/05/27
- [hurd] 24/25: Merge remote-tracking branch 'incubator/dde' into dde-upstream, Samuel Thibault, 2014/05/27
- [hurd] 03/25: Drop DIST_FILES from Makefile, Samuel Thibault, 2014/05/27
- [hurd] 22/25: libmachdev: add missing includes, Samuel Thibault, 2014/05/27
- [hurd] 25/25: Merge branch 'dde-upstream' into dde, Samuel Thibault, 2014/05/27
- [hurd] 23/25: libmachdev: add, fix and use declaration for create_device_port, Samuel Thibault, 2014/05/27
- [hurd] 08/25: libmachdev: fix receiver lookups, Samuel Thibault, 2014/05/27
- [hurd] 05/25: eth-multiplexer: fix receiver lookups, Samuel Thibault, 2014/05/27
- [hurd] 13/25: eth-multiplexer: fix argp_program_version, remove argp_program_bug_address, Samuel Thibault, 2014/05/27
- [hurd] 15/25: libmachdev: improve the demuxer functions, Samuel Thibault, 2014/05/27
- [hurd] 16/25: eth-filter: improve the demuxer function,
Samuel Thibault <=
- [hurd] 10/25: devnode: remove the ourdevice hack, Samuel Thibault, 2014/05/27
- [hurd] 04/25: eth-filter: fix receiver lookups, Samuel Thibault, 2014/05/27
- [hurd] 01/25: libports: fix notify_port_t receiver lookups, Samuel Thibault, 2014/05/27