Commit Graph

725 Commits

Author SHA1 Message Date
Alan Coopersmith bc5a104754 Document failure modes of xcb_connect*() functions
Documentation was previously unclear that these always return a non-NULL
pointer, and that callers need to check it for error values, instead of
checking for a NULL return value.

Triggered by having to dig through code to answer a user's question on
the #xcb irc channel, since neither of us found it covered in the docs.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
2014-06-14 08:24:30 -07:00
Daniel Martin 72e45969ff Handle <pad align="n" /> between lists
Without this patch we end up with invalid C code if we've a
<pad align="n" /> between two variadic lists. Check for such a condition
and take the alignment pad into account.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=79808

Signed-off-by: Daniel Martin <consume.noise@gmail.com>
Signed-off-by: Peter Harris <pharris@opentext.com>
2014-06-10 14:01:03 -04:00
Jeremy Huddleston Sequoia d978a4f69b xcb_open: Improve abstraction for launchd secure sockets
This changes away from hard-coding the /tmp/launch-* path to now
supporting a generic <path to unix socket>[.<screen>] format for
$DISPLAY.

Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
2014-04-10 09:50:57 -07:00
Jeremy Huddleston Sequoia 29e419c584 xcb_open: Minor code cleanup for better readability
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
2014-04-10 09:50:54 -07:00
Keith Packard be0fe56c3b Ensure xcb owns socket and no other threads are writing before send_request
send_request may only write to out.queue if no other thread is busy
writing to the network (as that thread may be writing from out.queue).

send_request may only allocate request sequence numbers if XCB owns
the socket.

Therefore, send_request must make sure that both conditions are true
when it holds iolock, which can only be done by looping until both
conditions are true without having dropped the lock waiting for the
second condition.

We choose to get the socket back from Xlib first as get_socket_back
has a complicated test and checking for other threads writing is a
simple in-lined check.

This also changes the sequence number checks (64k requests with no
reply, 4M request wrapping) to ensure that both conditions are true
before queueing the request.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
2014-03-30 22:15:38 +02:00
Keith Packard e2813e1cde Update .pc file Requires lines to express full dependencies
Some xcb libraries depend on others; make these dependencies explicit
in the .pc files that are installed.

This change was generated automatically by running 'check-pc-requires -fix'

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-03-22 14:44:52 +01:00
Keith Packard 32de4c4213 Validate .pc file Requires lines
This walks through the .pc.in files and makes sure all of the Requires
lines express sufficient dependency information.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-03-22 14:44:52 +01:00
Keith Packard 1f6cd9f1fc Only #include directly referenced module header files
This avoids having the nested header files also included at the top
level, which is more efficient.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-03-22 14:44:52 +01:00
Uli Schlachter cb686b5767 Add doxygen documentation to functions in xcbext.h
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
2014-03-21 14:44:22 +01:00
Uli Schlachter 2fb14e5883 Make xcb_disconnect(NULL) safe
Code can be simplified if the deallocation functions can always be called in
cleanup code. So if you have some code that does several things that can go
wrong, one of which is xcb_connect(), after this change, the xcb_connection_t*
variable can be initialized to NULL and xcb_disconnect() can always be called on
the connection object.

References: http://lists.freedesktop.org/archives/xcb/2013-September/008659.html

Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Julien Cristau <jcristau@debian.org>
2014-03-21 14:39:44 +01:00
Uli Schlachter 4dcbfd77b7 xcb_disconnect(): Fix leak with error connections
There are two kind of error connections in XCB. First, if something goes wrong
while the connection is being set up, _xcb_conn_ret_error() is used to return a
static connection in an error state. If something goes wrong later,
_xcb_conn_shutdown() is used to set c->has_error.

This is important, because the static object that _xcb_conn_ret_error() returns
must not be freed, while the dynamically allocated objects that go through
_xcb_conn_shutdown() must obviously be properly deallocated.

This used to work correctly, but in 769acff0da, xcb_disconnect() was made to
ignore all connections in an error state completely. Fix this by only ignoring
the few static error connections that we have.

This was tested with the following hack:

    xcb_connection_t *c = xcb_connect(NULL, NULL);
    close(xcb_get_file_descriptor(c));
    xcb_discard_reply(c, xcb_get_input_focus(c).sequence);
    xcb_flush(c);
    xcb_disconnect(c);

Valgrind confirms that xcb has a memory leak before this patch that this patch
indeed fixes.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Julien Cristau <jcristau@debian.org>
2014-03-21 14:38:58 +01:00
Uli Schlachter d84dd752ef Remove tabs and trailing whitespaces
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-03-21 14:35:16 +01:00
Ran Benita 4ffa6f83b9 Add comments about how _xcb_conn_ret_error() works
If xcb_connect() fails, it doesn't return NULL. Instead, it always
returns an xcb_connection_t*, and the user should check for errors with
the xcb_connection_has_error() function. What this function does is
check if conn->has_error contains a non-zero error code, and returns it.

If an error did occur, xcb doesn't actually return a full
xcb_connection_t though, it just returns (xcb_connection_t *)
error_code. Since the 'has_error' field is the first, it is still
possible to check conn->has_error.

That last trick was not immediately obvious to me, so add some guiding
comments. This also ensures no one obliviously rearranges the struct.

Signed-off-by: Ran Benita <ran234@gmail.com>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2014-02-19 22:01:58 +01:00
Gaetan Nadon d7eb0bdf3b generated man pages: use xorg footer and no hard coded extension
The section number is no longer hard-coded
The left footer is now "X Version 11".
The center footer is the package name with the version, "libxcb 1.9"
The three values above are provided through xorg-macros. They are passed-in
to the python c_client code.

Example of footer (last line, above dotted line)

[...]
AUTHOR
       Generated from xproto.xml. Contact xcb@lists.freedesktop.org for cor‐
       rections and improvements.

X Version 11                      libxcb 1.9                 xcb_send_event(3)

------------------------------------------------------------------------------

Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:10:06 +09:00
Gaetan Nadon e4061b8f00 generated man pages: build without hard coded extension
The automake MAN primary requires a hard coded extension to build
man pages. Let's avoid that as the extension number may vary by platform.
Take advantage of the fact that the man directory only contains man pages.
Wildcards are not supported by Automake but it happens to work
sufficiently well here.

Normally xorg build man pages by converting a source .man file to a
target file with the extension number. That would be too many files
in this case.

Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:10:06 +09:00
Gaetan Nadon 3cdd524cad man: build static man pages using xorg patterns
The section number is no longer hard-coded, supplied by xorg-macros.
The left footer is now "X Version 11".
The center footer is the package name with the version, "libxcb 1.9"
The man directory is a sibbling to the doc directory. One can build
or clean the man pages without disturbing the library code.

Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:10:00 +09:00
Gaetan Nadon c056adcd92 autoconf: replace all tabs with spaces
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:10:00 +09:00
Gaetan Nadon 412928f113 autoconf: use default xorg configuration for doxygen documentation
No content or form changes for the xcb manual or tutorial.
Only the configuration user visible bits change.

Xcb will now have the same configuration options as the 30 other
xorg modules.

Xorg classifies documentation as "user", "developer" or "specifications".
The xcb manual falls under the "developer" category. Developers docs
are never installed under $prefix.

A builder can selectively turn on/off any or all of the categories. He can
also selectively turn on/off any of the many tools used to generate
documentation such as doxygen, xmlto, etc... Each tool has an environment
variable defined such as DOXYGEN.

Other features are available, the user interface and the functionality
is the same on all modules.

--with-doxygen=FILE is replaced with DOXYGEN env variable
--disable-build-docs is replaced with --disable-devel-docs

The new interface displayed with ./configure --help:

  --enable-devel-docs     Enable building the developer documentation
                          (default: yes)
  --with-doxygen          Use doxygen to regenerate documentation (default:
                          auto)
  DOXYGEN     Path to doxygen command
  DOT         Path to the dot graphics utility

The dot tool checking has been added to util-macros in version 1.18.

Refer to the table of existing docs in xorg.
XCB will be added for the doxygen generated API manual.

Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:09:35 +09:00
Gaetan Nadon 9ba6aa759e autoconf: fix warning by replacing deprecated AC_HELP_STRING
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:09:35 +09:00
Gaetan Nadon 942eabaae3 autoconf: require libtool minimum level 2.2
This is the updated minimum level as referenced in:
http://www.x.org/wiki/Building_the_X_Window_System/#index2h3

Libtool version 2 has been used for several years now. There should be
no surprises.

Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:09:35 +09:00
Gaetan Nadon 517cb0e888 autoconf: comment and layout the initialization section
No functional changes. Trying to make it clearer.

Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:09:35 +09:00
Gaetan Nadon 0a17b61a89 autoconf: AC_INIT: add bug url
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:09:35 +09:00
Gaetan Nadon 414b1037c5 autoconf: use the warning variables from xorg
The BASE_CFLAGS variable contains only warnings, just like the XCB
version of CWARNFLAGS. This will result in no changes in the binaries
produced. Xorg was missing -fd for SUNCC so it has been added to util-macros
v 1.18.

Do not get confused with the xorg deprecated CWARNFLAGS variable which
contains an option that is not a warning, -fno-strict-aliasing. This
option, should it be needed, can be added using the XORG_TESTSET_CFLAG
macro.

Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:09:34 +09:00
Gaetan Nadon c4f2c70bc3 autoconf: use XORG_DEFAULT_OPTIONS
XCB has been part of X.Org for a while now. This patch will harmonize the XCB
configuration, using xorg-macros series of macros. It is already used in the
XCB utils packages and is needed to build xcb-proto.

The XORG_DEFAULT_OPTIONS already includes the statement for the silent
rules.

The AC_PROG_CC statement is removed so as not to override AC_PROG_CC_C99
in XORG_DEFAULT_OPTIONS. The effective change is that xcb now uses c99 as
requested.

Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
2014-01-30 12:09:34 +09:00
Peter Harris e7263931af Support <pad align="n" />
Reviewed-By: Ran Benita <ran234@gmail.com>
Signed-off-by: Peter Harris <pharris@opentext.com>
2014-01-21 15:25:10 -05:00
Kenneth Graunke 3b72a2c9d1 Force XCB event structures with 64-bit extended fields to be packed.
With the advent of the Present extension, some events (such as
PresentCompleteNotify) now use native 64-bit types on the wire.

For XGE events, we insert an extra "uint32_t full_sequence" field
immediately after the first 32 bytes of data.  Normally, this causes
the subsequent fields to be shifted over by 4 bytes, and the structure
to grow in size by 4 bytes.  Everything works fine.

However, if event contains 64-bit extended fields, this may result in
the compiler adding an extra 4 bytes of padding so that those fields
remain aligned on 64-bit boundaries.  This causes the structure to grow
by 8 bytes, not 4.  Unfortunately, XCB doesn't realize this, and
always believes that the length only increased by 4.  read_packet()
then fails to malloc enough memory to hold the event, and the event
processing code uses the wrong offsets.

To fix this, mark any event structures containing 64-bit extended
fields with __attribute__((__packed__)).

v2: Use any(...) instead of True in (...), as suggested by
    Daniel Martin.

v3 (Alan Coopersmith): Fix build with Solaris Studio 12.3 by moving the
attribute to after the structure definition.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Keith Packard <keithp@keithp.com> [v1]
Reviewed-by: Josh Triplett <josh@joshtriplett.org> [v1]
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2014-01-03 15:31:19 -08:00
Uli Schlachter 010872f611 Release libxcb 1.10
Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-12-22 15:59:24 +01:00
Julien Cristau f653464554 Add NEWS for 1.10
Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-12-14 06:16:37 +01:00
Uli Schlachter 9c2a6dc20c Add NEWS entries for releases 1.9.1 to 1.9.3
libxcb 1.9.1 was released from a branch and thus its NEWS entries never made it
into the master branch. The other releases didn't update NEWS.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-12-14 05:55:11 +01:00
Julien Cristau ea4406a8e0 Bump xcb-proto requirement to 1.10
Makes sure we generate the new generic event struct.

Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-12-14 05:54:51 +01:00
PHO a1299eb2a2 Test the value of msg_controllen for platforms whose CMSG_FIRSTHDR() does not test it for us
As RFC 2292 points out, some platforms (e.g. Darwin 9.8.0) provide
CMSG_FIRSTHDR(msg) which just returns msg.msg_control without first
checking if msg.msg_controllen is non-zero. We need a workaround for
such platforms not to let _xcb_in_read() segfault.

https://bugs.freedesktop.org/show_bug.cgi?id=72253

Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-12-14 05:46:57 +01:00
Uli Schlachter b30b11ac49 Increment the "current" version info for sync, xinput and xkb
Sync: Due to commit e6a246e50e62cbcba3 "sync: Change value list param of
CreateAlarm and ChangeAlarm into switch", various symbols disappeared,
for example xcb_sync_{change,create}_alarm_sizeof.

xinput: This extension was updated from version 1.4 to 2.3. This means
that lots of new things are generated. However, this change is
backwards-compatible and thus age gets set to 1.

xkb: In commit 37d0f55392d6 "xkb: Work around alignment problems in
GetNames and GetMap replies", some padding fields were introduced into
structures for which an _unpack() function is generated. This changed
the size of the struct and caused offsets into this struct to change.

https://bugs.freedesktop.org/show_bug.cgi?id=71507

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-12-14 05:46:29 +01:00
Uli Schlachter ce5395eb46 Revert "Remove xcb_ge_event_t from xcb.h"
This reverts commit f4d5b84800.

The version of this struct that the code generator produces breaks the API,
because it gives the fields different (albeit better) names. Thus, we need to
restore the old version of this struct.

Additionally to the revert, this struct is documented as being deprecated. The
replacement was added to xcb-proto.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71502
Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-12-14 05:40:51 +01:00
Daniel Martin 18f0afab3f c_client.py: Fix _sizeof() functions
Currently, it is not possible to correctly iterate over the replies of
some requests. For example, the list of XIDeviceInfo returned by
the XIQueryDevice request from xinput2 is read as garbage starting from
the second entry.

The culprits are the _sizeof() used by the iterators. In the above case:

    int
    xcb_input_xi_device_info_sizeof (const void  *_buffer  /**< */)
    {
        char *xcb_tmp = (char *)_buffer;
        [...]
        unsigned int xcb_block_len = 0;
        [...]

        xcb_block_len += sizeof(xcb_input_xi_device_info_t);
        xcb_tmp += xcb_block_len;
        /* name */
        xcb_block_len += (((_aux->name_len + 3) / 4) * 4) * sizeof(char);
        xcb_tmp += xcb_block_len;
        [...]
    }

The problem here is that `xcb_block_len` is not zero'd right above the
`/* name */` comment, causing `xcb_tmp` to be incremented by
`sizeof(xcb_input_xi_device_info_t)` twice. The returned size is too
large.

https://bugs.freedesktop.org/show_bug.cgi?id=68387

Tested-by: Ran Benita <ran234@gmail.com>
Reviewed-by: Ran Benita <ran234@gmail.com>
Reviewed-by: Daniel Martin <consume.noise@gmail.com>
Signed-off-by: Ran Benita <ran234@gmail.com>
Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-12-12 20:37:47 +01:00
Uli Schlachter 5d1dbb468b Revert "fix deadlock with xcb_take_socket/return_socket v3"
This reverts commit 9ae84ad187.

After this patch was merged, there were complaints about it not being a good
idea. Revert this for now until we can agree on this.

References: http://lists.freedesktop.org/archives/xcb/2013-June/008340.html
Signed-off-by: Uli Schlachter <psychon@znc.in>

Conflicts:
	src/xcbint.h
2013-11-18 19:49:41 +01:00
Mark Kettenis c7c5b710f2 Fix alignment issues in FD passing code
A char array on the stack is not guaranteed to have more than byte alignment.
This means that casting it to a 'struct cmsghdr' and accessing its members
may result in unaligned access.  This will generate SIGBUS on struct
alignment architectures like OpenBSD/sparc64.  The canonical solution is to
use a union to force proper alignment.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
Reviewed-by: Matthieu Herrb <matthieu@herrb.eu>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-11-18 16:52:33 +01:00
Alan Coopersmith e8663a9358 Check if we need to define _XOPEN_SOURCE for struct msghdr.msg_control
Required to expose the structure members in Solaris headers, since it
was an XPG4/UNIX95 addition to the Solaris ABI.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2013-11-07 20:25:04 -08:00
Keith Packard af8067cbf4 Add configure option to enable or disable fd passing with sendmsg
--disable-sendfds or --enable-sendfds

By default, configure auto-detects based on whether your system
supports sendmsg at all.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2013-11-07 20:25:04 -08:00
Keith Packard 83f28ef865 Switch to using the CMSG_* macros for FD passing
Use these instead of computing the values directly so that it might
work on BSD or other non-Linux systems

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2013-11-07 20:24:59 -08:00
Keith Packard cca6074090 Add Present extension
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-By: Uli Schlachter <psychon@znc.in>
2013-11-07 14:02:37 -08:00
Keith Packard 7a9373078e Add DRI3 library
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-By: Uli Schlachter <psychon@znc.in>
2013-11-07 14:02:37 -08:00
Keith Packard 93d733e85d Require xcb proto version 1.9
Signed-off-by: Keith Packard <keithp@keithp.com>
2013-11-07 14:02:37 -08:00
Keith Packard 79019541e7 Add event queue splitting
This allows apps to peel off certain XGE events into separate queues
for custom handling. Designed to support the Present extension

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-By: Uli Schlachter <psychon@znc.in>
2013-11-07 14:02:37 -08:00
Keith Packard 7983bf0fbd Add support for receiving fds in replies
Requests signal which replies will have fds, and the replies report
how many fds they expect in byte 1.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-By: Uli Schlachter <psychon@znc.in>
2013-11-07 14:02:37 -08:00
Keith Packard 7b53fb0f9b Add xcb_send_fd API
This uses sendmsg to transmit file descriptors from the application to
the X server

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-By: Uli Schlachter <psychon@znc.in>
2013-11-07 14:02:35 -08:00
Keith Packard 98c227a222 -pendantic is too pendantic
Many system headers have warnings when compiled with this flag.

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-By: Uli Schlachter <psychon@znc.in>
2013-11-07 14:02:00 -08:00
Keith Packard d04a4a03a9 Make protocol C files depend on protocol XML files
When new XML files get installed, make sure the C files are regenerated

Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-By: Uli Schlachter <psychon@znc.in>
2013-11-07 14:01:31 -08:00
Keith Packard f4d5b84800 Remove xcb_ge_event_t from xcb.h
xcb proto now publishes this structure from an XML description

Signed-off-by: Keith Packard <keithp@keithp.com>
2013-11-07 14:01:31 -08:00
Daphne Pfister e4e0c6eec8 Use /usr/spool/sockets/X11/ on HP-UX for UNIX sockets (#69118). 2013-10-11 18:34:56 +09:00
Daphne Pfister f1405d9fe4 Fix poll() if POLLIN == ROLLRDNORM|POLLRDBAND
It seems like POLLIN is specified as equivalent to POLLRDNORM | POLLRDBAND. Some
systems (e.g. QNX and HP-UX) take this literaly and have POLLIN defined as the
above bit combination. Other systems (e.g. Linux) have POLLIN as just a single
bit.

This means that if no out-of-band data is available (which should never be the
case), the result of poll() will not fulfil (fd.revents & POLLIN) == POLLIN on
QNX, because the POLLRDBAND bit is not set.

In other words, even though poll() signaled that the fd is readable, xcb would
not read from the file descriptor.

Fix this by checking if any bits from POLLIN are set in the result of poll(),
instead of all of them.

(This change was independently done by seanb@qnx.com as well)

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=38001
Acked-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Uli Schlachter <psychon@znc.in>
2013-09-08 23:01:11 +02:00