11#include <netinet/in.h>
13#include <sys/socket.h>
35#define DSI_BLOCKSIZ 16
48#define DSI_DATASIZ 65536
86 int zeroconf_registered;
97#define DSIFL_REQUEST 0x00
98#define DSIFL_REPLY 0x01
102#define DSIOPT_SERVQUANT 0x00
103#define DSIOPT_ATTNQUANT 0x01
104#define DSIOPT_REPLCSIZE 0x02
107#define DSIFUNC_CLOSE 1
109#define DSIFUNC_STAT 3
110#define DSIFUNC_OPEN 4
111#define DSIFUNC_TICKLE 5
112#define DSIFUNC_WRITE 6
113#define DSIFUNC_ATTN 8
117#define DSIERR_OK 0x0000
118#define DSIERR_BADVERS 0xfbd6
119#define DSIERR_BUFSMALL 0xfbd5
120#define DSIERR_NOSESS 0xfbd4
121#define DSIERR_NOSERV 0xfbd3
122#define DSIERR_PARM 0xfbd2
123#define DSIERR_SERVBUSY 0xfbd1
124#define DSIERR_SESSCLOS 0xfbd0
125#define DSIERR_SIZERR 0xfbcf
126#define DSIERR_TOOMANY 0xfbce
127#define DSIERR_NOACK 0xfbcd
130#define DSI_DEFQUANT 2
131#define DSI_SERVQUANT_MAX 0xffffffff
132#define DSI_SERVQUANT_MIN 32000
133#define DSI_SERVQUANT_DEF 0x100000L
136#define DSI_AFPOVERTCP_PORT 548
139#define DSI_DATA (1 << 0)
140#define DSI_RUNNING (1 << 1)
141#define DSI_SLEEPING (1 << 2)
142#define DSI_EXTSLEEP (1 << 3)
143#define DSI_DISCONNECTED (1 << 4)
144#define DSI_DIE (1 << 5)
145#define DSI_NOREPLY (1 << 6)
146#define DSI_RECONSOCKET (1 << 7)
147#define DSI_RECONINPROG (1 << 8)
148#define DSI_AFP_LOGGED_OUT (1 << 9)
172#define DSI_MSG_MORE 2
182extern ssize_t dsi_stream_read_file(
DSI *,
int, off_t off,
const size_t len,
190#define dsi_wrtreply(a,b) dsi_cmdreply(a,b)
195extern ssize_t
dsi_read(
DSI *,
void *,
const size_t);
199#define dsi_serverID(x) ((x)->serverID++)
200#define dsi_send(x) do { \
201 (x)->header.dsi_len = htonl((x)->cmdlen); \
202 dsi_stream_send((x), (x)->commands, (x)->cmdlen); \
static DSI * dsi
Definition afparg.c:39
uint16_t AFPUserBytes
Definition include/atalk/afp.h:30
size_t dsi_write(DSI *, void *, const size_t)
Definition dsi_write.c:52
int dsi_attention(DSI *, AFPUserBytes)
Definition dsi_attn.c:24
size_t dsi_stream_read(DSI *, void *, const size_t)
Definition dsi_stream.c:523
ssize_t dsi_stream_write(DSI *, void *, const size_t, const int mode)
Definition dsi_stream.c:295
size_t dsi_writeinit(DSI *, void *, const size_t)
Definition dsi_write.c:26
void dsi_setstatus(DSI *, char *, const size_t)
int dsi_stream_send(DSI *, void *, size_t)
Definition dsi_stream.c:568
DSI * dsi_init(AFPObj *obj, const char *hostname, const char *address, const char *port)
Definition dsi_init.c:17
int dsi_getsession(DSI *, server_child_t *, const int, afp_child_t **)
Definition dsi_getsess.c:36
ssize_t dsi_readinit(DSI *, void *, const size_t, const size_t, const int)
Definition dsi_read.c:26
int dsi_tcp_init(DSI *dsi, const char *hostname, const char *address, const char *port)
Definition dsi_tcp.c:430
void dsi_opensession(DSI *)
Definition dsi_opensess.c:20
void dsi_writeflush(DSI *)
Definition dsi_write.c:70
int dsi_tickle(DSI *)
Definition dsi_tickle.c:20
int dsi_disconnect(DSI *dsi)
Definition dsi_stream.c:277
int dsi_stream_receive(DSI *)
Definition dsi_stream.c:649
void dsi_free(DSI *dsi)
Definition dsi_tcp.c:104
void dsi_close(DSI *)
Definition dsi_close.c:17
void dsi_getstatus(DSI *)
Definition dsi_getstat.c:19
int dsi_cmdreply(DSI *, const int)
Definition dsi_cmdreply.c:19
ssize_t dsi_read(DSI *, void *, const size_t)
Definition dsi_read.c:54
void dsi_readdone(DSI *)
Definition dsi_read.c:48
static char hostname[MAXHOSTNAMELEN]
Definition lp.c:169
static AFPObj obj
Definition netatalk.c:62
static unsigned char port
Definition pap.c:504
struct afp_child afp_child_t
Definition include/atalk/dsi.h:52
char * eof
Definition include/atalk/dsi.h:81
uint16_t serverID
Definition include/atalk/dsi.h:68
AFPObj * AFPobj
Definition include/atalk/dsi.h:54
char * signature
Definition include/atalk/dsi.h:57
int tickle
Definition include/atalk/dsi.h:61
int msg_request
Definition include/atalk/dsi.h:64
size_t datalen
Definition include/atalk/dsi.h:71
struct sockaddr_storage server client
Definition include/atalk/dsi.h:59
char * start
Definition include/atalk/dsi.h:80
char * buffer
Definition include/atalk/dsi.h:79
size_t cmdlen
Definition include/atalk/dsi.h:71
off_t read_count
Definition include/atalk/dsi.h:72
int in_write
Definition include/atalk/dsi.h:62
pid_t(* proto_open)(struct DSI *)
Definition include/atalk/dsi.h:92
uint32_t datasize
Definition include/atalk/dsi.h:67
off_t write_count
Definition include/atalk/dsi.h:72
int down_request
Definition include/atalk/dsi.h:65
char * end
Definition include/atalk/dsi.h:82
int serversock
Definition include/atalk/dsi.h:75
uint32_t server_quantum
Definition include/atalk/dsi.h:67
uint16_t clientID
Definition include/atalk/dsi.h:68
uint32_t flags
Definition include/atalk/dsi.h:73
void(* proto_close)(struct DSI *)
Definition include/atalk/dsi.h:93
uint8_t data[DSI_DATASIZ]
Definition include/atalk/dsi.h:70
int socket
Definition include/atalk/dsi.h:74
size_t dsireadbuf
Definition include/atalk/dsi.h:78
char status[1400]
Definition include/atalk/dsi.h:56
uint32_t attn_quantum
Definition include/atalk/dsi.h:67
struct itimerval timer
Definition include/atalk/dsi.h:60
int statuslen
Definition include/atalk/dsi.h:55
struct dsi_block header
Definition include/atalk/dsi.h:58
uint8_t * commands
Definition include/atalk/dsi.h:69
struct DSI * next
Definition include/atalk/dsi.h:53
Definition include/atalk/dsi.h:36
uint8_t dsi_command
Definition include/atalk/dsi.h:38
uint32_t dsi_code
Definition include/atalk/dsi.h:41
uint32_t dsi_len
Definition include/atalk/dsi.h:44
uint16_t dsi_requestID
Definition include/atalk/dsi.h:39
union dsi_block::@151265333004305367041254150200207234256102203004 dsi_data
uint32_t dsi_doff
Definition include/atalk/dsi.h:42
uint32_t dsi_reserved
Definition include/atalk/dsi.h:45
uint8_t dsi_flags
Definition include/atalk/dsi.h:37
Definition server_child.h:47
Definition cnid_metad.c:110
#define DSI_DATASIZ
Definition test/testsuite/dsi.h:43