[prev in list] [next in list] [prev in thread] [next in thread] 

List:       python-bugs-list
Subject:    [issue25041] document AF_PACKET socket address format
From:       Martin Panter <report () bugs ! python ! org>
Date:       2015-10-31 4:02:49
Message-ID: 1446264169.64.0.0480173224324.issue25041 () psf ! upfronthosting ! co ! za
[Download RAW message or body]


Martin Panter added the comment:

Quickly looking through the history (annotate function on Mercurial web frontend):

* Revisions 3d4a7cd0bf17, c8ef864ba861 (2001): AF_PACKET support added on Linux. \
Partially documented in C comment and socket.bind() docstring. AF/PF_PACKET, PACKET_* \
constants also added.

* #947352 (Python 2.4), 8b3288f607e1: Support specifying hardware address, for \
sendto().

Here are some more things might be good to tease out:

1. Please don't invent new parameter names without a good reason. I suggest (ifname, \
proto, pkttype, hatype, addr). These are already used in the bind() doc string, most \
are consistent with Linux's struct sockaddr_ll fields, and "proto" is consistent with \
Python's socket() constructor.

2. There is an error message mentioning "protoNumber" which could also be adjusted \
for consistency

3. When Python generates the ifname string, it uses the empty string for ifindex zero \
(matching any interface), although it does not look like parsing this back is \
supported

4. proto is endian-corrected, in contrast with Linux's version being in network \
byte-order

5. Default pkttype is zero. This is equal to PACKET_HOST, so could be useful. Might \
also be worth changing the source code to explicitly use PACKET_HOST.

6. addr has to be a bytes-like object

7. Packet support is specific to Linux, and may not be compiled in

8. Existence of *_PACKET and PACKET_* constants

9. socket.bind() doc string needs updating since revision c8ef864ba861 (missing fifth \
parameter, addr)

----------
nosy: +martin.panter

_______________________________________
Python tracker <report@bugs.python.org>
<http://bugs.python.org/issue25041>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/python-bugs-list%40marc.info



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic