static struct server_socket *unbound_server_socket(struct socket_factory *gf, struct error *e) { int fd; struct simple_server_socket *s; assert(gf->ops == &simple_socket_factory_ops); fd = make_listening_socket(AF_INET, SOCK_STREAM, e); if (fd < 0) return NULL; s = simple_server_socket_create(&fd, 1); return &s->base; }
int change_listen_socket(long *port, long new_port, int *server_socket) { int ret = 0; if (*port == new_port) return SUCCESS; *port = new_port; ret = make_listening_socket(new_port); if (ret < 0) return ERROR; if (*server_socket) close(*server_socket); *server_socket = ret; return ret; }