summaryrefslogtreecommitdiff
path: root/rpmio/rpmurl.h
diff options
context:
space:
mode:
authorjbj <devnull@localhost>2000-06-07 23:25:41 +0000
committerjbj <devnull@localhost>2000-06-07 23:25:41 +0000
commit6665bbbfc21a6e974486650fd314cfff579ddb83 (patch)
tree62270b00bc42e05377be30830207b12c36003032 /rpmio/rpmurl.h
parentd307058775a45e1e1f8127fbecec69403d44187d (diff)
downloadrpm-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.h70
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 */