1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-09-28 14:56:33 -04:00

KCP: discard useless conn in Accept

This commit is contained in:
Shelikhoo 2016-06-13 06:16:44 +08:00
parent f4ff2e9366
commit f601962391
No known key found for this signature in database
GPG Key ID: 7791BDB0709ABD21
2 changed files with 8 additions and 1 deletions

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++

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
}