>Number: 188786 >Category: docs >Synopsis: Bug in inet3) man page (inet_aton()) >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-doc >State: open >Quarter: >Keywords: >Date-Required: >Class: doc-bug >Submitter-Id: current-users >Arrival-Date: Sat Apr 19 07:10:00 UTC 2014 >Closed-Date: >Last-Modified: >Originator: Michael Kerrisk >Release: 10.0 >Organization: Linux man-pages maintainer >Environment: n/a >Description: As http://www.freebsd.org/cgi/man.cgi?query=inet_aton&apropos=0&sektion=0&manpath=FreeBSD+10.0-RELEASE&arch=default&format=html, on sees the text:
When a two part address is supplied, the last part is interpreted as a 24-bit quantity and placed in the right most three bytes of the network address. This makes the two part address format convenient for specify- ing Class A network addresses as ``net.host''. In the second line, there should I believe be the substitution: s/network$/host$/. I have no FreeBSD system to test, but have tested on OpenBSD and Linux. Furthermore, the change makes sense when one reads the surrounding text. I see the same text in the OpenBSD page, and also the NetBSD page. How does this work -- should I submit bugs for each of those systems, or do communicate such problems to one another? Thanks, Michael Kerrisk (maintainer, Linux man-pages project) Test code: #define _BSD_SOURCE #include <arpa/inet.h> #include <stdio.h> #include <stdlib.h> static void printBytes(in_addr_t a) { printf("%d", (a >> 24) & 0xff); printf("."); printf("%d", (a >> 16) & 0xff); printf("."); printf("%d", (a >> 8) & 0xff); printf("."); printf("%d", (a & 0xff)); } /* printBytes */ int main(int argc, char *argv[]) { struct in_addr addr; if (argc != 2) { fprintf(stderr, "%s <dotted-address>\n", argv[0]); exit(EXIT_FAILURE); } if (inet_aton(argv[1], &addr) == 0) { fprintf(stderr, "inet_aton() failed\n"); exit(EXIT_FAILURE); } printf("%s\n", inet_ntoa(addr)); struct in_addr n, h; n.s_addr = inet_netof(addr); printf("Network number : "); printBytes(n.s_addr); printf("\n"); h.s_addr = inet_lnaof(addr); printf("Local network address: "); printBytes(h.s_addr); printf("\n"); addr = inet_makeaddr(n.s_addr, h.s_addr); printf("Made address: %s\n", inet_ntoa(addr)); exit(EXIT_SUCCESS); } >How-To-Repeat: >Fix: As above >Release-Note: >Audit-Trail: >Unformatted: _______________________________________________ freebsd-doc@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-doc To unsubscribe, send any mail to "freebsd-doc-unsubscr...@freebsd.org"