Synchronet now requires the libarchive development package (e.g. libarchive-dev on Debian-based Linux distros, libarchive.org for more info) to build successfully.

Commits (1)
  • Rob Swindell's avatar
    De-duplicate the lists returned by iniGet/ReadSectionList() · dd9c4607
    Rob Swindell authored
    I noticed a duplicate area name (AGN_MODS) in a filefix %LIST response
    from my FidoNet hub that's running TickIt/TickFix, and I thought to myself:
    Self, that shouldn't be possible. But alas, if one does have duplicate
    sections in a .ini file (e.g. tickit.ini), the iniGet/ReadSectionList()
    function would indeed return duplicate items in the list. Since the second
    section with the same name is not actually accessible, it shouldn't be counted
    as a valid section and thus not returned as part of the section list. Section
    names are not case sensitive, so the names are compared case-insensitively for
    de-duplication purposes too.
    dd9c4607
......@@ -1086,6 +1086,8 @@ str_list_t iniReadSectionList(FILE* fp, const char* prefix)
if(prefix!=NULL)
if(strnicmp(p,prefix,strlen(prefix))!=0)
continue;
if(strListFind(lp, p, /* case_sensitive */FALSE) >= 0)
continue;
if(strListAppend(&lp,p,items++)==NULL)
break;
}
......@@ -1115,6 +1117,8 @@ str_list_t iniGetSectionList(str_list_t list, const char* prefix)
if(prefix!=NULL)
if(strnicmp(p,prefix,strlen(prefix))!=0)
continue;
if(strListFind(lp, p, /* case_sensitive */FALSE) >= 0)
continue;
if(strListAppend(&lp,p,items++)==NULL)
break;
}
......