Пример #1
0
/* 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;
}
Пример #2
0
/* 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;
}