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:
Kevin Easton
2016-10-28 15:35:23 +11:00
parent 919b76fcef
commit 30e1a65efb

View File

@@ -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);
@@ -157,7 +156,7 @@ static void update_transfer();
static char *strip_path(char *); static char *strip_path(char *);
static void dcc_getfile_resume_demanded(char *, char *, char *, char *); static void dcc_getfile_resume_demanded(char *, char *, char *, char *);
static void dcc_getfile_resume_start (char *, char *, char *, char *); static void dcc_getfile_resume_start (char *, char *, char *, char *);
static void output_reject_ctcp (UserhostItem *, char *, char *); static void output_reject_ctcp (UserhostItem *, char *, char *);
extern int use_nat_address; extern int use_nat_address;
extern struct in_addr nat_address; extern struct in_addr nat_address;
@@ -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,19 +4396,13 @@ 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,
n->filename, i, n->server); n->filename, i, n->server);
} }
void dcc_raw_transmit (char *user, char *text, char *type) void dcc_raw_transmit (char *user, char *text, char *type)