sock: set IPV6_V6ONLY on the socket before binding an IPv6 address
so that we can bind wildcard for both IPv4 and IPv6.
Signed-off-by: Michael Adam <obnox@samba.org>
(cherry picked from commit 0698e4d180)
			
			
This commit is contained in:
		
							parent
							
								
									79f34cd113
								
							
						
					
					
						commit
						bb5d6af78f
					
				
							
								
								
									
										12
									
								
								src/sock.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								src/sock.c
									
									
									
									
									
								
							@ -204,6 +204,18 @@ static int listen_on_one_socket(struct addrinfo *ad)
 | 
			
		||||
                return -1;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (ad->ai_family == AF_INET6) {
 | 
			
		||||
                ret = setsockopt(listenfd, IPPROTO_IPV6, IPV6_V6ONLY, &on,
 | 
			
		||||
                                 sizeof(on));
 | 
			
		||||
                if (ret != 0) {
 | 
			
		||||
                        log_message(LOG_ERR,
 | 
			
		||||
                                    "setsockopt failed to set IPV6_V6ONLY: %s",
 | 
			
		||||
                                    strerror(errno));
 | 
			
		||||
                        close(listenfd);
 | 
			
		||||
                        return -1;
 | 
			
		||||
                }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ret = bind(listenfd, ad->ai_addr, ad->ai_addrlen);
 | 
			
		||||
        if (ret != 0) {
 | 
			
		||||
               log_message(LOG_ERR, "bind failed: %s", strerror (errno));
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user