static int tcp_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp) { struct sockaddr_in sin; int fd, error; error = inet_open_active(SOCK_STREAM, suffix, 0, &sin, &fd, dscp); if (fd >= 0) { return new_tcp_stream(name, fd, error, &sin, streamp); } else { return error; } }
static int tcp_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp) { int fd, error; error = inet_open_active(SOCK_STREAM, suffix, -1, NULL, &fd, dscp); if (fd >= 0) { return new_tcp_stream(xstrdup(name), fd, error, streamp); } else { VLOG_ERR("%s: connect: %s", name, ovs_strerror(error)); return error; } }
static int ptcp_accept(int fd, const struct sockaddr *sa, size_t sa_len, struct stream **streamp) { const struct sockaddr_in *sin = (const struct sockaddr_in *) sa; char name[128]; if (sa_len == sizeof(struct sockaddr_in) && sin->sin_family == AF_INET) { sprintf(name, "tcp:"IP_FMT, IP_ARGS(&sin->sin_addr)); sprintf(strchr(name, '\0'), ":%"PRIu16, ntohs(sin->sin_port)); } else { strcpy(name, "tcp"); } return new_tcp_stream(name, fd, 0, sin, streamp); }