#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 | 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 [] |
Definition in file url.c.
#define IPPORT_HTTPS 443 |
#define IPPORT_PGPKEYSERVER 11371 |
#define URLDBG | ( | _f, | |||
_m, | |||||
_x | ) | if ((_url_debug | (_f)) & (_m)) fprintf _x |
#define URLDBGREFS | ( | _f, | |||
_x | ) | URLDBG((_f), RPMURL_DEBUG_REFS, _x) |
static void* _free | ( | const void * | p | ) | [inline, static] |
static void urlFind | ( | urlinfo * | uret, | |
int | mustAsk | |||
) | [static] |
Definition at line 204 of file url.c.
References _, _free(), _url_cache, _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 171 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.
url | url string of source | |
dest | file name of destination |
Definition at line 549 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 doUntar(), and rpmInstall().
urltype urlIsURL | ( | const char * | url | ) |
Return type of URL.
url | url string |
Definition at line 364 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.
url | url string |
pathp | pointer to path component of url |
Definition at line 383 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(), db3close(), db3open(), doFoo(), domd5(), doPatch(), doScript(), doSetupMacro(), doUntar(), ftpCmd(), ftpNLST(), genCpioListAndHeader(), Glob(), Glob_pattern_p(), handlePreambleTag(), Link(), Lstat(), main(), makeTempFile(), Mkdir(), newRpmdb(), Opendir(), parseSpec(), processBinaryFile(), processMetadataFile(), processSourceFiles(), Readlink(), Rename(), Rmdir(), rpmGenPath(), rpmGlob(), rpmGraph(), rpmInstall(), rpmioFileExists(), rpmMkdirPath(), rpmpsmStage(), rpmtsRootDir(), Stat(), ufdOpen(), Unlink(), and urlGetFile().
int urlSplit | ( | const char * | url, | |
urlinfo * | uret | |||
) |
Parse URL string into a control structure.
url | url string |
uret | address of new control instance pointer |
Definition at line 441 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(), httpOpen(), urlConnect(), and urlStrerror().
static int urlStrcmp | ( | const char * | str1, | |
const char * | str2 | |||
) | [static] |
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::sess, urlinfo_s::url, URLDBGREFS, URLSANE, and urlinfo_s::user.
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 | |||
) |
Definition at line 79 of file url.c.
References URL_IS_UNKNOWN, URLMAGIC, xmalloc(), and XurlLink().
urlinfo* _url_cache = NULL |
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 |
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().