THRIFT-2791 Allowing use of buffered sockets in go server
Client: Go
Patch: Craig Peterson

This closes #249
diff --git a/lib/go/thrift/server_socket.go b/lib/go/thrift/server_socket.go
index 4c80714..936eb2e 100644
--- a/lib/go/thrift/server_socket.go
+++ b/lib/go/thrift/server_socket.go
@@ -33,6 +33,10 @@
 	// Protects the interrupted value to make it thread safe.
 	mu          sync.RWMutex
 	interrupted bool
+
+	//Size of buffer to use for socket. Defaults to 1024.
+	//Set to 0 to disable bufferring server transport altogether.
+	BufferSize int
 }
 
 func NewTServerSocket(listenAddr string) (*TServerSocket, error) {
@@ -44,7 +48,7 @@
 	if err != nil {
 		return nil, err
 	}
-	return &TServerSocket{addr: addr, clientTimeout: clientTimeout}, nil
+	return &TServerSocket{addr: addr, clientTimeout: clientTimeout, BufferSize: 1024}, nil
 }
 
 func (p *TServerSocket) Listen() error {
@@ -74,7 +78,12 @@
 	if err != nil {
 		return nil, NewTTransportExceptionFromError(err)
 	}
-	return NewTSocketFromConnTimeout(conn, p.clientTimeout), nil
+	var trans TTransport
+	trans = NewTSocketFromConnTimeout(conn, p.clientTimeout)
+	if p.BufferSize != 0 {
+		trans = NewTBufferedTransport(trans, p.BufferSize)
+	}
+	return trans, nil
 }
 
 // Checks whether the socket is listening.