fetch.h revision 37535
1218799Snwhitehorn/*-
2218799Snwhitehorn * Copyright (c) 1998 Dag-Erling Co�dan Sm�rgrav
3218799Snwhitehorn * All rights reserved.
4263956Sdteske *
5218799Snwhitehorn * Redistribution and use in source and binary forms, with or without
6218799Snwhitehorn * modification, are permitted provided that the following conditions
7218799Snwhitehorn * are met:
8218799Snwhitehorn * 1. Redistributions of source code must retain the above copyright
9218799Snwhitehorn *    notice, this list of conditions and the following disclaimer
10218799Snwhitehorn *    in this position and unchanged.
11218799Snwhitehorn * 2. Redistributions in binary form must reproduce the above copyright
12218799Snwhitehorn *    notice, this list of conditions and the following disclaimer in the
13218799Snwhitehorn *    documentation and/or other materials provided with the distribution.
14218799Snwhitehorn * 3. The name of the author may not be used to endorse or promote products
15218799Snwhitehorn *    derived from this software without specific prior written permission
16218799Snwhitehorn *
17218799Snwhitehorn * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18218799Snwhitehorn * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19218799Snwhitehorn * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20218799Snwhitehorn * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21218799Snwhitehorn * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22218799Snwhitehorn * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23218799Snwhitehorn * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24218799Snwhitehorn * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25218799Snwhitehorn * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26218799Snwhitehorn * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27218799Snwhitehorn *
28218799Snwhitehorn *	$Id$
29263956Sdteske */
30263956Sdteske
31218799Snwhitehorn#ifndef _FETCH_H_INCLUDED
32263956Sdteske#define _FETCH_H_INCLUDED
33263956Sdteske
34218799Snwhitehorn#include <sys/param.h>
35263956Sdteske
36263956Sdteske#define _LIBFETCH_VER "libfetch/1.0"
37218799Snwhitehorn
38220088Snwhitehorn#define URL_SCHEMELEN 16
39220088Snwhitehorn#define URL_USERLEN 256
40218799Snwhitehorn#define URL_PWDLEN 256
41218799Snwhitehorn
42218799Snwhitehornstruct url_s {
43218799Snwhitehorn    char scheme[URL_SCHEMELEN+1];
44225637Snwhitehorn    char user[URL_USERLEN+1];
45218799Snwhitehorn    char pwd[URL_PWDLEN+1];
46218799Snwhitehorn    char host[MAXHOSTNAMELEN+1];
47218799Snwhitehorn    char *doc;
48218799Snwhitehorn    int port;
49218799Snwhitehorn    char *lasterr;
50263956Sdteske};
51218799Snwhitehorn
52263956Sdtesketypedef struct url_s url_t;
53263956Sdteske
54218799Snwhitehorn/* FILE-specific functions */
55218799SnwhitehornFILE	*fetchGetFile(url_t *, char *);
56218799SnwhitehornFILE	*fetchPutFile(url_t *, char *);
57218799Snwhitehorn
58218799Snwhitehorn/* HTTP-specific functions */
59218799Snwhitehornchar	*fetchContentType(FILE *f);
60218799SnwhitehornFILE	*fetchGetHTTP(url_t *, char *);
61218799SnwhitehornFILE	*fetchPutHTTP(url_t *, char *);
62218799Snwhitehorn
63219615Snwhitehorn/* FTP-specific functions */
64219615SnwhitehornFILE	*fetchGetFTP(url_t *, char *);
65248237SnwhitehornFILE	*fetchPutFTP(url_t *, char *);
66218947Snwhitehorn
67219615Snwhitehorn/* Generic functions */
68248237Snwhitehornurl_t	*fetchParseURL(char *URL);
69248237Snwhitehornvoid	 fetchFreeURL(url_t *u);
70248237SnwhitehornFILE	*fetchGetURL(char *, char *);
71248237SnwhitehornFILE	*fetchPutURL(char *, char *);
72248237Snwhitehorn
73248237Snwhitehorn
74219615Snwhitehorn#endif
75219615Snwhitehorn