parent
77dccacd02
commit
9e11280e52
|
@ -81,7 +81,7 @@ static int dcc_global_throttle; /* 0x1 = sends, 0x2 = gets */
|
|||
static gint64 dcc_sendcpssum, dcc_getcpssum;
|
||||
|
||||
static struct DCC *new_dcc (void);
|
||||
static void dcc_close (struct DCC *dcc, int dccstat, int destroy);
|
||||
static void dcc_close (struct DCC *dcc, enum dcc_state dccstat, int destroy);
|
||||
static gboolean dcc_send_data (GIOChannel *, GIOCondition, struct DCC *);
|
||||
static gboolean dcc_read (GIOChannel *, GIOCondition, struct DCC *);
|
||||
static gboolean dcc_read_ack (GIOChannel *source, GIOCondition condition, struct DCC *dcc);
|
||||
|
@ -293,6 +293,8 @@ dcc_check_timeouts (void)
|
|||
if (prefs.hex_dcc_remove)
|
||||
dcc_close (dcc, 0, TRUE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
list = next;
|
||||
}
|
||||
|
@ -367,7 +369,7 @@ dcc_connect_sok (struct DCC *dcc)
|
|||
}
|
||||
|
||||
static void
|
||||
dcc_close (struct DCC *dcc, int dccstat, int destroy)
|
||||
dcc_close (struct DCC *dcc, enum dcc_state dccstat, int destroy)
|
||||
{
|
||||
if (dcc->wiotag)
|
||||
{
|
||||
|
@ -1606,6 +1608,8 @@ dcc_accept (GIOChannel *source, GIOCondition condition, struct DCC *dcc)
|
|||
EMIT_SIGNAL (XP_TE_DCCCONCHAT, dcc->serv->front_session,
|
||||
dcc->nick, host, NULL, NULL, 0);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
fe_dcc_update (dcc);
|
||||
|
@ -2183,6 +2187,8 @@ dcc_get (struct DCC *dcc)
|
|||
case STAT_ABORTED:
|
||||
dcc_close (dcc, 0, TRUE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2265,6 +2271,9 @@ dcc_chat (struct session *sess, char *nick, int passive)
|
|||
case STAT_ABORTED:
|
||||
case STAT_FAILED:
|
||||
dcc_close (dcc, 0, TRUE);
|
||||
break;
|
||||
case STAT_DONE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
dcc = find_dcc (nick, "", TYPE_CHATRECV);
|
||||
|
@ -2278,6 +2287,9 @@ dcc_chat (struct session *sess, char *nick, int passive)
|
|||
case STAT_FAILED:
|
||||
case STAT_ABORTED:
|
||||
dcc_close (dcc, 0, TRUE);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -25,17 +25,21 @@
|
|||
#ifndef HEXCHAT_DCC_H
|
||||
#define HEXCHAT_DCC_H
|
||||
|
||||
#define STAT_QUEUED 0
|
||||
#define STAT_ACTIVE 1
|
||||
#define STAT_FAILED 2
|
||||
#define STAT_DONE 3
|
||||
#define STAT_CONNECTING 4
|
||||
#define STAT_ABORTED 5
|
||||
enum dcc_state {
|
||||
STAT_QUEUED = 0,
|
||||
STAT_ACTIVE,
|
||||
STAT_FAILED,
|
||||
STAT_DONE,
|
||||
STAT_CONNECTING,
|
||||
STAT_ABORTED
|
||||
};
|
||||
|
||||
#define TYPE_SEND 0
|
||||
#define TYPE_RECV 1
|
||||
#define TYPE_CHATRECV 2
|
||||
#define TYPE_CHATSEND 3
|
||||
enum dcc_type {
|
||||
TYPE_SEND = 0,
|
||||
TYPE_RECV,
|
||||
TYPE_CHATRECV,
|
||||
TYPE_CHATSEND
|
||||
};
|
||||
|
||||
#define CPS_AVG_WINDOW 10
|
||||
|
||||
|
@ -72,8 +76,8 @@ struct DCC
|
|||
char *file; /* utf8 */
|
||||
char *destfile; /* utf8 */
|
||||
char *nick;
|
||||
unsigned char type; /* 0 = SEND 1 = RECV 2 = CHAT */
|
||||
unsigned char dccstat; /* 0 = QUEUED 1 = ACTIVE 2 = FAILED 3 = DONE */
|
||||
enum dcc_type type;
|
||||
enum dcc_state dccstat;
|
||||
unsigned int resume_sent:1; /* resume request sent */
|
||||
unsigned int fastsend:1;
|
||||
unsigned int ackoffset:1; /* is receiver sending acks as an offset from */
|
||||
|
|
|
@ -713,6 +713,11 @@ dcc_dclick_cb (GtkTreeView *view, GtkTreePath *path,
|
|||
case STAT_ABORTED:
|
||||
case STAT_DONE:
|
||||
dcc_abort (dcc->serv->front_session, dcc);
|
||||
break;
|
||||
case STAT_QUEUED:
|
||||
case STAT_ACTIVE:
|
||||
case STAT_CONNECTING:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue