Subversion Repositories HelenOS

Rev

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
}