From 2514b693920124eb47eb48f50f07b179bc5090e9 Mon Sep 17 00:00:00 2001 From: Justus Winter <4winter@informatik.uni-hamburg.de> Date: Sun, 13 Apr 2014 14:03:48 +0200 Subject: pfinet: make the demuxers payload-aware * pfinet/ethernet.c (ethernet_demuxer): Make the demuxer payload-aware. * pfinet/main.c (pfinet_demuxer): Likewise. --- pfinet/main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'pfinet/main.c') diff --git a/pfinet/main.c b/pfinet/main.c index 0f1fbfc7..8716fdbb 100644 --- a/pfinet/main.c +++ b/pfinet/main.c @@ -86,8 +86,16 @@ pfinet_demuxer (mach_msg_header_t *inp, /* We have several classes in one bucket, which need to be demuxed differently. */ - pi = ports_lookup_port(pfinet_bucket, inp->msgh_local_port, socketport_class); - + if (MACH_MSGH_BITS_LOCAL (inp->msgh_bits) == + MACH_MSG_TYPE_PROTECTED_PAYLOAD) + pi = ports_lookup_payload (pfinet_bucket, + inp->msgh_protected_payload, + socketport_class); + else + pi = ports_lookup_port (pfinet_bucket, + inp->msgh_local_port, + socketport_class); + if (pi) { ports_port_deref (pi); -- cgit v1.2.3