| 424 | } |
| 425 | |
| 426 | RecErrT |
| 427 | RecGetRecordString(const char *name, char *buf, int buf_len, bool lock) |
| 428 | { |
| 429 | RecErrT err = REC_ERR_OKAY; |
| 430 | |
| 431 | if (lock) { |
| 432 | ink_rwlock_rdlock(&g_records_rwlock); |
| 433 | } |
| 434 | if (auto it = g_records_ht.find(name); it != g_records_ht.end()) { |
| 435 | RecRecord *r = it->second; |
| 436 | |
| 437 | rec_mutex_acquire(&(r->lock)); |
| 438 | if (!r->registered || (r->data_type != RECD_STRING)) { |
| 439 | err = REC_ERR_FAIL; |
| 440 | } else { |
| 441 | if (r->data.rec_string == nullptr) { |
| 442 | buf[0] = '\0'; |
| 443 | } else { |
| 444 | ink_strlcpy(buf, r->data.rec_string, buf_len); |
| 445 | } |
| 446 | } |
| 447 | rec_mutex_release(&(r->lock)); |
| 448 | } else { |
| 449 | err = REC_ERR_FAIL; |
| 450 | } |
| 451 | if (lock) { |
| 452 | ink_rwlock_unlock(&g_records_rwlock); |
| 453 | } |
| 454 | return err; |
| 455 | } |
| 456 | |
| 457 | RecErrT |
| 458 | RecGetRecordString_Xmalloc(const char *name, RecString *rec_string, bool lock) |
no test coverage detected