Call set_errno appropriately.
2002-02-04 Jeffrey Stedfast <fejj@ximian.com> * camel-tcp-stream-ssl.c (stream_connect): Call set_errno appropriately. svn path=/trunk/; revision=15566
This commit is contained in:

committed by
Jeffrey Stedfast

parent
e1268e37a4
commit
ec14bae134
@ -1,3 +1,8 @@
|
|||||||
|
2002-02-04 Jeffrey Stedfast <fejj@ximian.com>
|
||||||
|
|
||||||
|
* camel-tcp-stream-ssl.c (stream_connect): Call set_errno
|
||||||
|
appropriately.
|
||||||
|
|
||||||
2002-01-31 Not Zed <NotZed@Ximian.com>
|
2002-01-31 Not Zed <NotZed@Ximian.com>
|
||||||
|
|
||||||
* camel-mime-utils.c (header_decode_domain): Oops, this was
|
* camel-mime-utils.c (header_decode_domain): Oops, this was
|
||||||
|
@ -499,18 +499,27 @@ stream_connect (CamelTcpStream *stream, struct hostent *host, int port)
|
|||||||
memset ((void *) &netaddr, 0, sizeof (PRNetAddr));
|
memset ((void *) &netaddr, 0, sizeof (PRNetAddr));
|
||||||
memcpy (&netaddr.inet.ip, host->h_addr, sizeof (netaddr.inet.ip));
|
memcpy (&netaddr.inet.ip, host->h_addr, sizeof (netaddr.inet.ip));
|
||||||
|
|
||||||
if (PR_InitializeNetAddr (PR_IpAddrNull, port, &netaddr) == PR_FAILURE)
|
if (PR_InitializeNetAddr (PR_IpAddrNull, port, &netaddr) == PR_FAILURE) {
|
||||||
|
set_errno (PR_GetError ());
|
||||||
return -1;
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
fd = PR_OpenTCPSocket (host->h_addrtype);
|
fd = PR_OpenTCPSocket (host->h_addrtype);
|
||||||
ssl_fd = SSL_ImportFD (NULL, fd);
|
ssl_fd = SSL_ImportFD (NULL, fd);
|
||||||
|
|
||||||
SSL_OptionSet (ssl_fd, SSL_SECURITY, PR_TRUE);
|
SSL_OptionSet (ssl_fd, SSL_SECURITY, PR_TRUE);
|
||||||
SSL_SetURL (ssl_fd, ssl->priv->expected_host);
|
SSL_SetURL (ssl_fd, ssl->priv->expected_host);
|
||||||
|
|
||||||
if (ssl_fd == NULL || PR_Connect (ssl_fd, &netaddr, timeout) == PR_FAILURE) {
|
if (ssl_fd == NULL || PR_Connect (ssl_fd, &netaddr, timeout) == PR_FAILURE) {
|
||||||
if (ssl_fd != NULL)
|
if (ssl_fd != NULL) {
|
||||||
|
int errnosave;
|
||||||
|
|
||||||
|
set_errno (PR_GetError ());
|
||||||
|
errnosave = errno;
|
||||||
PR_Close (ssl_fd);
|
PR_Close (ssl_fd);
|
||||||
|
errno = errnosave;
|
||||||
|
} else
|
||||||
|
errno = EINVAL;
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user