memcpy(cookie->cookie, ck, 8);
cookie->type = AIM_COOKIETYPE_OFTIM;
+ /* this one is for the cookie */
priv = (struct aim_directim_intdata *)calloc(1, sizeof(struct aim_directim_intdata));
memcpy(priv->cookie, ck, 8);
- memcpy(priv->sn, destsn, sizeof(priv->sn));
+ strncpy(priv->sn, destsn, sizeof(priv->sn));
cookie->data = priv;
aim_cachecookie(sess, cookie);
priv = (struct aim_directim_intdata *)calloc(1, sizeof(struct aim_directim_intdata));
memcpy(priv->cookie, ck, 8);
- memcpy(priv->sn, destsn, sizeof(priv->sn));
+ strncpy(priv->sn, destsn, sizeof(priv->sn));
newconn->fd = listenfd;
newconn->subtype = AIM_CONN_SUBTYPE_OFT_DIRECTIM;
memcpy(intdata->cookie, cookie, 8);
strncpy(intdata->sn, sn, sizeof(intdata->sn));
- strncpy(intdata->ip, addr, sizeof(intdata->ip));
+ if (addr)
+ strncpy(intdata->ip, addr, sizeof(intdata->ip));
/* XXX verify that non-blocking connects actually work */
if (!(newconn = aim_newconn(sess, AIM_CONN_TYPE_RENDEZVOUS, addr))) {
return NULL;
}
- if (!newconn || (newconn->fd == -1)) {
+ if (!newconn) {
free(intdata);
return newconn;
}