1. 23 Sep, 2014 1 commit
  2. 24 Aug, 2014 1 commit
  3. 24 Jun, 2014 1 commit
  4. 10 Jun, 2014 1 commit
  5. 08 Jun, 2014 1 commit
  6. 25 Apr, 2014 1 commit
  7. 25 Mar, 2014 1 commit
  8. 26 Oct, 2013 1 commit
  9. 02 Oct, 2013 1 commit
  10. 17 Sep, 2013 4 commits
  11. 01 Sep, 2013 2 commits
  12. 22 Aug, 2013 2 commits
  13. 19 Jul, 2013 1 commit
  14. 19 Jun, 2013 1 commit
  15. 01 Jun, 2013 1 commit
  16. 18 May, 2013 1 commit
  17. 15 Apr, 2013 1 commit
  18. 02 Apr, 2013 1 commit
  19. 22 Mar, 2013 1 commit
  20. 04 Mar, 2013 2 commits
  21. 26 Feb, 2013 1 commit
  22. 21 Feb, 2013 2 commits
    • Stefan Hajnoczi's avatar
      slirp: switch to GPollFD · 8917c3bd
      Stefan Hajnoczi authored
      Slirp uses rfds/wfds/xfds more extensively than other QEMU components.
      
      The rarely-used out-of-band TCP data feature is used.  That means we
      need the full table of select(2) to g_poll(3) events:
      
        rfds -> G_IO_IN | G_IO_HUP | G_IO_ERR
        wfds -> G_IO_OUT | G_IO_ERR
        xfds -> G_IO_PRI
      
      I came up with this table by looking at Linux fs/select.c which maps
      select(2) to poll(2) internally.
      
      Another detail to watch out for are the global variables that reference
      rfds/wfds/xfds during slirp_select_poll().  sofcantrcvmore() and
      sofcantsendmore() use these globals to clear fd_set bits.  When
      sofcantrcvmore() is called, the wfds bit is cleared so that the write
      handler will no longer be run for this iteration of the event loop.
      
      This actually seems buggy to me since TCP connections can be half-closed
      and we'd still want to handle data in half-duplex fashion.  I think the
      real intention is to avoid running the read/write handler when the
      socket has been fully closed.  This is indicated with the SS_NOFDREF
      state bit so we now check for it before invoking the TCP write handler.
      Note that UDP/ICMP code paths don't care because they are
      connectionless.
      
      Note that slirp/ has a lot of tabs and sometimes mixed tabs with spaces.
      I followed the style of the surrounding code.
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      Reviewed-by: default avatarLaszlo Ersek <lersek@redhat.com>
      Message-id: 1361356113-11049-6-git-send-email-stefanha@redhat.com
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      8917c3bd
    • Stefan Hajnoczi's avatar
      slirp: slirp/slirp.c coding style cleanup · cf1d078e
      Stefan Hajnoczi authored
      The slirp glue code uses tabs in some places.  Since the next patch will
      modify the file, convert tabs to spaces and fix checkpatch.pl issues.
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      Reviewed-by: default avatarLaszlo Ersek <lersek@redhat.com>
      Message-id: 1361356113-11049-5-git-send-email-stefanha@redhat.com
      Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
      cf1d078e
  23. 30 Jan, 2013 1 commit
  24. 12 Jan, 2013 1 commit
  25. 19 Dec, 2012 4 commits
  26. 07 Dec, 2012 1 commit
  27. 15 Nov, 2012 2 commits
  28. 10 Nov, 2012 1 commit
  29. 05 Oct, 2012 1 commit