Skip to content
  1. Jan 29, 2021
  2. Jan 28, 2021
  3. Jan 27, 2021
    • Rosen Penev's avatar
      Merge pull request #14592 from dobo90/socat_improvement · ebba9752
      Rosen Penev authored
      socat: allow more complex command line options
      ebba9752
    • Dobroslaw Kijowski's avatar
      socat: allow more complex command line options · 218b7521
      Dobroslaw Kijowski authored
      
      
      Current implementation of socat's init service doesn't allow to run more
      complex configurations. As an example there's no possibility to execute
      following command:
      
        socat TCP-LISTEN:8080,fork,reuseaddr,bind=192.168.1.1 \
          EXEC:"/sbin/ip netns exec somenetns socat STDIO TCP:10.0.0.1:80"
      
      In such command the first line is argv[1] and the second line is
      argv[2]. SocatOptions config option is a string. As as a consequence of
      this each word will be passed as a separate argv element. Socat won't be
      able to parse arguments correctly.
      
      In order to mitigate this issue, we can also accept SocatOptions as a
      list of strings. Following config file will work correctly:
      
      config socat 'tunnel_8080_into_somenetns'
      	option enable '1'
      	list SocatOptions 'TCP-LISTEN:8080,fork,reuseaddr,bind=192.168.1.1'
      	list SocatOptions 'EXEC:"/sbin/ip netns exec somenetns socat STDIO TCP:10.0.0.1:80"'
      
      While we're at it, pass stdout and stderr into logread.
      
      Signed-off-by: default avatarDobroslaw Kijowski <dobo90@gmail.com>
      218b7521