Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 89577 | Differences between
and this patch

Collapse All | Expand All

(-)sylpheed-claws-1.0.4/src/common/socket.c (-7 / +17 lines)
Lines 387-393 Link Here
387
{
387
{
388
	gint ret;
388
	gint ret;
389
	void (*prev_handler)(gint);
389
	void (*prev_handler)(gint);
390
390
	
391
	alarm(0);
391
	alarm(0);
392
	prev_handler = signal(SIGALRM, timeout_handler);
392
	prev_handler = signal(SIGALRM, timeout_handler);
393
	if (sigsetjmp(jmpenv, 1)) {
393
	if (sigsetjmp(jmpenv, 1)) {
Lines 410-416 Link Here
410
{
410
{
411
	struct hostent *hp;
411
	struct hostent *hp;
412
	void (*prev_handler)(gint);
412
	void (*prev_handler)(gint);
413
413
	
414
	alarm(0);
414
	alarm(0);
415
	prev_handler = signal(SIGALRM, timeout_handler);
415
	prev_handler = signal(SIGALRM, timeout_handler);
416
	if (sigsetjmp(jmpenv, 1)) {
416
	if (sigsetjmp(jmpenv, 1)) {
Lines 851-857 Link Here
851
	SockLookupData *lookup_data = NULL;
851
	SockLookupData *lookup_data = NULL;
852
	gint pipe_fds[2];
852
	gint pipe_fds[2];
853
	pid_t pid;
853
	pid_t pid;
854
854
	
855
	if (pipe(pipe_fds) < 0) {
855
	if (pipe(pipe_fds) < 0) {
856
		perror("pipe");
856
		perror("pipe");
857
		func(NULL, data);
857
		func(NULL, data);
Lines 1020-1026 Link Here
1020
#if USE_OPENSSL
1020
#if USE_OPENSSL
1021
gint ssl_read(SSL *ssl, gchar *buf, gint len)
1021
gint ssl_read(SSL *ssl, gchar *buf, gint len)
1022
{
1022
{
1023
	gint ret;
1023
	gint err, ret;
1024
1024
1025
	if (SSL_pending(ssl) == 0) {
1025
	if (SSL_pending(ssl) == 0) {
1026
		if (fd_check_io(SSL_get_rfd(ssl), G_IO_IN) < 0)
1026
		if (fd_check_io(SSL_get_rfd(ssl), G_IO_IN) < 0)
Lines 1029-1042 Link Here
1029
1029
1030
	ret = SSL_read(ssl, buf, len);
1030
	ret = SSL_read(ssl, buf, len);
1031
1031
1032
	switch (SSL_get_error(ssl, ret)) {
1032
	switch ((err = SSL_get_error(ssl, ret))) {
1033
	case SSL_ERROR_NONE:
1033
	case SSL_ERROR_NONE:
1034
		return ret;
1034
		return ret;
1035
	case SSL_ERROR_WANT_READ:
1035
	case SSL_ERROR_WANT_READ:
1036
	case SSL_ERROR_WANT_WRITE:
1036
	case SSL_ERROR_WANT_WRITE:
1037
		errno = EAGAIN;
1037
		errno = EAGAIN;
1038
		return -1;
1038
		return -1;
1039
	case SSL_ERROR_ZERO_RETURN:
1040
		return 0;
1039
	default:
1041
	default:
1042
		g_warning("SSL_read() returned error %d, ret = %d\n", err, ret);
1043
		if (ret == 0)
1044
			return 0;
1040
		return -1;
1045
		return -1;
1041
	}
1046
	}
1042
}
1047
}
Lines 1315-1321 Link Here
1315
#if USE_OPENSSL
1320
#if USE_OPENSSL
1316
gint ssl_peek(SSL *ssl, gchar *buf, gint len)
1321
gint ssl_peek(SSL *ssl, gchar *buf, gint len)
1317
{
1322
{
1318
	gint ret;
1323
	gint err, ret;
1319
1324
1320
	if (SSL_pending(ssl) == 0) {
1325
	if (SSL_pending(ssl) == 0) {
1321
		if (fd_check_io(SSL_get_rfd(ssl), G_IO_IN) < 0)
1326
		if (fd_check_io(SSL_get_rfd(ssl), G_IO_IN) < 0)
Lines 1324-1337 Link Here
1324
1329
1325
	ret = SSL_peek(ssl, buf, len);
1330
	ret = SSL_peek(ssl, buf, len);
1326
1331
1327
	switch (SSL_get_error(ssl, ret)) {
1332
	switch ((err = SSL_get_error(ssl, ret))) {
1328
	case SSL_ERROR_NONE:
1333
	case SSL_ERROR_NONE:
1329
		return ret;
1334
		return ret;
1330
	case SSL_ERROR_WANT_READ:
1335
	case SSL_ERROR_WANT_READ:
1331
	case SSL_ERROR_WANT_WRITE:
1336
	case SSL_ERROR_WANT_WRITE:
1332
		errno = EAGAIN;
1337
		errno = EAGAIN;
1333
		return -1;
1338
		return -1;
1339
	case SSL_ERROR_ZERO_RETURN:
1340
		return 0;
1334
	default:
1341
	default:
1342
		g_warning("SSL_peek() returned error %d, ret = %d\n", err, ret);
1343
		if (ret == 0)
1344
			return 0;
1335
		return -1;
1345
		return -1;
1336
	}
1346
	}
1337
}
1347
}
(-)sylpheed-claws-1.0.4/src/send_message.c (-1 / +6 lines)
Lines 1-6 Link Here
1
/*
1
/*
2
 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
2
 * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
3
 * Copyright (C) 1999-2003 Hiroyuki Yamamoto
3
 * Copyright (C) 1999-2005 Hiroyuki Yamamoto
4
 *
4
 *
5
 * This program is free software; you can redistribute it and/or modify
5
 * This program is free software; you can redistribute it and/or modify
6
 * it under the terms of the GNU General Public License as published by
6
 * it under the terms of the GNU General Public License as published by
Lines 412-417 Link Here
412
			ac_prefs->tmp_smtp_pass = NULL;
412
			ac_prefs->tmp_smtp_pass = NULL;
413
		}
413
		}
414
		ret = -1;
414
		ret = -1;
415
	} else if (session->state == SESSION_EOF &&
416
		   SMTP_SESSION(session)->state == SMTP_QUIT) {
417
		/* consider EOF right after QUIT successful */
418
		log_warning("%s\n", _("Connection closed by the remote host."));
419
		ret = 0;
415
	} else if (session->state == SESSION_ERROR ||
420
	} else if (session->state == SESSION_ERROR ||
416
		   session->state == SESSION_EOF ||
421
		   session->state == SESSION_EOF ||
417
		   session->state == SESSION_TIMEOUT ||
422
		   session->state == SESSION_TIMEOUT ||

Return to bug 89577