home *** CD-ROM | disk | FTP | other *** search
- /* NET_NEED . H
-
- % for network user
- %
- % Author: Jin Guojun - LBL 1/1/92
- */
-
- #ifdef vax11c
- #include "multinet_root:[multinet.include]errno.h"
- #include "multinet_root:[multinet.include.sys]types.h"
- #include "multinet_root:[multinet.include.sys]socket.h"
- #include "multinet_root:[multinet.include.netinet]in.h"
- #include "multinet_root:[multinet.include]netdb.h"
- #include "multinet_root:[multinet.include.sys]time.h" /* struct timeval */
- #ifdef errno
- #undef errno
- #endif
- #define errno socket_errno
- #define perror socket_perror
- #else
- #include <errno.h>
- #include <sys/types.h>
- #if defined KERNEL | defined USE_RTP
- # include <sys/uio.h>
- #endif
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <netdb.h>
- #include <sys/time.h> /* struct timeval */
- #endif
-
- #include <signal.h>
- #include "stdef.h"
-
- #ifndef SV_PORT
- #define SV_PORT 1991 /* second server port for extended X server */
- #endif /* first one is called SERVER */
-
- #define UNKNOWN_SOCK -1
- #define TCP_SOCK 0 /* SOCK # are equal to SOCK_protocol - 1 */
- #define UDP_SOCK 1
- #define RTP_SOCK 2
- #define IP_SOCK 3
-
- typedef struct {
- char ctrl_word,
- bitmap_seq;
- short TID;
- } atp_udp_hd; /* atp_udp header */
-
- typedef struct {
- int as, so; /* accepted socket & original socket fd */
- FILE *fp; /* fdopen() */
- short connected, m_port;
- long dp, stat,
- total, packet_size;
- char *bp;
- struct timeval ts, te;
- } magic_server;
-
- typedef struct {
- unsigned short seq_num, size; /* sequence # and packet size */
- short t_frame, type; /* time interval, protocol */
- long tss_s, tss_us, /* start sending */
- tes_s, tes_us, /* end of sending */
- tsr_s, tsr_us, /* start receiving */
- ter_s, ter_us, /* end of receiving */
- rss_s, rss_us, /* start sending back */
- res_s, res_us, /* end of sending back */
- rsr_s, rsr_us, /* start receiving back */
- rer_s, rer_us; /* end of r.b. */
- long t_err_s, t_err_us; /* clock diff */
- char name[12];
- union {
- char *bufp;
- struct sl {
- short pkt_id, pkt_dir;
- } pkt_info;
- } udp_nif;
- } rtpmsg_hd; /* round trip message */
-
- #define pkt_num udp_nif.pkt_info.pkt_id
- #define pkt_dir udp_nif.pkt_info.pkt_dir
- #define pkt_buf udp_nif.bufp
-
- typedef struct { /* overlaid on rtpmsg_hd structure */
- float min_s, min_r;
- struct timeval tss, tes,
- tsr, ter,
- rss, res,
- rsr, rer;
- union {
- double t_err;
- long t_err_s[2];
- } clock_dif;
- char name[12];
- float max_tt; /* max transmitting time */
- } pt_inf;
-
- typedef struct { /* total must 8 bytes long */
- unsigned short npackets, /* maximum packets per group */
- window; /* maximum bytes per packet */
- char clock_tick, /* clock quality, not used */
- #if defined (vax) || defined (i386)
- pp_hl:4, /* in words. */
- flow_id:4; /* EOF and 0 mean same (end) */
- #else
- flow_id:4, /* EOF and 0 mean same (end) */
- pp_hl:4; /* in words. */
- #endif
- short servtype;
- } PacketProto;
-
- #define htonhdr htons
- #define ntohdr ntohs
- #define nttype short
-
- #define PROT_CORRECT_TIME 1
- #define MAGIC_HEADER_LEN 4
-
- #if defined KERNEL | defined USE_RTP
- #include "rtp.h"
- typedef struct {
- rtphdr_t *rtphdrp;
- char *buf; /* buffer saves data for next group */
- short port, /* communication port */
- aux; /* packet transmitting size */
- long len; /* data in buffer */
- short flag;
- char ignore_err, header_len;
- #define kludgeGID 1 /* has to be non-zero */
- unsigned short group_id,
- miss, /* number of missing packets */
- udelay, /* packet delay in us. */
- command;/* communication command */
- int* list,
- tcp; /* accepted socket descriptor */
- struct sockaddr_in soaddr;
- struct msghdr rtpmsg;
- struct iovec rtpiov[2];
- } rtp_flow_ctrl;
- #endif
-
- #include <math.h>
-
- typedef struct Packet {
- long npackets;
- long nbytes;
- } *PBuffer; /* packet buffer */
-
- #ifdef DEC
- #undef fabs
- #define fabs(x) (x<0 ? -x : x)
- #endif
-
- #ifndef Default_Sleep
- #define Default_Sleep 5000 /* millisec. */
- #endif
-
- #define UDP_BD sizeof(PacketProto)
-
- #define IP_HDR_MINLEN (5 << 2) /* 5 words */
- #define UDP_HDR_LENGTH_BYTE UDP_BD
- #define SYS_HDR_LENGTH (IP_HDR_MINLEN + UDP_BD)
- #define HDR_BYTE_LENGTH SYS_HDR_LENGTH
- #define WINDOW_SIZE 32768 /* 0x8000 */
- #ifndef Max_WINDOW_SIZE
- #define Max_WINDOW_SIZE 52428 /* 0xCCCC */
- #endif
-
- #ifndef FRAGMENT_SIZE
- #define FRAGMENT_SIZE (4328 - SYS_HDR_LENGTH)
- #endif
- #ifndef UDP_BUF_LIMIT /* WINDOW_SIZE - SYS_HDR_LENGTH */
- #define UDP_BUF_LIMIT 32739 /* 0x7FE3, MAX for BSD */
- #endif
- #define MAX_IP_PACKET 28752 /* 0x7050, MAX for BSD */
- #define Max_UDP_MESG 28672 /* 0x7000 */
-
- extern struct sockaddr_in* get_soaddr(/*int rot, struct sockaddr_in *saddr*/);
-