11#include <netinet/in.h>
13#include <sys/socket.h>
41#define DSI_BLOCKSIZ 16
54#define DSI_DATASIZ 65536
92 int zeroconf_registered;
103#define DSIFL_REQUEST 0x00
104#define DSIFL_REPLY 0x01
105#define DSIFL_MAX 0x01
108#define DSIOPT_SERVQUANT 0x00
109#define DSIOPT_ATTNQUANT 0x01
110#define DSIOPT_REPLCSIZE 0x02
113#define DSIFUNC_CLOSE 1
115#define DSIFUNC_STAT 3
116#define DSIFUNC_OPEN 4
117#define DSIFUNC_TICKLE 5
118#define DSIFUNC_WRITE 6
119#define DSIFUNC_ATTN 8
123#define DSIERR_OK 0x0000
124#define DSIERR_BADVERS 0xfbd6
125#define DSIERR_BUFSMALL 0xfbd5
126#define DSIERR_NOSESS 0xfbd4
127#define DSIERR_NOSERV 0xfbd3
128#define DSIERR_PARM 0xfbd2
129#define DSIERR_SERVBUSY 0xfbd1
130#define DSIERR_SESSCLOS 0xfbd0
131#define DSIERR_SIZERR 0xfbcf
132#define DSIERR_TOOMANY 0xfbce
133#define DSIERR_NOACK 0xfbcd
136#define DSI_DEFQUANT 2
137#define DSI_SERVQUANT_MAX 0xffffffff
138#define DSI_SERVQUANT_MIN 32000
139#define DSI_SERVQUANT_DEF 0x100000L
142#define DSI_AFPOVERTCP_PORT 548
145#define DSI_DATA (1 << 0)
146#define DSI_RUNNING (1 << 1)
147#define DSI_SLEEPING (1 << 2)
148#define DSI_EXTSLEEP (1 << 3)
149#define DSI_DISCONNECTED (1 << 4)
150#define DSI_DIE (1 << 5)
151#define DSI_NOREPLY (1 << 6)
152#define DSI_RECONSOCKET (1 << 7)
153#define DSI_RECONINPROG (1 << 8)
154#define DSI_AFP_LOGGED_OUT (1 << 9)
178#define DSI_MSG_MORE 2
196#define dsi_wrtreply(a,b) dsi_cmdreply(a,b)
201extern ssize_t
dsi_read(
DSI *,
void *,
const size_t);
205#define dsi_serverID(x) ((x)->serverID++)
206#define dsi_send(x) do { \
207 (x)->header.dsi_len = htonl((x)->cmdlen); \
208 dsi_stream_send((x), (x)->commands, (x)->cmdlen); \
uint16_t AFPUserBytes
Definition afp.h:30
static DSI * dsi
Definition afparg.c:39
size_t dsi_write(DSI *, void *, const size_t)
Definition dsi_write.c:52
int dsi_attention(DSI *, AFPUserBytes)
send an attention.
Definition dsi_attn.c:25
size_t dsi_stream_read(DSI *, void *, const size_t)
Read data from DSI buffer.
Definition dsi_stream.c:534
ssize_t dsi_stream_write(DSI *, void *, const size_t, const int mode)
write raw DSI data
Definition dsi_stream.c:304
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)
write data.
Definition dsi_stream.c:581
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 **)
Start a DSI session, fork an afpd process.
Definition dsi_getsess.c:36
ssize_t dsi_stream_read_file(DSI *, int, off_t off, const size_t len, const int err)
Definition dsi_stream.c:371
ssize_t dsi_readinit(DSI *, void *, const size_t, const size_t, const int)
streaming i/o for afp_read.
Definition dsi_read.c:29
int dsi_tcp_init(DSI *dsi, const char *hostname, const char *address, const char *port)
Initialize DSI over TCP.
Definition dsi_tcp.c:431
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)
Communication error with the client, enter disconnected state.
Definition dsi_stream.c:282
int dsi_stream_receive(DSI *)
Read DSI command and data.
Definition dsi_stream.c:662
void dsi_free(DSI *dsi)
Definition dsi_tcp.c:105
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:57
void dsi_readdone(DSI *)
Definition dsi_read.c:51
static char hostname[MAXHOSTNAMELEN]
Definition lp.c:170
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:58
char * eof
Definition include/atalk/dsi.h:87
uint16_t serverID
Definition include/atalk/dsi.h:74
AFPObj * AFPobj
Definition include/atalk/dsi.h:60
char * signature
Definition include/atalk/dsi.h:63
int tickle
Definition include/atalk/dsi.h:67
int msg_request
Definition include/atalk/dsi.h:70
size_t datalen
Definition include/atalk/dsi.h:77
struct sockaddr_storage server client
Definition include/atalk/dsi.h:65
char * start
Definition include/atalk/dsi.h:86
char * buffer
Definition include/atalk/dsi.h:85
size_t cmdlen
Definition include/atalk/dsi.h:77
off_t read_count
Definition include/atalk/dsi.h:78
int in_write
Definition include/atalk/dsi.h:68
pid_t(* proto_open)(struct DSI *)
Definition include/atalk/dsi.h:98
uint32_t datasize
Definition include/atalk/dsi.h:73
off_t write_count
Definition include/atalk/dsi.h:78
int down_request
Definition include/atalk/dsi.h:71
char * end
Definition include/atalk/dsi.h:88
int serversock
Definition include/atalk/dsi.h:81
uint32_t server_quantum
Definition include/atalk/dsi.h:73
uint16_t clientID
Definition include/atalk/dsi.h:74
uint32_t flags
Definition include/atalk/dsi.h:79
void(* proto_close)(struct DSI *)
Definition include/atalk/dsi.h:99
uint8_t data[DSI_DATASIZ]
Definition include/atalk/dsi.h:76
int socket
Definition include/atalk/dsi.h:80
size_t dsireadbuf
Definition include/atalk/dsi.h:84
char status[1400]
Definition include/atalk/dsi.h:62
uint32_t attn_quantum
Definition include/atalk/dsi.h:73
struct itimerval timer
Definition include/atalk/dsi.h:66
int statuslen
Definition include/atalk/dsi.h:61
struct dsi_block header
Definition include/atalk/dsi.h:64
uint8_t * commands
Definition include/atalk/dsi.h:75
struct DSI * next
Definition include/atalk/dsi.h:59
Definition include/atalk/dsi.h:42
uint8_t dsi_command
Definition include/atalk/dsi.h:44
uint32_t dsi_code
Definition include/atalk/dsi.h:47
uint32_t dsi_len
Definition include/atalk/dsi.h:50
uint16_t dsi_requestID
Definition include/atalk/dsi.h:45
union dsi_block::@151265333004305367041254150200207234256102203004 dsi_data
uint32_t dsi_doff
Definition include/atalk/dsi.h:48
uint32_t dsi_reserved
Definition include/atalk/dsi.h:51
uint8_t dsi_flags
Definition include/atalk/dsi.h:43
Definition server_child.h:39
Definition cnid_metad.c:111
#define DSI_DATASIZ
Definition test/testsuite/dsi.h:54