netatalk  4.6.0
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.