classification
Title: Bad reference to RFC in document of ipaddress?
Type: Stage: resolved
Components: Documentation Versions: Python 3.3, Python 3.4
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: docs@python Nosy List: Fran.Bull, berker.peksag, docs@python, georg.brandl, methane, python-dev
Priority: normal Keywords: patch

Created on 2014-01-13 15:25 by methane, last changed 2014-02-16 18:39 by berker.peksag. This issue is now closed.

Files
File name Uploaded Description Edit
20241.patch Fran.Bull, 2014-01-15 18:07 review
Messages (6)
msg208027 - (view) Author: Inada Naoki (methane) * (Python committer) Date: 2014-01-13 15:25
http://docs.python.org/3.3/library/ipaddress.html#ipaddress.IPv4Address.is_unspecified

>     True if the address is unspecified. See RFC 5375 (for IPv4) or RFC 2373 (for IPv6).

RFC 5375 is "IPv6 Unicast Address Assignment Considerations".
msg208028 - (view) Author: Inada Naoki (methane) * (Python committer) Date: 2014-01-13 15:30
Is it 5735 ?


Next sentence may be wrong, too.

>     True if the address is otherwise IETF reserved.

Is it "True if the address is IETF reserved." ?
msg208082 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2014-01-14 08:05
5735 seems to be correct (see docstring of is_unspecified), although it doesn't talk about "unspecified".
msg208179 - (view) Author: Fran Bull (Fran.Bull) Date: 2014-01-15 18:07
http://tools.ietf.org/html/rfc5735.html
Special Use IPv4 Addresses

does indeed agree with the docstring

    @property
    def is_unspecified(self):
        """Test if the address is unspecified.

        Returns:
            A boolean, True if this is the unspecified address as defined in
            RFC 5735 3.

        """
        unspecified_address = IPv4Address('0.0.0.0')
        return self == unspecified_address

and makes more sense than http://tools.ietf.org/html/rfc5375.html
IPv6 Unicast Address Assignment Considerations

and so the attached patch will bring them into line.

However it's worth noting that the RFC doesn't say anything about 0.0.0.0 being the 'unspecified' address, (the RFC linked for the IPv6 is_unspecified http://tools.ietf.org/html/rfc2373.html#section-2.5.2 does specifically call it the 'unspecified' address). 5735 3 just says:

3.  Global and Other Specialized Address Blocks

   0.0.0.0/8 - Addresses in this block refer to source hosts on "this"
   network.  Address 0.0.0.0/32 may be used as a source address for this
   host on this network; other addresses within 0.0.0.0/8 may be used to
   refer to specified hosts on this network ([RFC1122], Section
   3.2.1.3).

googling it you can find eg this:

http://en.wikipedia.org/wiki/IPv6_address
says:
 ::/128 — The address with all zero bits is called the unspecified address (corresponding to 0.0.0.0/32 in IPv4).

so perhaps this bit of the docs could be a bit clearer, although I don't know what it should say, perhaps something like:
'Checks if the address is 0.0.0.0 which corresponds to the unspecified address in IPv6'
someone with better networking knowledge than me could say.
msg211300 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2014-02-15 22:11
New changeset 383f4eede628 by Andrew Kuchling in branch '3.3':
#20241: use correct RFC number
http://hg.python.org/cpython/rev/383f4eede628
msg211337 - (view) Author: Berker Peksag (berker.peksag) * (Python committer) Date: 2014-02-16 18:39
This was also fixed in default: http://hg.python.org/cpython/rev/2d62ee3c7617
History
Date User Action Args
2014-02-16 18:39:19berker.peksagsetstatus: open -> closed

nosy: + berker.peksag
messages: + msg211337

resolution: fixed
stage: resolved
2014-02-15 22:11:16python-devsetnosy: + python-dev
messages: + msg211300
2014-01-15 18:07:09Fran.Bullsetfiles: + 20241.patch

nosy: + Fran.Bull
messages: + msg208179

keywords: + patch
2014-01-14 08:05:16georg.brandlsetnosy: + georg.brandl
messages: + msg208082
2014-01-13 15:30:55methanesetmessages: + msg208028
2014-01-13 15:25:19methanecreate