ss2sin
memcpy(&ss2sin(&sp->to)->sin_addr, iap, sizeof(*iap));
ss2sin(&sp->to)->sin_port = htons(SERVER_PORT);
ss2sin(&sp->to)->sin_family = AF_INET;
ss2sin(&sp->to)->sin_len = sizeof(struct sockaddr_in);
*ss2sin(&pc->pc_dst) = to;
ss2sin(&pc->pc_src)->sin_addr = interfaces->primary_address;
inet_ntoa(ss2sin(&sp->to)->sin_addr));
inet_ntoa(ss2sin(&sp->to)->sin_addr));
memcpy(&ss2sin(&pc.pc_src)->sin_addr, &ss2sin(&sp->to)->sin_addr,
sizeof(ss2sin(&pc.pc_src)->sin_addr));
ss2sin(&pc.pc_src)->sin_port = htons(SERVER_PORT);
ss2sin(&pc.pc_dst)->sin_port = htons(CLIENT_PORT);
sin = ss2sin(&pc->pc_dst);
sin = ss2sin(&pc->pc_src);
ip.ip_src.s_addr = ss2sin(&pc->pc_src)->sin_addr.s_addr;
ip.ip_dst.s_addr = ss2sin(&pc->pc_dst)->sin_addr.s_addr;
udp.uh_sport = ss2sin(&pc->pc_src)->sin_port;
udp.uh_dport = ss2sin(&pc->pc_dst)->sin_port;
memcpy(&ss2sin(&pc->pc_src)->sin_addr, &ip->ip_src,
sizeof(ss2sin(&pc->pc_src)->sin_addr));
memcpy(&ss2sin(&pc->pc_dst)->sin_addr, &ip->ip_dst,
sizeof(ss2sin(&pc->pc_dst)->sin_addr));
ss2sin(&pc->pc_src)->sin_port = udp->uh_sport;
ss2sin(&pc->pc_dst)->sin_port = udp->uh_dport;
memcpy(&ss2sin(&pc.pc_dst)->sin_addr, &client_addr,
ss2sin(&pc.pc_dst)->sin_port = htons(CLIENT_PORT);
memcpy(&ss2sin(&pc.pc_src)->sin_addr, &server_addr,
ss2sin(&pc.pc_src)->sin_port = htons(SERVER_PORT);
if (ntohs(ss2sin(&pc.pc_src)->sin_port) != CLIENT_PORT ||
ntohs(ss2sin(&pc.pc_dst)->sin_port) != SERVER_PORT)
ip.ip_src.s_addr = ss2sin(&pc->pc_src)->sin_addr.s_addr;
ip.ip_dst.s_addr = ss2sin(&pc->pc_dst)->sin_addr.s_addr;
udp.uh_sport = ss2sin(&pc->pc_src)->sin_port;
udp.uh_dport = ss2sin(&pc->pc_dst)->sin_port;
memcpy(&ss2sin(&pc->pc_src)->sin_addr, &ip->ip_src,
sizeof(ss2sin(&pc->pc_src)->sin_addr));
memcpy(&ss2sin(&pc->pc_dst)->sin_addr, &ip->ip_dst,
sizeof(ss2sin(&pc->pc_dst)->sin_addr));
ss2sin(&pc->pc_src)->sin_port = udp->uh_sport;
ss2sin(&pc->pc_dst)->sin_port = udp->uh_dport;
addr.s_addr = ss2sin(&ss)->sin_addr.s_addr;