parsepkg and parsehdr module refactoring
authorTomas Mlcoch <tmlcoch@redhat.com>
Mon, 25 Feb 2013 13:19:15 +0000 (14:19 +0100)
committerTomas Mlcoch <tmlcoch@redhat.com>
Mon, 25 Feb 2013 13:52:50 +0000 (14:52 +0100)
src/createrepo_c.c
src/parsehdr.c
src/parsehdr.h
src/parsepkg.c
src/parsepkg.h

index e18e87d..10704b6 100644 (file)
@@ -257,7 +257,7 @@ dumper_thread(gpointer data, gpointer user_data)
     // Load package and gen XML metadata
     if (!old_used) {
         // Load package from file
-        pkg = cr_package_from_file(task->full_path, udata->checksum_type,
+        pkg = cr_package_from_rpm(task->full_path, udata->checksum_type,
                                    location_href, udata->location_base,
                                    udata->changelog_limit, NULL);
         if (!pkg) {
index 263d8a3..8dbca64 100644 (file)
@@ -28,7 +28,7 @@
 
 
 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;
@@ -39,7 +39,7 @@ safe_string_chunk_insert(GStringChunk *chunk, const char *str)
 
 
 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!
@@ -112,10 +112,10 @@ compare_dependency(const char *dep1, const char *dep2)
 
 
 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
 
@@ -131,17 +131,17 @@ cr_parse_header(Header hdr, gint64 mtime, gint64 size,
 
     // 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];
@@ -150,22 +150,22 @@ cr_parse_header(Header hdr, gint64 mtime, gint64 size,
     }
     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);
@@ -173,9 +173,9 @@ cr_parse_header(Header hdr, gint64 mtime, gint64 size,
     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);
@@ -204,7 +204,7 @@ cr_parse_header(Header hdr, gint64 mtime, gint64 size,
         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);
@@ -228,19 +228,19 @@ cr_parse_header(Header hdr, gint64 mtime, gint64 size,
                (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,
@@ -374,8 +374,8 @@ cr_parse_header(Header hdr, gint64 mtime, gint64 size,
 
                 // 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;
@@ -400,7 +400,7 @@ cr_parse_header(Header hdr, gint64 mtime, gint64 size,
                             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);
@@ -480,10 +480,10 @@ cr_parse_header(Header hdr, gint64 mtime, gint64 size,
             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
@@ -543,7 +543,7 @@ cr_xml_from_header(Header hdr, gint64 mtime, gint64 size,
                                        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);
 
index ee63f8a..97da4a3 100644 (file)
@@ -47,16 +47,16 @@ extern "C" {
  * @param hdr_end               last byte of header
  * @return                      cr_Package
  */
-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 *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);
 
 /** Read data from header and return struct cr_XmlStruct.
  * All const char * params could be NULL.
index 8bf4eb6..99c13d2 100644 (file)
@@ -36,7 +36,7 @@
 #include "parsehdr.h"
 
 volatile short cr_initialized = 0;
-rpmts ts = NULL;
+rpmts cr_ts = NULL;
 
 
 void
@@ -48,15 +48,15 @@ cr_package_parser_init()
         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.
@@ -64,7 +64,7 @@ cr_package_parser_init()
     // 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);
 }
@@ -73,8 +73,8 @@ cr_package_parser_init()
 void
 cr_package_parser_shutdown()
 {
-    if (ts)
-        rpmtsFree(ts);
+    if (cr_ts)
+        rpmtsFree(cr_ts);
 
     rpmFreeMacros(NULL);
     rpmFreeRpmrc();
@@ -82,7 +82,7 @@ cr_package_parser_shutdown()
 
 
 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,
@@ -125,7 +125,7 @@ cr_package_from_file(const char *filename,
     // 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:
@@ -180,7 +180,7 @@ cr_package_from_file(const char *filename,
 
     // 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);
 
@@ -196,7 +196,7 @@ cr_package_from_file(const char *filename,
 
 
 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,
@@ -243,7 +243,7 @@ cr_xml_from_package_file(const char *filename,
     // 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:
index 796bf93..4ea2869 100644 (file)
@@ -56,15 +56,15 @@ void cr_package_parser_shutdown();
  * @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
@@ -72,12 +72,12 @@ cr_Package *cr_package_from_file(const char *filename,
  * @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);
 
 /** @} */