home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Amiga Shareware Floppies / ma64.dms / ma64.adf / FTPMount-1.0 / Source / tcp.h < prev    next >
Text File  |  1995-09-06  |  2KB  |  110 lines

  1. /*
  2.  * This source file is Copyright 1995 by Evan Scott.
  3.  * All rights reserved.
  4.  * Permission is granted to distribute this file provided no
  5.  * fees beyond distribution costs are levied.
  6.  */
  7.  
  8.  
  9. typedef union {
  10.     struct {
  11.         b8 a;
  12.         b8 b;
  13.         b8 c;
  14.         b8 d;
  15.     } dot;
  16.     b32 l;
  17. } ipnum;
  18.  
  19. typedef union {
  20.     struct {
  21.         b8 a;
  22.         b8 b;
  23.     } dot;
  24.     b16 w;
  25. } portnum;
  26.  
  27. /* something like an iorequest ... probably a real exec device
  28.    implementation would be good, but for now just DIY */
  29.  
  30. typedef struct tcpm {
  31.     struct    Message header;
  32.     
  33.     magic_verify;
  34.     
  35.     b32    command;
  36.     void    *ident;        /* stores pointer to context information */
  37.     
  38.     ipnum    address;
  39.     portnum    port;
  40.     
  41.     void    *data;
  42.     struct    tcpm    *interrupt;
  43.     b32    length;
  44.     
  45.     b32    result;
  46.     b32    error;
  47.     b32    flags;
  48.     b32    userid;
  49.     void    *userdata;
  50. } tcpmessage;
  51.  
  52. typedef struct {
  53.     magic_verify;
  54.  
  55.     sb32    fd;
  56.     void    *connecting_port;
  57.     boolean    eof;
  58. } tcpident;
  59.  
  60. #define V_tcpmessage 4159
  61. #define    V_tcpident 7592
  62.  
  63. /* commands */
  64. #define TCP_NOOP    0
  65. #define    TCP_CONNECT    1
  66. #define    TCP_LISTEN    2
  67. #define TCP_READ    3
  68. #define TCP_WRITE    4
  69. #define TCP_CLOSE    5
  70. #define TCP_INTERRUPT    6
  71.  
  72. /* hmmm, keep these??? */
  73. #define TCP_NEWMESSAGE    7
  74. #define TCP_DISPOSE    8
  75.  
  76. /* internal */
  77. #define TCP_CONNECTED    9    /* CONNECT reply */
  78. #define TCP_ACCEPTED    10    /* Async ACCEPT */
  79. #define TCP_WRITTEN    11    /* WRITE reply (not used) */
  80. #define TCP_GOT        12    /* READ reply (not used) */
  81. #define TCP_STARTUP    13    /* STARTUP was successful/unsuccessful */
  82.  
  83. #define TCP_DIE        14
  84.  
  85. /* info */
  86. #define TCP_PEERNAME    15
  87. #define TCP_SERVICE    16
  88.  
  89. /* errors */
  90. #define    NO_ERROR        0
  91. #define ERROR_OOM        1
  92. #define ERROR_UNKNOWN_COMMAND    2
  93. #define ERROR_NO_CONNECTION    3
  94. #define ERROR_LOST_CONNECTION    4
  95. #define ERROR_ALREADY_CONNECTED    5
  96. #define ERROR_ACCESS_DENIED    6
  97. #define ERROR_EOF        7
  98. #define ERROR_INTERRUPTED    8
  99. #define ERROR_UNKNOWN_HOST    9
  100. #define ERROR_CANT_CONNECT    10
  101. #define ERROR_UNREACHABLE    11
  102. #define ERROR_CONNECT_REFUSED    12
  103.  
  104. /* flags */
  105. #define FLAG_READLINE        1
  106.  
  107. void __saveds __asm tcp_handler(register __a0 b8 *parent_port);
  108. void unique_name(void *, b8 *, b8 *);
  109.  
  110.