- udp_me.sin_family = udp_peer.sin_family = AF_INET;
- parseaddr(argv[optind], &udp_me.sin_addr, &pt);
- udp_me.sin_port = pt;
- parseaddr(argv[optind + 1], &udp_peer.sin_addr, &pt);
- udp_peer.sin_port = pt;
+ initaddr(&cw.peer);
+ if (peerhost) parseaddr(peerhost, 0, 0, &cw.peer);
+
+ if (connhost) {
+ initaddr(&tmpaddr);
+ parseaddr(connhost, 0, paf_parse, &tmpaddr);
+ if ((fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0 ||
+ (bindhost &&
+ bind(fd, &bindaddr.sa, sizeof(bindaddr.sin))) ||
+ connect(fd, &tmpaddr.sa, sizeof(tmpaddr.sin)))
+ die(1, "couldn't connect to TCP server: %s", strerror(errno));
+ if (nonblockify(fd) || cloexec(fd))
+ die(1, "couldn't connect to TCP server: %s", strerror(errno));
+ }