Hi,

I was trying to test some scenarios to see what is allowed and what is not allowed by MHD in respect to starting 2 servers on same port but different IP address.

The information for passing on the address to MHD_start_daemon api is:
     addr_hint.ai_family   = AF_UNSPEC;  /* IPv4 or IPv6 */
    addr_hint.ai_flags    = AI_ADDRCONFIG;
    addr_hint.ai_socktype = SOCK_STREAM;

For IPv6 addresses, Daemon is started by calling api MHD_start_daemon(flags, port, MHD_OPTION_SOCK_ADDR, address..) where MHD_USE_IPv6 is set in flags.

For IPv4, is started same way but without MHD_USE_IPv6.

Below are some of the scenarios that I have tried:

Scenario 1:

 * Start S1 on : '0.0.0.0':6666
 * Start S2 on:  :'fe80::5054:ff:feec:73d1':6666

The MHD_start_daemon api is okay for S1 but fails for S2.

Scenario2:

 * Start S1 on : '0.0.0.0':6666
 * Start S2 on:  '::':6666

MHD_start_daemon call is successful on both.

Scenario3:

 * Start S1 on : '192.168.11.11':6666
 * Start S2 on:  '::':6666

MHD_start_daemon call is successful on both.

Scenario4:

 * Start S1 on : '192.168.11.11':6666
 * Start S2 on:  'fe80::5054:ff:feec:73d1':6666

MHD_start_daemon call fails on S2.

Both IP addressed are on same interface.Is this how they are supposed to work? Why is it that it fails in scenario 1 but is okay in scenario 3?

Trying to figure-out if its an issue at my end/expected behavior/issue in MHD?

Thanks & Regards,

Shikha

Reply via email to