diff options
| author | Matthew Barnes <mbarnes@redhat.com> | 2007-11-14 22:04:19 +0000 |
|---|---|---|
| committer | Matthew Barnes <mbarnes@src.gnome.org> | 2007-11-14 22:04:19 +0000 |
| commit | 7f4e14e88885f606d43734663a401dc37cf498aa (patch) | |
| tree | f176412c5a2b4c617ddbdae98b72683a9ef5a000 /camel/camel-tcp-stream-ssl.c | |
| parent | 3d7d874a84446b022a1fb87e781159194799eac5 (diff) | |
| download | evolution-data-server-7f4e14e88885f606d43734663a401dc37cf498aa.tar.gz | |
** Remove trailing whitespace from source code.
2007-11-14 Matthew Barnes <mbarnes@redhat.com>
** Remove trailing whitespace from source code.
svn path=/trunk/; revision=8210
Diffstat (limited to 'camel/camel-tcp-stream-ssl.c')
| -rw-r--r-- | camel/camel-tcp-stream-ssl.c | 196 |
1 files changed, 98 insertions, 98 deletions
diff --git a/camel/camel-tcp-stream-ssl.c b/camel/camel-tcp-stream-ssl.c index ae22ec0e8..09658d41f 100644 --- a/camel/camel-tcp-stream-ssl.c +++ b/camel/camel-tcp-stream-ssl.c @@ -89,7 +89,7 @@ static struct sockaddr *stream_get_remote_address (CamelTcpStream *stream, sockl struct _CamelTcpStreamSSLPrivate { PRFileDesc *sockfd; - + struct _CamelSession *session; char *expected_host; gboolean ssl_mode; @@ -103,15 +103,15 @@ camel_tcp_stream_ssl_class_init (CamelTcpStreamSSLClass *camel_tcp_stream_ssl_cl CAMEL_TCP_STREAM_CLASS (camel_tcp_stream_ssl_class); CamelStreamClass *camel_stream_class = CAMEL_STREAM_CLASS (camel_tcp_stream_ssl_class); - + parent_class = CAMEL_TCP_STREAM_CLASS (camel_type_get_global_classfuncs (camel_tcp_stream_get_type ())); - + /* virtual method overload */ camel_stream_class->read = stream_read; camel_stream_class->write = stream_write; camel_stream_class->flush = stream_flush; camel_stream_class->close = stream_close; - + camel_tcp_stream_class->connect = stream_connect; camel_tcp_stream_class->getsockopt = stream_getsockopt; camel_tcp_stream_class->setsockopt = stream_setsockopt; @@ -123,7 +123,7 @@ static void camel_tcp_stream_ssl_init (gpointer object, gpointer klass) { CamelTcpStreamSSL *stream = CAMEL_TCP_STREAM_SSL (object); - + stream->priv = g_new0 (struct _CamelTcpStreamSSLPrivate, 1); } @@ -131,7 +131,7 @@ static void camel_tcp_stream_ssl_finalize (CamelObject *object) { CamelTcpStreamSSL *stream = CAMEL_TCP_STREAM_SSL (object); - + if (stream->priv->sockfd != NULL) PR_Close (stream->priv->sockfd); @@ -139,7 +139,7 @@ camel_tcp_stream_ssl_finalize (CamelObject *object) camel_object_unref(stream->priv->session); g_free (stream->priv->expected_host); - + g_free (stream->priv); } @@ -148,7 +148,7 @@ CamelType camel_tcp_stream_ssl_get_type (void) { static CamelType type = CAMEL_INVALID_TYPE; - + if (type == CAMEL_INVALID_TYPE) { type = camel_type_register (camel_tcp_stream_get_type (), "CamelTcpStreamSSL", @@ -159,7 +159,7 @@ camel_tcp_stream_ssl_get_type (void) (CamelObjectInitFunc) camel_tcp_stream_ssl_init, (CamelObjectFinalizeFunc) camel_tcp_stream_ssl_finalize); } - + return type; } @@ -187,13 +187,13 @@ camel_tcp_stream_ssl_new (CamelSession *session, const char *expected_host, guin g_assert(CAMEL_IS_SESSION(session)); stream = CAMEL_TCP_STREAM_SSL (camel_object_new (camel_tcp_stream_ssl_get_type ())); - + stream->priv->session = session; camel_object_ref(session); stream->priv->expected_host = g_strdup (expected_host); stream->priv->ssl_mode = TRUE; stream->priv->flags = flags; - + return CAMEL_STREAM (stream); } @@ -219,15 +219,15 @@ camel_tcp_stream_ssl_new_raw (CamelSession *session, const char *expected_host, CamelTcpStreamSSL *stream; g_assert(CAMEL_IS_SESSION(session)); - + stream = CAMEL_TCP_STREAM_SSL (camel_object_new (camel_tcp_stream_ssl_get_type ())); - + stream->priv->session = session; camel_object_ref(session); stream->priv->expected_host = g_strdup (expected_host); stream->priv->ssl_mode = FALSE; stream->priv->flags = flags; - + return CAMEL_STREAM (stream); } @@ -307,30 +307,30 @@ int camel_tcp_stream_ssl_enable_ssl (CamelTcpStreamSSL *ssl) { PRFileDesc *fd; - + g_return_val_if_fail (CAMEL_IS_TCP_STREAM_SSL (ssl), -1); - + if (ssl->priv->sockfd && !ssl->priv->ssl_mode) { if (!(fd = enable_ssl (ssl, NULL))) { set_errno (PR_GetError ()); return -1; } - + ssl->priv->sockfd = fd; - + if (SSL_ResetHandshake (fd, FALSE) == SECFailure) { set_errno (PR_GetError ()); return -1; } - + if (SSL_ForceHandshake (fd) == -1) { set_errno (PR_GetError ()); return -1; } } - + ssl->priv->ssl_mode = TRUE; - + return 0; } @@ -341,12 +341,12 @@ stream_read (CamelStream *stream, char *buffer, size_t n) CamelTcpStreamSSL *tcp_stream_ssl = CAMEL_TCP_STREAM_SSL (stream); PRFileDesc *cancel_fd; ssize_t nread; - + if (camel_operation_cancel_check (NULL)) { errno = EINTR; return -1; } - + cancel_fd = camel_operation_cancel_prfd (NULL); if (cancel_fd == NULL) { do { @@ -361,7 +361,7 @@ stream_read (CamelStream *stream, char *buffer, size_t n) PRPollDesc pollfds[2]; gboolean nonblock; int error; - + /* get O_NONBLOCK options */ sockopts.option = PR_SockOpt_Nonblocking; PR_GetSocketOption (tcp_stream_ssl->priv->sockfd, &sockopts); @@ -374,7 +374,7 @@ stream_read (CamelStream *stream, char *buffer, size_t n) pollfds[0].in_flags = PR_POLL_READ; pollfds[1].fd = cancel_fd; pollfds[1].in_flags = PR_POLL_READ; - + do { PRInt32 res; @@ -404,7 +404,7 @@ stream_read (CamelStream *stream, char *buffer, size_t n) } while (nread == -1 && (PR_GetError () == PR_PENDING_INTERRUPT_ERROR || PR_GetError () == PR_IO_PENDING_ERROR || PR_GetError () == PR_WOULD_BLOCK_ERROR)); - + /* restore O_NONBLOCK options */ failed: error = errno; @@ -413,7 +413,7 @@ stream_read (CamelStream *stream, char *buffer, size_t n) PR_SetSocketOption (tcp_stream_ssl->priv->sockfd, &sockopts); errno = error; } - + return nread; } @@ -423,12 +423,12 @@ stream_write (CamelStream *stream, const char *buffer, size_t n) CamelTcpStreamSSL *tcp_stream_ssl = CAMEL_TCP_STREAM_SSL (stream); ssize_t w, written = 0; PRFileDesc *cancel_fd; - + if (camel_operation_cancel_check (NULL)) { errno = EINTR; return -1; } - + cancel_fd = camel_operation_cancel_prfd (NULL); if (cancel_fd == NULL) { do { @@ -439,7 +439,7 @@ stream_write (CamelStream *stream, const char *buffer, size_t n) } while (w == -1 && (PR_GetError () == PR_PENDING_INTERRUPT_ERROR || PR_GetError () == PR_IO_PENDING_ERROR || PR_GetError () == PR_WOULD_BLOCK_ERROR)); - + if (w > 0) written += w; } while (w != -1 && written < n); @@ -448,7 +448,7 @@ stream_write (CamelStream *stream, const char *buffer, size_t n) PRPollDesc pollfds[2]; gboolean nonblock; int error; - + /* get O_NONBLOCK options */ sockopts.option = PR_SockOpt_Nonblocking; PR_GetSocketOption (tcp_stream_ssl->priv->sockfd, &sockopts); @@ -456,12 +456,12 @@ stream_write (CamelStream *stream, const char *buffer, size_t n) nonblock = sockopts.value.non_blocking; sockopts.value.non_blocking = TRUE; PR_SetSocketOption (tcp_stream_ssl->priv->sockfd, &sockopts); - + pollfds[0].fd = tcp_stream_ssl->priv->sockfd; pollfds[0].in_flags = PR_POLL_WRITE; pollfds[1].fd = cancel_fd; pollfds[1].in_flags = PR_POLL_READ; - + do { PRInt32 res; @@ -488,7 +488,7 @@ stream_write (CamelStream *stream, const char *buffer, size_t n) if (w == -1) set_errno (PR_GetError ()); } while (w == -1 && PR_GetError () == PR_PENDING_INTERRUPT_ERROR); - + if (w == -1) { if (PR_GetError () == PR_IO_PENDING_ERROR || PR_GetError () == PR_WOULD_BLOCK_ERROR) @@ -497,7 +497,7 @@ stream_write (CamelStream *stream, const char *buffer, size_t n) written += w; } } while (w != -1 && written < n); - + /* restore O_NONBLOCK options */ error = errno; sockopts.option = PR_SockOpt_Nonblocking; @@ -505,10 +505,10 @@ stream_write (CamelStream *stream, const char *buffer, size_t n) PR_SetSocketOption (tcp_stream_ssl->priv->sockfd, &sockopts); errno = error; } - + if (w == -1) return -1; - + return written; } @@ -529,9 +529,9 @@ stream_close (CamelStream *stream) if (PR_Close (((CamelTcpStreamSSL *)stream)->priv->sockfd) == PR_FAILURE) return -1; - + ((CamelTcpStreamSSL *)stream)->priv->sockfd = NULL; - + return 0; } @@ -541,15 +541,15 @@ static SECStatus ssl_get_client_auth (void *data, PRFileDesc *sockfd, struct CERTDistNamesStr *caNames, struct CERTCertificateStr **pRetCert, - struct SECKEYPrivateKeyStr **pRetKey) + struct SECKEYPrivateKeyStr **pRetKey) { SECStatus status = SECFailure; SECKEYPrivateKey *privkey; CERTCertificate *cert; void *proto_win; - + proto_win = SSL_RevealPinArg (sockfd); - + if ((char *) data) { cert = PK11_FindCertFromNickname ((char *) data, proto_win); if (cert) { @@ -564,44 +564,44 @@ ssl_get_client_auth (void *data, PRFileDesc *sockfd, /* no nickname given, automatically find the right cert */ CERTCertNicknames *names; int i; - - names = CERT_GetCertNicknames (CERT_GetDefaultCertDB (), + + names = CERT_GetCertNicknames (CERT_GetDefaultCertDB (), SEC_CERT_NICKNAMES_USER, proto_win); - + if (names != NULL) { for (i = 0; i < names->numnicknames; i++) { - cert = PK11_FindCertFromNickname (names->nicknames[i], + cert = PK11_FindCertFromNickname (names->nicknames[i], proto_win); if (!cert) continue; - + /* Only check unexpired certs */ if (CERT_CheckCertValidTimes (cert, PR_Now (), PR_FALSE) != secCertTimeValid) { CERT_DestroyCertificate (cert); continue; } - + status = NSS_CmpCertChainWCANames (cert, caNames); if (status == SECSuccess) { privkey = PK11_FindKeyByAnyCert (cert, proto_win); if (privkey) break; - + status = SECFailure; break; } - + CERT_FreeNicknames (names); } } } - + if (status == SECSuccess) { *pRetCert = cert; *pRetKey = privkey; } - + return status; } #endif @@ -615,34 +615,34 @@ ssl_auth_cert (void *data, PRFileDesc *sockfd, PRBool checksig, PRBool is_server SECStatus status; void *pinarg; char *host; - + cert = SSL_PeerCertificate (sockfd); pinarg = SSL_RevealPinArg (sockfd); status = CERT_VerifyCertNow ((CERTCertDBHandle *)data, cert, checksig, certUsageSSLClient, pinarg); - + if (status != SECSuccess) return SECFailure; - + /* Certificate is OK. Since this is the client side of an SSL * connection, we need to verify that the name field in the cert * matches the desired hostname. This is our defense against * man-in-the-middle attacks. */ - + /* SSL_RevealURL returns a hostname, not a URL. */ host = SSL_RevealURL (sockfd); - + if (host && *host) { status = CERT_VerifyCertName (cert, host); } else { PR_SetError (SSL_ERROR_BAD_CERT_DOMAIN, 0); status = SECFailure; } - + if (host) PR_Free (host); - + return secStatus; } #endif @@ -769,15 +769,15 @@ camel_certdb_nss_cert_set(CamelCertDB *certdb, CamelCert *ccert, CERTCertificate char *dir, *path, *fingerprint; CamelStream *stream; struct stat st; - + fingerprint = ccert->fingerprint; - + if (ccert->rawcert == NULL) ccert->rawcert = g_byte_array_new (); - + g_byte_array_set_size (ccert->rawcert, cert->derCert.len); memcpy (ccert->rawcert->data, cert->derCert.data, cert->derCert.len); - + #ifndef G_OS_WIN32 dir = g_strdup_printf ("%s/.camel_certs", getenv ("HOME")); #else @@ -788,10 +788,10 @@ camel_certdb_nss_cert_set(CamelCertDB *certdb, CamelCert *ccert, CERTCertificate g_free (dir); return; } - + path = g_strdup_printf ("%s/%s", dir, fingerprint); g_free (dir); - + stream = camel_stream_fs_new_with_name (path, O_WRONLY | O_CREAT | O_TRUNC, 0600); if (stream != NULL) { if (camel_stream_write (stream, ccert->rawcert->data, ccert->rawcert->len) == -1) { @@ -803,7 +803,7 @@ camel_certdb_nss_cert_set(CamelCertDB *certdb, CamelCert *ccert, CERTCertificate } else { g_warning ("Could not save cert: %s: %s", path, strerror (errno)); } - + g_free (path); } @@ -850,7 +850,7 @@ ssl_bad_cert (void *data, PRFileDesc *sockfd) g_return_val_if_fail (CAMEL_IS_TCP_STREAM_SSL (data), SECFailure); ssl = data; - + cert = SSL_PeerCertificate (sockfd); if (cert == NULL) return SECFailure; @@ -878,7 +878,7 @@ ssl_bad_cert (void *data, PRFileDesc *sockfd) prompt = g_strdup_printf (_("SSL Certificate check for %s:\n\n%s\n\nDo you wish to accept?"), ssl->priv->expected_host, cert_str); g_free (cert_str); - + /* query the user to find out if we want to accept this certificate */ accept = camel_session_alert_user (ssl->priv->session, CAMEL_SESSION_ALERT_WARNING, prompt, TRUE); g_free(prompt); @@ -936,7 +936,7 @@ ssl_bad_cert (void *data, PRFileDesc *sockfd) cert->trust = (CERTCertTrust*)PORT_ArenaZAlloc(cert->arena, sizeof(CERTCertTrust)); CERT_DecodeTrustString(cert->trust, "P"); } - + certs[0] = &cert->derCert; /*CERT_ImportCerts (cert->dbhandle, certUsageSSLServer, 1, certs, NULL, TRUE, FALSE, nick);*/ CERT_ImportCerts(cert->dbhandle, certUsageUserCertImport, 1, certs, NULL, TRUE, FALSE, nick); @@ -985,7 +985,7 @@ ssl_bad_cert (void *data, PRFileDesc *sockfd) } break; - + case SEC_ERROR_EXPIRED_CERTIFICATE: printf("expired\n"); @@ -1035,11 +1035,11 @@ static PRFileDesc * enable_ssl (CamelTcpStreamSSL *ssl, PRFileDesc *fd) { PRFileDesc *ssl_fd; - + ssl_fd = SSL_ImportFD (NULL, fd ? fd : ssl->priv->sockfd); if (!ssl_fd) return NULL; - + SSL_OptionSet (ssl_fd, SSL_SECURITY, PR_TRUE); if (ssl->priv->flags & CAMEL_TCP_STREAM_SSL_ENABLE_SSL2) { SSL_OptionSet (ssl_fd, SSL_ENABLE_SSL2, PR_TRUE); @@ -1056,15 +1056,15 @@ enable_ssl (CamelTcpStreamSSL *ssl, PRFileDesc *fd) SSL_OptionSet (ssl_fd, SSL_ENABLE_TLS, PR_TRUE); else SSL_OptionSet (ssl_fd, SSL_ENABLE_TLS, PR_FALSE); - + SSL_SetURL (ssl_fd, ssl->priv->expected_host); - + /*SSL_GetClientAuthDataHook (sslSocket, ssl_get_client_auth, (void *) certNickname);*/ /*SSL_AuthCertificateHook (ssl_fd, ssl_auth_cert, (void *) CERT_GetDefaultCertDB ());*/ SSL_BadCertHook (ssl_fd, ssl_bad_cert, ssl); - + ssl->priv->ssl_mode = TRUE; - + return ssl_fd; } @@ -1119,28 +1119,28 @@ socket_connect(CamelTcpStream *stream, struct addrinfo *host) errno = EINVAL; return -1; } - + fd = PR_OpenTCPSocket(netaddr.raw.family); if (fd == NULL) { set_errno (PR_GetError ()); return -1; } - + if (ssl->priv->ssl_mode) { PRFileDesc *ssl_fd; - + ssl_fd = enable_ssl (ssl, fd); if (ssl_fd == NULL) { int errnosave; - + set_errno (PR_GetError ()); errnosave = errno; PR_Close (fd); errno = errnosave; - + return -1; } - + fd = ssl_fd; } @@ -1148,7 +1148,7 @@ socket_connect(CamelTcpStream *stream, struct addrinfo *host) if (PR_Connect (fd, &netaddr, cancel_fd?0:CONNECT_TIMEOUT) == PR_FAILURE) { int errnosave; - + set_errno (PR_GetError ()); if (PR_GetError () == PR_IN_PROGRESS_ERROR || (cancel_fd && (PR_GetError () == PR_CONNECT_TIMEOUT_ERROR || @@ -1160,7 +1160,7 @@ socket_connect(CamelTcpStream *stream, struct addrinfo *host) poll[0].in_flags = PR_POLL_WRITE | PR_POLL_EXCEPT; poll[1].fd = cancel_fd; poll[1].in_flags = PR_POLL_READ; - + do { poll[0].out_flags = 0; poll[1].out_flags = 0; @@ -1169,7 +1169,7 @@ socket_connect(CamelTcpStream *stream, struct addrinfo *host) set_errno (PR_GetError ()); goto exception; } - + if (poll[1].out_flags == PR_POLL_READ) { errno = EINTR; goto exception; @@ -1189,13 +1189,13 @@ socket_connect(CamelTcpStream *stream, struct addrinfo *host) PR_Close (fd); ssl->priv->sockfd = NULL; errno = errnosave; - + return -1; } - + errno = 0; } - + ssl->priv->sockfd = fd; return 0; @@ -1217,15 +1217,15 @@ static int stream_getsockopt (CamelTcpStream *stream, CamelSockOptData *data) { PRSocketOptionData sodata; - + memset ((void *) &sodata, 0, sizeof (sodata)); memcpy ((void *) &sodata, (void *) data, sizeof (CamelSockOptData)); - + if (PR_GetSocketOption (((CamelTcpStreamSSL *)stream)->priv->sockfd, &sodata) == PR_FAILURE) return -1; - + memcpy ((void *) data, (void *) &sodata, sizeof (CamelSockOptData)); - + return 0; } @@ -1233,13 +1233,13 @@ static int stream_setsockopt (CamelTcpStream *stream, const CamelSockOptData *data) { PRSocketOptionData sodata; - + memset ((void *) &sodata, 0, sizeof (sodata)); memcpy ((void *) &sodata, (void *) data, sizeof (CamelSockOptData)); - + if (PR_SetSocketOption (((CamelTcpStreamSSL *)stream)->priv->sockfd, &sodata) == PR_FAILURE) return -1; - + return 0; } @@ -1269,7 +1269,7 @@ sockaddr_from_praddr(PRNetAddr *addr, socklen_t *len) sin->sin6_scope_id = addr->ipv6.scope_id; *len = sizeof(*sin); - return (struct sockaddr *)sin; + return (struct sockaddr *)sin; } #endif @@ -1281,7 +1281,7 @@ stream_get_local_address(CamelTcpStream *stream, socklen_t *len) { PRFileDesc *sockfd = CAMEL_TCP_STREAM_SSL (stream)->priv->sockfd; PRNetAddr addr; - + if (PR_GetSockName(sockfd, &addr) != PR_SUCCESS) return NULL; @@ -1293,7 +1293,7 @@ stream_get_remote_address (CamelTcpStream *stream, socklen_t *len) { PRFileDesc *sockfd = CAMEL_TCP_STREAM_SSL (stream)->priv->sockfd; PRNetAddr addr; - + if (PR_GetPeerName(sockfd, &addr) != PR_SUCCESS) return NULL; |
