problem with ipv6 sockets on bind
This function errors on bind, i havent updated my setup in a while is it possible using a ipv6 setup wont work on my computer?
Socket operation on non-socket: Error Bind
Code:
int createServer(char *port){
int serverSocket;
int yes = 1;
struct addrinfo hints,*res;
memset(&hints,0,sizeof hints);
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE;
if(getaddrinfo(NULL,port,&hints,&res) ==-1){
bail("Error getaddrinfo");
}
if(serverSocket = socket(res->ai_family,res->ai_socktype,res->ai_protocol)==-1)
bail("Errror socket");
setsockopt(serverSocket,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof(int));
if(bind(serverSocket,res->ai_addr,res->ai_addrlen)==-1){
bail("Error Bind");
}
if(listen(serverSocket,5)==-1){
bail("Error Listen");
}
printf("Listening for connections on port %d..\n",port);
//more variables we need.
socklen_t addr_size;
int connectedSocket;
struct sockaddr_storage their_addr;
if(connectedSocket = accept(serverSocket,(struct sockaddr *)&their_addr,&addr_size)==-1){
bail("Error Accept");
}
return connectedSocket;
}