# 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"`

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

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

#define IPPORT_HTTP 80

Definition at line 23 of file url.c.

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

Definition at line 36 of file url.c.

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

Definition at line 38 of file url.c.

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

Definition at line 39 of file url.c.

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

static void urlFind | ( | urlinfo * | uret,
|  | int | mustAsk |
| ) |  |  | `[static]`

Definition at line 190 of file url.c.

void urlFreeCache | ( | void |  | ) |

Free cached URL control structures.

Definition at line 158 of file url.c.

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

urltype urlIsURL | ( | const char * | url | ) |

Return type of URL.

Parameters:

  | url | url string

Returns:
  type of url

Definition at line 344 of file url.c.

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

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

static int urlStrcmp | ( | const char * | str1,
|  | const char * | str2 |
| ) |  |  | `[static]`

Definition at line 177 of file url.c.

urlinfo XurlFree | ( | urlinfo | u,
|  | const char * | msg,
|  | const char * | file,
|  | unsigned | line |
| ) |  |  |

Todo:
  Remove debugging entry from the ABI.

Definition at line 94 of file url.c.

urlinfo XurlLink | ( | urlinfo | u,
|  | const char * | msg,
|  | const char * | file,
|  | unsigned | line |
| ) |  |  |

Todo:
  Remove debugging entry from the ABI.

Definition at line 64 of file url.c.

urlinfo XurlNew | ( | const char * | msg,
|  | const char * | file,
|  | unsigned | line |
| ) |  |  |

Todo:
  Remove debugging entry from the ABI.

Definition at line 74 of file url.c.

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

int _url_debug = 0

URL debugging?

Definition at line 34 of file url.c.

int _url_iobuf_size = RPMURL_IOBUF_SIZE

Initial size of URL I/O buffer.

Definition at line 29 of file url.c.

struct urlstring urlstrings[]`[static]`