summaryrefslogtreecommitdiffstats
path: root/lib/libfetch
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>1998-11-05 19:48:17 +0000
committerdes <des@FreeBSD.org>1998-11-05 19:48:17 +0000
commite9582417392ed244d57d8d625ab335a3589831fe (patch)
treef937a3458c7c3f4987fe77d8a77a47b948807065 /lib/libfetch
parent58045d2d2c66cc826418c2c40735d7130c308a14 (diff)
downloadFreeBSD-src-e9582417392ed244d57d8d625ab335a3589831fe.zip
FreeBSD-src-e9582417392ed244d57d8d625ab335a3589831fe.tar.gz
First of a series of cleanups to libfetch. Changed files, in
alphabetical order: Makefile: Add common.c to SRCS. Make debugging easier by making 'CFLAGS += -DNDEBUG' conditional on DEBUG Don't declare struct {ftp,http}err in {ftp,http}err.c; use struct fetcherr instead. README: Remove the todo list, which is out of date anyway. common.c: (new file) Gather utility functions in this file. Merge the error reporting functions intp _fetch_errstring(), _fetch_seterr() and _fetch_syserr(). Set fetchLastErrCode and fetchLastErrText appropriately when fetchConnect fails. common.h: (new file) Gather internal prototypes and structures in this files. fetch.3: Undocument fetchFreeURL(). Document a few more known bugs. Document fetchLastErrCode and fetchLastErrText. fetch.c: Add descriptive comments to all functions that lacked them. Move fetchConnect() to common.c. Obviate the need for fetchFreeURL(), and remove it. fetch.h: Modify struct url_t so the document part is at the end. ftp.c: Remove code that is duplicated elsewhere. http.c: Remove code that is duplicated elsewhere. Prompted by: jkh
Diffstat (limited to 'lib/libfetch')
-rw-r--r--lib/libfetch/Makefile26
-rw-r--r--lib/libfetch/README17
-rw-r--r--lib/libfetch/common.c134
-rw-r--r--lib/libfetch/common.h44
-rw-r--r--lib/libfetch/fetch.337
-rw-r--r--lib/libfetch/fetch.c85
-rw-r--r--lib/libfetch/fetch.h6
-rw-r--r--lib/libfetch/ftp.c47
-rw-r--r--lib/libfetch/http.c17
9 files changed, 260 insertions, 153 deletions
diff --git a/lib/libfetch/Makefile b/lib/libfetch/Makefile
index 2afd8bb..ca48d06 100644
--- a/lib/libfetch/Makefile
+++ b/lib/libfetch/Makefile
@@ -1,8 +1,11 @@
-# $Id$
+# $Id: Makefile,v 1.5 1998/08/17 20:39:09 bde Exp $
LIB= fetch
-CFLAGS+= -I. -Wall -pedantic -DNDEBUG
-SRCS= fetch.c ftp.c http.c file.c
+CFLAGS+= -I. -Wall -pedantic
+.if !defined(DEBUG)
+CFLAGS+= -DNDEBUG
+.endif
+SRCS= fetch.c common.c ftp.c http.c file.c
DPSRCS= ftperr.c httperr.c
MAN3= fetch.3
CLEANFILES= ${DPSRCS}
@@ -17,11 +20,7 @@ beforeinstall:
${DESTDIR}/usr/include
ftperr.c: ftp.errors
- @echo "struct ftperr {" \ > ${.TARGET}
- @echo " const int num;" \ >> ${.TARGET}
- @echo " const char *string;" \ >> ${.TARGET}
- @echo "};" \ >> ${.TARGET}
- @echo "static struct ftperr _ftp_errlist[] = {" \ >> ${.TARGET}
+ @echo "static struct fetcherr _ftp_errlist[] = {" \ >> ${.TARGET}
@cat ${.ALLSRC} \
| grep -v ^# \
| sort \
@@ -30,13 +29,12 @@ ftperr.c: ftp.errors
done >> ${.TARGET}
@echo " { -1, \"Unknown FTP error\" }" >> ${.TARGET}
@echo "};" >> ${.TARGET}
+ @echo "#define _ftp_errstring(n) _fetch_errstring(_ftp_errlist, n)" >> ${.TARGET}
+ @echo "#define _ftp_seterr(n) _fetch_seterr(_ftp_errlist, n)" >> ${.TARGET}
+
httperr.c: http.errors
- @echo "struct httperr {" \ > ${.TARGET}
- @echo " const int num;" \ >> ${.TARGET}
- @echo " const char *string;" \ >> ${.TARGET}
- @echo "};" \ >> ${.TARGET}
- @echo "static struct httperr _http_errlist[] = {" \ >> ${.TARGET}
+ @echo "static struct fetcherr _http_errlist[] = {" \ >> ${.TARGET}
@cat ${.ALLSRC} \
| grep -v ^# \
| sort \
@@ -45,6 +43,8 @@ httperr.c: http.errors
done >> ${.TARGET}
@echo " { -1, \"Unknown HTTP error\" }" >> ${.TARGET}
@echo "};" >> ${.TARGET}
+ @echo "#define _http_errstring(n) _fetch_errstring(_http_errlist, n)" >> ${.TARGET}
+ @echo "#define _http_seterr(n) _fetch_seterr(_http_errlist, n)" >> ${.TARGET}
.include <bsd.lib.mk>
diff --git a/lib/libfetch/README b/lib/libfetch/README
index ce50f56..7b85376 100644
--- a/lib/libfetch/README
+++ b/lib/libfetch/README
@@ -3,19 +3,8 @@ library and provide a new, unified backend for all fetch(1),
pkg_add(1) and sysinstall(8).
Note that this is very much work in progress. It compiles (with a few
-warnings), but there is much left to be implemented. Amongst other
-items:
-
- * The man page needs work. Really. I mean it. Now.
-
- * HTTP authentication doesn't work. I'm not sure if I bungled http.c
- or fubared base64.c (which was ripped from MIT fetch(1)).
-
- * The library needs a decent interface for reporting errors. I've
- started on something (sending back an error code in the url_t that
- was sent in) but we're Not There (tm) yet.
-
-Comments, patches etc. of all kinds are welcome, but please don't
-commit anything without talking to me first.
+warnings), but there is much left to be implemented. Comments, patches
+etc. of all kinds are welcome, but please don't commit anything
+without talking to me first.
-- Dag-Erling C. Smørgrav (des@FreeBSD.org)
diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c
new file mode 100644
index 0000000..be0da67
--- /dev/null
+++ b/lib/libfetch/common.c
@@ -0,0 +1,134 @@
+/*-
+ * Copyright (c) 1998 Dag-Erling Coïdan Smørgrav
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer
+ * in this position and unchanged.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id$
+ */
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+#include <errno.h>
+#include <netdb.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "fetch.h"
+#include "common.h"
+
+/*** Local data **************************************************************/
+
+/*
+ * Error messages for resolver errors
+ */
+static struct fetcherr _netdb_errlist[] = {
+ { HOST_NOT_FOUND, "Host not found" },
+ { TRY_AGAIN, "Transient resolver failure" },
+ { NO_RECOVERY, "Non-recoverable resolver failure" },
+ { NO_DATA, "No address record" },
+ { -1, "Unknown resolver error" }
+};
+#define _netdb_errstring(n) _fetch_errstring(_netdb_errlist, n)
+#define _netdb_seterr(n) _fetch_seterr(_netdb_errlist, n)
+
+
+/*** Error-reporting functions ***********************************************/
+
+/*
+ * Map error code to string
+ */
+const char *
+_fetch_errstring(struct fetcherr *p, int e)
+{
+ while ((p->num != -1) && (p->num != e))
+ p++;
+
+ return p->string;
+}
+
+/*
+ * Set error code
+ */
+void
+_fetch_seterr(struct fetcherr *p, int e)
+{
+ fetchLastErrCode = e;
+ fetchLastErrText = _fetch_errstring(p, e);
+}
+
+/*
+ * Set error code according to errno
+ */
+void
+_fetch_syserr(void)
+{
+ fetchLastErrCode = errno;
+ fetchLastErrText = strerror(errno);
+}
+
+
+/*** Network-related utility functions ***************************************/
+
+/*
+ * Establish a TCP connection to the specified port on the specified host.
+ */
+int
+fetchConnect(char *host, int port)
+{
+ struct sockaddr_in sin;
+ struct hostent *he;
+ int sd;
+
+#ifndef NDEBUG
+ fprintf(stderr, "\033[1m---> %s:%d\033[m\n", host, port);
+#endif
+
+ /* look up host name */
+ if ((he = gethostbyname(host)) == NULL) {
+ _netdb_seterr(h_errno);
+ return -1;
+ }
+
+ /* set up socket address structure */
+ bzero(&sin, sizeof(sin));
+ bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
+ sin.sin_family = he->h_addrtype;
+ sin.sin_port = htons(port);
+
+ /* try to connect */
+ if ((sd = socket(sin.sin_family, SOCK_STREAM, IPPROTO_TCP)) == -1) {
+ _fetch_syserr();
+ return -1;
+ }
+ if (connect(sd, (struct sockaddr *)&sin, sizeof sin) == -1) {
+ _fetch_syserr();
+ close(sd);
+ return -1;
+ }
+
+ return sd;
+}
diff --git a/lib/libfetch/common.h b/lib/libfetch/common.h
new file mode 100644
index 0000000..f031b91
--- /dev/null
+++ b/lib/libfetch/common.h
@@ -0,0 +1,44 @@
+/*-
+ * Copyright (c) 1998 Dag-Erling Coïdan Smørgrav
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer
+ * in this position and unchanged.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $Id$
+ */
+
+#ifndef _COMMON_H_INCLUDED
+#define _COMMON_H_INCLUDED
+
+/* Structure used for error message lists */
+struct fetcherr {
+ const int num;
+ const char *string;
+};
+
+const char *_fetch_errstring(struct fetcherr *, int);
+void _fetch_seterr(struct fetcherr *, int);
+void _fetch_syserr(void);
+
+#endif
diff --git a/lib/libfetch/fetch.3 b/lib/libfetch/fetch.3
index c23d067..2b4c63a 100644
--- a/lib/libfetch/fetch.3
+++ b/lib/libfetch/fetch.3
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $Id: fetch.3,v 1.1.1.1 1998/07/09 16:52:43 des Exp $
+.\" $Id: fetch.3,v 1.2 1998/09/26 20:42:44 des Exp $
.\"
.Dd July 1, 1998
.Dt FETCH 3
@@ -31,7 +31,6 @@
.Nm fetchGetURL ,
.Nm fetchPutURL ,
.Nm fetchParseURL ,
-.Nm fetchFreeURL ,
.Nm fetchGet ,
.Nm fetchPut ,
.Nm fetchGetFile ,
@@ -49,8 +48,6 @@
.Fn fetchPutURL "char *URL" "char *flags"
.Ft url_t *
.Fn fetchParseURL "char *URL" "char *flags"
-.Ft void
-.Fn fetchFreeURL "url_t *u"
.Ft FILE *
.Fn fetchGet "url_t *URL" "char *flags"
.Ft FILE *
@@ -67,6 +64,8 @@
.Fn fetchGetFTP "url_t *u" "char *flags"
.Ft FILE *
.Fn fetchPutFTP "url_t *u" "char *flags"
+.Vt extern int fetchLastErrCode;
+.Vt extern const char *fetchLastErrText;
.Sh DESCRIPTION
These functions implement a high-level library for retrieving and
uploading files using Uniform Resource Locators (URLs).
@@ -100,7 +99,7 @@ and <document> components.
The pointer returned by
.Fn fetchParseURL
should be freed using
-.Fn fetchFreeURL .
+.Fn free .
.Pp
.Fn fetchGet
and
@@ -182,12 +181,13 @@ unable to allocate memory, or the URL is syntactically incorrect,
.Fn fetchParseURL
returns a NULL pointer.
.Pp
-.Fn fetchFreeURL
-does not return any value.
-.Pp
All other functions return a stream pointer which may be used to
-access the requested document. Upon failure of any kind, they return a
-NULL pointer.
+access the requested document, or NULL if an error occurred. In the
+latter case, the variables
+.Va fetchLastErrCode
+and
+.Va fetchLastErrText
+are set to appropriately descriptive values.
.Sh ENVIRONMENT
The FTP and HTTP related functions use the
.Ev HTTP_PROXY
@@ -259,6 +259,21 @@ code; as far as I can determine,
.Nm libfetch
handles HTTP/1.1 basic authentication correctly as outlined in
RFC2068, but I haven't been able to find an HTTP server that honors
-the Authentication: header field.
+the Authentication: header field. Also,
+.Nm libfetch
+does not attempt to interpret and respond to authentication requests
+from the HTTP server.
+.Pp
+No attempt is made to encode spaces etc. within URLs. Spaces in the
+document part of an URLshould be replaced with "%20" in HTTP URLs and
+"\\ " in FTP URLs.
+.Pp
+Error numbers are unique only within a certain context; the error
+codes used for FTP and HTTP overlap, as do those used for resolver and
+system errors. For instance, error code 202 means "Command not
+implemented, superfluous at this site" in an FTP context and
+"Accepted" in an HTTP context.
+.Pp
+The man page is poorly written and produces badly formatted text.
.Pp
Tons of other stuff.
diff --git a/lib/libfetch/fetch.c b/lib/libfetch/fetch.c
index 54421a2..226b628 100644
--- a/lib/libfetch/fetch.c
+++ b/lib/libfetch/fetch.c
@@ -25,20 +25,15 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: fetch.c,v 1.3 1998/07/11 21:29:07 des Exp $
+ * $Id: fetch.c,v 1.4 1998/08/17 09:30:19 des Exp $
*/
#include <sys/param.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
#include <ctype.h>
-#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <unistd.h>
#include "fetch.h"
@@ -51,6 +46,10 @@
int fetchLastErrCode;
const char *fetchLastErrText;
+/*
+ * Select the appropriate protocol for the URL scheme, and return a
+ * read-only stream connected to the document referenced by the URL.
+ */
FILE *
fetchGet(url_t *URL, char *flags)
{
@@ -64,6 +63,10 @@ fetchGet(url_t *URL, char *flags)
}
+/*
+ * Select the appropriate protocol for the URL scheme, and return a
+ * write-only stream connected to the document referenced by the URL.
+ */
FILE *
fetchPut(url_t *URL, char *flags)
{
@@ -76,7 +79,9 @@ fetchPut(url_t *URL, char *flags)
else return NULL;
}
-/* get URL */
+/*
+ * Attempt to parse the given URL; if successful, call fetchGet().
+ */
FILE *
fetchGetURL(char *URL, char *flags)
{
@@ -88,12 +93,14 @@ fetchGetURL(char *URL, char *flags)
f = fetchGet(u, flags);
- fetchFreeURL(u);
+ free(u);
return f;
}
-/* put URL */
+/*
+ * Attempt to parse the given URL; if successful, call fetchPut().
+ */
FILE *
fetchPutURL(char *URL, char *flags)
{
@@ -105,7 +112,7 @@ fetchPutURL(char *URL, char *flags)
f = fetchPut(u, flags);
- fetchFreeURL(u);
+ free(u);
return f;
}
@@ -171,11 +178,17 @@ fetchParseURL(char *URL)
nohost:
/* document */
- if (*p)
- u->doc = strdup(p);
- u->doc = strdup(*p ? p : "/");
- if (!u->doc)
- goto ouch;
+ if (*p) {
+ url_t *t;
+ t = realloc(u, sizeof(*u)+strlen(p)-1);
+ if (t == NULL)
+ goto ouch;
+ u = t;
+ strcpy(u->doc, p);
+ } else {
+ u->doc[0] = '/';
+ u->doc[1] = 0;
+ }
DEBUG(fprintf(stderr,
"scheme: [\033[1m%s\033[m]\n"
@@ -193,45 +206,3 @@ ouch:
free(u);
return NULL;
}
-
-void
-fetchFreeURL(url_t *u)
-{
- if (u) {
- if (u->doc)
- free(u->doc);
- free(u);
- }
-}
-
-int
-fetchConnect(char *host, int port)
-{
- struct sockaddr_in sin;
- struct hostent *he;
- int sd;
-
-#ifndef NDEBUG
- fprintf(stderr, "\033[1m---> %s:%d\033[m\n", host, port);
-#endif
-
- /* look up host name */
- if ((he = gethostbyname(host)) == NULL)
- return -1;
-
- /* set up socket address structure */
- bzero(&sin, sizeof(sin));
- bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
- sin.sin_family = he->h_addrtype;
- sin.sin_port = htons(port);
-
- /* try to connect */
- if ((sd = socket(sin.sin_family, SOCK_STREAM, IPPROTO_TCP)) == -1)
- return -1;
- if (connect(sd, (struct sockaddr *)&sin, sizeof sin) == -1) {
- close(sd);
- return -1;
- }
-
- return sd;
-}
diff --git a/lib/libfetch/fetch.h b/lib/libfetch/fetch.h
index 377edad..cc39e36 100644
--- a/lib/libfetch/fetch.h
+++ b/lib/libfetch/fetch.h
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: fetch.h,v 1.3 1998/07/11 21:29:08 des Exp $
+ * $Id: fetch.h,v 1.4 1998/08/17 09:30:19 des Exp $
*/
#ifndef _FETCH_H_INCLUDED
@@ -45,8 +45,8 @@ struct url_s {
char user[URL_USERLEN+1];
char pwd[URL_PWDLEN+1];
char host[MAXHOSTNAMELEN+1];
- char *doc;
- int port;
+ int port;
+ char doc[2];
};
typedef struct url_s url_t;
diff --git a/lib/libfetch/ftp.c b/lib/libfetch/ftp.c
index d66b7c3..1899d03 100644
--- a/lib/libfetch/ftp.c
+++ b/lib/libfetch/ftp.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: ftp.c,v 1.4 1998/07/12 22:34:39 des Exp $
+ * $Id: ftp.c,v 1.5 1998/08/17 09:30:19 des Exp $
*/
/*
@@ -70,6 +70,7 @@
#include <unistd.h>
#include "fetch.h"
+#include "common.h"
#include "ftperr.c"
#define FTP_DEFAULT_TO_ANONYMOUS
@@ -93,40 +94,6 @@ static FILE *cached_socket;
static char *_ftp_last_reply;
/*
- * Map error code to string
- */
-static const char *
-_ftp_errstring(int e)
-{
- struct ftperr *p = _ftp_errlist;
-
- while ((p->num != -1) && (p->num != e))
- p++;
-
- return p->string;
-}
-
-/*
- * Set error code
- */
-static void
-_ftp_seterr(int e)
-{
- fetchLastErrCode = e;
- fetchLastErrText = _ftp_errstring(e);
-}
-
-/*
- * Set error code according to errno
- */
-static void
-_ftp_syserr(void)
-{
- fetchLastErrCode = errno;
- fetchLastErrText = strerror(errno);
-}
-
-/*
* Get server response, check that first digit is a '2'
*/
static int
@@ -140,7 +107,7 @@ _ftp_chkerr(FILE *s, int *e)
do {
if (((line = fgetln(s, &len)) == NULL) || (len < 4)) {
- _ftp_syserr();
+ _fetch_syserr();
return -1;
}
} while (line[3] == '-');
@@ -217,7 +184,7 @@ _ftp_transfer(FILE *cf, char *oper, char *file, char *mode, int pasv)
/* open data socket */
if ((sd = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) {
- _ftp_syserr();
+ _fetch_syserr();
return NULL;
}
@@ -296,7 +263,7 @@ _ftp_transfer(FILE *cf, char *oper, char *file, char *mode, int pasv)
return df;
sysouch:
- _ftp_syserr();
+ _fetch_syserr();
ouch:
close(sd);
return NULL;
@@ -330,13 +297,13 @@ _ftp_connect(char *host, int port, char *user, char *pwd)
/* check connection */
if (sd == -1) {
- _ftp_syserr();
+ _fetch_syserr();
return NULL;
}
/* streams make life easier */
if ((f = fdopen(sd, "r+")) == NULL) {
- _ftp_syserr();
+ _fetch_syserr();
goto ouch;
}
diff --git a/lib/libfetch/http.c b/lib/libfetch/http.c
index 9ce86a9..aea3d1d 100644
--- a/lib/libfetch/http.c
+++ b/lib/libfetch/http.c
@@ -25,7 +25,7 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
- * $Id: http.c,v 1.4 1998/07/12 22:34:40 des Exp $
+ * $Id: http.c,v 1.5 1998/08/17 09:30:19 des Exp $
*/
/*
@@ -77,6 +77,7 @@
#include <unistd.h>
#include "fetch.h"
+#include "common.h"
#include "httperr.c"
#ifndef NDEBUG
@@ -103,20 +104,6 @@ struct cookie
};
/*
- * Look up error code
- */
-static const char *
-_http_errstring(int e)
-{
- struct httperr *p = _http_errlist;
-
- while ((p->num != -1) && (p->num != e))
- p++;
-
- return p->string;
-}
-
-/*
* Send a formatted line; optionally echo to terminal
*/
static int
OpenPOWER on IntegriCloud