Hi Axel,

I'm not entirely sure what's going wrong there (maybe quote the ipv6 address?), but you want to retain the various independent command-line options you should instantiate endpoints directly rather than constructing an endpoint string (the endpoint string is useful to expose directly as a CLI parameter).

I.e., you can construct SSL4ServerEndpoint directly. Oddly SSL6ServerEndpoint doesn't exist, though, and I don't see a generic server wrapper like wrapClientTLS for the server site. I'm afraid I may have led you down the wrong path --- I didn't realize this was missing.

---Tom

On Sun, Mar 31, 2019, at 8:34 AM, Axel Rau wrote:
Hi Tom,

thanks for the explanation.  After adding some brackets, your example code works like a charm.


Using your pointers, I tried the next step: TLS.

This variant of the makeService method:

ipv4_endpoint = endpoints.serverFromString(
reactor, 'ssl:{}:privateKey={}:certKey={}:interface={}'.format(
options['port'],
endpoints.quoteStringArgument(options['cert_path']),
endpoints.quoteStringArgument(options['key_path']),
options['ipv4_address']))

ipv6_endpoint = endpoints.serverFromString(
reactor, 'ssl:{}:privateKey={}:certKey={}:interface={}'.format(
options['port'],
endpoints.quoteStringArgument(options['cert_path']),
endpoints.quoteStringArgument(options['key_path']),
options['ipv6_address']))

ipv4 = internet.StreamServerEndpointService(ipv4_endpoint, meteo_factory)
ipv6 = internet.StreamServerEndpointService(ipv6_endpoint, meteo_factory)

root = MultiService()
ipv4.setServiceParent(root)
ipv6.setServiceParent(root)

does not work. It fails with:
_parseSSL() got multiple values for argument ‚interface'
same with private privateKey and certKey.

What did I wrong this time?

Thanks, Axel
---
PGP-Key:29E99DD6  ☀  computing @ chaos claudius

_______________________________________________
Twisted-web mailing list
Twisted-web@twistedmatrix.com
https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web