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

rpmio/url.c File Reference

More...

#include "system.h"
#include <netinet/in.h>
#include <rpmmacro.h>
#include <rpmmessages.h>
#include <rpmio_internal.h>
#include "debug.h"

Go to the source code of this file.

Data Structures

struct  urlstring

Defines

#define IPPORT_FTP   21
#define IPPORT_HTTP   80
#define URLDBG(_f, _m, _x)   if ((_url_debug | (_f)) & (_m)) fprintf _x
#define URLDBGIO(_f, _x)   URLDBG((_f), RPMURL_DEBUG_IO, _x)
#define URLDBGREFS(_f, _x)   URLDBG((_f), RPMURL_DEBUG_REFS, _x)

Functions

void * _free (const void *p)
 Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.

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

int urlStrcmp (const char *str1, const char *str2)
void urlFind (urlinfo *uret, int mustAsk)
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_iobuf_size = RPMURL_IOBUF_SIZE
int _url_debug = 0
urlinfo_url_cache = NULL
int _url_count = 0
urlstring urlstrings []


Detailed Description

Definition in file url.c.


Define Documentation

#define IPPORT_FTP   21
 

Definition at line 19 of file url.c.

Referenced by urlSplit().

#define IPPORT_HTTP   80
 

Definition at line 22 of file url.c.

Referenced by urlSplit().

#define URLDBG _f,
_m,
_x       if ((_url_debug | (_f)) & (_m)) fprintf _x
 

Definition at line 35 of file url.c.

#define URLDBGIO _f,
_x       URLDBG((_f), RPMURL_DEBUG_IO, _x)
 

Definition at line 37 of file url.c.

#define URLDBGREFS _f,
_x       URLDBG((_f), RPMURL_DEBUG_REFS, _x)
 

Definition at line 38 of file url.c.

Referenced by XurlFree(), and XurlLink().


Function Documentation

void* _free const void *    p [inline, static]
 

Wrapper to free(3), hides const compilation noise, permit NULL, return NULL.

Parameters:
p  memory to free
Return values:
NULL  always

Definition at line 61 of file url.c.

void urlFind urlinfo   uret,
int    mustAsk
[static]
 

Definition at line 195 of file url.c.

References _, _free(), _url_count, alloca(), urlinfo_s::host, urlinfo_s::password, urlinfo_s::portstr, urlinfo_s::proxyh, urlinfo_s::proxyp, urlinfo_s::proxyu, rpmExpand(), urlinfo_s::service, stpcpy(), URL_IS_FTP, URL_IS_HTTP, urlFree, urlLink, URLSANE, urlStrcmp(), urlinfo_s::urltype, urlinfo_s::user, xmalloc(), xrealloc(), and xstrdup().

Referenced by urlSplit().

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().

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().

int urlStrcmp const char *    str1,
const char *    str2
[static]
 

Definition at line 182 of file url.c.

Referenced by urlFind().

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 = NULL
 

URL cache.

Definition at line 45 of file url.c.

int _url_count = 0
 

No. of cached URL's.

Definition at line 52 of file url.c.

Referenced by urlFind(), and urlFreeCache().

int _url_debug = 0
 

URL debugging?

Definition at line 33 of file url.c.

int _url_iobuf_size = RPMURL_IOBUF_SIZE
 

Initial size of URL I/O buffer.

Definition at line 28 of file url.c.

struct urlstring urlstrings[] [static]
 

Referenced by urlIsURL().


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