1010import io .netty .handler .logging .LogLevel ;
1111import io .netty .handler .logging .LoggingHandler ;
1212import io .netty .util .concurrent .*;
13+ import java .net .InetAddress ;
1314import java .net .InetSocketAddress ;
1415import java .net .SocketAddress ;
1516import java .util .concurrent .CompletableFuture ;
@@ -23,16 +24,18 @@ class NettyHomekitHttpService {
2324
2425 private static final Logger logger = LoggerFactory .getLogger (NettyHomekitHttpService .class );
2526 private final ChannelGroup allChannels = new DefaultChannelGroup (GlobalEventExecutor .INSTANCE );
27+ private final InetAddress localAddress ;
2628 private final int port ;
2729 private final int nThreads ;
2830
29- public static NettyHomekitHttpService create (int port , int nThreads ) {
30- return new NettyHomekitHttpService (port , nThreads );
31+ public static NettyHomekitHttpService create (InetAddress localAddress , int port , int nThreads ) {
32+ return new NettyHomekitHttpService (localAddress , port , nThreads );
3133 }
3234
33- private NettyHomekitHttpService (int port , int nThreads ) {
35+ private NettyHomekitHttpService (InetAddress localAddress , int port , int nThreads ) {
3436 bossGroup = new NioEventLoopGroup ();
3537 workerGroup = new NioEventLoopGroup ();
38+ this .localAddress = localAddress ;
3639 this .port = port ;
3740 this .nThreads = nThreads ;
3841 }
@@ -46,7 +49,7 @@ public CompletableFuture<Integer> create(HomekitClientConnectionFactory connecti
4649 .childHandler (new ServerInitializer (connectionFactory , allChannels , nThreads ))
4750 .option (ChannelOption .SO_BACKLOG , 128 )
4851 .childOption (ChannelOption .SO_KEEPALIVE , true );
49- final ChannelFuture bindFuture = b .bind (port );
52+ final ChannelFuture bindFuture = b .bind (localAddress , port );
5053 bindFuture .addListener (
5154 new GenericFutureListener <Future <? super Void >>() {
5255
0 commit comments