netatalk  4.6.1
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
nad_stuffit.c File Reference
#include <arpa/inet.h>
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <time.h>
#include <utime.h>
#include <unistd.h>
#include <stuffit_ffi.h>
#include <atalk/adouble.h>
#include <atalk/cnid.h>
#include <atalk/util.h>
#include "nad.h"
#include "megatron.h"
#include "nad_adouble.h"

Macros

#define SIT_DEFAULT_METHOD   13
 

Functions

static void usage_stuffit (FILE *out)
 
static int set_nad_volume_from_path (AFPObj *obj, const char *path, afpvol_t *afpvol, struct nad_volume *volume)
 
static int entry_name_is_safe (const char *name)
 
static int make_parent_dirs (const char *path)
 
static int make_dir_path (const char *path)
 
static const char * path_basename (const char *path)
 
static int split_parent_base (const char *path, char *parent, size_t parent_len, char *base, size_t base_len)
 
static int fill_header_from_entry (const StuffitEntryInfo *info, struct FHeader *fh)
 
static int validate_entry_fork_lengths (const StuffitEntryInfo *info, const StuffitBytes *data, const StuffitBytes *rsrc)
 
static int write_fork_bytes (int fork, const uint8_t *ptr, size_t len)
 
static int extract_file_entry (const StuffitEntryInfo *info, const StuffitBytes *data, const StuffitBytes *rsrc)
 
static int unsit_archive (const char *path, AFPObj *obj)
 
static int read_fork_bytes (int fork, size_t len, uint8_t **out)
 
static int add_file_to_writer (StuffitWriter *writer, const char *path, const char *entry_name, AFPObj *obj)
 
static int add_folder_to_writer (StuffitWriter *writer, const char *entry_name)
 
static int join_path (char *out, size_t out_len, const char *dir, const char *name)
 
static int is_ad_metadata_entry (const char *name)
 
static int add_path_to_writer (StuffitWriter *writer, const char *path, const char *entry_name, AFPObj *obj)
 
static char * default_sit_output (const char *path)
 
static int write_owned_bytes (const char *path, StuffitOwnedBytes *bytes)
 
static int sit_paths (int argc, char **argv, AFPObj *obj, const char *output, uint8_t method)
 
int nad_stuffit (int argc, char **argv, AFPObj *obj)
 

Macro Definition Documentation

◆ SIT_DEFAULT_METHOD

#define SIT_DEFAULT_METHOD   13

Function Documentation

◆ add_file_to_writer()

static int add_file_to_writer ( StuffitWriter *  writer,
const char *  path,
const char *  entry_name,
AFPObj *  obj 
)
static

◆ add_folder_to_writer()

static int add_folder_to_writer ( StuffitWriter *  writer,
const char *  entry_name 
)
static

◆ add_path_to_writer()

static int add_path_to_writer ( StuffitWriter *  writer,
const char *  path,
const char *  entry_name,
AFPObj *  obj 
)
static

◆ default_sit_output()

static char * default_sit_output ( const char *  path)
static

◆ entry_name_is_safe()

static int entry_name_is_safe ( const char *  name)
static

◆ extract_file_entry()

static int extract_file_entry ( const StuffitEntryInfo *  info,
const StuffitBytes *  data,
const StuffitBytes *  rsrc 
)
static

◆ fill_header_from_entry()

static int fill_header_from_entry ( const StuffitEntryInfo *  info,
struct FHeader *  fh 
)
static

◆ is_ad_metadata_entry()

static int is_ad_metadata_entry ( const char *  name)
static

◆ join_path()

static int join_path ( char *  out,
size_t  out_len,
const char *  dir,
const char *  name 
)
static

◆ make_dir_path()

static int make_dir_path ( const char *  path)
static

◆ make_parent_dirs()

static int make_parent_dirs ( const char *  path)
static

◆ nad_stuffit()

int nad_stuffit ( int  argc,
char **  argv,
AFPObj *  obj 
)

◆ path_basename()

static const char * path_basename ( const char *  path)
static

◆ read_fork_bytes()

static int read_fork_bytes ( int  fork,
size_t  len,
uint8_t **  out 
)
static

◆ set_nad_volume_from_path()

static int set_nad_volume_from_path ( AFPObj *  obj,
const char *  path,
afpvol_t *  afpvol,
struct nad_volume *  volume 
)
static

◆ sit_paths()

static int sit_paths ( int  argc,
char **  argv,
AFPObj *  obj,
const char *  output,
uint8_t  method 
)
static

◆ split_parent_base()

static int split_parent_base ( const char *  path,
char *  parent,
size_t  parent_len,
char *  base,
size_t  base_len 
)
static

◆ unsit_archive()

static int unsit_archive ( const char *  path,
AFPObj *  obj 
)
static

◆ usage_stuffit()

static void usage_stuffit ( FILE *  out)
static

◆ validate_entry_fork_lengths()

static int validate_entry_fork_lengths ( const StuffitEntryInfo *  info,
const StuffitBytes *  data,
const StuffitBytes *  rsrc 
)
static

◆ write_fork_bytes()

static int write_fork_bytes ( int  fork,
const uint8_t *  ptr,
size_t  len 
)
static

◆ write_owned_bytes()

static int write_owned_bytes ( const char *  path,
StuffitOwnedBytes *  bytes 
)
static