Skip to content
  • Patrick Monnerat's avatar
    IPV6: address scope != scope id · 9081014c
    Patrick Monnerat authored
    There was a confusion between these: this commit tries to disambiguate them.
    - Scope can be computed from the address itself.
    - Scope id is scope dependent: it is currently defined as 1-based local
      interface index for link-local scoped addresses, and as a site index(?) for
      (obsolete) site-local addresses. Linux only supports it for link-local
      addresses.
    The URL parser properly parses a scope id as an interface index, but stores it
    in a field named "scope": confusion. The field has been renamed into "scope_id".
    Curl_if2ip() used the scope id as it was a scope. This caused failures
    to bind to an interface.
    Scope is now computed from the addresses and Curl_if2ip() matches them.
    If redundantly specified in the URL, scope id is check for mismatch with
    the interface index.
    
    This commit should fix SF bug #1451.
    9081014c