diff --git a/main.go b/main.go index 01d6f61..5e982dd 100644 --- a/main.go +++ b/main.go @@ -37,11 +37,12 @@ func writeError(c net.Conn, msg string) { func printGophermap(c net.Conn, dir string) { file, err := os.Open(dir + "/Gophermap") if err != nil { - log.Fatal(err) + writeError(c, err.Error()) + log.Println(err) } defer func() { if err = file.Close(); err != nil { - log.Fatal(err) + log.Println(err) } }() @@ -56,11 +57,12 @@ func printGophermap(c net.Conn, dir string) { func printFile(c net.Conn, path string) { file, err := os.Open(path) if err != nil { - log.Fatal(err) + writeError(c, err.Error()) + log.Println(err) } defer func() { if err = file.Close(); err != nil { - log.Fatal(err) + log.Println(err) } }() @@ -72,7 +74,7 @@ func printFile(c net.Conn, path string) { readSz, err := file.Read(b) if err != nil { if err != io.EOF { - log.Fatal(err) + log.Println(err) } break } @@ -84,7 +86,7 @@ func printFile(c net.Conn, path string) { func connHandle(c net.Conn) { data, err := bufio.NewReader(c).ReadString('\n') if err != nil { - log.Fatal(err) + log.Println(err) return } @@ -97,7 +99,11 @@ func connHandle(c net.Conn) { } else if selector[0] == '/' { info, err := os.Stat(selector[1:]) if err != nil { - log.Fatal(err) + writeError(c, err.Error()) + log.Println(err) + + c.Close() + return } if info.IsDir() { @@ -128,7 +134,7 @@ func main() { for { c, err := l.Accept() if err != nil { - log.Fatal(err) + log.Println(err) return }