diff options
author | jbj <devnull@localhost> | 2000-06-07 23:25:41 +0000 |
---|---|---|
committer | jbj <devnull@localhost> | 2000-06-07 23:25:41 +0000 |
commit | 6665bbbfc21a6e974486650fd314cfff579ddb83 (patch) | |
tree | 62270b00bc42e05377be30830207b12c36003032 /rpmio/rpmurl.h | |
parent | d307058775a45e1e1f8127fbecec69403d44187d (diff) | |
download | rpm-6665bbbfc21a6e974486650fd314cfff579ddb83.tar.gz rpm-6665bbbfc21a6e974486650fd314cfff579ddb83.tar.bz2 rpm-6665bbbfc21a6e974486650fd314cfff579ddb83.zip |
- create rpmio directory for librpmio.
CVS patchset: 3820
CVS date: 2000/06/07 23:25:41
Diffstat (limited to 'rpmio/rpmurl.h')
-rw-r--r-- | rpmio/rpmurl.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/rpmio/rpmurl.h b/rpmio/rpmurl.h new file mode 100644 index 000000000..bb7c2d979 --- /dev/null +++ b/rpmio/rpmurl.h @@ -0,0 +1,70 @@ +#ifndef H_RPMURL +#define H_RPMURL + +#include <assert.h> + +typedef enum { + URL_IS_UNKNOWN = 0, + URL_IS_DASH = 1, + URL_IS_PATH = 2, + URL_IS_FTP = 3, + URL_IS_HTTP = 4 +} urltype; + +#define URLMAGIC 0xd00b1ed0 +#define URLSANE(u) assert(u && u->magic == URLMAGIC) + +typedef /*@abstract@*/ /*@refcounted@*/ struct urlinfo { +/*@refs@*/ int nrefs; + const char * url; /* copy of original url */ + const char * service; + const char * user; + const char * password; + const char * host; + const char * portstr; + const char * proxyu; /* FTP: proxy user */ + const char * proxyh; /* FTP/HTTP: proxy host */ + int proxyp; /* FTP/HTTP: proxy port */ + int port; + int urltype; + FD_t ctrl; /* control channel */ + FD_t data; /* per-xfer data channel */ + int bufAlloced; /* sizeof I/O buffer */ + char *buf; /* I/O buffer */ + int openError; /* Type of open failure */ + int httpVersion; + int httpHasRange; + int magic; +} *urlinfo; + +#ifdef __cplusplus +extern "C" { +#endif + +extern int url_iobuf_size; + +urlinfo urlLink(urlinfo u, const char * msg); +urlinfo XurlLink(urlinfo u, const char * msg, const char * file, unsigned line); +#define urlLink(_u, _msg) XurlLink(_u, _msg, __FILE__, __LINE__) + +urlinfo urlNew(const char * msg); +urlinfo XurlNew(const char * msg, const char * file, unsigned line); +#define urlNew(_msg) XurlNew(_msg, __FILE__, __LINE__) + +urlinfo urlFree( /*@killref@*/ urlinfo u, const char * msg); +urlinfo XurlFree( /*@killref@*/ urlinfo u, const char * msg, const char * file, unsigned line); +#define urlFree(_u, _msg) XurlFree(_u, _msg, __FILE__, __LINE__) + +void urlFreeCache(void); + +urltype urlIsURL(const char * url); +int urlPath(const char * url, /*@out@*/ const char ** pathp); +int urlSplit(const char * url, /*@out@*/ urlinfo * u); + +int urlGetFile(const char * url, const char * dest); + +#ifdef __cplusplus +} +#endif + +#endif /* H_RPMURL */ |