Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef F_STCCOMM
00020 #define F_STCCOMM
00021
00022 #include "typedefs.h"
00023
00024 #ifdef GSI__WINNT
00025
00026 #include <stdio.h>
00027 #include <io.h>
00028 #include <sys/types.h>
00029 #include <string.h>
00030 #include <stdlib.h>
00031 #include <winsock.h>
00032 #include <errno.h>
00033 #define bzero(a,n) memset(a,0,n)
00034
00035 #endif
00036
00037
00038
00039 #ifdef VMS
00040 INTS4 SYS$TRNLNM();
00041 #endif
00042
00043 #ifdef _HPUX_SOURCE
00044 #include <time.h>
00045 #include </usr/include/sys/errno.h>
00046 #include <sys/types.h>
00047 #include <stdio.h>
00048 #include <sys/socket.h>
00049 #include <netinet/in.h>
00050 #include <netdb.h>
00051 #include <signal.h>
00052 #include <arpa/inet.h>
00053 #include <sys/uio.h>
00054 #endif
00055
00056 #ifdef VMS
00057 #include <stdio.h>
00058 #include <netdb.h>
00059 #include <in.h>
00060 #include <time.h>
00061 #include <unixio.h>
00062 #include <string.h>
00063 #include <signal.h>
00064 #include <math.h>
00065 #include <ctype.h>
00066 #include <stdlib.h>
00067 #include <errno.h>
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 #define MAX_NOFILE 4096
00079 #define NBBY 8
00080
00081
00082
00083
00084
00085
00086 #ifndef FD_SETSIZE
00087 #define FD_SETSIZE MAX_NOFILE
00088 #endif
00089
00090
00091
00092 #define MAXSELFD MAX_NOFILE
00093
00094 #define NFDBITS (sizeof(fd_mask) * NBBY)
00095 #define NFDSHIFT 5
00096 #ifndef howmany
00097 #define howmany(x, y) (((x)+((y)-1))/(y))
00098 #endif
00099
00100 #define bzero(a,n) memset(a,0,n)
00101 #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
00102 #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
00103 #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
00104 #define FD_ZERO(p) bzero((INTS1 *)(p), sizeof(*(p)))
00105
00106 #endif
00107
00108 #ifdef OSK
00109 #include <time.h>
00110 #include <errno.h>
00111 #include <types.h>
00112 #include <stdio.h>
00113 #include <socket.h>
00114 #include <signal.h>
00115 #include <in.h>
00116 #include <netdb.h>
00117
00118 struct timeval {
00119 INTS4 tv_sec;
00120 INTS4 tv_usec;
00121 };
00122
00123 #endif
00124
00125 #ifdef ultrix
00126 #include <time.h>
00127 #include <errno.h>
00128 #include <sys/types.h>
00129 #include <stdio.h>
00130 #include <sys/socket.h>
00131 #include <netinet/in.h>
00132 #include <netdb.h>
00133 #include <signal.h>
00134 #include <arpa/inet.h>
00135 #include <sys/uio.h>
00136 #endif
00137
00138 #ifdef Lynx
00139 #include <time.h>
00140 #include <errno.h>
00141 #include <sys/types.h>
00142 #include <stdio.h>
00143 #include <socket.h>
00144 #include <signal.h>
00145 #include <netinet/in.h>
00146 #include <netdb.h>
00147 #include <arpa/inet.h>
00148 #include <uio.h>
00149 #endif
00150
00151 #ifdef GSI__LINUX
00152 #undef unix
00153 #include <time.h>
00154 #include <errno.h>
00155 #include <sys/types.h>
00156 #include <stdio.h>
00157 #include <unistd.h>
00158 #include <string.h>
00159 #include <strings.h>
00160 #include <sys/socket.h>
00161 #include <signal.h>
00162 #include <netinet/in.h>
00163 #include <netdb.h>
00164 #include <arpa/inet.h>
00165 #include <sys/uio.h>
00166 #endif
00167
00168 #ifdef GSI__SOLARIS
00169 #undef unix
00170 #include <time.h>
00171 #include <errno.h>
00172 #include <sys/types.h>
00173 #include <stdio.h>
00174 #include <unistd.h>
00175 #include <string.h>
00176 #include <strings.h>
00177 #include <sys/socket.h>
00178 #include <signal.h>
00179 #include <netinet/in.h>
00180 #include <netdb.h>
00181 #include <arpa/inet.h>
00182 #include <sys/uio.h>
00183 #endif
00184
00185
00186 #ifdef _AIX
00187 #include <time.h>
00188 #include <errno.h>
00189 #include <sys/types.h>
00190 #include <stdio.h>
00191 #include <sys/socket.h>
00192 #include <signal.h>
00193 #include <netinet/in.h>
00194 #include <netdb.h>
00195 #include <arpa/inet.h>
00196 #include <sys/uio.h>
00197 #define _ALL_SOURCE
00198 #define _POSIX_SOURCE
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210 #define MAX_NOFILE 4096
00211 #define NBBY 8
00212
00213
00214
00215
00216
00217
00218 #ifndef FD_SETSIZE
00219 #define FD_SETSIZE MAX_NOFILE
00220 #endif
00221
00222
00223
00224 #define MAXSELFD MAX_NOFILE
00225 typedef INTS4 fd_mask;
00226 #define NFDBITS (sizeof(fd_mask) * NBBY)
00227 #define NFDSHIFT 5
00228 #ifndef howmany
00229 #define howmany(x, y) (((x)+((y)-1))/(y))
00230 #endif
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242 #endif
00243
00244 #ifdef unix
00245 #include <time.h>
00246 #include <errno.h>
00247 #include <sys/types.h>
00248 #include <stdio.h>
00249 #include <stdlib.h>
00250 #include <sys/socket.h>
00251 #include <signal.h>
00252 #include <netinet/in.h>
00253 #include <netdb.h>
00254 #include <arpa/inet.h>
00255 #include <sys/uio.h>
00256 #define _ALL_SOURCE
00257 #define _POSIX_SOURCE
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269 #define MAX_NOFILE 4096
00270 #define NBBY 8
00271
00272
00273
00274
00275
00276
00277 #ifndef FD_SETSIZE
00278 #define FD_SETSIZE MAX_NOFILE
00279 #endif
00280
00281
00282
00283 #define MAXSELFD MAX_NOFILE
00284
00285 #define NFDBITS (sizeof(fd_mask) * NBBY)
00286 #define NFDSHIFT 5
00287 #ifndef howmany
00288 #define howmany(x, y) (((x)+((y)-1))/(y))
00289 #endif
00290
00291
00292
00293
00294
00295
00296 #define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= (1 << ((n) % NFDBITS)))
00297 #define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~(1 << ((n) % NFDBITS)))
00298 #define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & (1 << ((n) % NFDBITS)))
00299
00300
00301 #endif
00302
00303
00304 struct s_tcpcomm {
00305 INTS4 socket , sock_rw , namelength ;
00306 INTS4 i_signals;
00307 struct sockaddr_in sock , sock_name;
00308 struct hostent hostentstruct;
00309 struct hostent *hostentptr;
00310 INTS1 hostname[256] ;
00311 } ;
00312
00313 #ifdef vms
00314 #define PORTSERV_DATA "portserv.dat;1"
00315 #else
00316 #define PORTSERV_DATA "portserv.dat"
00317 #endif
00318
00319 #define MAXSERVER 50
00320 #define PORTSERVER_PORT 1000
00321 #define PORTSERVER_M_DEF "VSBP"
00322 #define PORTSERVER_S_DEF "DSAG"
00323
00324 struct s_comm_message {
00325 INTS1 c_message[128];
00326 INTS1 c_status[12];
00327 };
00328
00329 struct s_comm_portserv {
00330 INTS1 c_command[32];
00331 INTS1 c_serv_node[32];
00332 INTS1 c_serv_name[32];
00333 INTS1 c_date[32];
00334 INTS1 c_data[128];
00335 INTS1 c_port[8];
00336 } ;
00337
00338
00339 #ifdef vms
00340 #include <lnmdef.h>
00341 #include <descrip.h>
00342 #include <errno.h>
00343 #include <socket.h>
00344 #include <types.h>
00345 #include <inet.h>
00346 #include <time.h>
00347 #include <ucx$inetdef.h>
00348 #include <ssdef.h>
00349 #include <iodef.h>
00350 #define $DSC_FXDLEN(name,string) name.dsc$w_length = strlen(string); \
00351 strcpy(name.dsc$a_pointer,string);
00352 #endif
00353
00354
00355 #define FALSE 0
00356 #define TRUE 1
00357 #define f_stc_nosig( ps_server ) (ps_server)->i_signals = 100;
00358
00359
00360
00361
00362
00363 #define STC__FAILURE 0
00364 #define STC__SUCCESS 1
00365 #define STC__INVSOCK 2
00366 #define STC__INVBUF 3
00367 #define STC__NGBUFSIZE 4
00368 #define STC__INVTIME 5
00369 #define STC__TIMEOUT 6
00370 #define STC__NOTSOCK 7
00371 #define STC__INVADDR 8
00372 #define STC__INVADDRF 9
00373 #define STC__SOCKNSUP 10
00374 #define STC__INVPROTO 11
00375 #define STC__SOCKTABF 12
00376 #define STC__SOCKSPAF 13
00377 #define STC__SOCKISC 14
00378 #define STC__CONNTOUT 15
00379 #define STC__NETUNREA 16
00380 #define STC__PORTINUS 17
00381 #define STC__SOCKISP 18
00382 #define TPS__ECPORTS 19
00383 #define TPS__EREGSERV 20
00384 #define TPS__EWTOPORTS 21
00385 #define TPS__ERMFRPORTS 22
00386 #define TPS__EGSERVICE 23
00387 #define STC__BROPIPE 24
00388 #define STC__NODATA 25
00389 #define STC__ECONNREF 26
00390 #define STC__EINTR 27
00391 #define STC__ECONNRES 28
00392
00393 #define TCPCOMM_INCLUDE 1
00394
00395
00396 #ifndef OSK
00397 INTS4 f_stc_connectserver (CHARS *c_node, INTS4 l_port, INTS4 *pi_channel, struct s_tcpcomm *ps_client);
00398 INTS4 f_stc_createserver (INTS4 *pl_port, struct s_tcpcomm *ps_server);
00399 INTS4 f_stc_listenserver (struct s_tcpcomm *ps_server);
00400 INTS4 f_stc_acceptclient (struct s_tcpcomm *ps_server, INTS4 *pi_channel);
00401 INTS4 f_stc_disperror (INTS4 i_error, CHARS *c_dest, INTS4 i_out);
00402 INTS4 f_stc_read (void *p_buffer, INTS4 i_buflen, INTS4 i_channel , INTS4 i_timeout);
00403 INTS4 f_stc_write (void *p_buffer, INTS4 i_buflen, INTS4 i_channel);
00404 INTS4 f_stc_close (struct s_tcpcomm *ps_tcp);
00405 INTS4 f_stc_discclient (INTS4 i_channel);
00406
00407 void f_stc_swap4 (INTS4 *);
00408 #endif
00409
00410
00411 #endif
00412
00413