158
159
for(i = 0; targets[i].version != NULL; i++) {
160 printf(".");
161 if(strstr(recvbuf, targets[i].version) != NULL) {
162 printf("adjusted for %s\n", targets[i].version);
163 close(sockfd);
164 return(i);
165 }
166 }
167
168
close(sockfd);
169 printf("no adjustments made\n");
170 return(0);
171 }
172
173
int connection(char *host)
174 {
175 int sockfd, c;
176 struct sockaddr_in sin;
177
178
sockfd = socket(AF_INET, SOCK_STREAM, 0);
179 if(sockfd < 0)
180 return(sockfd);
181
182
sin.sin_family = AF_INET;
183 sin.sin_port = htons(109);
184 sin.sin_addr.s_addr = resolve(host);
185
186
c = connect(sockfd, (struct sockaddr *)&sin, sizeof(sin));
187 if(c < 0) {
188 close(sockfd);
189 return(c);
190 }
191
192
return(sockfd);
193 }
194
195
int imap_server()
196 {
197 int ssockfd, csockfd, ...