X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Fatalk%2Fdsi.h;h=c31b522c39579489e02e4df4ba806298de033950;hb=e450b7b95579a4a4358e499fdbf93620aa09bae2;hp=bd8cc8b4e50ec700970fb05bcefa5f6267810cbe;hpb=f929f4e41ead6abd4cf05d4aeca5ce1f5942e569;p=netatalk.git diff --git a/include/atalk/dsi.h b/include/atalk/dsi.h index bd8cc8b4..c31b522c 100644 --- a/include/atalk/dsi.h +++ b/include/atalk/dsi.h @@ -45,12 +45,14 @@ struct dsi_block { uint8_t dsi_flags; /* packet type: request or reply */ uint8_t dsi_command; /* command */ uint16_t dsi_requestID; /* request ID */ - uint32_t dsi_code; /* error code or data offset */ + union { + uint32_t dsi_code; /* error code */ + uint32_t dsi_doff; /* data offset */ + } dsi_data; uint32_t dsi_len; /* total data length */ uint32_t dsi_reserved; /* reserved field */ }; -#define DSI_CMDSIZ 8192 #define DSI_DATASIZ 8192 /* child and parent processes might interpret a couple of these @@ -72,7 +74,8 @@ typedef struct DSI { uint32_t attn_quantum, datasize, server_quantum; uint16_t serverID, clientID; - uint8_t commands[DSI_CMDSIZ], data[DSI_DATASIZ]; + uint8_t *commands; /* DSI recieve buffer */ + uint8_t data[DSI_DATASIZ]; /* DSI reply buffer */ size_t datalen, cmdlen; off_t read_count, write_count; uint32_t flags; /* DSI flags like DSI_SLEEPING, DSI_DISCONNECTED */ @@ -135,7 +138,7 @@ typedef struct DSI { #define DSI_DEFQUANT 2 /* default attention quantum size */ #define DSI_SERVQUANT_MAX 0xffffffff /* server quantum */ #define DSI_SERVQUANT_MIN 32000 /* minimum server quantum */ -#define DSI_SERVQUANT_DEF 0x0004A2E0L /* default server quantum */ +#define DSI_SERVQUANT_DEF 0x100000L /* default server quantum (1 MB) */ /* default port number */ #define DSI_AFPOVERTCP_PORT 548 @@ -151,17 +154,15 @@ typedef struct DSI { #define DSI_RECONSOCKET (1 << 7) /* we have a new socket from primary reconnect */ #define DSI_RECONINPROG (1 << 8) /* used in the new session in reconnect */ #define DSI_AFP_LOGGED_OUT (1 << 9) /* client called afp_logout, quit on next EOF from socket */ -#if 0 -#define DSI_GOT_ECONNRESET (1 << 10) /* got ECONNRESET from client => exit */ -#endif /* basic initialization: dsi_init.c */ extern DSI *dsi_init(AFPObj *obj, const char *hostname, const char *address, const char *port); extern void dsi_setstatus (DSI *, char *, const size_t); extern int dsi_tcp_init(DSI *dsi, const char *hostname, const char *address, const char *port); +extern void dsi_free(DSI *dsi); /* in dsi_getsess.c */ -extern int dsi_getsession (DSI *, server_child *, const int, afp_child_t **); +extern int dsi_getsession (DSI *, server_child_t *, const int, afp_child_t **); extern void dsi_kill (int);