netatalk  4.4.0dev
Free and Open Source Apple Filing Protocol (AFP) Server
Loading...
Searching...
No Matches
afpclient.h
Go to the documentation of this file.
1/* ---------------------------------------------------
2*/
3#ifndef AFPCLIENT_H
4#define AFPCLIENT_H
5
6#ifdef HAVE_CONFIG_H
7#include "config.h"
8#endif /* HAVE_CONFIG_H */
9
10#include <stdio.h>
11#include <stdlib.h>
12#include <string.h>
13#include <unistd.h>
14#include <fcntl.h>
15#include <signal.h>
16
17#include <sys/types.h>
18#include <sys/stat.h>
19#include <sys/param.h>
20#include <sys/uio.h>
21#include <sys/time.h>
22#include <sys/socket.h>
23
24#include <sys/ioctl.h>
25#include <net/if.h>
26#include <netinet/tcp.h>
27#include <netinet/in.h>
28#include <arpa/inet.h>
29#include <errno.h>
30#include <netdb.h>
31
32#ifndef SA_ONESHOT
33#define SA_ONESHOT SA_RESETHAND
34#endif
35
36
37#ifndef HAVE_BSWAP_64
38#define bswap_64(x) \
39 ((((x) & 0xff00000000000000ull) >> 56) \
40 | (((x) & 0x00ff000000000000ull) >> 40) \
41 | (((x) & 0x0000ff0000000000ull) >> 24) \
42 | (((x) & 0x000000ff00000000ull) >> 8) \
43 | (((x) & 0x00000000ff000000ull) << 8) \
44 | (((x) & 0x0000000000ff0000ull) << 24) \
45 | (((x) & 0x000000000000ff00ull) << 40) \
46 | (((x) & 0x00000000000000ffull) << 56))
47#endif /* bswap_64 */
48
49#include "dsi.h"
50#include "afp.h"
51/* AFP functions */
52#ifndef AFP_CLOSEVOL
53#define AFP_CLOSEVOL 2
54#define AFP_ENUMERATE 9
55
56#define AFP_GETSRVINFO 15
57#define AFP_GETSRVPARAM 16
58#define AFP_LOGIN 18
59
60#define AFP_LOGOUT 20
61#define AFP_OPENVOL 24
62#define AFP_OPENDIR 25
63#define AFP_OPENFORK 26
64
65#define AFP_OPENDT 48
66#define AFP_CLOSEDT 49
67#endif
68
69/* ----------------------------- */
70/* from etc/afpd/directory.h volume attributes */
71#define DIRPBIT_ATTR 0
72#define DIRPBIT_PDID 1
73#define DIRPBIT_CDATE 2
74#define DIRPBIT_MDATE 3
75#define DIRPBIT_BDATE 4
76#define DIRPBIT_FINFO 5
77#define DIRPBIT_LNAME 6
78#define DIRPBIT_SNAME 7
79#define DIRPBIT_DID 8
80#define DIRPBIT_OFFCNT 9
81#define DIRPBIT_UID 10
82#define DIRPBIT_GID 11
83#define DIRPBIT_ACCESS 12
84/* ProDOS Info /UTF8 name */
85#define DIRPBIT_PDINFO 13
86#define DIRPBIT_UNIXPR 15
87
88/* directory attribute bits (see file.h for other bits) */
89/* shared point */
90#define ATTRBIT_EXPFOLDER (1 << 1)
91/* mounted share point by non-admin */
92#define ATTRBIT_MOUNTED (1 << 3)
93/* folder in a shared area */
94#define ATTRBIT_INEXPFOLDER (1 << 4)
95
96/* is a directory */
97#define FILDIRBIT_ISDIR (1 << 7)
98/* is a file */
99#define FILDIRBIT_ISFILE (0)
100
101/* reserved directory id's */
102/* parent directory of root */
103#define DIRDID_ROOT_PARENT htonl(1)
104/* root directory */
105#define DIRDID_ROOT htonl(2)
106
107/* ----------------------------- */
108/* from etc/afpd/file.h volume attributes */
109#define FILPBIT_ATTR 0
110#define FILPBIT_PDID 1
111#define FILPBIT_CDATE 2
112#define FILPBIT_MDATE 3
113#define FILPBIT_BDATE 4
114#define FILPBIT_FINFO 5
115#define FILPBIT_LNAME 6
116#define FILPBIT_SNAME 7
117#define FILPBIT_FNUM 8
118#define FILPBIT_DFLEN 9
119#define FILPBIT_RFLEN 10
120#define FILPBIT_EXTDFLEN 11
121/* ProDOS Info/ UTF8 name */
122#define FILPBIT_PDINFO 13
123#define FILPBIT_EXTRFLEN 14
124#define FILPBIT_UNIXPR 15
125
126/* attribute bits. d = directory attribute bit as well. */
127/* invisible d */
128#define ATTRBIT_INVISIBLE (1<<0)
129/* multiuser */
130#define ATTRBIT_MULTIUSER (1<<1)
131/* system d */
132#define ATTRBIT_SYSTEM (1<<2)
133/* data fork already open */
134#define ATTRBIT_DOPEN (1<<3)
135/* resource fork already open */
136#define ATTRBIT_ROPEN (1<<4)
137/* shared area d */
138#define ATTRBIT_SHARED (1<<4)
139/* write inhibit(v2)/read-only(v1) bit */
140#define ATTRBIT_NOWRITE (1<<5)
141/* backup needed d */
142#define ATTRBIT_BACKUP (1<<6)
143/* rename inhibit d */
144#define ATTRBIT_NORENAME (1<<7)
145/* delete inhibit d */
146#define ATTRBIT_NODELETE (1<<8)
147/* copy protect */
148#define ATTRBIT_NOCOPY (1<<10)
149/* set/clear bits d */
150#define ATTRBIT_SETCLR (1<<15)
151
152/* ----------------------------- */
153/* from etc/afpd/volume.h volume attributes */
154#define VOLPBIT_ATTR_RO (1 << 0)
155#define VOLPBIT_ATTR_PASSWD (1 << 1)
156#define VOLPBIT_ATTR_FILEID (1 << 2)
157#define VOLPBIT_ATTR_CATSEARCH (1 << 3)
158#define VOLPBIT_ATTR_BLANKACCESS (1 << 4)
159#define VOLPBIT_ATTR_UNIXPRIV (1 << 5)
160#define VOLPBIT_ATTR_UTF8 (1 << 6)
161#define VOLPBIT_ATTR_NONETUID (1 << 7)
162#define VOLPBIT_ATTR_PRIVPARENT (1 << 8)
163#define VOLPBIT_ATTR_NOEXCHANGE (1 << 9)
164#define VOLPBIT_ATTR_EXTATTRS (1 << 10)
165#define VOLPBIT_ATTR_ACLS (1 << 11)
166
167#define VOLPBIT_ATTR 0
168#define VOLPBIT_SIG 1
169#define VOLPBIT_CDATE 2
170#define VOLPBIT_MDATE 3
171#define VOLPBIT_BDATE 4
172#define VOLPBIT_VID 5
173#define VOLPBIT_BFREE 6
174#define VOLPBIT_BTOTAL 7
175#define VOLPBIT_NAME 8
176/* handle > 4GB volumes */
177#define VOLPBIT_XBFREE 9
178#define VOLPBIT_XBTOTAL 10
179/* block size */
180#define VOLPBIT_BSIZE 11
181/* ----------------------------- */
182
183/* from etc/afpd/fork.h */
184#define AFPOF_DFORK 0x00
185#define AFPOF_RFORK 0x80
186
187#define OPENFORK_DATA (0)
188#define OPENFORK_RSCS (1<<7)
189
190#define OPENACC_RD (1<<0)
191#define OPENACC_WR (1<<1)
192#define OPENACC_DRD (1<<4)
193#define OPENACC_DWR (1<<5)
194
195#define AFPFORK_OPEN (1<<0)
196#define AFPFORK_RSRC (1<<1)
197#define AFPFORK_DATA (1<<2)
198#define AFPFORK_DIRTY (1<<3)
199#define AFPFORK_ACCRD (1<<4)
200#define AFPFORK_ACCWR (1<<5)
201#define AFPFORK_ACCMASK (AFPFORK_ACCRD | AFPFORK_ACCWR)
202
203/* we use this so that we can use the same mechanism for both byte
204 * locks and file synchronization locks. */
205#if _FILE_OFFSET_BITS == 64
206#define AD_FILELOCK_BASE (UINT64_C(0x7FFFFFFFFFFFFFFF) - 9)
207#else
208#define AD_FILELOCK_BASE (UINT32_C(0x7FFFFFFF) - 9)
209#endif
210
211typedef struct CONN {
213#if 0
214 ASP asp;
215#endif
216 int type;
219
220extern CONN *Conn, *Conn2;
221
222#define min(a,b) ((a) < (b) ? (a) : (b))
223
224#define PASSWDLEN 8
225
226#define dsi_clientID(x) ((x)->clientID++)
227
228#define my_dsi_send(x) do { \
229 (x)->header.dsi_len = htonl((x)->cmdlen); \
230 my_dsi_stream_send((x), (x)->commands, (x)->cmdlen); \
231} while (0)
232
233int my_dsi_cmd_receive(DSI *x);
235
236/* from
237 modified
238 */
239/* Files and directories */
241 int isdir;
242 /* Parameters already taken from svr */
243 uint16_t bitmap;
244 uint16_t attr;
245 uint16_t vid;
246 uint32_t pdid;
247 uint32_t did;
248 uint32_t bdate, mdate, cdate;
249 uint32_t dflen, rflen;
250 uint64_t ext_dflen;
251 uint64_t ext_rflen;
252 uint16_t offcnt;
253 uint32_t uid, gid;
254 /* FIXME what if mode_t != uint32_t */
255 uint32_t unix_priv;
256 /* Access bits */
257 uint8_t access[4];
258 /* ProDOS info... */
259 uint8_t pdinfo[6];
260 /* FIXME: Finder info ! */
261 char finder_info[32];
263 char *lname;
264 char *sname;
266};
267
269 /* FIXME: keep state across calls here (OPENED/CLOSED) */
270 uint8_t state;
271 uint8_t flags;
272 uint16_t attr;
273 uint16_t sig;
274 uint32_t cdate, bdate, mdate;
275 uint16_t vid;
276 uint32_t bfree, btotal, bsize;
277 char *name;
279};
280
281void afp_volume_unpack(struct afp_volume_parms *parms, unsigned char *b,
282 uint16_t rbitmap);
283
284void afp_filedir_unpack(struct afp_filedir_parms *filedir, unsigned char *b,
285 uint16_t rfbitmap, uint16_t rdbitmap);
286int afp_filedir_pack(unsigned char *b, struct afp_filedir_parms *filedir,
287 uint16_t rfbitmap, uint16_t rdbitmap);
288
289/*
290 afpclient.c
291*/
292int OpenClientSocket(char *host, int port);
293int CloseClientSocket(int fd);
294
295
296size_t my_dsi_stream_read(DSI *dsi, void *data, const size_t length);
297int my_dsi_stream_receive(DSI *dsi, void *buf, const size_t ilength,
298 size_t *rlength);
299size_t my_dsi_stream_write(DSI *dsi, void *data, const size_t length);
300int my_dsi_stream_send(DSI *dsi, void *buf, size_t length);
301uint16_t my_dsi_cmd_nwriterply_async(CONN *conn, uint64_t n);
302void dump_header(DSI *dsi);
303
304unsigned int DSIOpenSession(CONN *conn);
305unsigned int DSIGetStatus(CONN *conn);
306unsigned int DSICloseSession(CONN *conn);
307
308unsigned int AFPopenLogin(CONN *conn, char *vers, char *uam, char *usr,
309 char *pwd);
310unsigned int AFPopenLoginExt(CONN *conn, char *vers, char *uam, char *usr,
311 char *pwd);
312unsigned int AFPLogOut(CONN *conn);
313unsigned int AFPChangePW(CONN *conn, char *uam, char *usr, char *opwd,
314 char *pwd);
315
316unsigned int AFPzzz(CONN *conn, int);
317
318unsigned int AFPGetSrvrInfo(CONN *conn);
319unsigned int AFPGetSrvrParms(CONN *conn);
320unsigned int AFPGetSrvrMsg(CONN *conn, uint16_t type, uint16_t bitmap);
321
322unsigned int AFPCloseVol(CONN *conn, uint16_t vol);
323unsigned int AFPCloseDT(CONN *conn, uint16_t vol);
324
325unsigned int AFPByteLock(CONN *conn, uint16_t fork, int end, int mode,
326 int offset, int size);
327unsigned int AFPByteLock_ext(CONN *conn, uint16_t fork, int end, int mode,
328 off_t offset, off_t size);
329unsigned int AFPCloseFork(CONN *conn, uint16_t fork);
330unsigned int AFPFlush(CONN *conn, uint16_t vol);
331unsigned int AFPFlushFork(CONN *conn, uint16_t fork);
332unsigned int AFPDelete(CONN *conn, uint16_t vol, int did, char *name);
333
334unsigned int AFPGetComment(CONN *conn, uint16_t vol, int did, char *name);
335unsigned int AFPRemoveComment(CONN *conn, uint16_t vol, int did, char *name);
336unsigned int AFPAddComment(CONN *conn, uint16_t vol, int did, char *name,
337 char *cmt);
338
339uint16_t AFPOpenVol(CONN *conn, char *vol, uint16_t bitmap);
340uint16_t AFPOpenFork(CONN *conn, uint16_t vol, char type, uint16_t bitmap,
341 int did, char *name, uint16_t access);
342
343unsigned int AFPGetVolParam(CONN *conn, uint16_t vol, uint16_t bitmap);
344unsigned int AFPSetVolParam(CONN *conn, uint16_t vol, uint16_t bitmap,
345 struct afp_volume_parms *parms);
346
347unsigned int AFPCreateFile(CONN *conn, uint16_t vol, char type, int did,
348 char *name);
349unsigned int AFPCreateDir(CONN *conn, uint16_t vol, int did, char *name);
350
351unsigned int AFPWriteHeader(DSI *dsi, uint16_t fork, int offset, int size,
352 char *data, char whence);
353unsigned int AFPWriteFooter(DSI *dsi, uint16_t fork, int offset, int size,
354 char *data, char whence);
355unsigned int AFPWrite(CONN *conn, uint16_t fork, int offset, int size,
356 char *data, char whence);
357unsigned int AFPWrite_ext(CONN *conn, uint16_t fork, off_t offset, off_t size,
358 char *data, char whence);
359unsigned int AFPWrite_ext_async(CONN *conn, uint16_t fork, off_t offset,
360 off_t size, char *data, char whence);
361
362unsigned int AFPReadHeader(DSI *dsi, uint16_t fork, int offset, int size,
363 char *data);
364unsigned int AFPReadFooter(DSI *dsi, uint16_t fork, int offset, int size,
365 char *data);
366unsigned int AFPRead(CONN *conn, uint16_t fork, int offset, int size,
367 char *data);
368unsigned int AFPRead_ext(CONN *conn, uint16_t fork, off_t offset, off_t size,
369 char *data);
370unsigned int AFPRead_ext_async(CONN *conn, uint16_t fork, off_t offset,
371 off_t size, char *data);
372
373unsigned int AFPGetForkParam(CONN *conn, uint16_t fork, uint16_t bitmap);
374
375unsigned int AFPGetSessionToken(CONN *conn, int type, uint32_t time, int len,
376 char *token);
377unsigned int AFPDisconnectOldSession(CONN *conn, uint16_t type, int len,
378 char *token);
379
380unsigned int AFPMapID(CONN *conn, char fn, int id);
381unsigned int AFPMapName(CONN *conn, char fn, char *name);
382
383unsigned int AFPAddAPPL(CONN *conn, uint16_t dt, int did, char *creator,
384 uint32_t tag, char *name);
385unsigned int AFPGetAPPL(CONN *conn, uint16_t dt, char *name, uint16_t index,
386 uint16_t f_bitmap);
387unsigned int AFPRemoveAPPL(CONN *conn, uint16_t dt, int did, char *creator,
388 char *name);
389
390unsigned int AFPGetUserInfo(CONN *conn, char flag, int id, uint16_t bitmap);
391unsigned int AFPBadPacket(CONN *conn, char fn, char *name);
392
393unsigned int AFPCatSearch(CONN *conn, uint16_t vol, uint32_t nbe, char *pos,
394 uint16_t f_bitmap, uint16_t d_bitmap,
395 uint32_t rbitmap, struct afp_filedir_parms *filedir,
396 struct afp_filedir_parms *filedir2);
397
398unsigned int AFPCatSearchExt(CONN *conn, uint16_t vol, uint32_t nbe, char *pos,
399 uint16_t f_bitmap, uint16_t d_bitmap,
400 uint32_t rbitmap, struct afp_filedir_parms *filedir,
401 struct afp_filedir_parms *filedir2);
402
403unsigned int AFPSetForkParam(CONN *conn, uint16_t fork, uint16_t bitmap,
404 off_t size);
405
406unsigned int AFPGetACL(CONN *conn, uint16_t vol, int did, uint16_t bitmap,
407 char *name);
408unsigned int AFPListExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap,
409 int maxsize, char *pathname);
410unsigned int AFPGetExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap,
411 int maxsize, char *pathname, char *attrname);
412unsigned int AFPSetExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap,
413 char *pathname, char *attrname, char *data);
414unsigned int AFPRemoveExtAttr(CONN *conn, uint16_t vol, int did,
415 uint16_t bitmap, char *pathname, char *attrname);
416
417int FPset_name(CONN *conn, int ofs, char *name);
418void u2mac(uint8_t *dst, char *name, int len);
419
420char *strp2cdup(unsigned char *src);
421
422#endif
423
424/* ---------------------------------
425*/
CONN * Conn2
Definition afparg.c:57
char * vers
Definition afparg.c:53
char * uam
Definition afparg.c:54
static DSI * dsi
Definition afparg.c:39
CONN * Conn
Definition afparg.c:40
unsigned int AFPGetAPPL(CONN *conn, uint16_t dt, char *name, uint16_t index, uint16_t f_bitmap)
Definition afpclient.c:2189
int my_dsi_data_receive(DSI *x)
Definition afpclient.c:328
unsigned int AFPRemoveAPPL(CONN *conn, uint16_t dt, int did, char *creator, char *name)
Definition afpclient.c:2247
unsigned int AFPCloseFork(CONN *conn, uint16_t fork)
Definition afpclient.c:734
unsigned int AFPFlush(CONN *conn, uint16_t vol)
Definition afpclient.c:856
unsigned int AFPByteLock_ext(CONN *conn, uint16_t fork, int end, int mode, off_t offset, off_t size)
Definition afpclient.c:810
unsigned int AFPWriteFooter(DSI *dsi, uint16_t fork, int offset, int size, char *data, char whence)
unsigned int DSIGetStatus(CONN *conn)
Definition afpclient.c:442
unsigned int AFPopenLoginExt(CONN *conn, char *vers, char *uam, char *usr, char *pwd)
Definition afpclient.c:524
unsigned int DSIOpenSession(CONN *conn)
Definition afpclient.c:402
unsigned int AFPSetVolParam(CONN *conn, uint16_t vol, uint16_t bitmap, struct afp_volume_parms *parms)
Definition afpclient.c:1504
unsigned int AFPGetForkParam(CONN *conn, uint16_t fork, uint16_t bitmap)
Definition afpclient.c:2166
unsigned int DSICloseSession(CONN *conn)
Definition afpclient.c:460
unsigned int AFPByteLock(CONN *conn, uint16_t fork, int end, int mode, int offset, int size)
Definition afpclient.c:744
unsigned int AFPGetSrvrInfo(CONN *conn)
Definition afpclient.c:672
unsigned int AFPSetExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap, char *pathname, char *attrname, char *data)
Definition afpclient.c:2492
unsigned int AFPAddAPPL(CONN *conn, uint16_t dt, int did, char *creator, uint32_t tag, char *name)
Definition afpclient.c:2219
unsigned int AFPGetSrvrMsg(CONN *conn, uint16_t type, uint16_t bitmap)
Definition afpclient.c:692
uint16_t my_dsi_cmd_nwriterply_async(CONN *conn, uint64_t n)
unsigned int AFPCloseVol(CONN *conn, uint16_t vol)
Definition afpclient.c:714
uint16_t AFPOpenFork(CONN *conn, uint16_t vol, char type, uint16_t bitmap, int did, char *name, uint16_t access)
Definition afpclient.c:1746
unsigned int AFPGetComment(CONN *conn, uint16_t vol, int did, char *name)
Definition afpclient.c:1791
void afp_filedir_unpack(struct afp_filedir_parms *filedir, unsigned char *b, uint16_t rfbitmap, uint16_t rdbitmap)
Definition afpclient.c:1142
int OpenClientSocket(char *host, int port)
Definition afpclient.c:20
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:2273
unsigned int AFPMapName(CONN *conn, char fn, char *name)
Definition afpclient.c:1946
uint16_t AFPOpenVol(CONN *conn, char *vol, uint16_t bitmap)
Definition afpclient.c:876
unsigned int AFPMapID(CONN *conn, char fn, int id)
Definition afpclient.c:1925
unsigned int AFPCreateDir(CONN *conn, uint16_t vol, int did, char *name)
Definition afpclient.c:2134
unsigned int AFPWriteHeader(DSI *dsi, uint16_t fork, int offset, int size, char *data, char whence)
Definition afpclient.c:1604
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:2323
unsigned int AFPChangePW(CONN *conn, char *uam, char *usr, char *opwd, char *pwd)
Definition afpclient.c:595
unsigned int AFPGetSrvrParms(CONN *conn)
Definition afpclient.c:682
unsigned int AFPWrite_ext_async(CONN *conn, uint16_t fork, off_t offset, off_t size, char *data, char whence)
Definition afpclient.c:1718
int my_dsi_stream_send(DSI *dsi, void *buf, size_t length)
Definition afpclient.c:186
size_t my_dsi_stream_write(DSI *dsi, void *data, const size_t length)
Definition afpclient.c:154
unsigned int AFPListExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap, int maxsize, char *pathname)
Definition afpclient.c:2458
unsigned int AFPBadPacket(CONN *conn, char fn, char *name)
Definition afpclient.c:1984
unsigned int AFPRead(CONN *conn, uint16_t fork, int offset, int size, char *data)
Definition afpclient.c:2052
unsigned int AFPGetExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap, int maxsize, char *pathname, char *attrname)
Definition afpclient.c:2404
void afp_volume_unpack(struct afp_volume_parms *parms, unsigned char *b, uint16_t rbitmap)
Definition afpclient.c:987
int afp_filedir_pack(unsigned char *b, struct afp_filedir_parms *filedir, uint16_t rfbitmap, uint16_t rdbitmap)
Definition afpclient.c:1316
unsigned int AFPReadHeader(DSI *dsi, uint16_t fork, int offset, int size, char *data)
char * strp2cdup(unsigned char *src)
Definition afpclient.c:957
unsigned int AFPFlushFork(CONN *conn, uint16_t fork)
Definition afpclient.c:866
unsigned int AFPRead_ext(CONN *conn, uint16_t fork, off_t offset, off_t size, char *data)
Definition afpclient.c:2064
void dump_header(DSI *dsi)
Definition afpcmd.c:497
void u2mac(uint8_t *dst, char *name, int len)
Definition afpclient.c:1531
unsigned int AFPDelete(CONN *conn, uint16_t vol, int did, char *name)
Definition afpclient.c:1785
unsigned int AFPDisconnectOldSession(CONN *conn, uint16_t type, int len, char *token)
Definition afpclient.c:1874
unsigned int AFPGetACL(CONN *conn, uint16_t vol, int did, uint16_t bitmap, char *name)
Definition afpclient.c:2375
unsigned int AFPSetForkParam(CONN *conn, uint16_t fork, uint16_t bitmap, off_t size)
Definition afpclient.c:831
size_t my_dsi_stream_read(DSI *dsi, void *data, const size_t length)
Definition afpclient.c:77
int FPset_name(CONN *conn, int ofs, char *name)
Definition afpclient.c:1551
unsigned int AFPzzz(CONN *conn, int)
Definition afpclient.c:652
unsigned int AFPReadFooter(DSI *dsi, uint16_t fork, int offset, int size, char *data)
Definition afpclient.c:2032
unsigned int AFPGetUserInfo(CONN *conn, char flag, int id, uint16_t bitmap)
Definition afpclient.c:1901
int my_dsi_stream_receive(DSI *dsi, void *buf, const size_t ilength, size_t *rlength)
Definition afpclient.c:134
unsigned int AFPCreateFile(CONN *conn, uint16_t vol, char type, int did, char *name)
Definition afpclient.c:1581
unsigned int AFPCloseDT(CONN *conn, uint16_t vol)
Definition afpclient.c:724
unsigned int AFPRead_ext_async(CONN *conn, uint16_t fork, off_t offset, off_t size, char *data)
unsigned int AFPGetVolParam(CONN *conn, uint16_t vol, uint16_t bitmap)
Definition afpclient.c:1482
unsigned int AFPLogOut(CONN *conn)
Definition afpclient.c:641
unsigned int AFPWrite_ext(CONN *conn, uint16_t fork, off_t offset, off_t size, char *data, char whence)
Definition afpclient.c:1671
unsigned int AFPRemoveComment(CONN *conn, uint16_t vol, int did, char *name)
Definition afpclient.c:1797
unsigned int AFPWrite(CONN *conn, uint16_t fork, int offset, int size, char *data, char whence)
Definition afpclient.c:1661
unsigned int AFPRemoveExtAttr(CONN *conn, uint16_t vol, int did, uint16_t bitmap, char *pathname, char *attrname)
Definition afpclient.c:2542
unsigned int AFPAddComment(CONN *conn, uint16_t vol, int did, char *name, char *cmt)
Definition afpclient.c:1803
int CloseClientSocket(int fd)
Definition afpclient.c:69
unsigned int AFPGetSessionToken(CONN *conn, int type, uint32_t time, int len, char *token)
Definition afpclient.c:1836
int my_dsi_cmd_receive(DSI *x)
Definition afpclient.c:322
unsigned int AFPopenLogin(CONN *conn, char *vers, char *uam, char *usr, char *pwd)
Definition afpclient.c:477
static char buf[MAXPATHLEN+1]
Definition afppasswd.c:66
struct timeval time
#define data
Definition hash.c:37
cnid_t did
Definition nad_cp.c:92
static enum op type
Definition nad_cp.c:95
#define flag(x)
Definition netacnv.c:15
static unsigned char port
Definition pap.c:504
Definition asp.h:43
Definition afpclient.h:211
int afp_version
Definition afpclient.h:217
int type
Definition afpclient.h:216
DSI dsi
Definition afpclient.h:212
Definition include/atalk/dsi.h:52
Definition afpclient.h:240
uint16_t offcnt
Definition afpclient.h:252
int isdir
Definition afpclient.h:241
uint16_t attr
Definition afpclient.h:244
int name_type
Definition afpclient.h:262
uint32_t cdate
Definition afpclient.h:248
uint32_t rflen
Definition afpclient.h:249
char * sname
Definition afpclient.h:264
uint32_t mdate
Definition afpclient.h:248
uint32_t gid
Definition afpclient.h:253
char * utf8_name
Definition afpclient.h:265
char finder_info[32]
Definition afpclient.h:261
uint32_t bdate
Definition afpclient.h:248
uint16_t vid
Definition afpclient.h:245
uint8_t pdinfo[6]
Definition afpclient.h:259
uint64_t ext_dflen
Definition afpclient.h:250
uint64_t ext_rflen
Definition afpclient.h:251
uint32_t did
Definition afpclient.h:247
uint32_t uid
Definition afpclient.h:253
uint32_t dflen
Definition afpclient.h:249
char * lname
Definition afpclient.h:263
uint32_t pdid
Definition afpclient.h:246
uint32_t unix_priv
Definition afpclient.h:255
uint16_t bitmap
Definition afpclient.h:243
uint8_t access[4]
Definition afpclient.h:257
Definition afpclient.h:268
uint8_t flags
Definition afpclient.h:271
uint16_t vid
Definition afpclient.h:275
uint8_t state
Definition afpclient.h:270
uint32_t mdate
Definition afpclient.h:274
uint16_t attr
Definition afpclient.h:272
uint32_t btotal
Definition afpclient.h:276
uint32_t cdate
Definition afpclient.h:274
uint32_t bdate
Definition afpclient.h:274
char * utf8_name
Definition afpclient.h:278
char * name
Definition afpclient.h:277
uint32_t bfree
Definition afpclient.h:276
uint16_t sig
Definition afpclient.h:273
uint32_t bsize
Definition afpclient.h:276
Definition include/atalk/volume.h:32