xbps-repo: genindex: optimization change.

While looking at the archive for the XBPS_PKGPROPS file, it's unlikely
that it will have it after reading 6 entries, so discard it completely
and show an error message.

The XBPS_PKGPROPS it's always there at index <= 4.

--HG--
extra : convert_revision : xtraeme%40gmail.com-20091125001733-i46wnqdxp497km6s
This commit is contained in:
Juan RP 2009-11-25 00:17:33 +00:00
parent 00c458fca1
commit 2693e54ef6

View File

@ -90,7 +90,7 @@ xbps_repo_addpkg_index(prop_dictionary_t idxdict, const char *filedir,
struct stat st; struct stat st;
const char *pkgname, *version, *regver, *oldfilen; const char *pkgname, *version, *regver, *oldfilen;
char *sha256, *filen, *tmpfilen, *tmpstr, *oldfilepath; char *sha256, *filen, *tmpfilen, *tmpstr, *oldfilepath;
int rv = 0; int i = 0, rv = 0;
if (idxdict == NULL || file == NULL) if (idxdict == NULL || file == NULL)
return EINVAL; return EINVAL;
@ -128,8 +128,19 @@ xbps_repo_addpkg_index(prop_dictionary_t idxdict, const char *filedir,
* into a buffer. * into a buffer.
*/ */
while (archive_read_next_header(ar, &entry) == ARCHIVE_OK) { while (archive_read_next_header(ar, &entry) == ARCHIVE_OK) {
if (i >= 5) {
/*
* Unlikely that archive contains XBPS_PKGPROPS,
* discard it completely.
*/
archive_read_data_skip(ar);
printf("W: archive %s does not contain required "
"props.plist file!\n", file);
break;
}
if (strstr(archive_entry_pathname(entry), XBPS_PKGPROPS) == 0) { if (strstr(archive_entry_pathname(entry), XBPS_PKGPROPS) == 0) {
archive_read_data_skip(ar); archive_read_data_skip(ar);
i++;
continue; continue;
} }
newpkgd = xbps_read_dict_from_archive_entry(ar, entry); newpkgd = xbps_read_dict_from_archive_entry(ar, entry);