Merge pull request #770 from hurtonm/master

Code cleanup
Updated documentation for zmq_disconnect() and zmq_setsockopt().
Intial IPC accept filter support.

Adds sets of process (Linux only), user, and group IDs for filtering
connections from peer processes over IPC transport.  If all of the
filter sets are empty, every connection is accepted.  Otherwise,
credentials for a connecting process are checked against the filter sets
and the connection is only accepted if a match is found.

This commit is part of LIBZMQ-568 and only adds the filter sets and
implements the filter in the IPC accept method.  The interface for
adding IDs to filter sets are included in a separate commit.

IPC accept filtering is supported only on Linux and OS X.
Add IPC accept filter socket options.

Adds ZMQ_IPC_ACCEPT_FILTER_{PID,UID,GID} socket options to add processs,
user, and group IDs to the IPC filter sets. Fixes LIBZMQ-568.
use enum retired_fd instead of -1

using -1 causes a warning on Windows platform because SOCKET is unsigned.
Merge pull request #773 from hashstat/master

Add IPC accept filter support
Merge pull request #774 from shubred1/master

Updated documentation for zmq_disconnect() and zmq_setsockopt().
Merge pull request #775 from pijyoi/master

use enum retired_fd instead of -1
Fix failing test case in test_filter_ipc.

Add explicit check for primary group.
Merge pull request #779 from hashstat/master

Fix failing test case in test_filter_ipc.
Shortened ZMQ_IPC_ACCEPT_FILTER_[UGP]ID to ZMQ_IPC_FILTER_[UGP]ID.
Merge pull request #780 from hashstat/master

Shortened ZMQ_IPC_ACCEPT_FILTER_[UGP]ID to ZMQ_IPC_FILTER_[UGP]ID.
Enable building IPC filtering with cmake.
Move {SO,LOCAL}_PEERCRED checks to C++ context.
Merge branch 'master' of https://github.com/zeromq/libzmq
Merge pull request #781 from hashstat/master

Enable building IPC filtering with cmake and another small autoconf fix.
Add support for extending ZAP request address with IPC peer credentials.

Another take on LIBZMQ-568 to allow filtering IPC connections, this time
using ZAP.  This change is backward compatible.  If the
ZMQ_ZAP_IPC_CREDS option is set, the user, group, and process IDs of the
peer process are appended to the address (separated by colons) of a ZAP
request; otherwise, nothing changes.  See LIBZMQ-568 and zmq_setsockopt
documentation for more information.
Merge pull request #782 from hashstat/master

Add support for extending ZAP request address with IPC peer credentials.
use mutex implementation if fixed signaler_port!=5905
tools/: Link curve_keygen with a c++ linker

When trying to linking curve_keygen as if it was a C program, linking
fails (at least with gcc 4.8 on Debian testing) because it can't find
C++ symbols. Linking with g++ instead fixes the issue.

To achieve this, the source is renamed to curve_keygen.cpp, and
tools/Makefile.am is updated accordingly.

Signed-off-by: Gergely Nagy <algernon@balabit.hu>