+2002-10-08 [colin] 0.8.5claws2
+
+ * src/inc.[ch]
+ src/pop.c
+ src/recv.c
+ Differentiate socket errors from disk full
+ errors
+
2002-10-08 [christoph] 0.8.5claws1
* Makefile.am
MICRO_VERSION=5
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=claws1
+EXTRA_VERSION=claws2
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
dnl set $target
break;
case INC_ERROR:
case INC_NOSPACE:
+ case INC_SOCKERR:
gtk_clist_set_pixmap(clist, num, 0, errorxpm, errorxpmmask);
gtk_clist_set_text(clist, num, 2, _("Error"));
break;
if (inc_state != INC_SUCCESS && inc_state != INC_CANCEL) {
error_num++;
- if (inc_state == INC_NOSPACE) {
+ if (inc_state == INC_NOSPACE || inc_state == INC_SOCKERR) {
inc_put_error(inc_state);
break;
}
case PS_IOERR:
session->inc_state = INC_NOSPACE;
break;
+ case PS_SOCKET:
+ session->inc_state = INC_SOCKERR;
+ break;
case PS_LOCKBUSY:
session->inc_state = INC_LOCKED;
break;
case INC_NOSPACE:
alertpanel_error(_("No disk space left."));
break;
+ case INC_SOCKERR:
+ alertpanel_error(_("Socket error."));
+ break;
case INC_LOCKED:
if (!prefs_common.no_recv_err_panel)
alertpanel_error(_("Mailbox is locked."));
INC_LOCKED,
INC_ERROR,
INC_NOSPACE,
+ INC_SOCKERR,
INC_CANCEL
} IncState;
Pop3State *state = (Pop3State *)data;
gchar *filename, *path;
gint next_state;
-
+ gint write_val;
if (pop3_ok(sock, NULL) != PS_SUCCESS)
return POP3_LOGOUT_SEND;
filename = g_strdup_printf("%s%i", path, state->cur_msg);
- if (recv_write_to_file(sock, filename) < 0) {
- state->error_val = PS_IOERR;
+ if ( (write_val = recv_write_to_file(sock, filename)) < 0) {
+ state->error_val = (write_val == -1 ? PS_IOERR : PS_SOCKET);
return -1;
}
gchar *file;
gint ok, drop_ok;
gint next_state;
+ gint write_val;
if ((ok = pop3_ok(sock, NULL)) == PS_SUCCESS) {
file = get_tmp_file();
- if (recv_write_to_file(sock, file) < 0) {
+ if ( (write_val = recv_write_to_file(sock, file)) < 0) {
g_free(file);
if (!state->cancelled)
- state->error_val = PS_IOERR;
+ state->error_val = (write_val == -1 ? PS_IOERR : PS_SOCKET);
return -1;
}
gint recv_write_to_file(SockInfo *sock, const gchar *filename)
{
FILE *fp;
-
+ int write_val;
g_return_val_if_fail(filename != NULL, -1);
if ((fp = fopen(filename, "wb")) == NULL) {
if (change_file_mode_rw(fp, filename) < 0)
FILE_OP_ERROR(filename, "chmod");
- if (recv_write(sock, fp) < 0) {
+ if ( (write_val = recv_write(sock, fp)) < 0) {
fclose(fp);
unlink(filename);
- return -1;
+ return write_val;
}
if (fclose(fp) == EOF) {
for (;;) {
if (sock_gets(sock, buf, sizeof(buf)) < 0) {
g_warning(_("error occurred while retrieving data.\n"));
- return -1;
+ return -2;
}
len = strlen(buf);