Revision 0559f745

b/lib/impexpd/__init__.py
79 79
SOCAT_TCP_OPTS = ["keepalive", "keepidle=60", "keepintvl=10", "keepcnt=5"]
80 80
SOCAT_OPENSSL_OPTS = ["verify=1", "cipher=HIGH", "method=TLSv1"]
81 81

  
82
SOCAT_OPTION_MAXLEN = 400
83

  
82 84
(PROG_OTHER,
83 85
 PROG_SOCAT,
84 86
 PROG_DD,
......
168 170

  
169 171
    for i in [addr1, addr2]:
170 172
      for value in i:
173
        if len(value) > SOCAT_OPTION_MAXLEN:
174
          raise errors.GenericError("Socat option longer than %s"
175
                                    " characters: %r" %
176
                                    (SOCAT_OPTION_MAXLEN, value))
171 177
        if "," in value:
172 178
          raise errors.GenericError("Comma not allowed in socat option"
173 179
                                    " value: %r" % value)
b/test/ganeti.impexpd_unittest.py
111 111
      builder = impexpd.CommandBuilder(mode, opts, 1, 2, 3)
112 112
      self.assertRaises(errors.GenericError, builder.GetCommand)
113 113

  
114
  def testOptionLengthError(self):
115
    testopts = [
116
      CmdBuilderConfig(bind="0.0.0.0" + ("A" * impexpd.SOCAT_OPTION_MAXLEN),
117
                       port=1234, ca="/tmp/ca"),
118
      CmdBuilderConfig(host="localhost", port=1234,
119
                       ca="/tmp/ca" + ("B" * impexpd.SOCAT_OPTION_MAXLEN)),
120
      CmdBuilderConfig(host="localhost", port=1234,
121
                       key="/tmp/key" + ("B" * impexpd.SOCAT_OPTION_MAXLEN)),
122
      ]
123

  
124
    for opts in testopts:
125
      for mode in [constants.IEM_IMPORT, constants.IEM_EXPORT]:
126
        builder = impexpd.CommandBuilder(mode, opts, 1, 2, 3)
127
        self.assertRaises(errors.GenericError, builder.GetCommand)
128

  
129
      opts.host = "localhost" + ("A" * impexpd.SOCAT_OPTION_MAXLEN)
130
      builder = impexpd.CommandBuilder(constants.IEM_EXPORT, opts, 1, 2, 3)
131
      self.assertRaises(errors.GenericError, builder.GetCommand)
132

  
114 133
  def testModeError(self):
115 134
    mode = "foobarbaz"
116 135

  

Also available in: Unified diff