| 313 | } |
| 314 | |
| 315 | static void copy_path_without_query(const char *path, char *out, size_t outsz) { |
| 316 | if (!out || outsz == 0) { |
| 317 | return; |
| 318 | } |
| 319 | out[0] = '\0'; |
| 320 | if (!path) { |
| 321 | return; |
| 322 | } |
| 323 | size_t n = 0; |
| 324 | while (path[n] && path[n] != '?' && path[n] != '#' && n < outsz - 1) { |
| 325 | out[n] = path[n]; |
| 326 | n++; |
| 327 | } |
| 328 | out[n] = '\0'; |
| 329 | } |
| 330 | |
| 331 | void cbm_log_mcp_request(const char *method, const char *tool_name, bool is_error, |
| 332 | int64_t duration_us) { |
no outgoing calls
no test coverage detected