KCP: discard useless conn in Accept

This commit is contained in:
Shelikhoo
2016-06-13 06:16:44 +08:00
parent f4ff2e9366
commit f601962391
2 changed files with 8 additions and 1 deletions
+7
View File
@@ -19,6 +19,12 @@ type KCPVlistener struct {
previousSocketid_mapid int
}
/*Accept Accept a KCP connection
Since KCP is stateless, if package deliver after it was closed,
It could be reconized as a new connection and call accept.
If we can detect that the connection is of such a kind,
we will discard that conn.
*/
func (kvl *KCPVlistener) Accept() (net.Conn, error) {
conn, err := kvl.lst.Accept()
if err != nil {
@@ -37,6 +43,7 @@ func (kvl *KCPVlistener) Accept() (net.Conn, error) {
}
}
if badbit {
conn.Close()
return nil, errors.New("KCP:ConnDup, Don't worry~")
} else {
kvl.previousSocketid_mapid++
+1 -1
View File
@@ -92,7 +92,7 @@ func (this *TCPHub) start() {
if err != nil {
if this.accepting {
log.Warning("Listener: Failed to accept new TCP connection: ", err)
log.info("Listener: Failed to accept new TCP connection: ", err)
}
continue
}