// In case this is for a CLOSED connection, ignore the packet.
// TODO: make it so incoming packets can never match a CLOSED connection.
- if(c->state == CLOSED)
+ if(c->state == CLOSED) {
+ debug("Got packet for closed connection\n");
return 0;
+ }
// It is for an existing connection.
}
int utcp_close(struct utcp_connection *c) {
- if(utcp_shutdown(c, SHUT_RDWR))
+ if(utcp_shutdown(c, SHUT_RDWR) && errno != ENOTCONN)
return -1;
c->recv = NULL;
c->poll = NULL;