| 1180 | |
| 1181 | |
| 1182 | void set_final_timer( /* struct s_table *h_table, */ struct cell *t ) |
| 1183 | { |
| 1184 | if ( !is_local(t) && t->uas.request->REQ_METHOD==METHOD_INVITE ) { |
| 1185 | /* crank timers for negative replies */ |
| 1186 | if (t->uas.status>=300) { |
| 1187 | start_retr(&t->uas.response); |
| 1188 | return; |
| 1189 | } |
| 1190 | /* local UAS retransmits too */ |
| 1191 | if (t->relaied_reply_branch==-2 && t->uas.status>=200) { |
| 1192 | /* we retransmit 200/INVs regardless of transport -- |
| 1193 | even if TCP used, UDP could be used upstream and |
| 1194 | loose the 200, which is not retransmitted by proxies |
| 1195 | */ |
| 1196 | force_retr( &t->uas.response ); |
| 1197 | return; |
| 1198 | } |
| 1199 | } |
| 1200 | put_on_wait(t); |
| 1201 | } |
| 1202 | |
| 1203 | void cleanup_uac_timers( struct cell *t ) |
| 1204 | { |
no test coverage detected