aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-10-17 03:59:14 +0000
committerBruce Momjian <bruce@momjian.us>1998-10-17 03:59:14 +0000
commit0c430306fec1fa0fef166e0fdc5dfcd756b2dd5c (patch)
tree06955083dff8275217d8aadfab1e5dbedb579b1b
parentf4389d52625bcf09216f922dbd3619e0a4668613 (diff)
downloadpostgresql-0c430306fec1fa0fef166e0fdc5dfcd756b2dd5c.tar.gz
postgresql-0c430306fec1fa0fef166e0fdc5dfcd756b2dd5c.zip
Re-enable inet code.
-rw-r--r--src/backend/utils/adt/inet.c6
-rw-r--r--src/backend/utils/adt/inet_net_pton.c24
2 files changed, 12 insertions, 18 deletions
diff --git a/src/backend/utils/adt/inet.c b/src/backend/utils/adt/inet.c
index 23b9158c4b3..969e5f1ee77 100644
--- a/src/backend/utils/adt/inet.c
+++ b/src/backend/utils/adt/inet.c
@@ -3,7 +3,7 @@
* is for IP V4 CIDR notation, but prepared for V6: just
* add the necessary bits where the comments indicate.
*
- * $Id: inet.c,v 1.3 1998/10/12 04:07:46 momjian Exp $
+ * $Id: inet.c,v 1.4 1998/10/17 03:59:13 momjian Exp $
*/
#include <sys/types.h>
@@ -57,9 +57,7 @@ inet_in(char *src)
}
/* First, try for an IP V4 address: */
ip_family(dst) = AF_INET;
-#ifdef BAD
bits = inet_net_pton(ip_family(dst), src, &ip_v4addr(dst), ip_addrsize(dst), NULL);
-#endif
if ((bits < 0) || (bits > 32))
{
/* Go for an IPV6 address here, before faulting out: */
@@ -86,7 +84,6 @@ inet_out(inet *src)
if (ip_family(src) == AF_INET)
{
-#ifdef BAD
/* It's an IP V4 address: */
if (inet_net_ntop(AF_INET, &ip_v4addr(src), 4, ip_bits(src),
tmp, sizeof(tmp)) < 0)
@@ -94,7 +91,6 @@ inet_out(inet *src)
elog(ERROR, "unable to print address (%s)", strerror(errno));
return (NULL);
}
-#endif
}
else
{
diff --git a/src/backend/utils/adt/inet_net_pton.c b/src/backend/utils/adt/inet_net_pton.c
index 92a3de8885c..af34a15e598 100644
--- a/src/backend/utils/adt/inet_net_pton.c
+++ b/src/backend/utils/adt/inet_net_pton.c
@@ -16,7 +16,7 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static const char rcsid[] = "$Id: inet_net_pton.c,v 1.4 1998/10/12 15:56:34 momjian Exp $";
+static const char rcsid[] = "$Id: inet_net_pton.c,v 1.5 1998/10/17 03:59:14 momjian Exp $";
#endif
@@ -100,34 +100,32 @@ inet_net_pton_ipv4(const char *src, u_char *dst, size_t size)
ch = *src++;
if (ch == '0' && (src[0] == 'x' || src[0] == 'X')
- && isascii(src[1]) && isxdigit(src[1]))
- {
+ && isascii(src[1]) && isxdigit(src[1])) {
/* Hexadecimal: Eat nybble string. */
if (size <= 0)
goto emsgsize;
- tmp = 0;
dirty = 0;
- src++; /* skip x or X. */
- while ((ch = *src++) != '\0' &&
- isascii(ch) && isxdigit(ch))
- {
+ src++; /* skip x or X. */
+ while ((ch = *src++) != '\0' && isascii(ch) && isxdigit(ch)) {
if (isupper(ch))
ch = tolower(ch);
n = strchr(xdigits, ch) - xdigits;
assert(n >= 0 && n <= 15);
- tmp = (tmp << 4) | n;
+ if (dirty == 0)
+ tmp = n;
+ else
+ tmp = (tmp << 4) | n;
if (++dirty == 2) {
if (size-- <= 0)
goto emsgsize;
*dst++ = (u_char) tmp;
- tmp = 0, dirty = 0;
+ dirty = 0;
}
}
- if (dirty) {
+ if (dirty) { /* Odd trailing nybble? */
if (size-- <= 0)
goto emsgsize;
- tmp <<= 4;
- *dst++ = (u_char) tmp;
+ *dst++ = (u_char) (tmp << 4);
}
}
else if (isascii(ch) && isdigit(ch))