[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[hurd] 02/06: trans: improve demuxers
From: |
Samuel Thibault |
Subject: |
[hurd] 02/06: trans: improve demuxers |
Date: |
Tue, 03 Nov 2015 22:43:20 +0000 |
This is an automated email from the git hooks/post-receive script.
sthibault pushed a commit to branch upstream
in repository hurd.
commit 0437af60d3bbf09003f3fd1fdb9993958fcd430d
Author: Justus Winter <address@hidden>
Date: Thu Oct 29 15:43:28 2015 +0100
trans: improve demuxers
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.
* trans/proxy-defpager.c (proxy_defpager_demuxer): Improve the demuxer
function.
* trans/streamio.c (demuxer): Likewise.
---
trans/proxy-defpager.c | 14 ++++++++++----
trans/streamio.c | 15 +++++++++++----
2 files changed, 21 insertions(+), 8 deletions(-)
diff --git a/trans/proxy-defpager.c b/trans/proxy-defpager.c
index 662f269..4fdeb35 100644
--- a/trans/proxy-defpager.c
+++ b/trans/proxy-defpager.c
@@ -236,10 +236,16 @@ int
proxy_defpager_demuxer (mach_msg_header_t *inp,
mach_msg_header_t *outp)
{
- extern int default_pager_server (mach_msg_header_t *, mach_msg_header_t *);
-
- return default_pager_server (inp, outp)
- || trivfs_demuxer (inp, outp);
+ mig_routine_t routine;
+ if ((routine = default_pager_server_routine (inp)) ||
+ (routine = NULL, trivfs_demuxer (inp, outp)))
+ {
+ if (routine)
+ (*routine) (inp, outp);
+ return TRUE;
+ }
+ else
+ return FALSE;
}
int
diff --git a/trans/streamio.c b/trans/streamio.c
index 54627b7..507250b 100644
--- a/trans/streamio.c
+++ b/trans/streamio.c
@@ -36,6 +36,7 @@
#include "libtrivfs/trivfs_fs_S.h"
#include "libtrivfs/trivfs_io_S.h"
+#include "device_reply_S.h"
/* The global lock */
pthread_mutex_t global_lock;
@@ -273,10 +274,16 @@ static const struct argp argp = { options, parse_opt,
args_doc, doc };
int
demuxer (mach_msg_header_t *inp, mach_msg_header_t *outp)
{
- extern int device_reply_server (mach_msg_header_t *, mach_msg_header_t *);
-
- return (trivfs_demuxer (inp, outp)
- || device_reply_server (inp, outp));
+ mig_routine_t routine;
+ if ((routine = NULL, trivfs_demuxer (inp, outp)) ||
+ (routine = device_reply_server_routine (inp)))
+ {
+ if (routine)
+ (*routine) (inp, outp);
+ return TRUE;
+ }
+ else
+ return FALSE;
}
int
--
Alioth's /usr/local/bin/git-commit-notice on
/srv/git.debian.org/git/pkg-hurd/hurd.git
- [hurd] branch upstream updated (b989189 -> f5ab1a1), Samuel Thibault, 2015/11/03
- [hurd] 02/06: trans: improve demuxers,
Samuel Thibault <=
- [hurd] 04/06: pflocal: avoid building the interrupt server, Samuel Thibault, 2015/11/03
- [hurd] 01/06: Make fakerooted access() return real access, Samuel Thibault, 2015/11/03
- [hurd] 03/06: hurd: fix type of in-translation function, Samuel Thibault, 2015/11/03
- [hurd] 06/06: Merge remote-tracking branch 'upstream/master' into upstream, Samuel Thibault, 2015/11/03
- [hurd] 05/06: GNU Hurd 0.7, Samuel Thibault, 2015/11/03