*/
| 121 | /* |
| 122 | */ |
| 123 | void put_on_wait( struct cell *Trans ) |
| 124 | { |
| 125 | |
| 126 | #ifdef EXTRA_DEBUG |
| 127 | LM_DBG("put on WAIT \n"); |
| 128 | #endif |
| 129 | |
| 130 | |
| 131 | /* we put the transaction on wait timer; we do it only once |
| 132 | in transaction's timelife because putting it multiple-times |
| 133 | might result in a second instance of a wait timer to be |
| 134 | set after the first one fired; on expiration of the second |
| 135 | instance, the transaction would be re-deleted |
| 136 | |
| 137 | PROCESS1 PROCESS2 TIMER PROCESS |
| 138 | 0. 200/INVITE rx; |
| 139 | put_on_wait |
| 140 | 1. 200/INVITE rx; |
| 141 | 2. WAIT fires; transaction |
| 142 | about to be deleted |
| 143 | 3. avoid putting |
| 144 | on WAIT again |
| 145 | 4. WAIT timer executed, |
| 146 | transaction deleted |
| 147 | */ |
| 148 | if (set_1timer( &Trans->wait_tl, WT_TIMER_LIST, 0 )==0) |
| 149 | stats_trans_code(Trans->uas.status); |
| 150 | } |
| 151 | |
| 152 | |
| 153 |
no test coverage detected