[zeromq-dev] OpenPGM and IPv6 interfaces

Martin Sustrik sustrik at 250bpm.com
Wed Feb 3 13:53:20 CET 2010


Steven,

> You can provide an address family to the pgm_if_get_transport_info call 
> via the ti_family field of the pgm_transport_info_t parameter.

Tried to make it work this way:

    struct pgm_transport_info_t *res = NULL;
    struct pgm_transport_info_t hint;
    memset (&hint, 0, sizeof (hint));
    hint.ti_family = AF_INET;
    if (!pgm_if_get_transport_info (network, &hint, &res, &pgm_error))...


pgm_if_get_transport_info succeeds but the address seems resolve to 0.0.0.0:

$5 = {ti_gsi = {identifier = "\000\000\000\000\000"}, ti_flags = 0,
ti_family = 0, ti_udp_encap_ucast_port = 0, ti_udp_encap_mcast_port = 0,
ti_sport = 0, ti_dport = 7500, ti_recv_addrs_len = 1,
  ti_recv_addrs = 0x692ed0, ti_send_addrs_len = 1, ti_send_addrs = 0x692fd8}
(gdb) p res->ti_recv_addrs
$6 = (group_source_req *) 0x692ed0
(gdb) p *res->ti_recv_addrs
$7 = {gsr_interface = 2, gsr_group = {ss_family = 2, __ss_align = 0,
__ss_padding = '\000' <repeats 111 times>}, gsr_source = {ss_family = 2,
__ss_align = 0, __ss_padding = '\000' <repeats 111 times>}}
(gdb) p *res->ti_send_addrs
$8 = {gsr_interface = 2, gsr_group = {ss_family = 2, __ss_align = 0,
__ss_padding = '\000' <repeats 111 times>}, gsr_source = {ss_family = 2,
__ss_align = 0, __ss_padding = '\000' <repeats 111 times>}}

Any hints?
Martin



More information about the zeromq-dev mailing list