Add function dcc_type_name() to convert DCC type to corresponding name.
This conversion (which conditionally prepends 'T' to the DCC type name depending on whether TDCC is enabled or not) was open-coded in several places. Also removes unused extern function get_dcc_type().
This commit is contained in:
121
source/dcc.c
121
source/dcc.c
@@ -147,8 +147,7 @@ static void process_dcc_chat(int);
|
|||||||
#ifndef BITCHX_LITE
|
#ifndef BITCHX_LITE
|
||||||
static void process_dcc_bot(int);
|
static void process_dcc_bot(int);
|
||||||
#endif
|
#endif
|
||||||
static void
|
static void start_dcc_chat(int);
|
||||||
start_dcc_chat(int);
|
|
||||||
static unsigned char byte_order_test (void);
|
static unsigned char byte_order_test (void);
|
||||||
static void dcc_update_stats(int);
|
static void dcc_update_stats(int);
|
||||||
|
|
||||||
@@ -1098,20 +1097,17 @@ int dcc_activeraw(char *user)
|
|||||||
return find_dcc(user, NULL, NULL, DCC_RAW, 0, 1, -1) ? 1 : 0;
|
return find_dcc(user, NULL, NULL, DCC_RAW, 0, 1, -1) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int get_dcc_type(char *type)
|
static const char *dcc_type_name(int type, int tdcc)
|
||||||
{
|
{
|
||||||
int tdcc = 0;
|
static char buffer[30];
|
||||||
int i;
|
|
||||||
if (!type || !*type)
|
|
||||||
return -1;
|
|
||||||
upper(type);
|
|
||||||
if (*type == 'T')
|
|
||||||
type++, tdcc = DCC_TDCC;
|
|
||||||
|
|
||||||
for (i = 0; dcc_types[i]->name; i++)
|
if (tdcc)
|
||||||
if (!strcmp(type, dcc_types[i]->name))
|
{
|
||||||
return i | tdcc;
|
snprintf(buffer, sizeof buffer, "T%s", dcc_types[type]->name);
|
||||||
return -1;
|
return buffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
return dcc_types[type]->name;
|
||||||
}
|
}
|
||||||
|
|
||||||
void process_dcc_send1(int s);
|
void process_dcc_send1(int s);
|
||||||
@@ -1491,7 +1487,7 @@ static void dcc_send_offer(char *nick, char *type, char *description,
|
|||||||
{
|
{
|
||||||
put_it("%s",
|
put_it("%s",
|
||||||
convert_output_format("$G %RDCC%n Auto-accepting $0 of file %C$2-%n from %K[%C$1%K]",
|
convert_output_format("$G %RDCC%n Auto-accepting $0 of file %C$2-%n from %K[%C$1%K]",
|
||||||
"%s%s %s %s", tdcc ? "T" : "", dcc_types[Ctype]->name, nick, n->filename));
|
"%s %s %s", dcc_type_name(Ctype, tdcc), nick, n->filename));
|
||||||
}
|
}
|
||||||
if ((n->file = open(fullname, O_WRONLY | O_CREAT | O_BINARY, 0644)) > 0)
|
if ((n->file = open(fullname, O_WRONLY | O_CREAT | O_BINARY, 0644)) > 0)
|
||||||
{
|
{
|
||||||
@@ -1545,7 +1541,7 @@ static void dcc_resend_offer(char *nick, char *type, char *description,
|
|||||||
{
|
{
|
||||||
put_it("%s",
|
put_it("%s",
|
||||||
convert_output_format("$G %RDCC%n Auto-accepting $0 of file %C$2-%n from %K[%C$1%K]",
|
convert_output_format("$G %RDCC%n Auto-accepting $0 of file %C$2-%n from %K[%C$1%K]",
|
||||||
"%s%s %s %s", tdcc ? "T" : "", dcc_types[Ctype]->name, nick, n->filename));
|
"%s %s %s", dcc_type_name(Ctype, tdcc), nick, n->filename));
|
||||||
}
|
}
|
||||||
if ((n->file = open(fullname, O_WRONLY | O_CREAT | O_BINARY | O_APPEND, 0644)) > 0)
|
if ((n->file = open(fullname, O_WRONLY | O_CREAT | O_BINARY | O_APPEND, 0644)) > 0)
|
||||||
{
|
{
|
||||||
@@ -1760,17 +1756,14 @@ void close_dcc_file(int snum)
|
|||||||
double xfer;
|
double xfer;
|
||||||
double temp;
|
double temp;
|
||||||
unsigned long type;
|
unsigned long type;
|
||||||
char lame_type[30];
|
const char *type_name;
|
||||||
|
|
||||||
s = get_socket(snum);
|
s = get_socket(snum);
|
||||||
if (!s || !(n = (DCC_int *)s->info))
|
if (!s || !(n = (DCC_int *)s->info))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
type = s->flags & DCC_TYPES;
|
type = s->flags & DCC_TYPES;
|
||||||
*lame_type = 0;
|
type_name = dcc_type_name(type, s->flags & DCC_TDCC);
|
||||||
if (s->flags & DCC_TDCC)
|
|
||||||
strcpy(lame_type, "T");
|
|
||||||
strcat(lame_type, dcc_types[type]->name);
|
|
||||||
|
|
||||||
xtime = time_since(&n->starttime);
|
xtime = time_since(&n->starttime);
|
||||||
xfer = (double)(n->bytes_sent ? n->bytes_sent : n->bytes_read);
|
xfer = (double)(n->bytes_sent ? n->bytes_sent : n->bytes_read);
|
||||||
@@ -1805,10 +1798,10 @@ void close_dcc_file(int snum)
|
|||||||
}
|
}
|
||||||
|
|
||||||
set_display_target(NULL, LOG_DCC);
|
set_display_target(NULL, LOG_DCC);
|
||||||
if (do_hook(DCC_LOST_LIST, "%s %s %s %s TRANSFER COMPLETE", s->server, lame_type, strip_path(n->filename), lame_ultrix))
|
if (do_hook(DCC_LOST_LIST, "%s %s %s %s TRANSFER COMPLETE", s->server, type_name, strip_path(n->filename), lame_ultrix))
|
||||||
put_it("%s", convert_output_format(fget_string_var(FORMAT_DCC_LOST_FSET),
|
put_it("%s", convert_output_format(fget_string_var(FORMAT_DCC_LOST_FSET),
|
||||||
"%s %s %s %s %s %s %s %s",
|
"%s %s %s %s %s %s %s %s",
|
||||||
update_clock(GET_TIME), lame_type, strip_path(filename),
|
update_clock(GET_TIME), type_name, strip_path(filename),
|
||||||
lame_ultrix2, tofrom, s->server, lame_ultrix3, lame_ultrix));
|
lame_ultrix2, tofrom, s->server, lame_ultrix3, lame_ultrix));
|
||||||
|
|
||||||
#ifdef GUI
|
#ifdef GUI
|
||||||
@@ -1942,16 +1935,16 @@ char *buffer = alloca(MAX_DCC_BLOCK_SIZE+1);
|
|||||||
|
|
||||||
void start_dcc_send(int s)
|
void start_dcc_send(int s)
|
||||||
{
|
{
|
||||||
struct sockaddr_in remaddr;
|
struct sockaddr_in remaddr;
|
||||||
socklen_t sra;
|
socklen_t sra;
|
||||||
int type;
|
int type;
|
||||||
int new_s = -1;
|
int new_s = -1;
|
||||||
int tdcc = 0;
|
int tdcc = 0;
|
||||||
char *nick = NULL;
|
char *nick = NULL;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
DCC_int *n = NULL;
|
DCC_int *n = NULL;
|
||||||
struct transfer_struct received = {0};
|
struct transfer_struct received = { 0 };
|
||||||
char local_type[30];
|
const char *type_name;
|
||||||
|
|
||||||
if (!(flags = get_socketflags(s)))
|
if (!(flags = get_socketflags(s)))
|
||||||
return; /* wrong place damn it */
|
return; /* wrong place damn it */
|
||||||
@@ -2016,15 +2009,12 @@ char local_type[30];
|
|||||||
}
|
}
|
||||||
lseek(n->file, n->transfer_orders.byteoffset, SEEK_SET);
|
lseek(n->file, n->transfer_orders.byteoffset, SEEK_SET);
|
||||||
errno = 0;
|
errno = 0;
|
||||||
*local_type = 0;
|
type_name = dcc_type_name(type, tdcc);
|
||||||
if (tdcc)
|
if (do_hook(DCC_CONNECT_LIST, "%s %s %s %d %ld %s", nick, type_name,
|
||||||
strcpy(local_type, "T");
|
|
||||||
strcat(local_type, dcc_types[type]->name);
|
|
||||||
if (do_hook(DCC_CONNECT_LIST, "%s %s %s %d %ld %s", nick, local_type,
|
|
||||||
inet_ntoa(remaddr.sin_addr), ntohs(remaddr.sin_port), (unsigned long)n->filesize, n->filename) && !dcc_quiet)
|
inet_ntoa(remaddr.sin_addr), ntohs(remaddr.sin_port), (unsigned long)n->filesize, n->filename) && !dcc_quiet)
|
||||||
put_it("%s", convert_output_format(fget_string_var(FORMAT_DCC_CONNECT_FSET),
|
put_it("%s", convert_output_format(fget_string_var(FORMAT_DCC_CONNECT_FSET),
|
||||||
"%s %s %s %s %s %d %d", update_clock(GET_TIME),
|
"%s %s %s %s %s %d %d", update_clock(GET_TIME),
|
||||||
local_type, nick, n->userhost?n->userhost:"u@h",
|
type_name, nick, n->userhost?n->userhost:"u@h",
|
||||||
inet_ntoa(remaddr.sin_addr),ntohs(remaddr.sin_port),n->transfer_orders.byteoffset ));
|
inet_ntoa(remaddr.sin_addr),ntohs(remaddr.sin_port),n->transfer_orders.byteoffset ));
|
||||||
get_time(&n->starttime);
|
get_time(&n->starttime);
|
||||||
get_time(&n->lasttime);
|
get_time(&n->lasttime);
|
||||||
@@ -2527,8 +2517,6 @@ void dcc_glist(char *command, char *args)
|
|||||||
int tdcc = 0;
|
int tdcc = 0;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
DCC_List *c;
|
DCC_List *c;
|
||||||
char spec[BIG_BUFFER_SIZE];
|
|
||||||
char *filename, *p;
|
|
||||||
|
|
||||||
reset_display_target();
|
reset_display_target();
|
||||||
#if !defined(WINNT) && !defined(__EMX__) && (defined(LATIN1) || defined(CHARSET_CUSTOM))
|
#if !defined(WINNT) && !defined(__EMX__) && (defined(LATIN1) || defined(CHARSET_CUSTOM))
|
||||||
@@ -2546,43 +2534,41 @@ void dcc_glist(char *command, char *args)
|
|||||||
}
|
}
|
||||||
for (c = pending_dcc; c; c = c->next, count++)
|
for (c = pending_dcc; c; c = c->next, count++)
|
||||||
{
|
{
|
||||||
char local_type[30];
|
|
||||||
char *filename, *p;
|
char *filename, *p;
|
||||||
|
const char *type_name;
|
||||||
|
|
||||||
s = &c->sock;
|
s = &c->sock;
|
||||||
type = c->sock.flags & DCC_TYPES;
|
type = c->sock.flags & DCC_TYPES;
|
||||||
tdcc = c->sock.flags & DCC_TDCC;
|
tdcc = c->sock.flags & DCC_TDCC;
|
||||||
|
type_name = dcc_type_name(type, tdcc);
|
||||||
n = (DCC_int *)c->sock.info;
|
n = (DCC_int *)c->sock.info;
|
||||||
*local_type = 0;
|
|
||||||
if (tdcc)
|
|
||||||
strcpy(local_type, "T");
|
|
||||||
strcat(local_type, dcc_types[type]->name);
|
|
||||||
filename = LOCAL_COPY(n->filename);
|
|
||||||
|
|
||||||
|
filename = LOCAL_COPY(n->filename);
|
||||||
p = filename;
|
p = filename;
|
||||||
while ((p = strchr(p, ' ')))
|
while ((p = strchr(p, ' ')))
|
||||||
*p = '_';
|
*p = '_';
|
||||||
|
|
||||||
if (do_hook(DCC_STAT_LIST, "%d %s %s %s %s %s %s",
|
if (do_hook(DCC_STAT_LIST, "%d %s %s %s %s %s %s",
|
||||||
n->dccnum, local_type,
|
n->dccnum, type_name,
|
||||||
c->sock.server,
|
c->sock.server,
|
||||||
dcc_get_state(s),
|
dcc_get_state(s),
|
||||||
"N/A", strip_path(filename), n->encrypt?"E":empty_string))
|
"N/A", strip_path(filename), n->encrypt?"E":empty_string))
|
||||||
{
|
{
|
||||||
put_it("%s", convert_output_format(DCC_FORMAT_STAT_PENDING, "%d %s %s %s %s %s %s",
|
put_it("%s", convert_output_format(DCC_FORMAT_STAT_PENDING, "%d %s %s %s %s %s %s",
|
||||||
n->dccnum,
|
n->dccnum,
|
||||||
local_type,
|
type_name,
|
||||||
n->encrypt ? "E" : "<EFBFBD>",
|
n->encrypt ? "E" : "<EFBFBD>",
|
||||||
c->sock.server,
|
c->sock.server,
|
||||||
dcc_get_state(s),
|
dcc_get_state(s),
|
||||||
"N/A",
|
"N/A",
|
||||||
strip_path(filename)));
|
strip_path(filename)));
|
||||||
}
|
}
|
||||||
count++;
|
|
||||||
}
|
}
|
||||||
for (i = 0; i < get_max_fd() + 1; i++, count++)
|
for (i = 0; i < get_max_fd() + 1; i++, count++)
|
||||||
{
|
{
|
||||||
char local_type[30];
|
|
||||||
time_t xtime;
|
time_t xtime;
|
||||||
|
char *filename, *p;
|
||||||
|
const char *type_name;
|
||||||
|
|
||||||
if (!check_dcc_socket(i))
|
if (!check_dcc_socket(i))
|
||||||
continue;
|
continue;
|
||||||
@@ -2590,14 +2576,11 @@ void dcc_glist(char *command, char *args)
|
|||||||
n = (DCC_int *)s->info;
|
n = (DCC_int *)s->info;
|
||||||
type = s->flags & DCC_TYPES;
|
type = s->flags & DCC_TYPES;
|
||||||
tdcc = s->flags & DCC_TDCC;
|
tdcc = s->flags & DCC_TDCC;
|
||||||
|
type_name = dcc_type_name(type, tdcc);
|
||||||
xtime = now - n->starttime.tv_sec;
|
xtime = now - n->starttime.tv_sec;
|
||||||
|
|
||||||
if (xtime <= 0)
|
if (xtime <= 0)
|
||||||
xtime = 1;
|
xtime = 1;
|
||||||
*local_type = 0;
|
|
||||||
if (tdcc)
|
|
||||||
strcpy(local_type, "T");
|
|
||||||
strcat(local_type, dcc_types[type]->name);
|
|
||||||
|
|
||||||
filename = LOCAL_COPY(n->filename);
|
filename = LOCAL_COPY(n->filename);
|
||||||
p = filename;
|
p = filename;
|
||||||
@@ -2609,12 +2592,12 @@ void dcc_glist(char *command, char *args)
|
|||||||
if (!(s->flags & DCC_ACTIVE))
|
if (!(s->flags & DCC_ACTIVE))
|
||||||
xtime = now - n->lasttime.tv_sec;
|
xtime = now - n->lasttime.tv_sec;
|
||||||
if (do_hook(DCC_STAT_LIST, "%d %s %s %s %s %s %s",
|
if (do_hook(DCC_STAT_LIST, "%d %s %s %s %s %s %s",
|
||||||
n->dccnum, local_type, s->server,
|
n->dccnum, type_name, s->server,
|
||||||
dcc_get_state(s),
|
dcc_get_state(s),
|
||||||
"N/A", strip_path(filename), n->encrypt?"E":empty_string))
|
"N/A", strip_path(filename), n->encrypt?"E":empty_string))
|
||||||
put_it("%s", convert_output_format(DCC_FORMAT_STAT_CHAT, "%d %s %s %s %s %s %s %s",
|
put_it("%s", convert_output_format(DCC_FORMAT_STAT_CHAT, "%d %s %s %s %s %s %s %s",
|
||||||
n->dccnum,
|
n->dccnum,
|
||||||
local_type,
|
type_name,
|
||||||
n->encrypt ? "E" : "<EFBFBD>",
|
n->encrypt ? "E" : "<EFBFBD>",
|
||||||
s->server,
|
s->server,
|
||||||
dcc_get_state(s),
|
dcc_get_state(s),
|
||||||
@@ -2625,13 +2608,13 @@ void dcc_glist(char *command, char *args)
|
|||||||
else if (!(s->flags & DCC_ACTIVE))
|
else if (!(s->flags & DCC_ACTIVE))
|
||||||
{
|
{
|
||||||
if (do_hook(DCC_STAT_LIST, "%d %s %s %s %s %s %s",
|
if (do_hook(DCC_STAT_LIST, "%d %s %s %s %s %s %s",
|
||||||
n->dccnum, local_type, s->server,
|
n->dccnum, type_name, s->server,
|
||||||
dcc_get_state(s),
|
dcc_get_state(s),
|
||||||
"N/A", strip_path(filename), n->encrypt?"E":empty_string))
|
"N/A", strip_path(filename), n->encrypt?"E":empty_string))
|
||||||
{
|
{
|
||||||
put_it("%s", convert_output_format(DCC_FORMAT_STAT_PENDING, "%d %s %s %s %s %s %s",
|
put_it("%s", convert_output_format(DCC_FORMAT_STAT_PENDING, "%d %s %s %s %s %s %s",
|
||||||
n->dccnum,
|
n->dccnum,
|
||||||
local_type,
|
type_name,
|
||||||
n->encrypt ? "E" : "<EFBFBD>",
|
n->encrypt ? "E" : "<EFBFBD>",
|
||||||
s->server,
|
s->server,
|
||||||
dcc_get_state(s),
|
dcc_get_state(s),
|
||||||
@@ -2643,14 +2626,12 @@ void dcc_glist(char *command, char *args)
|
|||||||
{
|
{
|
||||||
double bytes = n->bytes_read + n->bytes_sent;
|
double bytes = n->bytes_read + n->bytes_sent;
|
||||||
double pcomplete; /* proportion of transfer completed, 0.0 to 1.0 */
|
double pcomplete; /* proportion of transfer completed, 0.0 to 1.0 */
|
||||||
|
char spec[BIG_BUFFER_SIZE];
|
||||||
char percent[20];
|
char percent[20];
|
||||||
char eta[20];
|
char eta[20];
|
||||||
char kilobytes[20];
|
char kilobytes[20];
|
||||||
int seconds = 0, minutes = 0;
|
int seconds = 0, minutes = 0;
|
||||||
|
|
||||||
type = s->flags & DCC_TYPES;
|
|
||||||
tdcc = s->flags & DCC_TDCC;
|
|
||||||
|
|
||||||
/* Calculate proportion of transfer completed */
|
/* Calculate proportion of transfer completed */
|
||||||
if (n->filesize > 0)
|
if (n->filesize > 0)
|
||||||
{
|
{
|
||||||
@@ -2676,7 +2657,7 @@ void dcc_glist(char *command, char *args)
|
|||||||
if (seconds < 0) seconds = 0;
|
if (seconds < 0) seconds = 0;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
seconds = minutes = pcomplete = 0;
|
seconds = minutes = 0;
|
||||||
|
|
||||||
strcpy(spec, convert_output_format(get_bar_percent(pcomplete), NULL, NULL));
|
strcpy(spec, convert_output_format(get_bar_percent(pcomplete), NULL, NULL));
|
||||||
snprintf(percent, sizeof percent, "%4.1f%%", pcomplete * 100.0);
|
snprintf(percent, sizeof percent, "%4.1f%%", pcomplete * 100.0);
|
||||||
@@ -2684,7 +2665,7 @@ void dcc_glist(char *command, char *args)
|
|||||||
snprintf(kilobytes, sizeof kilobytes, "%2.4g", bytes / 1024.0 / xtime);
|
snprintf(kilobytes, sizeof kilobytes, "%2.4g", bytes / 1024.0 / xtime);
|
||||||
|
|
||||||
if (do_hook(DCC_STATF_LIST, "%d %s %s %s %s %s %s",
|
if (do_hook(DCC_STATF_LIST, "%d %s %s %s %s %s %s",
|
||||||
n->dccnum, local_type, s->server, dcc_get_state(s),
|
n->dccnum, type_name, s->server, dcc_get_state(s),
|
||||||
kilobytes, strip_path(filename),
|
kilobytes, strip_path(filename),
|
||||||
n->encrypt?"E":empty_string))
|
n->encrypt?"E":empty_string))
|
||||||
{
|
{
|
||||||
@@ -2695,7 +2676,7 @@ void dcc_glist(char *command, char *args)
|
|||||||
stat_format = DCC_FORMAT_STAT_BARTYPE_1;
|
stat_format = DCC_FORMAT_STAT_BARTYPE_1;
|
||||||
|
|
||||||
put_it("%s", convert_output_format(stat_format, "%d %s %s %s %s %s %s %s %s",
|
put_it("%s", convert_output_format(stat_format, "%d %s %s %s %s %s %s %s %s",
|
||||||
n->dccnum, local_type, n->encrypt ? "E":"<EFBFBD>",
|
n->dccnum, type_name, n->encrypt ? "E":"<EFBFBD>",
|
||||||
s->server, spec, percent, eta, kilobytes,
|
s->server, spec, percent, eta, kilobytes,
|
||||||
strip_path(filename)));
|
strip_path(filename)));
|
||||||
}
|
}
|
||||||
@@ -4415,15 +4396,9 @@ int i;
|
|||||||
|
|
||||||
char *get_dcc_info(SocketList *s, DCC_int *n, int i)
|
char *get_dcc_info(SocketList *s, DCC_int *n, int i)
|
||||||
{
|
{
|
||||||
char local_type[80];
|
|
||||||
|
|
||||||
*local_type = 0;
|
|
||||||
if (s->flags & DCC_TDCC)
|
|
||||||
strcpy(local_type, "T");
|
|
||||||
strcat(local_type, dcc_types[s->flags & DCC_TYPES]->name);
|
|
||||||
return m_sprintf("%s %s %s %ld %lu %lu %lu %s #%d %d",
|
return m_sprintf("%s %s %s %ld %lu %lu %lu %s #%d %d",
|
||||||
local_type, s->server,
|
dcc_type_name(s->flags & DCC_TYPES, s->flags & DCC_TDCC),
|
||||||
dcc_get_state(s),
|
s->server, dcc_get_state(s),
|
||||||
(long)n->starttime.tv_sec,
|
(long)n->starttime.tv_sec,
|
||||||
(unsigned long)n->transfer_orders.byteoffset,
|
(unsigned long)n->transfer_orders.byteoffset,
|
||||||
(unsigned long)n->bytes_sent, (unsigned long)n->bytes_read,
|
(unsigned long)n->bytes_sent, (unsigned long)n->bytes_read,
|
||||||
|
|||||||
Reference in New Issue
Block a user