/* create a new transfer */ transfer *create_transfer(xdcc *xd, const char *nick, const char *hostname) { transfer *tr; dcc_options_t *dcc_options; ++(xd->file_fd_count); tr = irlist_add(&gdata.trans, sizeof(transfer)); t_initvalues(tr); tr->id = get_next_tr_id(); tr->nick = mystrdup(nick); tr->caps_nick = mystrdup(nick); caps(tr->caps_nick); tr->hostname = mystrdup(hostname); tr->xpack = xd; tr->maxspeed = xd->maxspeed; tr->net = gnetwork->net; tr->quietmode = gdata.quietmode; tr->passive_dcc = gdata.passive_dcc; tr->con.family = gnetwork->myip.sa.sa_family; tr->con.localport = 0; dcc_options = get_options(tr->nick); if (dcc_options != NULL) { if ((dcc_options->options & DCC_OPTION_IPV4) != 0) tr->con.family = AF_INET; if ((dcc_options->options & DCC_OPTION_IPV6) != 0) tr->con.family = AF_INET6; if ((dcc_options->options & DCC_OPTION_ACTIVE) != 0) tr->passive_dcc = 0; if ((dcc_options->options & DCC_OPTION_PASSIVE) != 0) tr->passive_dcc = 1; if ((dcc_options->options & DCC_OPTION_QUIET) != 0) tr->quietmode = 1; } return tr; }
/* create a new transfer */ transfer *create_transfer(xdcc *xd, const char *nick, const char *hostname) { transfer *tr; ++(xd->file_fd_count); tr = irlist_add(&gdata.trans, sizeof(transfer)); t_initvalues(tr); tr->id = get_next_tr_id(); tr->nick = mystrdup(nick); tr->caps_nick = mystrdup(nick); caps(tr->caps_nick); tr->hostname = mystrdup(hostname); tr->xpack = xd; tr->maxspeed = xd->maxspeed; tr->net = gnetwork->net; return tr; }