Skip to content

Commit e3cd4fd

Browse files
ogbrugge-workrdementi
authored andcommitted
Change protocol to IPv6, this should work fine on Linux dual stack systems
1 parent 3b17a62 commit e3cd4fd

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/pcm-sensor-server.cpp

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1301,10 +1301,10 @@ class Server {
13011301
SignalHandler* shi = SignalHandler::getInstance();
13021302
shi->setSocket( serverSocket_ );
13031303
shi->ignoreSignal( SIGPIPE ); // Sorry Dennis Ritchie, we do not care about this, we always check return codes
1304-
#ifndef UNIT_TEST // libFuzzer installs own signal handlers
1304+
#ifndef UNIT_TEST // libFuzzer installs own signal handlers
13051305
shi->installHandler( SignalHandler::handleSignal, SIGTERM );
13061306
shi->installHandler( SignalHandler::handleSignal, SIGINT );
1307-
#endif
1307+
#endif
13081308
}
13091309
Server( Server const & ) = delete;
13101310
Server & operator = ( Server const & ) = delete;
@@ -1320,26 +1320,26 @@ class Server {
13201320
if ( port_ == 0 )
13211321
throw std::runtime_error( "Server Constructor: No port specified." );
13221322

1323-
int sockfd = ::socket( AF_INET, SOCK_STREAM, 0 );
1323+
int sockfd = ::socket( AF_INET6, SOCK_STREAM, 0 );
13241324
if ( -1 == sockfd )
13251325
throw std::runtime_error( "Server Constructor: Can´t create socket" );
13261326

13271327
int retval = 0;
13281328

1329-
struct sockaddr_in serv;
1330-
serv.sin_family = AF_INET;
1331-
serv.sin_port = htons( port_ );
1329+
struct sockaddr_in6 serv;
1330+
serv.sin6_family = AF_INET6;
1331+
serv.sin6_port = htons( port_ );
13321332
if ( listenIP_.empty() )
1333-
serv.sin_addr.s_addr = INADDR_ANY;
1333+
serv.sin6_addr = in6addr_any;
13341334
else {
1335-
if ( 1 != ::inet_pton( AF_INET, listenIP_.c_str(), &(serv.sin_addr) ) )
1335+
if ( 1 != ::inet_pton( AF_INET6, listenIP_.c_str(), &(serv.sin6_addr) ) )
13361336
{
13371337
DBG( 3, "close clientsocketFD" );
13381338
::close(sockfd);
13391339
throw std::runtime_error( "Server Constructor: Cannot convert IP string" );
13401340
}
13411341
}
1342-
socklen_t len = sizeof( struct sockaddr_in );
1342+
socklen_t len = sizeof( struct sockaddr_in6 );
13431343
retval = ::bind( sockfd, reinterpret_cast<struct sockaddr*>(&serv), len );
13441344
if ( 0 != retval ) {
13451345
DBG( 3, "close clientsocketFD" );

0 commit comments

Comments
 (0)