22#include <sys/socket.h>
26#include <netinet/tcp.h>
27#include <netinet/in.h>
37#define SA_ONESHOT SA_RESETHAND
43 ((((x) & 0xff00000000000000ull) >> 56) \
44 | (((x) & 0x00ff000000000000ull) >> 40) \
45 | (((x) & 0x0000ff0000000000ull) >> 24) \
46 | (((x) & 0x000000ff00000000ull) >> 8) \
47 | (((x) & 0x00000000ff000000ull) << 8) \
48 | (((x) & 0x0000000000ff0000ull) << 24) \
49 | (((x) & 0x000000000000ff00ull) << 40) \
50 | (((x) & 0x00000000000000ffull) << 56))
56#define AFP_ENUMERATE 9
58#define AFP_GETSRVINFO 15
59#define AFP_GETSRVPARAM 16
65#define AFP_OPENFORK 26
75#define DIRPBIT_CDATE 2
76#define DIRPBIT_MDATE 3
77#define DIRPBIT_BDATE 4
78#define DIRPBIT_FINFO 5
79#define DIRPBIT_LNAME 6
80#define DIRPBIT_SNAME 7
82#define DIRPBIT_OFFCNT 9
85#define DIRPBIT_ACCESS 12
86#define DIRPBIT_PDINFO 13
87#define DIRPBIT_UNIXPR 15
91#define FILDIRBIT_ISDIR (1 << 7)
92#define FILDIRBIT_ISFILE (0)
95#define DIRDID_ROOT_PARENT htonl(1)
96#define DIRDID_ROOT htonl(2)
100#define FILPBIT_ATTR 0
101#define FILPBIT_PDID 1
102#define FILPBIT_CDATE 2
103#define FILPBIT_MDATE 3
104#define FILPBIT_BDATE 4
105#define FILPBIT_FINFO 5
106#define FILPBIT_LNAME 6
107#define FILPBIT_SNAME 7
108#define FILPBIT_FNUM 8
109#define FILPBIT_DFLEN 9
110#define FILPBIT_RFLEN 10
111#define FILPBIT_EXTDFLEN 11
112#define FILPBIT_PDINFO 13
113#define FILPBIT_EXTRFLEN 14
114#define FILPBIT_UNIXPR 15
118#define VOLPBIT_ATTR_RO (1 << 0)
119#define VOLPBIT_ATTR_PASSWD (1 << 1)
120#define VOLPBIT_ATTR_FILEID (1 << 2)
121#define VOLPBIT_ATTR_CATSEARCH (1 << 3)
122#define VOLPBIT_ATTR_BLANKACCESS (1 << 4)
123#define VOLPBIT_ATTR_UNIXPRIV (1 << 5)
124#define VOLPBIT_ATTR_UTF8 (1 << 6)
125#define VOLPBIT_ATTR_NONETUID (1 << 7)
126#define VOLPBIT_ATTR_PRIVPARENT (1 << 8)
127#define VOLPBIT_ATTR_NOEXCHANGE (1 << 9)
128#define VOLPBIT_ATTR_EXTATTRS (1 << 10)
129#define VOLPBIT_ATTR_ACLS (1 << 11)
130#define VOLPBIT_ATTR_CASESENS (1 << 12)
131#define VOLPBIT_ATTR_TM (1 << 13)
133#define VOLPBIT_ATTR 0
135#define VOLPBIT_CDATE 2
136#define VOLPBIT_MDATE 3
137#define VOLPBIT_BDATE 4
139#define VOLPBIT_BFREE 6
140#define VOLPBIT_BTOTAL 7
141#define VOLPBIT_NAME 8
143#define VOLPBIT_XBFREE 9
144#define VOLPBIT_XBTOTAL 10
145#define VOLPBIT_BSIZE 11
149#define AFPOF_DFORK 0x00
150#define AFPOF_RFORK 0x80
152#define OPENFORK_DATA (0)
153#define OPENFORK_RSCS (1<<7)
155#define OPENACC_RD (1<<0)
156#define OPENACC_WR (1<<1)
157#define OPENACC_DRD (1<<4)
158#define OPENACC_DWR (1<<5)
160#define AFPFORK_OPEN (1<<0)
161#define AFPFORK_RSRC (1<<1)
162#define AFPFORK_DATA (1<<2)
163#define AFPFORK_DIRTY (1<<3)
164#define AFPFORK_ACCRD (1<<4)
165#define AFPFORK_ACCWR (1<<5)
166#define AFPFORK_ACCMASK (AFPFORK_ACCRD | AFPFORK_ACCWR)
170#if _FILE_OFFSET_BITS == 64
171#define AD_FILELOCK_BASE (UINT64_C(0x7FFFFFFFFFFFFFFF) - 9)
173#define AD_FILELOCK_BASE (UINT32_C(0x7FFFFFFF) - 9)
191#define min(a,b) ((a) < (b) ? (a) : (b))
240 const unsigned char *b,
241 uint16_t rfbitmap, uint16_t rdbitmap);
244 uint16_t rfbitmap, uint16_t rdbitmap);
260 const char *usr,
const char *pwd);
265 const void *auth_info,
266 size_t auth_info_len);
272 const char *
vers,
const char *
uam,
274 const void *auth_info,
size_t auth_info_len);
279 const char *
vers,
const char *
uam,
280 const char *usr,
const char *pwd);
286 const void *auth_info,
size_t auth_info_len);
301 int offset,
int size);
303 off_t offset, off_t size);
316 int did,
char *name, uint16_t access);
327 char *
data,
char whence);
329 char *
data,
char whence);
330unsigned int AFPWrite(
CONN *conn, uint16_t fork,
int offset,
int size,
331 char *
data,
char whence);
332unsigned int AFPWrite_ext(
CONN *conn, uint16_t fork, off_t offset, off_t size,
333 char *
data,
char whence);
335 size_t size,
char *
data,
char whence);
337 size_t size,
char *
data,
char whence);
339 off_t size,
char *
data,
char whence);
341unsigned int AFPReadHeader(
DSI *dsi, uint16_t fork, off_t offset,
size_t size,
343unsigned int AFPReadFooter(
DSI *dsi, uint16_t fork, off_t offset,
size_t size,
345unsigned int AFPRead(
CONN *conn, uint16_t fork,
int offset,
int size,
347unsigned int AFPRead_ext(
CONN *conn, uint16_t fork, off_t offset, off_t size,
350 off_t size,
char *
data);
363 uint32_t tag,
char *name);
364unsigned int AFPGetAPPL(
CONN *conn, uint16_t dt,
char *name, uint16_t index,
373 uint16_t f_bitmap, uint16_t d_bitmap,
378 uint16_t f_bitmap, uint16_t d_bitmap,
386#define kFileSec_UUID (1 << 0)
387#define kFileSec_GRPUUID (1 << 1)
388#define kFileSec_ACL (1 << 2)
389#define kFileSec_REMOVEACL (1 << 3)
390#define kFileSec_Inherit (1 << 4)
403#define DARWIN_ACE_FLAGS_PERMIT 0x00000001
404#define DARWIN_ACE_FLAGS_DENY 0x00000002
405#define DARWIN_ACE_FLAGS_FILE_INHERIT 0x00000020
406#define DARWIN_ACE_FLAGS_DIRECTORY_INHERIT 0x00000040
407#define DARWIN_ACE_FLAGS_ONLY_INHERIT 0x00000100
410#define DARWIN_ACE_READ_DATA 0x00000002
411#define DARWIN_ACE_WRITE_DATA 0x00000004
412#define DARWIN_ACE_EXECUTE 0x00000008
419 int maxsize,
char *pathname);
421 int maxsize,
char *pathname,
char *attrname);
423 char *pathname,
char *attrname,
char *
data);
425 uint16_t bitmap,
char *pathname,
char *attrname);
428void u2mac(uint8_t *dst,
char *name,
int len);
Part of Netatalk's AppleDouble implementatation.
#define ADEDLEN_FINDERI
Definition adouble.h:101
CONN * Conn2
Definition afparg.c:71
char * vers
Definition afparg.c:66
char * uam
Definition afparg.c:67
CONN * Conn
Definition afparg.c:53
unsigned int AFPGetAPPL(CONN *conn, uint16_t dt, char *name, uint16_t index, uint16_t f_bitmap)
Definition afpclient.c:2453
unsigned int AFPRemoveAPPL(CONN *conn, uint16_t dt, int did, char *creator, char *name)
Definition afpclient.c:2513
unsigned int AFPWriteExtFooter(DSI *dsi, uint16_t fork, off_t offset, size_t size, char *data, char whence)
Definition afpclient.c:1942
unsigned int AFPCloseFork(CONN *conn, uint16_t fork)
Definition afpclient.c:952
unsigned int AFPFlush(CONN *conn, uint16_t vol)
Definition afpclient.c:1078
unsigned int AFPByteLock_ext(CONN *conn, uint16_t fork, int end, int mode, off_t offset, off_t size)
Definition afpclient.c:1030
unsigned int DSIGetStatus(CONN *conn)
Definition afpclient.c:508
unsigned int DSIOpenSession(CONN *conn)
Definition afpclient.c:467
unsigned int AFPSetVolParam(CONN *conn, uint16_t vol, uint16_t bitmap, struct afp_volume_parms *parms)
Definition afpclient.c:1742
unsigned int AFPGetForkParam(CONN *conn, uint16_t fork, uint16_t bitmap)
Definition afpclient.c:2429
unsigned int DSICloseSession(CONN *conn)
Definition afpclient.c:527
unsigned int AFPByteLock(CONN *conn, uint16_t fork, int end, int mode, int offset, int size)
Definition afpclient.c:963
unsigned int AFPGetSrvrInfo(CONN *conn)
Definition afpclient.c:885
unsigned int AFPSetExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap, char *pathname, char *attrname, char *data)
Definition afpclient.c:2814
unsigned int AFPAddAPPL(CONN *conn, uint16_t dt, int did, char *creator, uint32_t tag, char *name)
Definition afpclient.c:2484
unsigned int AFPGetSrvrMsg(CONN *conn, uint16_t type, uint16_t bitmap)
Definition afpclient.c:907
unsigned int AFPWriteExtHeader(DSI *dsi, uint16_t fork, off_t offset, size_t size, char *data, char whence)
Definition afpclient.c:1916
unsigned int AFPopenLogin(CONN *conn, const char *vers, const char *uam, const char *usr, const char *pwd)
Definition afpclient.c:545
unsigned int AFPCloseVol(CONN *conn, uint16_t vol)
Definition afpclient.c:930
uint16_t AFPOpenFork(CONN *conn, uint16_t vol, char type, uint16_t bitmap, int did, char *name, uint16_t access)
Definition afpclient.c:1992
unsigned int AFPGetComment(CONN *conn, uint16_t vol, int did, char *name)
Definition afpclient.c:2039
int OpenClientSocket(char *host, int port)
Definition afpclient.c:25
unsigned int AFPCatSearch(CONN *conn, uint16_t vol, uint32_t nbe, char *pos, uint16_t f_bitmap, uint16_t d_bitmap, uint32_t rbitmap, struct afp_filedir_parms *filedir, struct afp_filedir_parms *filedir2)
Definition afpclient.c:2540
unsigned int AFPMapName(CONN *conn, char fn, char *name)
Definition afpclient.c:2201
uint16_t AFPOpenVol(CONN *conn, char *vol, uint16_t bitmap)
Definition afpclient.c:1100
unsigned int AFPMapID(CONN *conn, char fn, int id)
Definition afpclient.c:2179
unsigned int AFPCreateDir(CONN *conn, uint16_t vol, int did, char *name)
Definition afpclient.c:2396
unsigned int AFPZzzzz(CONN *conn, int flag)
Definition afpclient.c:864
unsigned int AFPopenLoginExt(CONN *conn, const char *vers, const char *uam, const char *usr, const void *auth_info, size_t auth_info_len)
Definition afpclient.c:664
unsigned int AFPLoginCont(CONN *conn, const void *auth_info, size_t auth_info_len)
Definition afpclient.c:772
unsigned int AFPCatSearchExt(CONN *conn, uint16_t vol, uint32_t nbe, char *pos, uint16_t f_bitmap, uint16_t d_bitmap, uint32_t rbitmap, struct afp_filedir_parms *filedir, struct afp_filedir_parms *filedir2)
Definition afpclient.c:2591
int dsi_data_receive(DSI *x)
Definition afpclient.c:393
unsigned int AFPChangePW(CONN *conn, char *uam, char *usr, char *opwd, char *pwd)
Definition afpclient.c:805
unsigned int AFPGetSrvrParms(CONN *conn)
Definition afpclient.c:896
unsigned int AFPWrite_ext_async(CONN *conn, uint16_t fork, off_t offset, off_t size, char *data, char whence)
Definition afpclient.c:1981
int dsi_cmd_receive(DSI *x)
Definition afpclient.c:387
unsigned int AFPListExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap, int maxsize, char *pathname)
Definition afpclient.c:2779
unsigned int AFPopenLoginAuth(CONN *conn, const char *vers, const char *uam, const void *auth_info, size_t auth_info_len)
Definition afpclient.c:618
unsigned int AFPWriteHeader(DSI *dsi, uint16_t fork, off_t offset, size_t size, char *data, char whence)
Definition afpclient.c:1847
unsigned int AFPBadPacket(CONN *conn, char fn, char *name)
Definition afpclient.c:2240
int afp_filedir_pack(CONN *conn, unsigned char *b, struct afp_filedir_parms *filedir, uint16_t rfbitmap, uint16_t rdbitmap)
Definition afpclient.c:1546
unsigned int AFPRead(CONN *conn, uint16_t fork, int offset, int size, char *data)
Definition afpclient.c:2311
unsigned int AFPGetExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap, int maxsize, char *pathname, char *attrname)
Definition afpclient.c:2724
void SendInit(DSI *dsi)
Definition afpclient.c:399
void afp_volume_unpack(struct afp_volume_parms *parms, unsigned char *b, uint16_t rbitmap)
Definition afpclient.c:1211
char * strp2cdup(unsigned char *src)
Definition afpclient.c:1181
unsigned int AFPRead_ext(CONN *conn, uint16_t fork, off_t offset, off_t size, char *data)
Definition afpclient.c:2324
void u2mac(uint8_t *dst, char *name, int len)
Definition afpclient.c:1770
unsigned int AFPDelete(CONN *conn, uint16_t vol, int did, char *name)
Definition afpclient.c:2032
unsigned int AFPDisconnectOldSession(CONN *conn, uint16_t type, int len, char *token)
Definition afpclient.c:2126
unsigned int AFPGetACL(CONN *conn, uint16_t vol, int did, uint16_t bitmap, char *name)
Definition afpclient.c:2645
unsigned int AFPSetForkParam(CONN *conn, uint16_t fork, uint16_t bitmap, off_t size)
Definition afpclient.c:1052
int FPset_name(CONN *conn, int ofs, char *name)
Definition afpclient.c:1792
unsigned int AFPGetUserInfo(CONN *conn, char flag, int id, uint16_t bitmap)
Definition afpclient.c:2154
unsigned int AFPReadFooter(DSI *dsi, uint16_t fork, off_t offset, size_t size, char *data)
Definition afpclient.c:2290
unsigned int AFPCreateFile(CONN *conn, uint16_t vol, char type, int did, char *name)
Definition afpclient.c:1823
unsigned int AFPCloseDT(CONN *conn, uint16_t vol)
Definition afpclient.c:941
unsigned int AFPRead_ext_async(CONN *conn, uint16_t fork, off_t offset, off_t size, char *data)
Definition afpclient.c:2375
unsigned int AFPGetVolParam(CONN *conn, uint16_t vol, uint16_t bitmap)
Definition afpclient.c:1719
unsigned int AFPLogOut(CONN *conn)
Definition afpclient.c:852
unsigned int AFPWrite_ext(CONN *conn, uint16_t fork, off_t offset, off_t size, char *data, char whence)
Definition afpclient.c:1970
unsigned int AFPFlushFork(CONN *conn, uint16_t vol)
Definition afpclient.c:1089
unsigned int AFPRemoveComment(CONN *conn, uint16_t vol, int did, char *name)
Definition afpclient.c:2046
unsigned int AFPWrite(CONN *conn, uint16_t fork, int offset, int size, char *data, char whence)
Definition afpclient.c:1905
unsigned int AFPopenLoginExt_pwd(CONN *conn, const char *vers, const char *uam, const char *usr, const char *pwd)
Definition afpclient.c:737
unsigned int AFPRemoveExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap, char *pathname, char *attrname)
Definition afpclient.c:2865
unsigned int AFPAddComment(CONN *conn, uint16_t vol, int did, char *name, char *cmt)
Definition afpclient.c:2053
void SetLen(DSI *dsi, int ofs)
Definition afpclient.c:409
int CloseClientSocket(int fd)
Definition afpclient.c:75
unsigned int AFPSetACL(CONN *conn, uint16_t vol, int did, uint16_t bitmap, char *name, uint32_t ace_count, darwin_ace_t *aces)
Definition afpclient.c:2675
unsigned int AFPWriteFooter(DSI *dsi, uint16_t fork, off_t offset, size_t size, char *data, char whence)
Definition afpclient.c:1878
unsigned int AFPGetSessionToken(CONN *conn, int type, uint32_t time, int len, char *token)
Definition afpclient.c:2087
unsigned int AFPReadHeader(DSI *dsi, uint16_t fork, off_t offset, size_t size, char *data)
Definition afpclient.c:2264
void afp_filedir_unpack(CONN *conn, struct afp_filedir_parms *filedir, const unsigned char *b, uint16_t rfbitmap, uint16_t rdbitmap)
Definition afpclient.c:1367
void dump_header(DSI *dsi)
Definition afpcmd.c:489
#define data
Definition hash.c:52
cnid_t did
Definition nad_cp.c:92
#define flag(x)
Definition netacnv.c:15
Definition afpclient.h:176
int afp_version
Definition afpclient.h:179
int type
Definition afpclient.h:178
uint8_t login_cont_data[DSI_CMDSIZ]
Definition afpclient.h:186
uint16_t login_cont_id
Definition afpclient.h:184
DSI dsi
Definition afpclient.h:177
size_t login_cont_len
Definition afpclient.h:185
Definition include/atalk/dsi.h:58
Definition afpclient.h:202
uint16_t offcnt
Definition afpclient.h:213
int isdir
Definition afpclient.h:203
uint16_t attr
Definition afpclient.h:205
int name_type
Definition afpclient.h:219
uint32_t cdate
Definition afpclient.h:209
uint32_t rflen
Definition afpclient.h:210
char * sname
Definition afpclient.h:221
uint32_t mdate
Definition afpclient.h:209
uint32_t gid
Definition afpclient.h:214
char * utf8_name
Definition afpclient.h:222
char finder_info[ADEDLEN_FINDERI]
Definition afpclient.h:218
uint32_t bdate
Definition afpclient.h:209
uint16_t vid
Definition afpclient.h:206
uint8_t pdinfo[6]
Definition afpclient.h:217
uint64_t ext_dflen
Definition afpclient.h:211
uint64_t ext_rflen
Definition afpclient.h:212
uint32_t did
Definition afpclient.h:208
uint32_t uid
Definition afpclient.h:214
uint32_t dflen
Definition afpclient.h:210
char * lname
Definition afpclient.h:220
uint32_t pdid
Definition afpclient.h:207
uint32_t unix_priv
Definition afpclient.h:215
uint16_t bitmap
Definition afpclient.h:204
uint8_t access[4]
Definition afpclient.h:216
Definition afpclient.h:225
uint8_t flags
Definition afpclient.h:226
uint16_t vid
Definition afpclient.h:230
uint32_t mdate
Definition afpclient.h:229
uint16_t attr
Definition afpclient.h:227
uint32_t btotal
Definition afpclient.h:231
uint32_t cdate
Definition afpclient.h:229
uint32_t bdate
Definition afpclient.h:229
char * utf8_name
Definition afpclient.h:233
char * name
Definition afpclient.h:232
uint32_t bfree
Definition afpclient.h:231
uint16_t sig
Definition afpclient.h:228
uint32_t bsize
Definition afpclient.h:231
Definition afpclient.h:393
uint32_t darwin_ace_rights
Definition afpclient.h:396
unsigned char darwin_ace_uuid[16]
Definition afpclient.h:394
uint32_t darwin_ace_flags
Definition afpclient.h:395
Definition include/atalk/volume.h:33
DSI (Data Stream Interface) protocol definitions for the test-suite.
#define DSI_CMDSIZ
Definition test/testsuite/dsi.h:57