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
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
/* ========================================================================
* Copyright 2008 Mark Crispin
* ========================================================================
*/
/*
* Program: Dummy (no SSL) authentication/encryption module
*
* Author: Mark Crispin
*
* Date: 7 February 2001
* Last Edited: 19 November 2008
*
* Previous versions of this file were
*
* Copyright 1988-2006 University of Washington
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*/
/* Init server for SSL
* Accepts: server name
*/
void ssl_server_init (char *server)
{
syslog (LOG_ERR,"This server does not support SSL");
exit (1); /* punt this program too */
}
/* Start TLS
* Accepts: /etc/services service name
* Returns: cpystr'd error string if TLS failed, else NIL for success
*/
char *ssl_start_tls (char *server)
{
return cpystr ("This server does not support TLS");
}
/* Get character
* Returns: character or EOF
*/
int PBIN (void)
{
int ret;
do {
clearerr (stdin);
ret = getchar ();
} while ((ret == EOF) && !feof (stdin) && ferror (stdin) &&(errno == EINTR));
return ret;
}
/* Get string
* Accepts: destination string pointer
* number of bytes available
* Returns: destination string pointer or NIL if EOF
*/
char *PSIN (char *s,int n)
{
char *ret;
do {
clearerr (stdin);
ret = fgets (s,n,stdin);
} while (!ret && !feof (stdin) && ferror (stdin) && (errno == EINTR));
return ret;
}
/* Get record
* Accepts: destination string pointer
* number of bytes to read
* Returns: T if success, NIL otherwise
*/
long PSINR (char *s,unsigned long n)
{
unsigned long i;
while (n && ((i = fread (s,1,n,stdin)) || (errno == EINTR))) s += i,n -= i;
return n ? NIL : LONGT;
}
/* Wait for input
* Accepts: timeout in seconds
* Returns: T if have input on stdin, else NIL
*/
long INWAIT (long seconds)
{
return server_input_wait (seconds);
}
/* Put character
* Accepts: character
* Returns: character written or EOF
*/
int PBOUT (int c)
{
return putchar (c);
}
/* Put string
* Accepts: source string pointer
* Returns: 0 or EOF if error
*/
int PSOUT (char *s)
{
return fputs (s,stdout);
}
/* Put record
* Accepts: source sized text
* Returns: 0 or EOF if error
*/
int PSOUTR (SIZEDTEXT *s)
{
unsigned char *t;
unsigned long i,j;
for (t = s->data,i = s->size;
(i && ((j = fwrite (t,1,i,stdout)) || (errno == EINTR)));
t += j,i -= j);
return i ? EOF : NIL;
}
/* Flush output
* Returns: 0 or EOF if error
*/
int PFLUSH (void)
{
return fflush (stdout);
}
|