@@ -818,7 +818,12 @@ def test_address(node_factory):
818818
819819    # Now test UNIX domain binding 
820820    l1 .stop ()
821-     l1 .daemon .opts ['bind-addr' ] =  os .path .join (l1 .daemon .lightning_dir , TEST_NETWORK , "sock" )
821+     bind_addr  =  os .path .join (l1 .daemon .lightning_dir , TEST_NETWORK , "sock" )
822+     if  len (bind_addr ) >=  108  and  os .uname ()[0 ] ==  "Linux" :
823+         bind_addr  =  os .path .join ('/proc/self/cwd' ,
824+                 os .path .relpath (node_factory .directory , os .path .dirname (bind_addr )),
825+                 os .path .relpath (bind_addr , node_factory .directory ))
826+     l1 .daemon .opts ['bind-addr' ] =  bind_addr 
822827    l1 .start ()
823828
824829    # Test dev-allow-localhost 
@@ -874,12 +879,21 @@ def test_listconfigs_plugins(node_factory, bitcoind, chainparams):
874879    assert  [p ['active' ] for  p  in  plugins  if  p ['name' ].endswith ('offers' )] ==  [True ]
875880
876881
882+ def  connect_unix (socket_path : str ):
883+     sock  =  socket .socket (socket .AF_UNIX , socket .SOCK_STREAM )
884+     try :
885+         sock .connect (socket_path )
886+     except  OSError  as  err :
887+         if  err .args [0 ] ==  'AF_UNIX path too long'  and  os .uname ()[0 ] ==  'Linux' :
888+             sock .connect (os .path .join ('/proc/self/cwd' , os .path .relpath (socket_path )))
889+     return  sock 
890+ 
891+ 
877892def  test_multirpc (node_factory ):
878893    """Test that we can do multiple RPC without waiting for response""" 
879894    l1  =  node_factory .get_node ()
880895
881-     sock  =  socket .socket (socket .AF_UNIX , socket .SOCK_STREAM )
882-     sock .connect (l1 .rpc .socket_path )
896+     sock  =  connect_unix (l1 .rpc .socket_path )
883897
884898    commands  =  [
885899        b'{"id":1,"jsonrpc":"2.0","method":"listpeers","params":[]}' ,
@@ -905,8 +919,7 @@ def test_multiplexed_rpc(node_factory):
905919    """Test that we can do multiple RPCs which exit in different orders""" 
906920    l1  =  node_factory .get_node ()
907921
908-     sock  =  socket .socket (socket .AF_UNIX , socket .SOCK_STREAM )
909-     sock .connect (l1 .rpc .socket_path )
922+     sock  =  connect_unix (l1 .rpc .socket_path )
910923
911924    # Neighbouring ones may be in or out of order. 
912925    commands  =  [
@@ -936,8 +949,7 @@ def test_malformed_rpc(node_factory):
936949    """Test that we get a correct response to malformed RPC commands""" 
937950    l1  =  node_factory .get_node ()
938951
939-     sock  =  socket .socket (socket .AF_UNIX , socket .SOCK_STREAM )
940-     sock .connect (l1 .rpc .socket_path )
952+     sock  =  connect_unix (l1 .rpc .socket_path )
941953
942954    # No ID 
943955    sock .sendall (b'{"jsonrpc":"2.0","method":"getinfo","params":[]}' )
@@ -2023,8 +2035,7 @@ def test_check_command(node_factory):
20232035                     host = 'x' , port = "abcd" )
20242036
20252037    # FIXME: python wrapper doesn't let us test array params. 
2026-     sock  =  socket .socket (socket .AF_UNIX , socket .SOCK_STREAM )
2027-     sock .connect (l1 .rpc .socket_path )
2038+     sock  =  connect_unix (l1 .rpc .socket_path )
20282039
20292040    sock .sendall (b'{"id":1, "jsonrpc":"2.0","method":"check","params":["help"]}' )
20302041    obj , _  =  l1 .rpc ._readobj (sock , b'' )
0 commit comments