aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2005-03-16 22:01:39 +0000
committerDaniel Stenberg <daniel@haxx.se>2005-03-16 22:01:39 +0000
commit61133545f6790f3d6ae4fcfdb4bc7a3156a17cdd (patch)
treecc692c119c515f6ff6a0cc9250e8ded8ae96b92f
parentbf87d13f5b94aed8876d2c950faeadf7e6636128 (diff)
- Tru64 and some IRIX boxes seem to not like test 237 as it is. Their
inet_addr() functions seems to use &255 on all numericals in a ipv4 dotted address which makes a different failure... Now I've modified the ipv4 resolve code to use inet_pton() instead in an attempt to make these systems better detect this as a bad IP address rather than creating a toally bogus address that is then passed on and used.
-rw-r--r--CHANGES13
-rw-r--r--lib/hostip4.c5
-rw-r--r--lib/inet_pton.h10
3 files changed, 20 insertions, 8 deletions
diff --git a/CHANGES b/CHANGES
index d6308e19a..28a9f65c4 100644
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,19 @@
Changelog
+Daniel (16 March 2005)
+- Tru64 and some IRIX boxes seem to not like test 237 as it is. Their
+ inet_addr() functions seems to use &255 on all numericals in a ipv4 dotted
+ address which makes a different failure... Now I've modified the ipv4
+ resolve code to use inet_pton() instead in an attempt to make these systems
+ better detect this as a bad IP address rather than creating a toally bogus
+ address that is then passed on and used.
+
+Daniel (15 March 2005)
+- Added test 237 and 238: test EPSV and PASV response handling when they get
+ well- formated data back but using illegal values. In 237 PASV gets an IP
+ address that is way bad. In 238 EPSV gets a port that is way out of range.
+
Daniel (14 March 2005)
- Added a few missing features to the curl-config --features list
diff --git a/lib/hostip4.c b/lib/hostip4.c
index ebbb9e375..97c42360a 100644
--- a/lib/hostip4.c
+++ b/lib/hostip4.c
@@ -79,6 +79,7 @@
#include "share.h"
#include "strerror.h"
#include "url.h"
+#include "inet_pton.h"
#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -202,11 +203,9 @@ Curl_addrinfo *Curl_getaddrinfo(struct connectdata *conn,
*waitp = 0; /* don't wait, we act synchronously */
- in=inet_addr(hostname);
- if (in != CURL_INADDR_NONE) {
+ if(1 == inet_pton(AF_INET, hostname, &in))
/* This is a dotted IP address 123.123.123.123-style */
return Curl_ip2addr(in, hostname, port);
- }
#if defined(HAVE_GETHOSTBYNAME_R)
/*
diff --git a/lib/inet_pton.h b/lib/inet_pton.h
index b0a70d457..6d911eb7b 100644
--- a/lib/inet_pton.h
+++ b/lib/inet_pton.h
@@ -1,10 +1,10 @@
#ifndef __INET_PTON_H
#define __INET_PTON_H
/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2004, Daniel Stenberg, <daniel@haxx.se>, et al.
@@ -12,7 +12,7 @@
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at http://curl.haxx.se/docs/copyright.html.
- *
+ *
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.