[Twisted-web] Listening on 2 addresses

Tom Most twm at freecog.net
Mon Apr 1 21:25:55 MDT 2019


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
> Twisted-web at twistedmatrix.com
> https://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-web
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-web/attachments/20190401/a496f744/attachment.html>


More information about the Twisted-web mailing list