cleanup: remove dead code
This commit is contained in:
parent
46cfe7ab7e
commit
9307279faf
@ -3,25 +3,15 @@
|
|||||||
//! This module contain the code to decode *pxar* archive files.
|
//! This module contain the code to decode *pxar* archive files.
|
||||||
|
|
||||||
use failure::*;
|
use failure::*;
|
||||||
use endian_trait::Endian;
|
|
||||||
|
|
||||||
use super::format_definition::*;
|
use super::format_definition::*;
|
||||||
use super::sequential_decoder::*;
|
use super::sequential_decoder::*;
|
||||||
use crate::tools;
|
|
||||||
|
|
||||||
use std::io::{Read, Write, Seek, SeekFrom};
|
use std::io::{Read, Seek, SeekFrom};
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
use std::os::unix::io::AsRawFd;
|
use std::ffi::OsString;
|
||||||
use std::os::unix::io::RawFd;
|
|
||||||
use std::os::unix::io::FromRawFd;
|
|
||||||
use std::os::unix::ffi::{OsStrExt, OsStringExt};
|
|
||||||
use std::ffi::{OsStr, OsString};
|
|
||||||
|
|
||||||
use nix::fcntl::OFlag;
|
|
||||||
use nix::sys::stat::Mode;
|
|
||||||
use nix::errno::Errno;
|
|
||||||
use nix::NixPath;
|
|
||||||
|
|
||||||
pub struct CaDirectoryEntry {
|
pub struct CaDirectoryEntry {
|
||||||
start: u64,
|
start: u64,
|
||||||
@ -214,9 +204,7 @@ impl <'a, R: Read + Seek> Decoder<'a, R> {
|
|||||||
|
|
||||||
let ifmt = mode & libc::S_IFMT;
|
let ifmt = mode & libc::S_IFMT;
|
||||||
|
|
||||||
let osstr: &OsStr = prefix.as_ref();
|
writeln!(output, "{:?}", prefix)?;
|
||||||
output.write(osstr.as_bytes())?;
|
|
||||||
output.write(b"\n")?;
|
|
||||||
|
|
||||||
if ifmt == libc::S_IFDIR {
|
if ifmt == libc::S_IFDIR {
|
||||||
self.print_filenames(output, prefix, item)?;
|
self.print_filenames(output, prefix, item)?;
|
||||||
@ -234,55 +222,3 @@ impl <'a, R: Read + Seek> Decoder<'a, R> {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn file_openat(parent: RawFd, filename: &OsStr, flags: OFlag, mode: Mode) -> Result<std::fs::File, Error> {
|
|
||||||
|
|
||||||
let fd = filename.with_nix_path(|cstr| {
|
|
||||||
nix::fcntl::openat(parent, cstr.as_ref(), flags, mode)
|
|
||||||
})??;
|
|
||||||
|
|
||||||
let file = unsafe { std::fs::File::from_raw_fd(fd) };
|
|
||||||
|
|
||||||
Ok(file)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn dir_mkdirat(parent: RawFd, filename: &OsStr) -> Result<nix::dir::Dir, Error> {
|
|
||||||
|
|
||||||
// call mkdirat first
|
|
||||||
let res = filename.with_nix_path(|cstr| unsafe {
|
|
||||||
libc::mkdirat(parent, cstr.as_ptr(), libc::S_IRWXU)
|
|
||||||
})?;
|
|
||||||
Errno::result(res)?;
|
|
||||||
|
|
||||||
let dir = nix::dir::Dir::openat(parent, filename, OFlag::O_DIRECTORY, Mode::empty())?;
|
|
||||||
|
|
||||||
Ok(dir)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn symlinkat(target: &Path, parent: RawFd, linkname: &OsStr) -> Result<(), Error> {
|
|
||||||
|
|
||||||
target.with_nix_path(|target| {
|
|
||||||
linkname.with_nix_path(|linkname| {
|
|
||||||
let res = unsafe { libc::symlinkat(target.as_ptr(), parent, linkname.as_ptr()) };
|
|
||||||
Errno::result(res)?;
|
|
||||||
Ok(())
|
|
||||||
})?
|
|
||||||
})?
|
|
||||||
}
|
|
||||||
|
|
||||||
fn nsec_to_update_timespec(mtime_nsec: u64) -> [libc::timespec; 2] {
|
|
||||||
|
|
||||||
// restore mtime
|
|
||||||
const UTIME_OMIT: i64 = ((1 << 30) - 2);
|
|
||||||
const NANOS_PER_SEC: i64 = 1_000_000_000;
|
|
||||||
|
|
||||||
let sec = (mtime_nsec as i64) / NANOS_PER_SEC;
|
|
||||||
let nsec = (mtime_nsec as i64) % NANOS_PER_SEC;
|
|
||||||
|
|
||||||
let times: [libc::timespec; 2] = [
|
|
||||||
libc::timespec { tv_sec: 0, tv_nsec: UTIME_OMIT },
|
|
||||||
libc::timespec { tv_sec: sec, tv_nsec: nsec },
|
|
||||||
];
|
|
||||||
|
|
||||||
times
|
|
||||||
}
|
|
||||||
|
@ -541,15 +541,16 @@ impl <'a, R: Read> SequentialDecoder<'a, R> {
|
|||||||
table_size: usize,
|
table_size: usize,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
|
|
||||||
let item_size = std::mem::size_of::<CaFormatGoodbyeItem>();
|
const GOODBYE_ITEM_SIZE: usize = std::mem::size_of::<CaFormatGoodbyeItem>();
|
||||||
if table_size < item_size {
|
|
||||||
bail!("Goodbye table to small ({} < {})", table_size, item_size);
|
if table_size < GOODBYE_ITEM_SIZE {
|
||||||
|
bail!("Goodbye table to small ({} < {})", table_size, GOODBYE_ITEM_SIZE);
|
||||||
}
|
}
|
||||||
if (table_size % item_size) != 0 {
|
if (table_size % GOODBYE_ITEM_SIZE) != 0 {
|
||||||
bail!("Goodbye table with strange size ({})", table_size);
|
bail!("Goodbye table with strange size ({})", table_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
let entries = table_size / item_size;
|
let entries = table_size / GOODBYE_ITEM_SIZE;
|
||||||
|
|
||||||
if entry_count != (entries - 1) {
|
if entry_count != (entries - 1) {
|
||||||
bail!("Goodbye table with wrong entry count ({} != {})", entry_count, entries - 1);
|
bail!("Goodbye table with wrong entry count ({} != {})", entry_count, entries - 1);
|
||||||
@ -568,7 +569,7 @@ impl <'a, R: Read> SequentialDecoder<'a, R> {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
println!("Goodby item: offset {}, size {}, hash {:016x}", item.offset, item.size, item.hash);
|
println!("Goodby item: offset {}, size {}, hash {:016x}", item.offset, item.size, item.hash);
|
||||||
if count >= (table_size / item_size) {
|
if count >= entries {
|
||||||
bail!("too many goodbye items (no tail marker)");
|
bail!("too many goodbye items (no tail marker)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user