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 urlFind(), urlFreeCache(), and urlSplit().

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

Definition at line 103 of file rpmurl.h.

Referenced by 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.

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

Definition at line 22 of file rpmurl.h.

Referenced by checkResponse(), ftpCheckResponse(), ftpCommand(), ftpLogin(), urlFind(), XurlFree(), and XurlLink().


Typedef Documentation

typedef struct urlinfo_s* urlinfo
 

Definition at line 24 of file rpmurl.h.

Referenced by checkResponse(), doScript(), ftpNLST(), urlFind(), urlStrerror(), XurlFree(), XurlLink(), and XurlNew().

typedef enum urltype_e urltype
 

Supported URL types.

Referenced by domd5(), doPatch(), doUntar(), and rpmioFileExists().


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_cache, _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 FTPERR_UNKNOWN.

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.

Referenced by main(), rpmInstall(), runScript(), 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, and URL_IS_UNKNOWN.

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

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 urlFree.

Referenced by doScript(), 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 _, FDIO_s::_fdderef, FDIO_s::_fileno, _free(), urlinfo_s::buf, FDIO_s::close, urlinfo_s::ctrl, urlinfo_s::data, Fclose(), fdGetFp(), fdio, fdPush(), fpio, 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, urlinfo, 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, urlinfo, 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::bufAlloced, urlinfo_s::data, urlinfo_s::httpHasRange, URL_IS_UNKNOWN, urlinfo, URLMAGIC, xmalloc(), and XurlLink().


Variable Documentation

urlinfo* _url_cache
 

URL cache.

Definition at line 68 of file rpmurl.h.

Referenced by urlFind(), and urlFreeCache().

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.

Referenced by checkResponse(), and ftpNLST().


Generated on Fri Apr 16 16:34:02 2004 for rpm by doxygen 1.3.6