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: Avi Kivity
Subject: Re: [Qemu-devel] [PATCH 2/5] Add SCM_RIGHTS support to unix socket character devices
Date: Wed, 08 Jul 2009 18:25:01 +0300
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1b3pre) Gecko/20090513 Fedora/3.0-2.3.beta2.fc11 Lightning/1.0pre Thunderbird/3.0b2

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, 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.


--
error compiling committee.c: too many arguments to function





reply via email to

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