| 492 return; |
492 return; |
| 493 |
493 |
| 494 js = gc->proto_data; |
494 js = gc->proto_data; |
| 495 js->gsc = NULL; |
495 js->gsc = NULL; |
| 496 |
496 |
| 497 switch(error) { |
497 purple_connection_error(gc, purple_ssl_strerror(error)); |
| 498 case PURPLE_SSL_CONNECT_FAILED: |
|
| 499 purple_connection_error(gc, _("Connection Failed")); |
|
| 500 break; |
|
| 501 case PURPLE_SSL_HANDSHAKE_FAILED: |
|
| 502 purple_connection_error(gc, _("SSL Handshake Failed")); |
|
| 503 break; |
|
| 504 } |
|
| 505 } |
498 } |
| 506 |
499 |
| 507 static void tls_init(JabberStream *js) |
500 static void tls_init(JabberStream *js) |
| 508 { |
501 { |
| 509 purple_input_remove(js->gc->inpa); |
502 purple_input_remove(js->gc->inpa); |
| 510 js->gc->inpa = 0; |
503 js->gc->inpa = 0; |
| 511 js->gsc = purple_ssl_connect_fd(js->gc->account, js->fd, |
504 js->gsc = purple_ssl_connect_with_host_fd(js->gc->account, js->fd, |
| 512 jabber_login_callback_ssl, jabber_ssl_connect_failure, js->gc); |
505 jabber_login_callback_ssl, jabber_ssl_connect_failure, js->serverFQDN, js->gc); |
| 513 } |
506 } |
| 514 |
507 |
| 515 static void jabber_login_connect(JabberStream *js, const char *fqdn, const char *host, int port) |
508 static void jabber_login_connect(JabberStream *js, const char *fqdn, const char *host, int port) |
| 516 { |
509 { |
| 517 #ifdef HAVE_CYRUS_SASL |
|
| 518 js->serverFQDN = g_strdup(fqdn); |
510 js->serverFQDN = g_strdup(fqdn); |
| 519 #endif |
|
| 520 |
511 |
| 521 if (purple_proxy_connect(js->gc, js->gc->account, host, |
512 if (purple_proxy_connect(js->gc, js->gc->account, host, |
| 522 port, jabber_login_callback, js->gc) == NULL) |
513 port, jabber_login_callback, js->gc) == NULL) |
| 523 purple_connection_error(js->gc, _("Unable to create socket")); |
514 purple_connection_error(js->gc, _("Unable to create socket")); |
| 524 } |
515 } |
| 1023 sasl_dispose(&js->sasl); |
1014 sasl_dispose(&js->sasl); |
| 1024 if(js->sasl_mechs) |
1015 if(js->sasl_mechs) |
| 1025 g_string_free(js->sasl_mechs, TRUE); |
1016 g_string_free(js->sasl_mechs, TRUE); |
| 1026 if(js->sasl_cb) |
1017 if(js->sasl_cb) |
| 1027 g_free(js->sasl_cb); |
1018 g_free(js->sasl_cb); |
| |
1019 #endif |
| 1028 if(js->serverFQDN) |
1020 if(js->serverFQDN) |
| 1029 g_free(js->serverFQDN); |
1021 g_free(js->serverFQDN); |
| 1030 #endif |
|
| 1031 g_free(js->server_name); |
1022 g_free(js->server_name); |
| 1032 g_free(js->gmail_last_time); |
1023 g_free(js->gmail_last_time); |
| 1033 g_free(js->gmail_last_tid); |
1024 g_free(js->gmail_last_tid); |
| 1034 g_free(js); |
1025 g_free(js); |
| 1035 |
1026 |