qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Mark McLoughlin <markmc@redhat.com>
To: Cam Macdonell <cam@cs.ualberta.ca>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 2/5] Add SCM_RIGHTS support to unix socket character devices
Date: Fri, 14 Aug 2009 07:38:39 +0100	[thread overview]
Message-ID: <1250231919.3010.9.camel@blaa> (raw)
In-Reply-To: <4A843D4A.5030306@cs.ualberta.ca>

On Thu, 2009-08-13 at 10:20 -0600, Cam Macdonell wrote:
> > @@ -1957,6 +2004,10 @@ static void tcp_chr_read(void *opaque)
> >              tcp_chr_process_IAC_bytes(chr, s, buf, &size);
> >          if (size > 0)
> >              qemu_chr_read(chr, buf, size);
> > +        if (s->msgfd != -1) {
> > +            close(s->msgfd);
> > +            s->msgfd = -1;
> > +        }
> 
> Hi Mark,
> 
> I'm trying to understand the intended behaviour here so I can use your 
> patch.  In your comments for the patch it reads "store the file 
> descriptor for use in the chr_read() handler.  Close the file descriptor 
> if it was not used."  It seems that upon returning from the chr_read() 
> handler the descriptor is closed if s->msgfd is not set to -1.  Does 
> this mean the handler should set the fd to -1 after retrieving it if the 
> process wants to keep that fd open, otherwise it will be closed when 
> chr_read() returns?  Should tcp_get_msgfd() perhaps set  s->msgfd to -1 
> after it is retrieved?  Sort of a "read and clear" behaviour?

Yes, that would work and TBH I can't recall why I chose not to do that.
It'd be like popping the fd from a one item queue.

The current caller of get_msgfd() dup()s the fd which achieves the same
thing.

Cheers,
Mark.

  reply	other threads:[~2009-08-14  6:39 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-06 17:30 [Qemu-devel] [PATCH 0/3] Allow host_net_add monitor command accept file descriptors Mark McLoughlin
2009-07-06 17:30 ` [Qemu-devel] [PATCH 1/3] Make tcp_chr_read() use recvmsg() Mark McLoughlin
2009-07-06 17:31   ` [Qemu-devel] [PATCH 2/3] Add SCM_RIGHTS support to unix socket character devices Mark McLoughlin
2009-07-06 17:32     ` [Qemu-devel] [PATCH 3/3] Add support for fd=msgfd for tap and socket networking Mark McLoughlin
2009-07-07  5:28 ` [Qemu-devel] [PATCH 0/3] Allow host_net_add monitor command accept file descriptors Avi Kivity
2009-07-07  7:43   ` Mark McLoughlin
2009-07-07  7:52     ` Avi Kivity
2009-07-07  8:13       ` Mark McLoughlin
2009-07-07  9:03         ` Avi Kivity
2009-07-07 10:06           ` Daniel P. Berrange
2009-07-08 14:56             ` Mark McLoughlin
2009-07-08 14:57               ` [Qemu-devel] [PATCH 1/5] Make tcp_chr_read() use recvmsg() Mark McLoughlin
2009-07-08 14:57                 ` [Qemu-devel] [PATCH 2/5] Add SCM_RIGHTS support to unix socket character devices Mark McLoughlin
2009-07-08 14:57                   ` [Qemu-devel] [PATCH 3/5] Add getfd and closefd monitor commands Mark McLoughlin
2009-07-08 14:57                     ` [Qemu-devel] [PATCH 4/5] Add monitor_get_fd() command for fetching named fds Mark McLoughlin
2009-07-08 14:57                       ` [Qemu-devel] [PATCH 5/5] Add support for fd=name to tap and socket networking Mark McLoughlin
2009-07-08 15:26                     ` [Qemu-devel] [PATCH 3/5] Add getfd and closefd monitor commands Avi Kivity
2009-07-08 16:03                       ` Mark McLoughlin
2009-07-08 16:15                         ` Avi Kivity
2009-07-08 18:08                           ` Anthony Liguori
2009-07-08 18:11                             ` Avi Kivity
2009-07-08 18:21                               ` Anthony Liguori
2009-07-08 18:32                                 ` Avi Kivity
2009-07-08 18:50                                   ` Anthony Liguori
2009-07-08 19:52                                     ` Avi Kivity
2009-07-11  1:12                                       ` Jamie Lokier
2009-07-21 16:40                                       ` Mark McLoughlin
2009-07-21 16:53                                         ` [Qemu-devel] [PATCH] Make tcp_chr_read() use recvmsg() Mark McLoughlin
2009-07-21 17:13                                           ` Blue Swirl
2009-07-22  0:00                                             ` Jamie Lokier
2009-07-22  8:10                                             ` Mark McLoughlin
2009-07-22  8:11                                               ` [Qemu-devel] [PATCH 1/5] " Mark McLoughlin
2009-07-22  8:11                                               ` [Qemu-devel] [PATCH 2/5] Add SCM_RIGHTS support to unix socket character devices Mark McLoughlin
2009-08-13 16:20                                                 ` Cam Macdonell
2009-08-14  6:38                                                   ` Mark McLoughlin [this message]
2009-07-22  8:11                                               ` [Qemu-devel] [PATCH 3/5] Add getfd and closefd monitor commands Mark McLoughlin
2009-07-22  8:11                                               ` [Qemu-devel] [PATCH 4/5] Add monitor_get_fd() command for fetching named fds Mark McLoughlin
2009-07-22  8:11                                               ` [Qemu-devel] [PATCH 5/5] Add support for fd=name to tap and socket networking Mark McLoughlin
2009-07-23 13:37                                                 ` Mark McLoughlin
2009-07-21 16:53                                         ` [Qemu-devel] [PATCH] Add SCM_RIGHTS support to unix socket character devices Mark McLoughlin
2009-07-21 16:53                                         ` [Qemu-devel] [PATCH] Add getfd and closefd monitor commands Mark McLoughlin
2009-07-21 16:53                                         ` [Qemu-devel] [PATCH] Add monitor_get_fd() command for fetching named fds Mark McLoughlin
2009-07-21 16:53                                         ` [Qemu-devel] [PATCH] Add support for fd=name to tap and socket networking Mark McLoughlin
2009-07-22  2:20                                         ` [Qemu-devel] [PATCH 3/5] Add getfd and closefd monitor commands Anthony Liguori
2009-07-22  8:09                                           ` Mark McLoughlin
2009-07-23  7:00                                             ` [Qemu-devel] " Jan Kiszka
2009-07-23  7:51                                               ` Mark McLoughlin
2009-07-08 15:25                   ` [Qemu-devel] [PATCH 2/5] Add SCM_RIGHTS support to unix socket character devices Avi Kivity
2009-07-08 16:04                     ` Mark McLoughlin
2009-07-08 16:17                       ` Avi Kivity
2009-07-08 18:11                       ` Anthony Liguori
2009-07-08 18:17                         ` Avi Kivity
2009-07-11  1:15                           ` Jamie Lokier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1250231919.3010.9.camel@blaa \
    --to=markmc@redhat.com \
    --cc=cam@cs.ualberta.ca \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).