qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 2/5] Add SCM_RIGHTS support to unix socket chara


From: Mark McLoughlin
Subject: Re: [Qemu-devel] [PATCH 2/5] Add SCM_RIGHTS support to unix socket character devices
Date: Wed, 08 Jul 2009 17:04:03 +0100

On Wed, 2009-07-08 at 18:25 +0300, Avi Kivity wrote:
> On 07/08/2009 05:57 PM, Mark McLoughlin wrote:
> > If a file descriptor is passed via a message with SCM_RIGHTS ancillary
> > data on a unix socket, store the file descriptor for use in the
> > chr_read() handler. Close the file descriptor if it was not used.
> >
> > The qemu_chr_get_msgfd() API provides access to the passed descriptor.
> >
> > Signed-off-by: Mark McLoughlin<address@hidden>
> > ---
> >   qemu-char.c |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
> >   qemu-char.h |    2 ++
> >   2 files changed, 52 insertions(+), 0 deletions(-)
> >
> > diff --git a/qemu-char.c b/qemu-char.c
> > index e0d7220..f06a614 100644
> > --- a/qemu-char.c
> > +++ b/qemu-char.c
> > @@ -168,6 +168,11 @@ void qemu_chr_read(CharDriverState *s, uint8_t *buf, 
> > int len)
> >       s->chr_read(s->handler_opaque, buf, len);
> >   }
> >
> > +int qemu_chr_get_msgfd(CharDriverState *s)
> > +{
> > +    return s->get_msgfd ? s->get_msgfd(s) : -1;
> > +}
> > +
> >   void qemu_chr_accept_input(CharDriverState *s)
> >   {
> >       if (s->chr_accept_input)
> > @@ -1832,6 +1837,7 @@ typedef struct {
> >       int do_telnetopt;
> >       int do_nodelay;
> >       int is_unix;
> > +    int msgfd;
> >   } TCPCharDriver;
> >    
> 
> SCM_RIGHTS messages can contain multiple fds,

It only makes sense to have one per getfd command and ...

> and multiple messages can arrive. I think you need to queue fds here
> in case the client sends two getfd commands back-to-back and does
> buffering.

it doesn't look to me like the current monitor code can handle multiple
commands in the one message.

Cheers,
Mark.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]