netatalk  4.6.1
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
volume.h File Reference
#include <arpa/inet.h>
#include <sys/types.h>
#include <atalk/cnid.h>
#include <atalk/globals.h>
#include <atalk/unicode.h>
#include <atalk/volume.h>

Go to the source code of this file.

Functions

int ustatfs_getvolspace (const struct vol *, VolSpace *, VolSpace *, uint32_t *)
 
void setvoltime (AFPObj *, struct vol *)
 
int pollvoltime (AFPObj *)
 poll if a volume is changed by other processes.
 
int afp_openvol (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
 
int afp_getvolparams (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
 
int afp_setvolparams (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
 
int afp_getsrvrparms (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
 
int afp_closevol (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf, size_t *rbuflen)
 
void close_all_vol (const AFPObj *obj)
 
void closevol (const AFPObj *obj, struct vol *vol)
 
void cnid_volume_reset (const struct vol *vol)
 Announce a CNID table reset and end this session.
 
uint32_t cnid_volume_tag (const struct vol *vol)
 Stable cross-process identifier for a volume's CNID table.
 

Function Documentation

◆ afp_closevol()

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

◆ afp_getsrvrparms()

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

◆ afp_getvolparams()

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

◆ afp_openvol()

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

◆ afp_setvolparams()

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

◆ close_all_vol()

void close_all_vol ( const AFPObj *  obj)
extern

◆ closevol()

void closevol ( const AFPObj *  obj,
struct vol *  vol 
)
extern

◆ cnid_volume_reset()

void cnid_volume_reset ( const struct vol *  vol)
extern

Announce a CNID table reset and end this session.

Only the session that reset the table sends the hint; a responder that re-broadcast would loop between children. No AFP attention exists for "the ID space was recycled" — the protocol guarantees IDs are never reused — so the disconnect is the signal.

◆ cnid_volume_tag()

uint32_t cnid_volume_tag ( const struct vol *  vol)
extern

Stable cross-process identifier for a volume's CNID table.

v_vid is per-process, so the same vid names different volumes in different children. v_uuid is what every child agrees on.

Returns
FNV-1a of v_uuid, or 0 if the volume has no UUID

◆ pollvoltime()

int pollvoltime ( AFPObj *  obj)
extern

poll if a volume is changed by other processes.

Parameters
objAFP connection object
Returns
0 no attention msg sent, 1 attention msg sent, -1 error (socket closed)
Note
if attention return -1 no packet has been sent because the buffer is full, we don't care either there's no reader or there's a lot of traffic and another pollvoltime will follow

◆ setvoltime()

void setvoltime ( AFPObj *  obj,
struct vol *  vol 
)
extern

◆ ustatfs_getvolspace()

int ustatfs_getvolspace ( const struct vol *  vol,
VolSpace *  bfree,
VolSpace *  btotal,
uint32_t *  bsize 
)
extern

Get the free space on a partition.