source: git/MP/MP/h/MP_TcpTransp.h @ bba1c4

spielwiese
Last change on this file since bba1c4 was bba1c4, checked in by Olaf Bachmann <obachman@…>, 26 years ago
1998-10-14 Olaf Bachmann <obachman@mathematik.uni-kl.de> * MP_TcpTransp.c: added MP_KillLink, -MPrsh option to MP_OpenLink * MP_Util.c: Added IMP_StrDup function git-svn-id: file:///usr/local/Singular/svn/trunk@2562 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 3.1 KB
Line 
1/***************************************************************************
2 *
3 *   HEADER FILE:  MP_TcpTransp.h
4 *
5 *        Isolate all the includes we need for unix TCP sockets.
6 *
7 *  Change Log:
8 *       September 10, 1995  SG - Updated implementation.  Much cleaning
9 *                                to make it presentable.
10 *
11 ***************************************************************************/
12#ifndef __TcpTransp__h
13#define __TcpTransp__h
14
15#include <stdio.h>
16#include <sys/types.h>
17#include <sys/time.h>
18
19#ifdef __WIN32__
20
21#   include <winsock.h>
22
23#   define  ERRORCODE(err)      WSA ## err
24#   define  LASTERROR           WSAGetLastError()
25
26#   define  CLOSE_SOCKET(s)             closesocket(s)
27#   define  READ_SOCKET(s, buf, len)    recv(s, buf, len, 0)
28#   define  WRITE_SOCKET(s, buf, len)   send(s, buf, len, 0)
29
30int WinSockInitialize _ANSI_ARGS_((void));
31
32#else /* not __WIN32__ */
33
34#   include <sys/socket.h>
35#   include <netinet/in.h>
36#   include <netinet/tcp.h>
37#   include <sys/ioctl.h>
38#   include <arpa/inet.h>
39#   include <netdb.h>
40
41typedef int SOCKET;
42
43#   define  INVALID_SOCKET      -1
44#   define  SOCKET_ERROR        -1
45#   define  IPPORT_RESERVED     1024
46#   define  ERRORCODE(err)      err
47#   define  LASTERROR           errno
48
49#   define  CLOSE_SOCKET(s)             close(s)
50#   define  READ_SOCKET(s, buf, len)    read(s, buf, len)
51#   define  WRITE_SOCKET(s, buf, len)   write(s, buf, len)
52
53#   define  HOSTENT             struct hostent
54#   define  SOCKADDR            struct sockaddr
55#   define  TIMEVAL             struct timeval
56#   define  SOCKADDR_IN         struct sockaddr_in
57
58#endif /* not __WIN32__ */
59
60
61#define MP_NO_SUCH_TCP_MODE     0
62#define MP_CONNECT_MODE         1
63#define MP_LISTEN_MODE          2
64#define MP_LAUNCH_MODE          3
65#define MP_FORK_MODE            4
66
67/* Initial port for listening */
68#define MP_INIT_PORT            "1025"
69
70/* The maximum number of attempts made to bind a socket to a port address */
71#define MP_MAX_BIND_ATTEMPTS    1000
72
73#define MP_ACCEPT_WAIT_SEC      5
74#define MP_ACCEPT_WAIT_USEC     0
75
76MP_Status_t tcp_flush _ANSI_ARGS_((MP_Link_pt link));
77long tcp_write _ANSI_ARGS_((MP_Link_pt, char *, long));
78long tcp_read _ANSI_ARGS_((MP_Link_pt, char *, long));
79MP_Boolean_t tcp_get_status _ANSI_ARGS_((MP_Link_pt, MP_LinkStatus_t));
80MP_Status_t tcp_init_transport _ANSI_ARGS_((MP_Link_pt));
81MP_Status_t tcp_open_connection _ANSI_ARGS_((MP_Link_pt, int, char**));
82MP_Status_t tcp_close_connection _ANSI_ARGS_((MP_Link_pt));
83MP_Status_t tcp_kill_connection _ANSI_ARGS_((MP_Link_pt));
84MP_Status_t open_tcp_connect_mode _ANSI_ARGS_((MP_Link_pt, int, char**));
85MP_Status_t open_tcp_listen_mode _ANSI_ARGS_((MP_Link_pt, int, char**));
86MP_Status_t open_tcp_launch_mode _ANSI_ARGS_((MP_Link_pt, int, char**));
87MP_Status_t socket_accept_blocking _ANSI_ARGS_((MP_Link_pt, SOCKET*));
88MP_Status_t socket_accept_non_blocking _ANSI_ARGS_((MP_Link_pt, SOCKET*));
89char* IMP_GetCmdlineArg _ANSI_ARGS_((int, char**, char*));
90
91
92typedef struct{
93    SOCKET  bindsock;
94    SOCKET  sock;
95    short   peerport;
96    char    *peerhost;
97    char    *myhost;
98    MP_LinkStatus_t status;
99    pid_t   peerpid;
100  char *rsh;
101  int mode;
102} MP_TCP_t;
103
104#endif
Note: See TracBrowser for help on using the repository browser.