netatalk  4.5.0
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
nad_rmdir.c File Reference
#include <errno.h>
#include <limits.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <bstrlib.h>
#include <atalk/adouble.h>
#include <atalk/cnid.h>
#include <atalk/directory.h>
#include <atalk/util.h>
#include <atalk/vfs.h>
#include <atalk/volume.h>
#include "nad.h"

Functions

static void usage_rmdir (void)
static int is_protected_dir (const char *path, const afpvol_t *vol)
 Check if path is the volume root or its parent.
static int rmdir_with_cnid (const char *path, afpvol_t *vol)
 Remove a single empty directory with CNID and AppleDouble cleanup.
static int do_rmdir (const char *path, afpvol_t *vol)
 Remove directory and optionally empty parent directories.
int nad_rmdir (int argc, char *argv[], AFPObj *obj)

Function Documentation

◆ do_rmdir()

int do_rmdir ( const char * path,
afpvol_t * vol )
static

Remove directory and optionally empty parent directories.

When pflag is set, removes empty parent directories working upward from the specified path, stopping at the volume root.

Parameters
[in]pathpath of directory to remove
[in]volopen AFP volume
Returns
0 on success, 1 on error

◆ is_protected_dir()

int is_protected_dir ( const char * path,
const afpvol_t * vol )
static

Check if path is the volume root or its parent.

Returns
1 if path is a protected directory, 0 otherwise

◆ nad_rmdir()

int nad_rmdir ( int argc,
char * argv[],
AFPObj * obj )

◆ rmdir_with_cnid()

int rmdir_with_cnid ( const char * path,
afpvol_t * vol )
static

Remove a single empty directory with CNID and AppleDouble cleanup.

Parameters
[in]pathabsolute path of directory to remove
[in]volopen AFP volume
Returns
0 on success, -1 on error

◆ usage_rmdir()

void usage_rmdir ( void )
static