diff options
Diffstat (limited to 'hcid/agent.c')
| -rw-r--r-- | hcid/agent.c | 19 | 
1 files changed, 5 insertions, 14 deletions
| diff --git a/hcid/agent.c b/hcid/agent.c index 3b85ebd4..f560f8d8 100644 --- a/hcid/agent.c +++ b/hcid/agent.c @@ -129,12 +129,9 @@ static void agent_request_free(struct agent_request *req)  static void agent_exited(const char *name, struct agent *agent)  { -	struct adapter *adapter = agent->adapter; -  	debug("Agent %s exited without calling Unregister", name);  	agent_destroy(agent, TRUE); -	adapter->agent = NULL;  }  static void agent_free(struct agent *agent) @@ -142,6 +139,9 @@ static void agent_free(struct agent *agent)  	if (!agent)  		return; +	if (agent->remove_cb) +		agent->remove_cb(agent, agent->remove_cb_data); +  	if (agent->request) {  		DBusError err; @@ -189,9 +189,6 @@ static gboolean agent_timeout(struct agent *agent)  	agent->timeout = 0; -	if (agent->remove_cb) -		agent->remove_cb(agent, agent->remove_cb_data); -  	agent_free(agent);  	return FALSE; @@ -331,11 +328,8 @@ done:  	agent->request = NULL;  	agent_request_free(req); -	if (agent->addr) { -		if (agent->remove_cb) -			agent->remove_cb(agent, agent->remove_cb_data); +	if (agent->addr)  		agent_free(agent); -	}  }  int agent_authorize(struct agent *agent, @@ -454,11 +448,8 @@ done:  	dbus_pending_call_cancel(req->call);  	agent_request_free(req); -	if (agent->addr) { -		if (agent->remove_cb) -			agent->remove_cb(agent, agent->remove_cb_data); +	if (agent->addr)  		agent_free(agent); -	}  }  int agent_request_passkey(struct agent *agent, struct device *device, | 
