[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH hurd 16/30] pfinet: make the demuxers payload-aware
From: |
Samuel Thibault |
Subject: |
Re: [PATCH hurd 16/30] pfinet: make the demuxers payload-aware |
Date: |
Tue, 2 Dec 2014 01:07:48 +0100 |
User-agent: |
Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30) |
Justus Winter, le Thu 27 Nov 2014 14:18:56 +0100, a écrit :
> * pfinet/ethernet.c (ethernet_demuxer): Make the demuxer payload-aware.
> * pfinet/main.c (pfinet_demuxer): Likewise.
Ack.
> ---
> pfinet/ethernet.c | 20 +++++++++++++++++++-
> pfinet/main.c | 12 ++++++++++--
> 2 files changed, 29 insertions(+), 3 deletions(-)
>
> diff --git a/pfinet/ethernet.c b/pfinet/ethernet.c
> index 053fd1b..1678243 100644
> --- a/pfinet/ethernet.c
> +++ b/pfinet/ethernet.c
> @@ -116,12 +116,30 @@ ethernet_demuxer (mach_msg_header_t *inp,
> int datalen;
> struct ether_device *edev;
> struct device *dev = 0;
> + mach_port_t local_port;
>
> if (inp->msgh_id != NET_RCV_MSG_ID)
> return 0;
>
> + if (MACH_MSGH_BITS_LOCAL (inp->msgh_bits) ==
> + MACH_MSG_TYPE_PROTECTED_PAYLOAD)
> + {
> + struct port_info *pi = ports_lookup_payload (NULL,
> + inp->msgh_protected_payload,
> + NULL);
> + if (pi)
> + {
> + local_port = pi->port_right;
> + ports_port_deref (pi);
> + }
> + else
> + local_port = MACH_PORT_NULL;
> + }
> + else
> + local_port = inp->msgh_local_port;
> +
> for (edev = ether_dev; edev; edev = edev->next)
> - if (inp->msgh_local_port == edev->readptname)
> + if (local_port == edev->readptname)
> dev = &edev->dev;
>
> if (! dev)
> diff --git a/pfinet/main.c b/pfinet/main.c
> index 0f1fbfc..8716fdb 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);
> --
> 2.1.3
>
--
Samuel
<D> m'enfin, le 5 juillet, le mec vient visiter le labo...
* D a marque d'une croix rouge le 5 juillet sur son agenda
<y> niarc niarc niarc
<D> cet homme va souffrir
<B> c'est donc le 5 juillet qu'il meurt d'un accident de la route écrasé par un
truck muni d'un pare buffle
-+- #ens-mim - repaire de terroristes -+-
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH hurd 16/30] pfinet: make the demuxers payload-aware,
Samuel Thibault <=