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