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 >
