void HttpSM::perform_cache_write_action() Called to do cache write, delete and updates based on s->cache_info.action. Does not setup cache read tunnels
| 6486 | // read tunnels |
| 6487 | // |
| 6488 | void |
| 6489 | HttpSM::perform_cache_write_action() |
| 6490 | { |
| 6491 | SMDbg(dbg_ctl_http, "%s", HttpDebugNames::get_cache_action_name(t_state.cache_info.action)); |
| 6492 | |
| 6493 | switch (t_state.cache_info.action) { |
| 6494 | case HttpTransact::CACHE_DO_NO_ACTION: |
| 6495 | |
| 6496 | { |
| 6497 | // Nothing to do |
| 6498 | cache_sm.end_both(); |
| 6499 | break; |
| 6500 | } |
| 6501 | |
| 6502 | case HttpTransact::CACHE_DO_SERVE: { |
| 6503 | cache_sm.abort_write(); |
| 6504 | break; |
| 6505 | } |
| 6506 | |
| 6507 | case HttpTransact::CACHE_DO_DELETE: { |
| 6508 | // Write close deletes the old alternate |
| 6509 | cache_sm.close_write(); |
| 6510 | cache_sm.close_read(); |
| 6511 | t_state.cache_info.write_lock_state = HttpTransact::CACHE_WL_INIT; |
| 6512 | break; |
| 6513 | } |
| 6514 | |
| 6515 | case HttpTransact::CACHE_DO_SERVE_AND_DELETE: { |
| 6516 | // FIX ME: need to set up delete for after cache write has |
| 6517 | // completed |
| 6518 | break; |
| 6519 | } |
| 6520 | |
| 6521 | case HttpTransact::CACHE_DO_SERVE_AND_UPDATE: { |
| 6522 | issue_cache_update(); |
| 6523 | break; |
| 6524 | } |
| 6525 | |
| 6526 | case HttpTransact::CACHE_DO_UPDATE: { |
| 6527 | cache_sm.close_read(); |
| 6528 | issue_cache_update(); |
| 6529 | break; |
| 6530 | } |
| 6531 | |
| 6532 | case HttpTransact::CACHE_DO_WRITE: |
| 6533 | case HttpTransact::CACHE_DO_REPLACE: |
| 6534 | // Fix need to set up delete for after cache write has |
| 6535 | // completed |
| 6536 | if (transform_info.entry == nullptr || t_state.api_info.cache_untransformed == true) { |
| 6537 | cache_sm.close_read(); |
| 6538 | t_state.cache_info.write_status = HttpTransact::CACHE_WRITE_IN_PROGRESS; |
| 6539 | setup_cache_write_transfer(&cache_sm, server_entry->vc, &t_state.cache_info.object_store, client_response_hdr_bytes, |
| 6540 | "cache write"); |
| 6541 | } else { |
| 6542 | // We are not caching the untransformed. We might want to |
| 6543 | // use the cache writevc to cache the transformed copy |
| 6544 | ink_assert(transform_cache_sm.cache_write_vc == nullptr); |
| 6545 | transform_cache_sm.cache_write_vc = cache_sm.cache_write_vc; |
nothing calls this directly
no test coverage detected