home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magazyn Amiga Shareware Floppies
/
ma64.dms
/
ma64.adf
/
FTPMount-1.0
/
Source
/
tcp.h
< prev
next >
Wrap
Text File
|
1995-09-06
|
2KB
|
110 lines
/*
* This source file is Copyright 1995 by Evan Scott.
* All rights reserved.
* Permission is granted to distribute this file provided no
* fees beyond distribution costs are levied.
*/
typedef union {
struct {
b8 a;
b8 b;
b8 c;
b8 d;
} dot;
b32 l;
} ipnum;
typedef union {
struct {
b8 a;
b8 b;
} dot;
b16 w;
} portnum;
/* something like an iorequest ... probably a real exec device
implementation would be good, but for now just DIY */
typedef struct tcpm {
struct Message header;
magic_verify;
b32 command;
void *ident; /* stores pointer to context information */
ipnum address;
portnum port;
void *data;
struct tcpm *interrupt;
b32 length;
b32 result;
b32 error;
b32 flags;
b32 userid;
void *userdata;
} tcpmessage;
typedef struct {
magic_verify;
sb32 fd;
void *connecting_port;
boolean eof;
} tcpident;
#define V_tcpmessage 4159
#define V_tcpident 7592
/* commands */
#define TCP_NOOP 0
#define TCP_CONNECT 1
#define TCP_LISTEN 2
#define TCP_READ 3
#define TCP_WRITE 4
#define TCP_CLOSE 5
#define TCP_INTERRUPT 6
/* hmmm, keep these??? */
#define TCP_NEWMESSAGE 7
#define TCP_DISPOSE 8
/* internal */
#define TCP_CONNECTED 9 /* CONNECT reply */
#define TCP_ACCEPTED 10 /* Async ACCEPT */
#define TCP_WRITTEN 11 /* WRITE reply (not used) */
#define TCP_GOT 12 /* READ reply (not used) */
#define TCP_STARTUP 13 /* STARTUP was successful/unsuccessful */
#define TCP_DIE 14
/* info */
#define TCP_PEERNAME 15
#define TCP_SERVICE 16
/* errors */
#define NO_ERROR 0
#define ERROR_OOM 1
#define ERROR_UNKNOWN_COMMAND 2
#define ERROR_NO_CONNECTION 3
#define ERROR_LOST_CONNECTION 4
#define ERROR_ALREADY_CONNECTED 5
#define ERROR_ACCESS_DENIED 6
#define ERROR_EOF 7
#define ERROR_INTERRUPTED 8
#define ERROR_UNKNOWN_HOST 9
#define ERROR_CANT_CONNECT 10
#define ERROR_UNREACHABLE 11
#define ERROR_CONNECT_REFUSED 12
/* flags */
#define FLAG_READLINE 1
void __saveds __asm tcp_handler(register __a0 b8 *parent_port);
void unique_name(void *, b8 *, b8 *);