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

rpmio/url.c File Reference

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

Include dependency graph for url.c:

Go to the source code of this file.

Data Structures

struct  urlstring

Defines

#define IPPORT_FTP   21
#define IPPORT_HTTP   80
#define IPPORT_HTTPS   443
#define IPPORT_PGPKEYSERVER   11371
#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

static 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.
static int urlStrcmp (const char *str1, const char *str2)
static 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
static struct urlstring urlstrings []


Detailed Description

Definition in file url.c.


Define Documentation

#define IPPORT_FTP   21
 

Definition at line 19 of file url.c.

#define IPPORT_HTTP   80
 

Definition at line 22 of file url.c.

#define IPPORT_HTTPS   443
 

Definition at line 25 of file url.c.

Referenced by urlSplit().

#define IPPORT_PGPKEYSERVER   11371
 

Definition at line 28 of file url.c.

Referenced by urlSplit().

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

Definition at line 41 of file url.c.

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

Definition at line 43 of file url.c.

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

Definition at line 44 of file url.c.

Referenced by XurlFree(), and XurlLink().


Function Documentation

static 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 63 of file url.c.

static void urlFind urlinfo uret,
int  mustAsk
[static]
 

Definition at line 197 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::scheme, stpcpy(), URL_IS_FTP, URL_IS_HKP, URL_IS_HTTP, URL_IS_HTTPS, 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 164 of file url.c.

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

Referenced by rpmcliFini().

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 539 of file url.c.

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

Referenced by prepFetch(), and rpmInstall().

urltype urlIsURL const char *  url  ) 
 

Return type of URL.

Parameters:
url url string
Returns:
type of url

Definition at line 354 of file url.c.

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

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 373 of file url.c.

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

Referenced by Access(), addFile(), buildForTarget(), Chdir(), Chmod(), Chown(), Chroot(), compareFileListRecs(), compressFilelist(), cpioStrCmp(), db3close(), db3open(), dncmp(), dnlInitIterator(), dodigest(), doFoo(), doIcon(), doPatch(), doScript(), doSetupMacro(), doUntar(), fsmMkdirs(), fsmStage(), ftpCmd(), ftpNLST(), genCpioListAndHeader(), Glob(), Glob_pattern_p(), handlePreambleTag(), Lchown(), Link(), Lstat(), makeTempFile(), Mkdir(), Mkfifo(), Mknod(), Open(), Opendir(), parseForSimple(), processBinaryFile(), processMetadataFile(), processSourceFiles(), Readlink(), Rename(), Rmdir(), rpmdbNew(), rpmdbRebuild(), rpmdbURIPath(), rpmdsNew(), rpmfcClassify(), rpmfcGenerateDepends(), rpmfiBuildFNames(), rpmfiFN(), rpmGenPath(), rpmGlob(), rpmInstall(), rpmioFileExists(), rpmMkdirPath(), rpmpsmStage(), rpmtsRootDir(), Stat(), Symlink(), ufdOpen(), Unlink(), urlGetFile(), Utime(), Utimes(), writeFile(), and writeLinkedFile().

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 431 of file url.c.

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

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

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

Definition at line 184 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 99 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::scheme, 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 69 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 79 of file url.c.

References RPMURL_SERVER_HASRANGE, URL_IS_UNKNOWN, URLMAGIC, xmalloc(), and XurlLink().


Variable Documentation

urlinfo* _url_cache = NULL
 

URL cache.

Definition at line 50 of file url.c.

int _url_count = 0
 

No. of cached URL's.

Definition at line 55 of file url.c.

Referenced by urlFind(), and urlFreeCache().

int _url_debug = 0
 

URL debugging?

Definition at line 39 of file url.c.

Referenced by urlGetFile().

int _url_iobuf_size = RPMURL_IOBUF_SIZE
 

Initial size of URL I/O buffer.

Definition at line 34 of file url.c.

Referenced by checkResponse(), and ftpNLST().

struct urlstring urlstrings[] [static]
 

Referenced by urlIsURL().


Generated on Sat Oct 1 16:26:46 2011 for rpm by  doxygen 1.4.4