• Sergey KHripchenko's avatar
    Implement ZMQ_TCP_ACCEPT_FILTER setsockopt() for listening TCP sockets. · acba6bdd
    Sergey KHripchenko authored
    Assign arbitrary number of filters that will be applied for each new TCP transport
    connection on a listening socket.
    If no filters applied, then TCP transport allows connections from any ip.
    If at least one filter is applied then new connection source ip should be matched.
    To clear all filters call zmq_setsockopt(socket, ZMQ_TCP_ACCEPT_FILTER, NULL, 0).
    Filter is a null-terminated string with ipv6 or ipv4 CIDR.
    
    For example:
    localhost
    127.0.0.1
    mail.ru/24
    ::1
    ::1/128
    3ffe:1::
    3ffe:1::/56
    
    Returns -1 if the filter couldn't be assigned(format error or ipv6 filter with ZMQ_IPV4ONLY set)
    
    P.S.
    The only thing that worries me is that I had to re-enable 'default assign by reference constructor/operator'
    for 'tcp_address_t' (and for my inherited class tcp_address_mask_t) to store it in std::vector in 'options_t'...
    acba6bdd
Name
Last commit
Last update
builds Loading commit data...
doc Loading commit data...
foreign/openpgm Loading commit data...
include Loading commit data...
perf Loading commit data...
src Loading commit data...
tests Loading commit data...
.gitignore Loading commit data...
.hgeol Loading commit data...
AUTHORS Loading commit data...
COPYING Loading commit data...
COPYING.LESSER Loading commit data...
INSTALL Loading commit data...
MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
README Loading commit data...
acinclude.m4 Loading commit data...
autogen.sh Loading commit data...
configure.in Loading commit data...
version.sh Loading commit data...