/*
GoVPN -- simple secure free software virtual private network daemon
-Copyright (C) 2014-2016 Sergey Matveev <stargrave@stargrave.org>
+Copyright (C) 2014-2019 Sergey Matveev <stargrave@stargrave.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+the Free Software Foundation, version 3 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
import (
"crypto/rand"
- "errors"
"io"
"net"
)
var (
- Rand io.Reader = rand.Reader
+ Rand = rand.Reader
)
type EGDRand string
if err != nil {
return 0, err
}
+ defer conn.Close()
conn.Write([]byte{0x02, byte(len(b))})
- read, err := conn.Read(b)
- if err != nil {
- conn.Close()
- return read, err
- }
- if read != len(b) {
- conn.Close()
- return read, errors.New("Got less bytes than expected from EGD")
- }
- conn.Close()
- return read, nil
+ return io.ReadFull(conn, b)
}
func EGDInit(path string) {