Hi,

Any thoughts?

Thanks...

- Jean-Sebastien

On Wed, Aug 1, 2012 at 9:37 AM, Jean-Sebastien Delfino <[email protected]
> wrote:

> Hi all,
>
> I'm trying to use Thrift for cross-language invocations and need to bind
> my server to a specific host IP address instead of the wildcard address (as
> I have multiple ethernet interfaces on my box, but don't want to listen on
> all of them).
>
> TServerSocket.cpp is currently coded to bind to the wildcard address, like
> this:
> // Wildcard address
> error = getaddrinfo(NULL, port, &hints, &res0);
>
> I'm thinking about adding a host parameter to TServerSocket to
> *optionally* bind to a specific host address, and allow a server to be set
> up like this:
> int main(int argc, char **argv) {
>   const string host = "myserver.example.com";
>   int port = 9090;
>   shared_ptr handler(new UserStorageHandler());
>   shared_ptr processor(new UserStorageProcessor(handler));
>   // You can now specifying both host and port
>   shared_ptr serverTransport(new TServerSocket(host, port));
>   shared_ptr transportFactory(new TBufferedTransportFactory());
>   shared_ptr protocolFactory(new TBinaryProtocolFactory());
>   TSimpleServer server(processor, serverTransport, transportFactory,
> protocolFactory);
>   server.serve();
>   return 0;
> }
>
> I've pushed a strawman change to a Github branch [1] to show what it'd
> look like, and have a few questions:
>
> - Does that look like a reasonable addition?
>
> - Which test cases should I adapt to use that new parameter? or should I
> add new separate test cases for this?
>
> - I'd have to make similar changes to TSSLServerSocket and
> TNonblockingServer too I guess (as that server socket setup code seems
> duplicated in a few places), then later on add an option to the Thrift code
> generator to configure the host in generated server skeletons, right? Can
> you think of any other adjustments I'd have to make?
>
> Thanks!
>
> [1]
> https://github.com/jsdelfino/thrift/commit/35ece91f0cba9b875b036c473e0566e9b40fa8eb
>
> - Jean-Sebastien
>

Reply via email to