mirror of git://git.sysmocom.de/ofono
stk: Fix User Cancel response to Set Up Call
One of the clean-up commits changed the semantics of the dial request callback's parameter (NULL if call setup failed, non-NULL if success or user cancelled).
This commit is contained in:
parent
c47b365870
commit
52161db428
|
@ -1412,7 +1412,7 @@ static void call_setup_connected(struct ofono_call *call, void *data)
|
|||
static struct ofono_error error = { .type = OFONO_ERROR_TYPE_FAILURE };
|
||||
static unsigned char facility_rejected_result[] = { 0x9d };
|
||||
|
||||
if (!call) {
|
||||
if (!call || call->status == CALL_STATUS_DISCONNECTED) {
|
||||
memset(&rsp, 0, sizeof(rsp));
|
||||
|
||||
rsp.result.type = STK_RESULT_TYPE_NETWORK_UNAVAILABLE;
|
||||
|
|
|
@ -331,6 +331,16 @@ static DBusMessage *voicecall_deflect(DBusConnection *conn,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static void dial_request_user_cancel(struct ofono_voicecall *vc,
|
||||
struct voicecall *call)
|
||||
{
|
||||
if (!vc->dial_req)
|
||||
return;
|
||||
|
||||
if (!call || call == vc->dial_req->call)
|
||||
dial_request_finish(vc->dial_req->call->vc, TRUE);
|
||||
}
|
||||
|
||||
static DBusMessage *voicecall_hangup(DBusConnection *conn,
|
||||
DBusMessage *msg, void *data)
|
||||
{
|
||||
|
@ -342,6 +352,8 @@ static DBusMessage *voicecall_hangup(DBusConnection *conn,
|
|||
if (vc->pending)
|
||||
return __ofono_error_busy(msg);
|
||||
|
||||
dial_request_user_cancel(vc, v);
|
||||
|
||||
switch (call->status) {
|
||||
case CALL_STATUS_DISCONNECTED:
|
||||
return __ofono_error_failed(msg);
|
||||
|
@ -1253,6 +1265,8 @@ static DBusMessage *manager_hangup_all(DBusConnection *conn,
|
|||
} else
|
||||
vc->driver->hangup_all(vc, generic_callback, vc);
|
||||
|
||||
dial_request_user_cancel(vc, NULL);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue