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 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 ssl_open(const char *name, char *suffix, struct stream **streamp, uint8_t dscp) { int error, fd; error = ssl_init(); if (error) { return error; } error = inet_open_active(SOCK_STREAM, suffix, OFP_PORT, NULL, &fd, dscp); if (fd >= 0) { int state = error ? STATE_TCP_CONNECTING : STATE_SSL_CONNECTING; return new_ssl_stream(name, fd, CLIENT, state, streamp); } else { VLOG_ERR("%s: connect: %s", name, ovs_strerror(error)); return error; } }