netatalk  4.4.0dev
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
desktop.c File Reference
#include <arpa/inet.h>
#include <ctype.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/param.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/uio.h>
#include <netatalk/at.h>
#include <bstrlib.h>
#include <atalk/adouble.h>
#include <atalk/afp.h>
#include <atalk/atp.h>
#include <atalk/asp.h>
#include <atalk/dsi.h>
#include <atalk/errchk.h>
#include <atalk/globals.h>
#include <atalk/logger.h>
#include <atalk/netatalk_conf.h>
#include <atalk/unix.h>
#include <atalk/util.h>
#include "desktop.h"
#include "directory.h"
#include "fork.h"
#include "mangle.h"
#include "volume.h"

Macros

#define EXEC_MODE   (S_IXGRP | S_IXUSR | S_IXOTH)
#define min(a, b)

Functions

int setdeskmode (const struct vol *vol, const mode_t mode)
int setdeskowner (const struct vol *vol, uid_t uid, gid_t gid)
static void create_appledesktop_folder (const struct vol *vol)
int afp_opendt (AFPObj *obj _U_, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t *rbuflen)
int afp_closedt (AFPObj *obj _U_, char *ibuf _U_, size_t ibuflen _U_, char *rbuf _U_, size_t *rbuflen)
static char * icon_dtfile (struct vol *vol, uint8_t creator[4])
static int iconopen (struct vol *vol, uint8_t creator[4], int flags, int mode)
int afp_addicon (AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t *rbuflen)
int afp_geticoninfo (AFPObj *obj _U_, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t *rbuflen)
int afp_geticon (AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t *rbuflen)
char * dtfile (const struct vol *vol, uint8_t creator[], char *ext)
char * mtoupath (const struct vol *vol, char *mpath, cnid_t did, int utf8)
char * utompath (const struct vol *vol, char *upath, cnid_t id, int utf8)
static int ad_addcomment (const AFPObj *obj, struct vol *vol, struct path *path, char *ibuf)
int afp_addcomment (AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf _U_, size_t *rbuflen)
static int ad_getcomment (struct vol *vol, struct path *path, char *rbuf, size_t *rbuflen)
int afp_getcomment (AFPObj *obj _U_, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t *rbuflen)
static int ad_rmvcomment (const AFPObj *obj, struct vol *vol, struct path *path)
int afp_rmvcomment (AFPObj *obj _U_, char *ibuf, size_t ibuflen _U_, char *rbuf _U_, size_t *rbuflen)

Variables

static struct savedt si = { { 0, 0, 0, 0 }, -1, 0, 0 }
static const uint8_t utag [] = { 0, 0, 0, 0 }
static const uint8_t ucreator [] = { 0, 0, 0, 0 }
static const uint8_t utype [] = { 0, 0, 0, 0 }
static const short usize = 256
static const char hexdig [] = "0123456789abcdef"

Macro Definition Documentation

◆ EXEC_MODE

#define EXEC_MODE   (S_IXGRP | S_IXUSR | S_IXOTH)

◆ min

#define min ( a,
b )
Value:
((a)<(b)?(a):(b))

Function Documentation

◆ ad_addcomment()

int ad_addcomment ( const AFPObj * obj,
struct vol * vol,
struct path * path,
char * ibuf )
static

◆ ad_getcomment()

int ad_getcomment ( struct vol * vol,
struct path * path,
char * rbuf,
size_t * rbuflen )
static

◆ ad_rmvcomment()

int ad_rmvcomment ( const AFPObj * obj,
struct vol * vol,
struct path * path )
static

◆ afp_addcomment()

int afp_addcomment ( AFPObj * obj,
char * ibuf,
size_t ibuflen _U_,
char *rbuf _U_,
size_t * rbuflen )

◆ afp_addicon()

int afp_addicon ( AFPObj * obj,
char * ibuf,
size_t ibuflen _U_,
char * rbuf,
size_t * rbuflen )

◆ afp_closedt()

int afp_closedt ( AFPObj *obj _U_,
char *ibuf _U_,
size_t ibuflen _U_,
char *rbuf _U_,
size_t * rbuflen )

◆ afp_getcomment()

int afp_getcomment ( AFPObj *obj _U_,
char * ibuf,
size_t ibuflen _U_,
char * rbuf,
size_t * rbuflen )

◆ afp_geticon()

int afp_geticon ( AFPObj * obj,
char * ibuf,
size_t ibuflen _U_,
char * rbuf,
size_t * rbuflen )

◆ afp_geticoninfo()

int afp_geticoninfo ( AFPObj *obj _U_,
char * ibuf,
size_t ibuflen _U_,
char * rbuf,
size_t * rbuflen )

◆ afp_opendt()

int afp_opendt ( AFPObj *obj _U_,
char * ibuf,
size_t ibuflen _U_,
char * rbuf,
size_t * rbuflen )

◆ afp_rmvcomment()

int afp_rmvcomment ( AFPObj *obj _U_,
char * ibuf,
size_t ibuflen _U_,
char *rbuf _U_,
size_t * rbuflen )

◆ create_appledesktop_folder()

void create_appledesktop_folder ( const struct vol * vol)
static

◆ dtfile()

char * dtfile ( const struct vol * vol,
uint8_t creator[],
char * ext )

◆ icon_dtfile()

char * icon_dtfile ( struct vol * vol,
uint8_t creator[4] )
static

◆ iconopen()

int iconopen ( struct vol * vol,
uint8_t creator[4],
int flags,
int mode )
static

◆ mtoupath()

char * mtoupath ( const struct vol * vol,
char * mpath,
cnid_t did,
int utf8 )

◆ setdeskmode()

int setdeskmode ( const struct vol * vol,
const mode_t mode )

◆ setdeskowner()

int setdeskowner ( const struct vol * vol,
uid_t uid,
gid_t gid )

◆ utompath()

char * utompath ( const struct vol * vol,
char * upath,
cnid_t id,
int utf8 )

Variable Documentation

◆ hexdig

const char hexdig[] = "0123456789abcdef"
static

◆ si

struct savedt si = { { 0, 0, 0, 0 }, -1, 0, 0 }
static

◆ ucreator

const uint8_t ucreator[] = { 0, 0, 0, 0 }
static

◆ usize

const short usize = 256
static

◆ utag

const uint8_t utag[] = { 0, 0, 0, 0 }
static

◆ utype

const uint8_t utype[] = { 0, 0, 0, 0 }
static