aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES5
-rw-r--r--configure.in3
-rw-r--r--docs/curl_easy_perform.34
-rw-r--r--docs/curl_slist_append.34
-rw-r--r--include/curl/curl.h2
-rw-r--r--lib/url.c37
-rw-r--r--src/version.h2
-rw-r--r--tests/data/reply110001.txt1
8 files changed, 50 insertions, 8 deletions
diff --git a/CHANGES b/CHANGES
index a94af051e..745c350f4 100644
--- a/CHANGES
+++ b/CHANGES
@@ -8,6 +8,11 @@
** curl 7.7 DOES NOT currently WORK. **
+Daniel (4 March 2001)
+- Now, there's even a basic check that a re-used connection is still alive
+ before it is assumed so. A few first tests have proven that libcurl will
+ then re-connect instead of re-use the dead connection!
+
Daniel (2 March 2001)
- Now they work intermixed as well. Major coolness!
diff --git a/configure.in b/configure.in
index 91409d174..5feb45ff7 100644
--- a/configure.in
+++ b/configure.in
@@ -733,5 +733,6 @@ AC_OUTPUT( Makefile \
packages/Linux/Makefile \
packages/Linux/RPM/Makefile \
packages/Linux/RPM/curl.spec \
- packages/Linux/RPM/curl-ssl.spec )
+ packages/Linux/RPM/curl-ssl.spec \
+ tiny/Makefile )
diff --git a/docs/curl_easy_perform.3 b/docs/curl_easy_perform.3
index edf7875e9..f892fd3fe 100644
--- a/docs/curl_easy_perform.3
+++ b/docs/curl_easy_perform.3
@@ -2,7 +2,7 @@
.\" nroff -man [file]
.\" Written by daniel@haxx.se
.\"
-.TH curl_easy_perform 3 "25 Jan 2001" "Curl 7.0" "libcurl Manual"
+.TH curl_easy_perform 3 "1 Mar 2001" "Curl 7.0" "libcurl Manual"
.SH NAME
curl_easy_perform - Do the actual transfer in a "easy" session
.SH SYNOPSIS
@@ -25,7 +25,7 @@ again first.
.I <curl/curl.h>
defines. If the CURLOPT_ERRORBUFFER was set with
.I curl_easy_setopt
-there willo be a readable error message in the error buffer when non-zero is
+there will be a readable error message in the error buffer when non-zero is
returned.
.SH "SEE ALSO"
.BR curl_easy_init "(3), " curl_easy_setopt "(3), "
diff --git a/docs/curl_slist_append.3 b/docs/curl_slist_append.3
index 42dd27982..3780980db 100644
--- a/docs/curl_slist_append.3
+++ b/docs/curl_slist_append.3
@@ -2,14 +2,14 @@
.\" nroff -man [file]
.\" Written by daniel@haxx.se
.\"
-.TH curl_slist_append 3 "2 June 2000" "Curl 7.0" "libcurl Manual"
+.TH curl_slist_append 3 "1 Mar 2001" "Curl 7.7" "libcurl Manual"
.SH NAME
curl_slist_append - add a string to an slist
.SH SYNOPSIS
.B #include <curl/curl.h>
.sp
.BI "struct curl_slist *curl_slist_append(struct curl_slit *" list,
-.BI "char * "string ");"
+.BI "const char * "string ");"
.ad
.SH DESCRIPTION
curl_slist_append() appends a specified string to a linked list of
diff --git a/include/curl/curl.h b/include/curl/curl.h
index d36e654d3..b88ef35fb 100644
--- a/include/curl/curl.h
+++ b/include/curl/curl.h
@@ -458,7 +458,7 @@ char *curl_getenv(char *variable);
char *curl_version(void);
/* This is the version number */
-#define LIBCURL_VERSION "7.7-alpha1"
+#define LIBCURL_VERSION "7.7-alpha2"
#define LIBCURL_VERSION_NUM 0x070000
/* linked-list structure for the CURLOPT_QUOTE option (and other) */
diff --git a/lib/url.c b/lib/url.c
index 9318d4132..123e5d480 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -576,6 +576,32 @@ CURLcode curl_disconnect(CURLconnect *c_connect)
}
/*
+ * This function should return TRUE if the socket is to be assumed to
+ * be dead. Most commonly this happens when the server has closed the
+ * connection due to inactivity.
+ */
+static bool SocketIsDead(int sock)
+{
+ int sval;
+ bool ret_val = TRUE;
+ fd_set check_set;
+ struct timeval to;
+
+ FD_ZERO(&check_set);
+ FD_SET(sock,&check_set);
+
+ to.tv_sec = 0;
+ to.tv_usec = 1;
+
+ sval = select(sock + 1, &check_set, 0, 0, &to);
+ if(sval == 0)
+ /* timeout */
+ ret_val = FALSE;
+
+ return ret_val;
+}
+
+/*
* Given one filled in connection struct, this function should detect if there
* already is one that have all the significant details exactly the same and
* thus should be used instead.
@@ -609,6 +635,16 @@ ConnectionExists(struct UrlData *data,
continue;
}
}
+ {
+ bool dead;
+ dead = SocketIsDead(check->firstsocket);
+ if(dead) {
+ infof(data, "Connection %d seems to be dead!\n", i);
+ curl_disconnect(check); /* disconnect resources */
+ data->connects[i]=NULL; /* nothing here */
+ continue; /* try another one now */
+ }
+ }
*usethis = check;
return TRUE; /* yes, we found one to use! */
}
@@ -909,7 +945,6 @@ static CURLcode ConnectPlease(struct UrlData *data,
return CURLE_OK;
}
-
static CURLcode _connect(CURL *curl,
CURLconnect **in_connect,
bool allow_port) /* allow data->use_port ? */
diff --git a/src/version.h b/src/version.h
index a5860e6ea..71710ab13 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1,3 +1,3 @@
#define CURL_NAME "curl"
-#define CURL_VERSION "7.7-alpha1"
+#define CURL_VERSION "7.7-alpha2"
#define CURL_ID CURL_NAME " " CURL_VERSION " (" OS ") "
diff --git a/tests/data/reply110001.txt b/tests/data/reply110001.txt
index 18caf57c4..79bd04503 100644
--- a/tests/data/reply110001.txt
+++ b/tests/data/reply110001.txt
@@ -2,6 +2,7 @@ HTTP/1.1 301 This is a weirdo text message
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Location: data/110002.txt?coolsite=yes
+Connection: close
HTTP/1.1 200 Followed here fine
Date: Thu, 09 Nov 2010 14:49:00 GMT