in the database */
/* Get the flags (and mtime) */
- InitQuery("st");
+ InitQueryStats();
// Ensure alignment of the returned structure
Data.data = &CurStat;
Data.ulen = sizeof(CurStat);
if ((CurStat.Flags & FlSource) == FlSource)
{
// Lookup the control information
- InitQuery("cs");
+ InitQuerySource();
if (Get() == true && Dsc.TakeDsc(Data.data, Data.size) == true)
+ {
return true;
+ }
CurStat.Flags &= ~FlSource;
}
-
if (OpenFile() == false)
return false;
return _error->Error(_("Failed to read .dsc"));
// Write back the control information
- InitQuery("cs");
+ InitQuerySource();
if (Put(Dsc.Data, Dsc.Length) == true)
CurStat.Flags |= FlSource;
if ((CurStat.Flags & FlControl) == FlControl)
{
// Lookup the control information
- InitQuery("cl");
+ InitQueryControl();
if (Get() == true && Control.TakeControl(Data.data,Data.size) == true)
return true;
CurStat.Flags &= ~FlControl;
return _error->Error(_("Archive has no control record"));
// Write back the control information
- InitQuery("cl");
+ InitQueryControl();
if (Put(Control.Control,Control.Length) == true)
CurStat.Flags |= FlControl;
return true;
return true;
// Lookup the contents information
- InitQuery("cn");
+ InitQueryContent();
if (Get() == true)
{
if (Contents.TakeContents(Data.data,Data.size) == true)
return false;
// Write back the control information
- InitQuery("cn");
+ InitQueryContent();
if (Put(Contents.Data,Contents.CurSize) == true)
CurStat.Flags |= FlContents;
return true;
if (CurStat.Flags == OldStat.Flags &&
CurStat.mtime == OldStat.mtime)
return true;
-
+
// Write the stat information
CurStat.Flags = htonl(CurStat.Flags);
CurStat.FileSize = htonl(CurStat.FileSize);
- InitQuery("st");
+ InitQueryStats();
Put(&CurStat,sizeof(CurStat));
CurStat.Flags = ntohl(CurStat.Flags);
CurStat.FileSize = ntohl(CurStat.FileSize);
{
if (stringcmp(Colon + 1, (char *)Key.data+Key.size,"st") == 0 ||
stringcmp(Colon + 1, (char *)Key.data+Key.size,"cl") == 0 ||
+ stringcmp(Colon + 1, (char *)Key.data+Key.size,"cs") == 0 ||
stringcmp(Colon + 1, (char *)Key.data+Key.size,"cn") == 0)
{
- if (FileExists(std::string((const char *)Key.data,Colon)) == true)
- continue;
+ std::string FileName = std::string((const char *)Key.data,Colon);
+ if (FileExists(FileName) == true) {
+ continue;
+ }
}
}
-
Cursor->c_del(Cursor,0);
}
- Dbp->compact(Dbp, NULL, NULL, NULL, NULL, DB_FREE_SPACE, NULL);
+ int res = Dbp->compact(Dbp, NULL, NULL, NULL, NULL, DB_FREE_SPACE, NULL);
+ if (res < 0)
+ _error->Warning("compact failed with result %i", res);
+
+ if(_config->FindB("Debug::APT::FTPArchive::Clean", false) == true)
+ Dbp->stat_print(Dbp, 0);
+
return true;
}