inline gchar *
-safe_string_chunk_insert(GStringChunk *chunk, const char *str)
+cr_safe_string_chunk_insert(GStringChunk *chunk, const char *str)
{
if (!chunk || !str) {
return NULL;
inline int
-compare_dependency(const char *dep1, const char *dep2)
+cr_compare_dependency(const char *dep1, const char *dep2)
{
/* Compares two dependency by name
* NOTE: The function assume first parts must be same!
cr_Package *
-cr_parse_header(Header hdr, gint64 mtime, gint64 size,
- const char *checksum, const char *checksum_type,
- const char *location_href, const char *location_base,
- int changelog_limit, gint64 hdr_start, gint64 hdr_end)
+cr_package_from_header(Header hdr, gint64 mtime, gint64 size,
+ const char *checksum, const char *checksum_type,
+ const char *location_href, const char *location_base,
+ int changelog_limit, gint64 hdr_start, gint64 hdr_end)
{
// Create new package structure
// Fill package structure
- pkg->pkgId = safe_string_chunk_insert(pkg->chunk, checksum);
- pkg->name = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_NAME));
+ pkg->pkgId = cr_safe_string_chunk_insert(pkg->chunk, checksum);
+ pkg->name = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_NAME));
gint64 is_src = headerGetNumber(hdr, RPMTAG_SOURCEPACKAGE);
if (is_src) {
- pkg->arch = safe_string_chunk_insert(pkg->chunk, "src");
+ pkg->arch = cr_safe_string_chunk_insert(pkg->chunk, "src");
} else {
- pkg->arch = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_ARCH));
+ pkg->arch = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_ARCH));
}
- pkg->version = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_VERSION));
+ pkg->version = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_VERSION));
#define MAX_STR_INT_LEN 24
char tmp_epoch[MAX_STR_INT_LEN];
}
pkg->epoch = g_string_chunk_insert_len(pkg->chunk, tmp_epoch, MAX_STR_INT_LEN);
- pkg->release = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_RELEASE));
- pkg->summary = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_SUMMARY));
- pkg->description = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_DESCRIPTION));
- pkg->url = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_URL));
+ pkg->release = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_RELEASE));
+ pkg->summary = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_SUMMARY));
+ pkg->description = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_DESCRIPTION));
+ pkg->url = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_URL));
pkg->time_file = mtime;
if (headerGet(hdr, RPMTAG_BUILDTIME, td, flags)) {
pkg->time_build = rpmtdGetNumber(td);
}
- pkg->rpm_license = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_LICENSE));
- pkg->rpm_vendor = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_VENDOR));
- pkg->rpm_group = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_GROUP));
- pkg->rpm_buildhost = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_BUILDHOST));
- pkg->rpm_sourcerpm = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_SOURCERPM));
+ pkg->rpm_license = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_LICENSE));
+ pkg->rpm_vendor = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_VENDOR));
+ pkg->rpm_group = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_GROUP));
+ pkg->rpm_buildhost = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_BUILDHOST));
+ pkg->rpm_sourcerpm = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_SOURCERPM));
pkg->rpm_header_start = hdr_start;
pkg->rpm_header_end = hdr_end;
- pkg->rpm_packager = safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_PACKAGER));
+ pkg->rpm_packager = cr_safe_string_chunk_insert(pkg->chunk, headerGetString(hdr, RPMTAG_PACKAGER));
pkg->size_package = size;
if (headerGet(hdr, RPMTAG_SIZE, td, flags)) {
pkg->size_installed = rpmtdGetNumber(td);
if (headerGet(hdr, RPMTAG_ARCHIVESIZE, td, flags)) {
pkg->size_archive = rpmtdGetNumber(td);
}
- pkg->location_href = safe_string_chunk_insert(pkg->chunk, location_href);
- pkg->location_base = safe_string_chunk_insert(pkg->chunk, location_base);
- pkg->checksum_type = safe_string_chunk_insert(pkg->chunk, checksum_type);
+ pkg->location_href = cr_safe_string_chunk_insert(pkg->chunk, location_href);
+ pkg->location_base = cr_safe_string_chunk_insert(pkg->chunk, location_base);
+ pkg->checksum_type = cr_safe_string_chunk_insert(pkg->chunk, checksum_type);
rpmtdFreeData(td);
rpmtdFree(td);
int x = 0;
dir_list = malloc(sizeof(char *) * dir_count);
while (rpmtdNext(dirnames) != -1) {
- dir_list[x] = safe_string_chunk_insert(pkg->chunk, rpmtdGetString(dirnames));
+ dir_list[x] = cr_safe_string_chunk_insert(pkg->chunk, rpmtdGetString(dirnames));
x++;
}
assert(x == dir_count);
(rpmtdNext(filemodes) != -1))
{
cr_PackageFile *packagefile = cr_package_file_new();
- packagefile->name = safe_string_chunk_insert(pkg->chunk,
+ packagefile->name = cr_safe_string_chunk_insert(pkg->chunk,
rpmtdGetString(filenames));
packagefile->path = (dir_list) ? dir_list[(int) rpmtdGetNumber(indexes)] : "";
if (S_ISDIR(rpmtdGetNumber(filemodes))) {
// Directory
- packagefile->type = safe_string_chunk_insert(pkg->chunk, "dir");
+ packagefile->type = cr_safe_string_chunk_insert(pkg->chunk, "dir");
} else if (rpmtdGetNumber(fileflags) & RPMFILE_GHOST) {
// Ghost
- packagefile->type = safe_string_chunk_insert(pkg->chunk, "ghost");
+ packagefile->type = cr_safe_string_chunk_insert(pkg->chunk, "ghost");
} else {
// Regular file
- packagefile->type = safe_string_chunk_insert(pkg->chunk, "");
+ packagefile->type = cr_safe_string_chunk_insert(pkg->chunk, "");
}
g_hash_table_replace(filenames_hashtable,
// Create dynamic dependency object
cr_Dependency *dependency = cr_dependency_new();
- dependency->name = safe_string_chunk_insert(pkg->chunk, filename);
- dependency->flags = safe_string_chunk_insert(pkg->chunk, flags);
+ dependency->name = cr_safe_string_chunk_insert(pkg->chunk, filename);
+ dependency->flags = cr_safe_string_chunk_insert(pkg->chunk, flags);
struct cr_EVR evr = cr_str_to_evr(full_version, pkg->chunk);
dependency->epoch = evr.epoch;
dependency->version = evr.version;
if (!libc_require_highest)
libc_require_highest = dependency;
else {
- if (compare_dependency(libc_require_highest->name,
+ if (cr_compare_dependency(libc_require_highest->name,
dependency->name) == 2)
{
g_free(libc_require_highest);
gint64 time = rpmtdGetNumber(changelogtimes);
cr_ChangelogEntry *changelog = cr_changelog_entry_new();
- changelog->author = safe_string_chunk_insert(pkg->chunk,
+ changelog->author = cr_safe_string_chunk_insert(pkg->chunk,
rpmtdGetString(changelognames));
changelog->date = time;
- changelog->changelog = safe_string_chunk_insert(pkg->chunk,
+ changelog->changelog = cr_safe_string_chunk_insert(pkg->chunk,
rpmtdGetString(changelogtexts));
// Remove space from end of author name
int changelog_limit,
gint64 hdr_start, gint64 hdr_end)
{
- cr_Package *pkg = cr_parse_header(hdr, mtime, size, checksum, checksum_type,
+ cr_Package *pkg = cr_package_from_header(hdr, mtime, size, checksum, checksum_type,
location_href, location_base,
changelog_limit, hdr_start, hdr_end);
#include "parsehdr.h"
volatile short cr_initialized = 0;
-rpmts ts = NULL;
+rpmts cr_ts = NULL;
void
return;
cr_initialized = 1;
rpmReadConfigFiles(NULL, NULL);
- ts = rpmtsCreate();
- if (!ts)
+ cr_ts = rpmtsCreate();
+ if (!cr_ts)
g_critical("%s: rpmtsCreate() failed", __func__);
rpmVSFlags vsflags = 0;
vsflags |= _RPMVSF_NODIGESTS;
vsflags |= _RPMVSF_NOSIGNATURES;
vsflags |= RPMVSF_NOHDRCHK;
- rpmtsSetVSFlags(ts, vsflags);
+ rpmtsSetVSFlags(cr_ts, vsflags);
// Set empty keyring
// Why? Because RPM is not thread-safe. Not only a little bit.
// This includes also reading the headers.
// Work around for this shoud be use empty keyring.
keyring = rpmKeyringNew();
- if (rpmtsSetKeyring(ts, keyring) == -1)
+ if (rpmtsSetKeyring(cr_ts, keyring) == -1)
g_critical("%s: rpmtsSetKeyring() failed", __func__);
rpmKeyringFree(keyring);
}
void
cr_package_parser_shutdown()
{
- if (ts)
- rpmtsFree(ts);
+ if (cr_ts)
+ rpmtsFree(cr_ts);
rpmFreeMacros(NULL);
rpmFreeRpmrc();
cr_Package *
-cr_package_from_file(const char *filename,
+cr_package_from_rpm(const char *filename,
cr_ChecksumType checksum_type,
const char *location_href,
const char *location_base,
// Read package
Header hdr;
- int rc = rpmReadPackageFile(ts, fd, NULL, &hdr);
+ int rc = rpmReadPackageFile(cr_ts, fd, NULL, &hdr);
if (rc != RPMRC_OK) {
switch (rc) {
case RPMRC_NOKEY:
// Get package object
- result = cr_parse_header(hdr, mtime, size, checksum, checksum_type_str,
+ result = cr_package_from_header(hdr, mtime, size, checksum, checksum_type_str,
location_href, location_base, changelog_limit,
hdr_r.start, hdr_r.end);
struct cr_XmlStruct
-cr_xml_from_package_file(const char *filename,
+cr_xml_from_rpm(const char *filename,
cr_ChecksumType checksum_type,
const char *location_href,
const char *location_base,
// Read package
Header hdr;
- int rc = rpmReadPackageFile(ts, fd, NULL, &hdr);
+ int rc = rpmReadPackageFile(cr_ts, fd, NULL, &hdr);
if (rc != RPMRC_OK) {
switch (rc) {
case RPMRC_NOKEY:
* @param stat_buf struct stat of the filename
* (optional - could be NULL)
*/
-cr_Package *cr_package_from_file(const char *filename,
- cr_ChecksumType checksum_type,
- const char *location_href,
- const char *location_base,
- int changelog_limit,
- struct stat *stat_buf);
+cr_Package *cr_package_from_rpm(const char *filename,
+ cr_ChecksumType checksum_type,
+ const char *location_href,
+ const char *location_base,
+ int changelog_limit,
+ struct stat *stat_buf);
/** Generate XML for the specified package.
- * @param filename filename
+ * @param filename rpm filename
* @param checksum_type type of checksum to be used
* @param location_href package location inside repository
* @param location_base location (url) of repository
* @param stat_buf struct stat of the filename
* (optional - could be NULL)
*/
-struct cr_XmlStruct cr_xml_from_package_file(const char *filename,
- cr_ChecksumType checksum_type,
- const char *location_href,
- const char *location_base,
- int changelog_limit,
- struct stat *stat_buf);
+struct cr_XmlStruct cr_xml_from_rpm(const char *filename,
+ cr_ChecksumType checksum_type,
+ const char *location_href,
+ const char *location_base,
+ int changelog_limit,
+ struct stat *stat_buf);
/** @} */