summaryrefslogtreecommitdiffstats
path: root/sys/netatm/atm_aal5.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netatm/atm_aal5.c')
-rw-r--r--sys/netatm/atm_aal5.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/sys/netatm/atm_aal5.c b/sys/netatm/atm_aal5.c
index f21ad798..a0534b7 100644
--- a/sys/netatm/atm_aal5.c
+++ b/sys/netatm/atm_aal5.c
@@ -88,6 +88,7 @@ static int atm_aal5_incoming(void *, Atm_connection *,
Atm_attributes *, void **);
static void atm_aal5_cpcs_data(void *, KBuffer *);
static caddr_t atm_aal5_getname(void *);
+static void atm_aal5_close(struct socket *);
/*
@@ -108,6 +109,7 @@ struct pr_usrreqs atm_aal5_usrreqs = {
.pru_sense = atm_aal5_sense,
.pru_shutdown = atm_aal5_shutdown,
.pru_sockaddr = atm_aal5_sockaddr,
+ .pru_close = atm_aal5_close,
};
/*
@@ -565,8 +567,19 @@ atm_aal5_abort(so)
{
ATM_INTRO_NOERR("abort");
+ (void)atm_sock_disconnect(so);
so->so_error = ECONNABORTED;
- atm_sock_detach(so);
+
+ ATM_OUTRO_NOERR();
+}
+
+static void
+atm_aal5_close(so)
+ struct socket *so;
+{
+ ATM_INTRO_NOERR("close");
+
+ (void)atm_sock_disconnect(so);
ATM_OUTRO_NOERR();
}
OpenPOWER on IntegriCloud