netatalk  4.6.0
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()

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

◆ add_folder_to_writer()

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

◆ add_path_to_writer()

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

◆ default_sit_output()

char * default_sit_output ( const char * path)
static

◆ entry_name_is_safe()

int entry_name_is_safe ( const char * name)
static

◆ extract_file_entry()

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

◆ fill_header_from_entry()

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

◆ is_ad_metadata_entry()

int is_ad_metadata_entry ( const char * name)
static

◆ join_path()

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

◆ make_dir_path()

int make_dir_path ( const char * path)
static

◆ make_parent_dirs()

int make_parent_dirs ( const char * path)
static

◆ nad_stuffit()

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

◆ path_basename()

const char * path_basename ( const char * path)
static

◆ read_fork_bytes()

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

◆ set_nad_volume_from_path()

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

◆ sit_paths()

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

◆ split_parent_base()

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

◆ unsit_archive()

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

◆ usage_stuffit()

void usage_stuffit ( FILE * out)
static

◆ validate_entry_fork_lengths()

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

◆ write_fork_bytes()

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

◆ write_owned_bytes()

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