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 <https://twistedmatrix.com/documents/current/api/twisted.internet.endpoints.SSL4ServerEndpoint.html> directly. Oddly SSL6ServerEndpoint doesn't exist, though, and I don't see a generic server wrapper like wrapClientTLS <https://twistedmatrix.com/documents/current/api/twisted.internet.endpoints.html#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. >> >> [1]: >> https://twistedmatrix.com/documents/current/api/twisted.application.service.MultiService.html >> [2]: >> https://twistedmatrix.com/documents/current/api/twisted.application.internet.StreamServerEndpointService.html >> [3]: >> https://twistedmatrix.com/documents/current/api/twisted.internet.endpoints.html#serverFromString > > 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 > [email protected] > https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web >
_______________________________________________ Twisted-web mailing list [email protected] https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
