package main

import (
	"bufio"
	"fmt"
	_ "log"
	"net"

	"v.io/x/ref/examples/grpc-fortune/vgrpc"
)

const (
	secure = true
)

func main() {
	ln, err := net.Listen("tcp", ":8080")
	if err != nil {
		// handle error
	}
	for {
		conn, err := ln.Accept()
		if err != nil {
			panic(err)
		}

		if secure {
			vcred := &vgrpc.VanadiumCred{}
			secureConn, _, _ := vcred.ServerHandshake(conn)
			conn = secureConn
		}

		status, err := bufio.NewReader(conn).ReadString('.')
		// log.Printf("Server received: %s\n", status)
		fmt.Fprintf(conn, "I heard: '%s'\n", status)

		status, err = bufio.NewReader(conn).ReadString('.')
		// log.Printf("Server received: %s\n", status)
		fmt.Fprintf(conn, "I heard: '%s'\n", status)
	}
}
