Rev 3394 | Rev 3438 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3394 | Rev 3395 | ||
---|---|---|---|
Line 199... | Line 199... | ||
199 | answerbox_t *callerbox = call->callerbox; |
199 | answerbox_t *callerbox = call->callerbox; |
200 | 200 | ||
201 | call->flags |= IPC_CALL_ANSWERED; |
201 | call->flags |= IPC_CALL_ANSWERED; |
202 | 202 | ||
203 | if (call->flags & IPC_CALL_FORWARDED) { |
203 | if (call->flags & IPC_CALL_FORWARDED) { |
204 | if (call->data.caller_phone) { |
204 | if (call->caller_phone) { |
205 | /* Demasquerade the caller phone. */ |
205 | /* Demasquerade the caller phone. */ |
206 | call->data.phone = call->data.caller_phone; |
206 | call->data.phone = call->caller_phone; |
207 | } |
207 | } |
208 | } |
208 | } |
209 | 209 | ||
210 | spinlock_lock(&callerbox->lock); |
210 | spinlock_lock(&callerbox->lock); |
211 | list_append(&call->link, &callerbox->answers); |
211 | list_append(&call->link, &callerbox->answers); |
Line 358... | Line 358... | ||
358 | spinlock_lock(&oldbox->lock); |
358 | spinlock_lock(&oldbox->lock); |
359 | list_remove(&call->link); |
359 | list_remove(&call->link); |
360 | spinlock_unlock(&oldbox->lock); |
360 | spinlock_unlock(&oldbox->lock); |
361 | 361 | ||
362 | if (mode & IPC_FF_ROUTE_FROM_ME) { |
362 | if (mode & IPC_FF_ROUTE_FROM_ME) { |
363 | if (!call->data.caller_phone) |
363 | if (!call->caller_phone) |
364 | call->data.caller_phone = call->data.phone; |
364 | call->caller_phone = call->data.phone; |
365 | call->data.phone = newphone; |
365 | call->data.phone = newphone; |
366 | } |
366 | } |
367 | 367 | ||
368 | return ipc_call(newphone, call); |
368 | return ipc_call(newphone, call); |
369 | } |
369 | } |