FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

IPv6 addresses with localized zone identifiers cause 'invalid URL escape' messages on Windows · Issue #7581 · syncthing/syncthing · GitHub

Repository navigation

IPv6 addresses with localized zone identifiers cause 'invalid URL escape' messages on Windows #7581

Open

Description

Similar bugs: #2709 #5827 are closed but very similar error messages are repeatedly generated.

Windows 7 Ultimate (with changed locale from Polish to English - maybe this is important)
Syncthing v1.15.1

The messages are all similar:
[...] INFO: Parsing dialer address tcp://[fe80::424e:36ff:fe1a:9bd2%25Po%C5%82%C4%85czenie%20lokalne]:22000: parse "tcp://[fe80::424e:36ff:fe1a:9bd2%25Po%C5%82%C4%85czenie%20lokalne]:22000": invalid URL escape "%C5"

'Połączenie lokalne' means 'Local connection' in Polish and is a default name for a wired connection on Windows.

I'm new to Syncthing (using it for about a month on a few devices) and maybe I am doing something wrong, in which case I apologize.

Activity

  1. added
    bugA problem with current functionality, as opposed to missing functionality (enhancement)
    needs-triageNew issues needed to be validated
    on Apr 16, 2021
  2. bt90 commented on Apr 16, 2021

    Contributor

    https://tools.ietf.org/html/rfc4007#section-11.7

    Also, the format for non-global addresses might conflict with the URI syntax [13], since the syntax defines the delimiter character (`%') as the escape character. This conflict would require, for example, that the <zone_id> part for zone 1 with the delimiter be represented as '%251'. It also means that we could not simply copy a non-escaped format from other sources as input to the URI parser. Additionally, if the URI parser does not convert the escaped format before passing it to a name-to-address library, the conversion will fail. All these issues would decrease the benefit of the textual representation described in this section.

    So the parser needs to support RFC6874

  3. calmh commented on Apr 16, 2021

    Member

    Yes, we handle the required escaping properly, the issue here seems to be that even escaped non-ASCII characters aren't accepted. The RFC in question has this as a SHOULD but apparently the Go parser is more strict. We've had previous issues with this. Relevant:

    https://github.com/golang/go/blob/d26fc68aa10dc8eda5ccdcc80d790e7df2fd9823/src/net/url/url.go#L223-L235

    The "seems prudent" there might not be very prudent after all and it could be argued that this should be fixed...

    Also, Windows, FFS... Why couldn't they just have stuck a guid or something in the zone identifier, that seems like the Windows way. 🤷

  4. changed the title [-]Syncthing floods standard output with 'invalid URL escape' messages[/-] [+]IPv6 addresses with localized zone identifiers cause 'invalid URL escape' messages on Windows[/+] on Apr 16, 2021
  5. bt90 commented on Apr 16, 2021

    Contributor

    @calmh is the URI being parsed here one published by some other device?

  6. calmh commented on Apr 16, 2021

    Member

    It's the source address of the incoming packet as reported by (*net.UDPConn).ReadFrom() (or such) put into the host portion of a net.URL.

  7. bt90 commented on Apr 16, 2021

    Contributor

    Is the link local IP dialable without the identifier?

  8. calmh commented on Apr 16, 2021

    Member

    Certainly not. (It's link scoped.)

  9. bt90 commented on Apr 16, 2021

    Contributor

    Does golang provide something comparable to if_nametoindex ? Looks like IPv6 link local addresses can also be expressed with the index of the network interface:

    fe80::4d3d:3426:46e6:1457%2

  10. calmh commented on Apr 16, 2021

    Member

    You could check it out, this seems to be an issue close to your interests. :)

  11. AudriusButkevicius commented on Apr 16, 2021

    Member

    I'm not conviced that is true on windows.

  12. bt90 commented on Apr 16, 2021

    Contributor

    I'm not conviced that is true on windows.

    ipconfig lists my link local IPv6 address by default with the index 😉

  13. bt90 commented on Apr 16, 2021

    Contributor

    Seems like this mapping is also supported by the go standard library: https://golang.org/pkg/net/#Interface

  14. added theissue type on May 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugA problem with current functionality, as opposed to missing functionality (enhancement)

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions


      Back | FazBrowse Home | New Git URL