]> git.ipfire.org Git - pakfire.git/commitdiff
archive: Drop parsing the filelist
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 7 Apr 2021 16:18:49 +0000 (16:18 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 7 Apr 2021 16:18:49 +0000 (16:18 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/archive.c
src/libpakfire/filelist.c
src/libpakfire/include/pakfire/filelist.h

index d6c1183ca95d4d53c466d76604a0b50e28d53800..26ea5cde01afbff2705cbd20e65a340a2b1fcbb4 100644 (file)
@@ -452,29 +452,6 @@ CLEANUP:
        return r;
 }
 
-static int pakfire_archive_parse_entry_filelist(PakfireArchive archive,
-               struct archive* a, struct archive_entry* e) {
-       char* data;
-       size_t data_size;
-
-       int r = pakfire_archive_copy_data_to_buffer(archive->pakfire, a, e, &data, &data_size);
-       if (r) {
-               return 1;
-       }
-
-       // Terminate string.
-       data[data_size] = '\0';
-
-       if (data_size > 0) {
-               r = pakfire_filelist_create_from_file(&archive->filelist, archive->pakfire,
-                       data, archive->format);
-       }
-
-       free(data);
-
-       return r;
-}
-
 static int pakfire_archive_parse_entry_checksums(PakfireArchive archive,
                struct archive* a, struct archive_entry* e) {
        char* data;
@@ -603,14 +580,8 @@ static int pakfire_archive_read_metadata_entry(PakfireArchive archive, struct ar
                struct archive_entry* e, const char* entry_name) {
        int ret;
 
-       // Parse the filelist
-       if (strcmp(PAKFIRE_ARCHIVE_FN_FILELIST, entry_name) == 0) {
-               ret = pakfire_archive_parse_entry_filelist(archive, a, e);
-               if (ret)
-                       return EINVAL;
-
        // Parse the checksums
-       } else if (strcmp(PAKFIRE_ARCHIVE_FN_CHECKSUMS, entry_name) == 0) {
+       if (strcmp(PAKFIRE_ARCHIVE_FN_CHECKSUMS, entry_name) == 0) {
                ret = pakfire_archive_parse_entry_checksums(archive, a, e);
                if (ret)
                        return EINVAL;
index 64bcea7d3ff6da89807f2bbe9f1726ea9a386dba..2951d85de0a8d6dfecd4a25b8686be679bc6f70a 100644 (file)
@@ -162,168 +162,6 @@ PAKFIRE_EXPORT size_t pakfire_filelist_total_filesize(PakfireFilelist list) {
        return s;
 }
 
-static int pakfire_filelist_parse_line(PakfireFile* file, Pakfire pakfire,
-               char* line, unsigned int format) {
-       unsigned int i = 0;
-
-       // Allocate file
-       int r = pakfire_file_create(file, pakfire);
-       if (r)
-               return r;
-
-       ssize_t size;
-       mode_t mode;
-       time_t time;
-
-       unsigned int bytes_read = 0;
-
-       char* word = strtok(line, " ");
-       while (word) {
-               if (format >= 4) {
-                       switch (i) {
-                               // type
-                               case 0:
-                                       break;
-
-                               // size
-                               case 1:
-                                       size = atoi(word);
-                                       pakfire_file_set_size(*file, size);
-                                       break;
-
-                               // user
-                               case 2:
-                                       pakfire_file_set_user(*file, word);
-                                       break;
-
-                               // group
-                               case 3:
-                                       pakfire_file_set_group(*file, word);
-                                       break;
-
-                               // mode
-                               case 4:
-                                       mode = atoi(word);
-                                       pakfire_file_set_mode(*file, mode);
-                                       break;
-
-                               // time
-                               case 5:
-                                       time = atoi(word);
-                                       pakfire_file_set_ctime(*file, time);
-                                       break;
-
-                               // checksum
-                               case 6:
-                                       pakfire_file_set_chksum(*file, word);
-                                       break;
-
-                               // path
-                               #warning handle filenames with spaces
-                               case 8:
-                                       pakfire_file_set_path(*file, line + bytes_read);
-                                       break;
-                       }
-
-               } else if (format >= 3) {
-                       switch (i) {
-                               // path
-                               case 0:
-                                       pakfire_file_set_path(*file, word);
-                                       break;
-
-                               // type
-                               case 1:
-                                       break;
-
-                               // size
-                               case 2:
-                                       size = atoi(word);
-                                       pakfire_file_set_size(*file, size);
-                                       break;
-
-                               // user
-                               case 3:
-                                       pakfire_file_set_user(*file, word);
-                                       break;
-
-                               // group
-                               case 4:
-                                       pakfire_file_set_group(*file, word);
-                                       break;
-
-                               // mode
-                               case 5:
-                                       mode = atoi(word);
-                                       pakfire_file_set_mode(*file, mode);
-                                       break;
-
-                               // time
-                               case 6:
-                                       time = atoi(word);
-                                       pakfire_file_set_ctime(*file, time);
-                                       break;
-
-                               // checksum
-                               case 7:
-                                       pakfire_file_set_chksum(*file, word);
-                                       break;
-                       }
-               }
-
-               // Count the bytes of the line that have been processed so far
-               // (Skip all padding spaces)
-               bytes_read += strlen(word) + 1;
-               while (*(line + bytes_read) == ' ')
-                       bytes_read += 1;
-
-               word = strtok(NULL, " ");
-               ++i;
-       }
-
-       return 0;
-}
-
-int pakfire_filelist_create_from_file(PakfireFilelist* list, Pakfire pakfire,
-               const char* data, unsigned int format) {
-       int r = pakfire_filelist_create(list, pakfire);
-       if (r)
-               return r;
-
-       PakfireFile file = NULL;
-
-       char* p = (char *)data;
-       char line[32 * 1024];
-
-       for (;;) {
-               line[0] = '\0';
-
-               pakfire_sgets(line, sizeof(line), &p);
-               pakfire_remove_trailing_newline(line);
-
-               if (*line == '\0')
-                       break;
-
-               int r = pakfire_filelist_parse_line(&file, pakfire, line, format);
-               if (r)
-                       goto ERROR;
-
-               // Append file
-               r = pakfire_filelist_append(*list, file);
-               if (r)
-                       goto ERROR;
-
-               pakfire_file_unref(file);
-       }
-
-       return 0;
-
-ERROR:
-       pakfire_filelist_unref(*list);
-
-       return 1;
-}
-
 static int pakfire_filelist_is_included(const char* path, const char** includes) {
        // If the includes list is empty, everything is included
        if (!includes)
index dfedccad868fbf76cc39231507d8e30dc8606f64..5d2498ff11cb2a56524a621ca655e22aa6736adc 100644 (file)
@@ -41,9 +41,6 @@ size_t pakfire_filelist_total_filesize(PakfireFilelist list);
 
 #ifdef PAKFIRE_PRIVATE
 
-int pakfire_filelist_create_from_file(PakfireFilelist* list, Pakfire pakfire,
-       const char* data, unsigned int format);
-
 int pakfire_filelist_scan(PakfireFilelist list, const char* root,
                const char** includes, const char** excludes);