netatalk  4.4.0dev
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
fce_api.c File Reference
#include <arpa/inet.h>
#include <errno.h>
#include <netdb.h>
#include <netinet/in.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
#include <sys/socket.h>
#include <time.h>
#include <unistd.h>
#include <atalk/adouble.h>
#include <atalk/afp.h>
#include <atalk/cnid.h>
#include <atalk/fce_api.h>
#include <atalk/globals.h>
#include <atalk/logger.h>
#include <atalk/unix.h>
#include <atalk/util.h>
#include <atalk/vfs.h>
#include "desktop.h"
#include "directory.h"
#include "file.h"
#include "fork.h"
#include "volume.h"
#include "fce_api_internal.h"

Macros

#define MAXIOBUF   4096

Functions

int afprun_bg (char *cmd)
void fce_init_udp (void)
void fce_cleanup (void)
static ssize_t build_fce_packet (const AFPObj *obj, unsigned char *iobuf, fce_ev_t event, const char *path, const char *oldpath, pid_t pid, const char *user, uint32_t event_id)
static void send_fce_event (const AFPObj *obj, int event, const char *path, const char *oldpath)
static int add_udp_socket (const char *target_ip, const char *target_port)
static void save_close_event (const AFPObj *obj, const char *path)
static void fce_init_ign_paths (const char *ignores, const char ***dest_array, bool is_directory)
int fce_register (const AFPObj *obj, fce_ev_t event, const char *path, const char *oldpath)
static void check_saved_close_events (const AFPObj *obj)
void fce_pending_events (const AFPObj *obj)
int fce_add_udp_socket (const char *target)
int fce_set_events (const char *events)

Variables

static struct udp_entry udp_socket_list [FCE_MAX_UDP_SOCKS]
static int udp_sockets = 0
static bool udp_initialized = false
static unsigned long fce_ev_enabled
static uint8_t fce_ev_info
static unsigned char iobuf [MAXIOBUF]
static const char ** skip_files
static const char ** skip_directories
static struct fce_close_event last_close_event
static char * fce_event_names []

Macro Definition Documentation

◆ MAXIOBUF

#define MAXIOBUF   4096

Function Documentation

◆ add_udp_socket()

int add_udp_socket ( const char * target_ip,
const char * target_port )
static

◆ afprun_bg()

int afprun_bg ( char * cmd)
extern

◆ build_fce_packet()

ssize_t build_fce_packet ( const AFPObj * obj,
unsigned char * iobuf,
fce_ev_t event,
const char * path,
const char * oldpath,
pid_t pid,
const char * user,
uint32_t event_id )
static

◆ check_saved_close_events()

void check_saved_close_events ( const AFPObj * obj)
static

◆ fce_add_udp_socket()

int fce_add_udp_socket ( const char * target)

◆ fce_cleanup()

void fce_cleanup ( void )

◆ fce_init_ign_paths()

void fce_init_ign_paths ( const char * ignores,
const char *** dest_array,
bool is_directory )
static

◆ fce_init_udp()

void fce_init_udp ( void )

◆ fce_pending_events()

void fce_pending_events ( const AFPObj * obj)

◆ fce_register()

int fce_register ( const AFPObj * obj,
fce_ev_t event,
const char * path,
const char * oldpath )

◆ fce_set_events()

int fce_set_events ( const char * events)

◆ save_close_event()

void save_close_event ( const AFPObj * obj,
const char * path )
static

◆ send_fce_event()

void send_fce_event ( const AFPObj * obj,
int event,
const char * path,
const char * oldpath )
static

Variable Documentation

◆ fce_ev_enabled

unsigned long fce_ev_enabled
static
Initial value:
=
(1 << FCE_FILE_MODIFY) |
(1 << FCE_FILE_DELETE) |
(1 << FCE_DIR_DELETE) |
(1 << FCE_FILE_CREATE) |
(1 << FCE_DIR_CREATE) |
(1 << FCE_FILE_MOVE) |
(1 << FCE_DIR_MOVE) |
(1 << FCE_LOGIN) |
(1 << FCE_LOGOUT)
#define FCE_DIR_MOVE
Definition fce_api.h:26
#define FCE_LOGOUT
Definition fce_api.h:28
#define FCE_FILE_DELETE
Definition fce_api.h:21
#define FCE_FILE_MOVE
Definition fce_api.h:25
#define FCE_DIR_CREATE
Definition fce_api.h:24
#define FCE_LOGIN
Definition fce_api.h:27
#define FCE_FILE_MODIFY
Definition fce_api.h:20
#define FCE_DIR_DELETE
Definition fce_api.h:22
#define FCE_FILE_CREATE
Definition fce_api.h:23

◆ fce_ev_info

uint8_t fce_ev_info
static

◆ fce_event_names

char* fce_event_names[]
static
Initial value:
= {
[FCE_FILE_MODIFY] = "FCE_FILE_MODIFY",
[FCE_FILE_DELETE] = "FCE_FILE_DELETE",
[FCE_DIR_DELETE] = "FCE_DIR_DELETE",
[FCE_FILE_CREATE] = "FCE_FILE_CREATE",
[FCE_DIR_CREATE] = "FCE_DIR_CREATE",
[FCE_FILE_MOVE] = "FCE_FILE_MOVE",
[FCE_DIR_MOVE] = "FCE_DIR_MOVE",
[FCE_LOGIN] = "FCE_LOGIN",
[FCE_LOGOUT] = "FCE_LOGOUT",
[FCE_CONN_START] = "FCE_CONN_START",
[FCE_CONN_BROKEN] = "FCE_CONN_BROKEN"
}
#define FCE_CONN_START
Definition fce_api.h:37
#define FCE_CONN_BROKEN
Definition fce_api.h:38

◆ iobuf

unsigned char iobuf[MAXIOBUF]
static

◆ last_close_event

struct fce_close_event last_close_event
static

◆ skip_directories

const char** skip_directories
static

◆ skip_files

const char** skip_files
static

◆ udp_initialized

bool udp_initialized = false
static

◆ udp_socket_list

struct udp_entry udp_socket_list[FCE_MAX_UDP_SOCKS]
static

◆ udp_sockets

int udp_sockets = 0
static