| 173 | } |
| 174 | |
| 175 | bool ZipHeader::confirmLocalHeaders(std::istream& _zipfile) |
| 176 | { |
| 177 | zipios::Entries::const_iterator it; |
| 178 | zipios::ZipCDirEntry* ent {}; |
| 179 | int inconsistencies = 0; |
| 180 | zipios::ZipLocalEntry zlh; |
| 181 | for (it = _entries.begin(); it != _entries.end(); ++it) { |
| 182 | ent = static_cast<zipios::ZipCDirEntry*>((*it).get()); |
| 183 | _vs.vseekg(_zipfile, ent->getLocalHeaderOffset(), std::ios::beg); |
| 184 | _zipfile >> zlh; |
| 185 | if (!_zipfile || zlh != *ent) { |
| 186 | inconsistencies++; |
| 187 | _zipfile.clear(); |
| 188 | } |
| 189 | } |
| 190 | return !inconsistencies; |
| 191 | } |
| 192 | |
| 193 | void ZipHeader::setError(std::string /*error_str*/) |
| 194 | { |