[uClibc-cvs] CVS uClibc/libc/inet
CVS User vapier
vapier at codepoet.org
Thu Jan 6 04:02:01 UTC 2005
Update of /var/cvs/uClibc/libc/inet
In directory nail:/tmp/cvs-serv29315
Modified Files:
addr.c
Log Message:
Document more things inet_aton() 'should' support but actually doesn't.
Most of the time, no one ever notices, so there's not point eh ? Also
standardize tab usage.
--- /var/cvs/uClibc/libc/inet/addr.c 2004/02/11 23:48:39 1.15
+++ /var/cvs/uClibc/libc/inet/addr.c 2005/01/06 04:02:00 1.16
@@ -28,6 +28,22 @@
int inet_aton(const char *cp, struct in_addr *addrptr);
#ifdef L_inet_aton
+/*
+ * More undocumented inet_aton features.
+ * (read: uclibc doesnt support but glibc does)
+ * http://www.mkssoftware.com/docs/man3/inet_aton.3.asp
+ *
+ * *cp can take the form of:
+ * a.b.c.d - {a,b,c,d} -> 1 byte
+ * a.b.c - {a,b} -> 1 byte {c} -> 2 bytes
+ * a.b - {a} -> 1 byte {b} -> 3 bytes
+ * a - {a} -> 4 bytes
+ *
+ * Each part may be decimal, octal, or hexadecimal as in ISO C.
+ * 0x or 0X -> hexadecimal
+ * leading 0 -> octal
+ * all else -> decimal
+ */
int inet_aton(cp, addrptr)
const char *cp;
struct in_addr *addrptr;
@@ -71,7 +87,7 @@
* of the input string, but does not store the result.
*/
if (addrptr) {
- addrptr->s_addr = htonl(addr);
+ addrptr->s_addr = htonl(addr);
}
return 1;
@@ -99,7 +115,7 @@
in_addr_t addr = ntohl(in.s_addr);
int i;
char *p, *q;
-
+
q = 0;
p = buf + INET_NTOA_MAX_LEN - 1; /* cannot use sizeof(buf) here */
for (i=0 ; i < 4 ; i++ ) {
@@ -128,18 +144,18 @@
*/
struct in_addr inet_makeaddr(in_addr_t net, in_addr_t host)
{
- in_addr_t addr;
+ in_addr_t addr;
- if (net < 128)
- addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
- else if (net < 65536)
- addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
- else if (net < 16777216UL)
- addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
- else
- addr = net | host;
- addr = htonl(addr);
- return (*(struct in_addr *)&addr);
+ if (net < 128)
+ addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
+ else if (net < 65536)
+ addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
+ else if (net < 16777216UL)
+ addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
+ else
+ addr = net | host;
+ addr = htonl(addr);
+ return (*(struct in_addr *)&addr);
}
#endif
@@ -172,14 +188,14 @@
in_addr_t
inet_netof(struct in_addr in)
{
- in_addr_t i = ntohl(in.s_addr);
+ in_addr_t i = ntohl(in.s_addr);
- if (IN_CLASSA(i))
- return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
- else if (IN_CLASSB(i))
- return (((i)&IN_CLASSB_NET) >> IN_CLASSB_NSHIFT);
- else
- return (((i)&IN_CLASSC_NET) >> IN_CLASSC_NSHIFT);
+ if (IN_CLASSA(i))
+ return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT);
+ else if (IN_CLASSB(i))
+ return (((i)&IN_CLASSB_NET) >> IN_CLASSB_NSHIFT);
+ else
+ return (((i)&IN_CLASSC_NET) >> IN_CLASSC_NSHIFT);
}
#endif
More information about the uClibc-cvs
mailing list