diff options
Diffstat (limited to 'rpc/rpc-lib/src/rpcsvc.c')
| -rw-r--r-- | rpc/rpc-lib/src/rpcsvc.c | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/rpc/rpc-lib/src/rpcsvc.c b/rpc/rpc-lib/src/rpcsvc.c index b78b1f0e2c9..e14313fe74f 100644 --- a/rpc/rpc-lib/src/rpcsvc.c +++ b/rpc/rpc-lib/src/rpcsvc.c @@ -1066,6 +1066,7 @@ rpcsvc_notify (rpc_transport_t *trans, void *mydata,          rpc_transport_pollin_t *msg       = NULL;          rpc_transport_t        *new_trans = NULL;          rpcsvc_t               *svc       = NULL; +        rpcsvc_listener_t      *listener  = NULL;          svc = mydata;          if (svc == NULL) { @@ -1101,7 +1102,13 @@ rpcsvc_notify (rpc_transport_t *trans, void *mydata,                  break;          case RPC_TRANSPORT_CLEANUP: -                /* FIXME: think about this later */ +                listener = rpcsvc_get_listener (svc, -1, trans); +                if (listener == NULL) { +                        goto out; +                } + +                rpcsvc_program_notify (listener, RPCSVC_EVENT_TRANSPORT_DESTROY, +                                       trans);                  ret = 0;                  break;  | 
