Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

rpmio/rpmurl.h File Reference

More...

#include <assert.h>

Go to the source code of this file.

Data Structures

struct  urlinfo_s
 URL control structure. More...


Defines

#define URLMAGIC   0xd00b1ed0
#define URLSANE(u)   assert(u && u->magic == URLMAGIC)
#define RPMURL_IOBUF_SIZE   4096
#define RPMURL_DEBUG_IO   0x40000000
#define RPMURL_DEBUG_REFS   0x20000000
#define urlNew(_msg)   XurlNew(_msg, __FILE__, __LINE__)
#define urlLink(_u, _msg)   XurlLink(_u, _msg, __FILE__, __LINE__)
#define urlFree(_u, _msg)   XurlFree(_u, _msg, __FILE__, __LINE__)

Typedefs

typedef enum urltype_e urltype
 Supported URL types.

typedef urlinfo_surlinfo

Enumerations

enum  urltype_e {
  URL_IS_UNKNOWN = 0, URL_IS_DASH = 1, URL_IS_PATH = 2, URL_IS_FTP = 3,
  URL_IS_HTTP = 4
}
 Supported URL types. More...


Functions

urlinfo urlNew (const char *msg)
 Create a URL control structure instance.

urlinfo XurlNew (const char *msg, const char *file, unsigned line)
urlinfo urlLink (urlinfo u, const char *msg)
 Reference a URL control structure instance.

urlinfo XurlLink (urlinfo u, const char *msg, const char *file, unsigned line)
urlinfo urlFree (urlinfo u, const char *msg)
 Dereference a URL control structure instance.

urlinfo XurlFree (urlinfo u, const char *msg, const char *file, unsigned line)
void urlFreeCache (void)
 Free cached URL control structures.

urltype urlIsURL (const char *url)
 Return type of URL.

urltype urlPath (const char *url, const char **pathp)
 Return path component of URL.

int urlSplit (const char *url, urlinfo *uret)
 Parse URL string into a control structure.

int urlGetFile (const char *url, const char *dest)
 Copy data from URL to local file.


Variables

int _url_count
urlinfo_url_cache
int _url_iobuf_size
int _url_debug


Detailed Description

Definition in file rpmurl.h.


Define Documentation

#define RPMURL_DEBUG_IO   0x40000000
 

Definition at line 76 of file rpmurl.h.

#define RPMURL_DEBUG_REFS   0x20000000
 

Definition at line 77 of file rpmurl.h.

#define RPMURL_IOBUF_SIZE   4096
 

Definition at line 72 of file rpmurl.h.

#define urlFree _u,
_msg       XurlFree(_u, _msg, __FILE__, __LINE__)
 

Definition at line 120 of file rpmurl.h.

Referenced by ufdClose(), urlConnect(), urlFind(), urlFreeCache(), and urlSplit().

#define urlLink _u,
_msg       XurlLink(_u, _msg, __FILE__, __LINE__)
 

Definition at line 103 of file rpmurl.h.

Referenced by ftpOpen(), httpOpen(), ufdGetUrlinfo(), urlConnect(), and urlFind().

#define URLMAGIC   0xd00b1ed0
 

Definition at line 21 of file rpmurl.h.

Referenced by XurlNew().

#define urlNew _msg       XurlNew(_msg, __FILE__, __LINE__)
 

Definition at line 89 of file rpmurl.h.

Referenced by urlSplit().

#define URLSANE      assert(u && u->magic == URLMAGIC)
 

Definition at line 22 of file rpmurl.h.

Referenced by checkResponse(), ftpAbort(), ftpCheckResponse(), ftpCommand(), ftpFileDone(), ftpLogin(), ftpReq(), httpReq(), httpResp(), urlFind(), XurlFree(), and XurlLink().


Typedef Documentation

typedef struct urlinfo_s* urlinfo
 

Definition at line 24 of file rpmurl.h.

typedef enum urltype_e urltype
 

Supported URL types.

Referenced by domd5(), doPatch(), doUntar(), rpmioFileExists(), ufdOpen(), urlIsURL(), and urlPath().


Enumeration Type Documentation

enum urltype_e
 

Supported URL types.

Enumeration values:
URL_IS_UNKNOWN  unknown (aka a file)
URL_IS_DASH  stdin/stdout
URL_IS_PATH  file://...
URL_IS_FTP  ftp://...
URL_IS_HTTP  http://...

Definition at line 13 of file rpmurl.h.


Function Documentation

urlinfo urlFree urlinfo    u,
const char *    msg
 

Dereference a URL control structure instance.

Parameters:
u  URL control structure
msg  debugging identifier (unused)
Returns:
dereferenced instance (NULL if freed)

void urlFreeCache void   
 

Free cached URL control structures.

Definition at line 162 of file url.c.

References _, _free(), _url_count, and urlFree.

Referenced by main().

int urlGetFile const char *    url,
const char *    dest
 

Copy data from URL to local file.

Parameters:
url  url string of source
dest  file name of destination
Returns:
0 on success, otherwise FTPERR_* code

Definition at line 510 of file url.c.

References _, Fclose(), Ferror(), Fopen(), Fstrerror(), FTPERR_UNKNOWN, RPMMESS_DEBUG, rpmMessage, ufdGetFile(), Unlink(), URL_IS_DASH, URL_IS_FTP, URL_IS_HTTP, URL_IS_PATH, URL_IS_UNKNOWN, and urlPath().

Referenced by doUntar(), and rpmInstall().

urltype urlIsURL const char *    url
 

Return type of URL.

Parameters:
url  url string
Returns:
type of url

Definition at line 352 of file url.c.

References urlstring::leadin, urlstring::ret, URL_IS_UNKNOWN, urlstrings, and urltype.

Referenced by Fopen(), Fts_open(), main(), rpmInstall(), runScript(), urlPath(), urlSplit(), and urlStrerror().

urlinfo urlLink urlinfo    u,
const char *    msg
 

Reference a URL control structure instance.

Parameters:
u  URL control structure
msg  debugging identifier (unused)
Returns:
referenced instance

urlinfo urlNew const char *    msg
 

Create a URL control structure instance.

Parameters:
msg  debugging identifier (unused)
Returns:
new instance

urltype urlPath const char *    url,
const char **    pathp
 

Return path component of URL.

Parameters:
url  url string
Return values:
pathp  pointer to path component of url
Returns:
type of url

Definition at line 371 of file url.c.

References URL_IS_DASH, URL_IS_FTP, URL_IS_HTTP, URL_IS_PATH, URL_IS_UNKNOWN, urlIsURL(), and urltype.

Referenced by Access(), addFile(), buildForTarget(), Chdir(), db3close(), db3open(), doFoo(), domd5(), doPatch(), doScript(), doSetupMacro(), doUntar(), ftpCmd(), ftpNLST(), genCpioListAndHeader(), Glob(), handlePreambleTag(), Link(), Lstat(), makeTempFile(), Mkdir(), myGlobPatternP(), Opendir(), parseSpec(), processBinaryFile(), processPubkeyFile(), processSourceFiles(), Readlink(), Rename(), Rmdir(), rpmGenPath(), rpmGlob(), rpmGraph(), rpmInstall(), rpmioFileExists(), rpmMkdirPath(), rpmpsmStage(), Stat(), ufdOpen(), Unlink(), and urlGetFile().

int urlSplit const char *    url,
urlinfo   uret
 

Parse URL string into a control structure.

Parameters:
url  url string
Return values:
uret  address of new control instance pointer
Returns:
0 on success, -1 on error

Definition at line 413 of file url.c.

References _, _free(), urlinfo_s::host, IPPORT_FTP, IPPORT_HTTP, urlinfo_s::password, urlinfo_s::port, urlinfo_s::portstr, RPMMESS_ERROR, rpmMessage, urlinfo_s::service, urlinfo_s::url, URL_IS_FTP, URL_IS_HTTP, urlFind(), urlFree, urlIsURL(), urlNew, urlinfo_s::urltype, urlinfo_s::user, and xstrdup().

Referenced by doScript(), httpOpen(), urlConnect(), and urlStrerror().

urlinfo XurlFree urlinfo    u,
const char *    msg,
const char *    file,
unsigned    line
 

Todo:
Remove debugging entry from the ABI.

Definition at line 97 of file url.c.

References _, _free(), urlinfo_s::buf, urlinfo_s::ctrl, urlinfo_s::data, Fclose(), fdGetFp(), fdPush(), urlinfo_s::host, urlinfo_s::nrefs, urlinfo_s::password, urlinfo_s::portstr, urlinfo_s::proxyh, urlinfo_s::proxyu, urlinfo_s::service, urlinfo_s::url, URLDBGREFS, URLSANE, and urlinfo_s::user.

urlinfo XurlLink urlinfo    u,
const char *    msg,
const char *    file,
unsigned    line
 

Todo:
Remove debugging entry from the ABI.

Definition at line 67 of file url.c.

References urlinfo_s::nrefs, URLDBGREFS, and URLSANE.

Referenced by XurlNew().

urlinfo XurlNew const char *    msg,
const char *    file,
unsigned    line
 

Todo:
Remove debugging entry from the ABI.

Definition at line 77 of file url.c.

References urlinfo_s::buf, urlinfo_s::bufAlloced, urlinfo_s::ctrl, urlinfo_s::data, urlinfo_s::httpHasRange, urlinfo_s::httpVersion, urlinfo_s::magic, urlinfo_s::nrefs, urlinfo_s::port, urlinfo_s::proxyp, URL_IS_UNKNOWN, URLMAGIC, urlinfo_s::urltype, xmalloc(), and XurlLink().


Variable Documentation

urlinfo* _url_cache
 

URL cache.

Definition at line 68 of file rpmurl.h.

int _url_count
 

No. of cached URL's.

Definition at line 64 of file rpmurl.h.

Referenced by urlFind(), and urlFreeCache().

int _url_debug
 

URL debugging?

Definition at line 75 of file rpmurl.h.

int _url_iobuf_size
 

Initial size of URL I/O buffer.

Definition at line 71 of file rpmurl.h.


Generated on Sun Oct 26 13:02:08 2003 for rpm by doxygen1.2.18