ros-windows / win_ros

Windows support for Ros (Robot Operating System)
http://www.ros.org/wiki/win_ros
23 stars 16 forks source link

Conflicting % symbol in string with error_rule function of rules.py #34

Open yichoe opened 11 years ago

yichoe commented 11 years ago

% symbol in string causes error in error_rule function of rules.py.

yichoe commented 11 years ago

It happens when roswtf checks IP address. The IPv6 uses a zone index to provide routing information. The zone index is appended to the address, separated by '%'. This notation causes syntax conflict with Python when roswtf deals with it.

In case of URI, they are finding solution to avoid syntax conflict like here:

http://tools.ietf.org/html/draft-fenner-literal-zone-02

I think there are two ways to resolve it;

(1) Avoid substitution by dictionary in rules.py when checking local network configuration, because this substitution by dictionary doesn't affect results. (2) Return IP address information in network.py after replacing '%' symbols in IPv6 address by '/' like ubuntu.

stonier commented 11 years ago

That document isn't english! I don't understand a thing...

I think I like 2) better. It's common in python and cmake to convert unconvential windows characters (like slashes) to unix equivalents.

Does it actually break anything else by converting to /? e.g. who uses that data after you converted?

yichoe commented 11 years ago

Strange.. I can see english from that link.

Since only roswtf refers roswtf\network.py, I think it will not make trouble to others although % is converted to / in roswtf\network.py.

stonier commented 11 years ago

Yeah, it's english, but its lawyer speak. Illegible!

stonier commented 11 years ago

Just for the record, examples of the differing formats are like:

# Linux
fe80::6ef0:49ff:fe78:1259/64
# Windows
fe80::49c9:fc07:8601:f192%12