| 206 | |
| 207 | |
| 208 | int dm_remove_unreplied_req(struct msg *req) |
| 209 | { |
| 210 | struct list_head *it, *aux; |
| 211 | struct fd_msg_list *rit; |
| 212 | |
| 213 | lock_get(&dm_unreplied_req_lk); |
| 214 | |
| 215 | list_for_each_safe (it, aux, &dm_unreplied_req) { |
| 216 | rit = list_entry(it, struct fd_msg_list, list); |
| 217 | |
| 218 | if (rit->req == req) { |
| 219 | list_del(&rit->list); |
| 220 | lock_release(&dm_unreplied_req_lk); |
| 221 | LM_DBG("matched unreplied req, removing from list\n"); |
| 222 | pkg_free(rit); |
| 223 | return 0; |
| 224 | } |
| 225 | } |
| 226 | |
| 227 | lock_release(&dm_unreplied_req_lk); |
| 228 | LM_DBG("failed to match unreplied req (already cleaned up?!)\n"); |
| 229 | return -1; |
| 230 | } |
| 231 | |
| 232 | |
| 233 | static int dm_acc_reply(struct msg ** msg, struct avp * avp, struct session * sess, void * data, enum disp_action * act) |
no test coverage detected