code: func newConnHdl(spec *ConnectionSpec) (hdl *connHdl) {
  	loginfo := "newConnHdl"
  
  	hdl = new(connHdl)
  	// REVU - this is silly
  	if hdl == nil {
  		panic(fmt.Errorf("%s(): failed to allocate connHdl", loginfo))
  	}
  
  	var mode, addr string
  	if spec.port == 0 { // REVU - no special values (it was a contrib) TODO add flag to connspec.
  		mode = UNIX
  		addr = spec.host
  	} else {
  		mode = TCP
  		addr = fmt.Sprintf("%s:%d", spec.host, spec.port)
  		_, e := net.ResolveTCPAddr(TCP, addr)
  		if e != nil {
  			panic(fmt.Errorf("%s(): failed to resolve remote address %s", loginfo, addr))
  		}
  	}
  
  	conn, e := net.Dial(mode, addr)
  	switch {
  	case e != nil:
  		panic(fmt.Errorf("%s(): could not open connection", loginfo))
  	case conn == nil:
  		panic(fmt.Errorf("%s(): net.Dial returned nil, nil (?)", loginfo))
  	default:
  		configureConn(conn, spec)
  		hdl.spec = spec
  		hdl.conn = conn
  		hdl.connected = true
  		bufsize := 4096
  		hdl.reader = bufio.NewReaderSize(conn, bufsize)
  	}
  	return
  }
docs: // Creates and opens a new connection to server per ConnectionSpec.
  // The new connection is wrapped by a new connHdl with its bufio.Reader
  // delegating to the net.Conn's reader.
  //
  // panics on error (with error)