about summary refs log tree commit diff stats
path: root/WWW/Library/Implementation/HTTCP.h
blob: 8644b69dfe0564062ddc149718ec2142998c86b6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*                               /Net/dxcern/userd/timbl/hypertext/WWW/Library/src/HTTCP.html
                               GENERIC TCP/IP COMMUNICATION

   This module has the common code for handling TCP/IP connections etc.

 */
#ifndef HTTCP_H
#define HTTCP_H

#ifndef HTUTILS_H
#include <HTUtils.h>
#endif

/*      Produce a string for an internet address
**      ---------------------------------------
**
** On exit:
**           returns a pointer to a static string which must be copied if
**                it is to be kept.
*/
extern CONST char * HTInetString PARAMS((struct sockaddr_in* mysin));


/*      Encode INET status (as in sys/errno.h)                    inet_status()
**      ------------------
**
** On entry:
**              where gives a description of what caused the error
**      global errno gives the error number in the unix way.
**
** On return:
**      returns a negative status in the unix way.
*/
#if defined(__STDC__) || defined(__BORLANDC__) || defined(_MSC_VER)
        extern int HTInetStatus(char *where);
#else
        extern int HTInetStatus();
#endif

/*      Publicly accessible variables
*/
/* extern struct sockaddr_in HTHostAddress; */
                        /* The internet address of the host */
                        /* Valid after call to HTHostName() */


/*      Parse a cardinal value                                 parse_cardinal()
**      ----------------------
**
** On entry:
**      *pp points to first character to be interpreted, terminated by
**      non 0..9 character.
**      *pstatus points to status already valid,
**      maxvalue gives the largest allowable value.
**
** On exit:
**      *pp points to first unread character,
**      *pstatus points to status updated iff bad
*/

extern unsigned int HTCardinal PARAMS((int *pstatus,
                char            **pp,
                unsigned int    max_value));

/*	Check whether string is a valid Internet hostname
**	-------------------------------------------------
*/

extern BOOL valid_hostname PARAMS((CONST char * name));

/*	Resolve an internet hostname, like gethostbyname
**	------------------------------------------------
**
**  On entry,
**	str	points to the given host name, not numeric address,
**		without colon or port number.
**
**  On exit,
**	returns a pointer to a struct hostent in static storage,
**	or NULL in case of error or user interruption.
**
**  The interface is intended to be the same as for gethostbyname(),
**  but additional status is returned in lynx_nsl_status.
*/
extern int lynx_nsl_status;

#if defined(__DJGPP__) && !defined(WATT32)
#define LYGetHostByName(host) resolv(host) /* we'll use it the same way */
#else
extern struct hostent * LYGetHostByName PARAMS((
	CONST char *	str));
#endif


/*      Parse an internet node address and port
**      ---------------------------------------
**
** On entry:
**               str points to a string with a node name or number,
**               with optional trailing colon and port number.
**               sin points to the binary internet or decnet address field.
**
** On exit:
**               *sin is filled in.  If no port is specified in str, that
**               field is left unchanged in *sin.
*/
#if defined(__STDC__) || defined(__BORLANDC__) || defined(_MSC_VER)
        extern int HTParseInet(struct sockaddr_in * mysin, CONST char * str);
        /*!! had to change this to get it to compile. CTB */
#else
        extern int HTParseInet();
#endif

/*      Get Name of This Machine
**      ------------------------
**
*/

extern CONST char * HTHostName NOPARAMS;

extern int HTDoConnect PARAMS((
	CONST char *	url,
	char *		protocol,
	int		default_port,
	int *		s));

extern int HTDoRead PARAMS((
	int 		fildes,
	void *		buf,
	unsigned 	nbyte));

#endif   /* HTTCP_H */