Rev 1502 | Rev 1591 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1502 | Rev 1568 | ||
---|---|---|---|
Line 103... | Line 103... | ||
103 | /* In case of forward, hangup the forwared phone, |
103 | /* In case of forward, hangup the forwared phone, |
104 | * not the originator |
104 | * not the originator |
105 | */ |
105 | */ |
106 | spinlock_lock(&answer->data.phone->lock); |
106 | spinlock_lock(&answer->data.phone->lock); |
107 | spinlock_lock(&TASK->answerbox.lock); |
107 | spinlock_lock(&TASK->answerbox.lock); |
108 | if (answer->data.phone->callee) { |
108 | if (answer->data.phone->state == IPC_PHONE_CONNECTED) { |
109 | list_remove(&answer->data.phone->list); |
109 | list_remove(&answer->data.phone->list); |
110 | answer->data.phone->callee = 0; |
110 | answer->data.phone->state = IPC_PHONE_SLAMMED; |
111 | } |
111 | } |
112 | spinlock_unlock(&TASK->answerbox.lock); |
112 | spinlock_unlock(&TASK->answerbox.lock); |
113 | spinlock_unlock(&answer->data.phone->lock); |
113 | spinlock_unlock(&answer->data.phone->lock); |
114 | } |
114 | } |
115 | 115 | ||
Line 490... | Line 490... | ||
490 | { |
490 | { |
491 | phone_t *phone; |
491 | phone_t *phone; |
492 | 492 | ||
493 | GET_CHECK_PHONE(phone, phoneid, return ENOENT); |
493 | GET_CHECK_PHONE(phone, phoneid, return ENOENT); |
494 | 494 | ||
495 | if (ipc_phone_hangup(phone)) |
495 | if (ipc_phone_hangup(phone, 0)) |
496 | return -1; |
496 | return -1; |
497 | 497 | ||
498 | return 0; |
498 | return 0; |
499 | } |
499 | } |
500 | 500 |