14ca1ab94SDag-Erling Smørgrav /*- 24ca1ab94SDag-Erling Smørgrav * Copyright (c) 1998 Dag-Erling Co�dan Sm�rgrav 34ca1ab94SDag-Erling Smørgrav * All rights reserved. 44ca1ab94SDag-Erling Smørgrav * 54ca1ab94SDag-Erling Smørgrav * Redistribution and use in source and binary forms, with or without 64ca1ab94SDag-Erling Smørgrav * modification, are permitted provided that the following conditions 74ca1ab94SDag-Erling Smørgrav * are met: 84ca1ab94SDag-Erling Smørgrav * 1. Redistributions of source code must retain the above copyright 94ca1ab94SDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer 104ca1ab94SDag-Erling Smørgrav * in this position and unchanged. 114ca1ab94SDag-Erling Smørgrav * 2. Redistributions in binary form must reproduce the above copyright 124ca1ab94SDag-Erling Smørgrav * notice, this list of conditions and the following disclaimer in the 134ca1ab94SDag-Erling Smørgrav * documentation and/or other materials provided with the distribution. 144ca1ab94SDag-Erling Smørgrav * 3. The name of the author may not be used to endorse or promote products 154ca1ab94SDag-Erling Smørgrav * derived from this software without specific prior written permission 164ca1ab94SDag-Erling Smørgrav * 174ca1ab94SDag-Erling Smørgrav * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 184ca1ab94SDag-Erling Smørgrav * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 194ca1ab94SDag-Erling Smørgrav * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 204ca1ab94SDag-Erling Smørgrav * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 214ca1ab94SDag-Erling Smørgrav * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 224ca1ab94SDag-Erling Smørgrav * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 234ca1ab94SDag-Erling Smørgrav * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 244ca1ab94SDag-Erling Smørgrav * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 254ca1ab94SDag-Erling Smørgrav * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 264ca1ab94SDag-Erling Smørgrav * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 274ca1ab94SDag-Erling Smørgrav * 284ca1ab94SDag-Erling Smørgrav * $Id$ 294ca1ab94SDag-Erling Smørgrav */ 304ca1ab94SDag-Erling Smørgrav 314ca1ab94SDag-Erling Smørgrav #ifndef _FETCH_H_INCLUDED 324ca1ab94SDag-Erling Smørgrav #define _FETCH_H_INCLUDED 334ca1ab94SDag-Erling Smørgrav 344ca1ab94SDag-Erling Smørgrav #include <sys/param.h> 354ca1ab94SDag-Erling Smørgrav 364ca1ab94SDag-Erling Smørgrav #define _LIBFETCH_VER "libfetch/1.0" 374ca1ab94SDag-Erling Smørgrav 384ca1ab94SDag-Erling Smørgrav #define URL_SCHEMELEN 16 394ca1ab94SDag-Erling Smørgrav #define URL_USERLEN 256 404ca1ab94SDag-Erling Smørgrav #define URL_PWDLEN 256 414ca1ab94SDag-Erling Smørgrav 424ca1ab94SDag-Erling Smørgrav struct url_s { 434ca1ab94SDag-Erling Smørgrav char scheme[URL_SCHEMELEN+1]; 444ca1ab94SDag-Erling Smørgrav char user[URL_USERLEN+1]; 454ca1ab94SDag-Erling Smørgrav char pwd[URL_PWDLEN+1]; 464ca1ab94SDag-Erling Smørgrav char host[MAXHOSTNAMELEN+1]; 474ca1ab94SDag-Erling Smørgrav char *doc; 484ca1ab94SDag-Erling Smørgrav int port; 494ca1ab94SDag-Erling Smørgrav char *lasterr; 504ca1ab94SDag-Erling Smørgrav }; 514ca1ab94SDag-Erling Smørgrav 524ca1ab94SDag-Erling Smørgrav typedef struct url_s url_t; 534ca1ab94SDag-Erling Smørgrav 544ca1ab94SDag-Erling Smørgrav /* FILE-specific functions */ 554ca1ab94SDag-Erling Smørgrav FILE *fetchGetFile(url_t *, char *); 564ca1ab94SDag-Erling Smørgrav FILE *fetchPutFile(url_t *, char *); 574ca1ab94SDag-Erling Smørgrav 584ca1ab94SDag-Erling Smørgrav /* HTTP-specific functions */ 594ca1ab94SDag-Erling Smørgrav char *fetchContentType(FILE *f); 604ca1ab94SDag-Erling Smørgrav FILE *fetchGetHTTP(url_t *, char *); 614ca1ab94SDag-Erling Smørgrav FILE *fetchPutHTTP(url_t *, char *); 624ca1ab94SDag-Erling Smørgrav 634ca1ab94SDag-Erling Smørgrav /* FTP-specific functions */ 644ca1ab94SDag-Erling Smørgrav FILE *fetchGetFTP(url_t *, char *); 654ca1ab94SDag-Erling Smørgrav FILE *fetchPutFTP(url_t *, char *); 664ca1ab94SDag-Erling Smørgrav 674ca1ab94SDag-Erling Smørgrav /* Generic functions */ 684ca1ab94SDag-Erling Smørgrav url_t *fetchParseURL(char *URL); 694ca1ab94SDag-Erling Smørgrav void fetchFreeURL(url_t *u); 704ca1ab94SDag-Erling Smørgrav FILE *fetchGetURL(char *, char *); 714ca1ab94SDag-Erling Smørgrav FILE *fetchPutURL(char *, char *); 724ca1ab94SDag-Erling Smørgrav 734ca1ab94SDag-Erling Smørgrav 744ca1ab94SDag-Erling Smørgrav #endif 75