Rev 2677 | Rev 3020 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2677 | Rev 2745 | ||
---|---|---|---|
Line 162... | Line 162... | ||
162 | */ |
162 | */ |
163 | static inline int answer_preprocess(call_t *answer, ipc_data_t *olddata) |
163 | static inline int answer_preprocess(call_t *answer, ipc_data_t *olddata) |
164 | { |
164 | { |
165 | int phoneid; |
165 | int phoneid; |
166 | 166 | ||
167 | if (IPC_GET_RETVAL(answer->data) == EHANGUP) { |
167 | if ((native_t) IPC_GET_RETVAL(answer->data) == EHANGUP) { |
168 | /* In case of forward, hangup the forwared phone, |
168 | /* In case of forward, hangup the forwared phone, |
169 | * not the originator |
169 | * not the originator |
170 | */ |
170 | */ |
171 | spinlock_lock(&answer->data.phone->lock); |
171 | spinlock_lock(&answer->data.phone->lock); |
172 | spinlock_lock(&TASK->answerbox.lock); |
172 | spinlock_lock(&TASK->answerbox.lock); |
Line 352... | Line 352... | ||
352 | * |
352 | * |
353 | * @param call Call structure with the answer. |
353 | * @param call Call structure with the answer. |
354 | */ |
354 | */ |
355 | static void process_answer(call_t *call) |
355 | static void process_answer(call_t *call) |
356 | { |
356 | { |
357 | if (IPC_GET_RETVAL(call->data) == EHANGUP && |
357 | if (((native_t) IPC_GET_RETVAL(call->data) == EHANGUP) && |
358 | (call->flags & IPC_CALL_FORWARDED)) |
358 | (call->flags & IPC_CALL_FORWARDED)) |
359 | IPC_SET_RETVAL(call->data, EFORWARD); |
359 | IPC_SET_RETVAL(call->data, EFORWARD); |
360 | 360 | ||
361 | if (call->flags & IPC_CALL_CONN_ME_TO) { |
361 | if (call->flags & IPC_CALL_CONN_ME_TO) { |
362 | if (IPC_GET_RETVAL(call->data)) |
362 | if (IPC_GET_RETVAL(call->data)) |