| 262 | } |
| 263 | |
| 264 | static void copy_path_without_query(const char *path, char *out, size_t outsz) { |
| 265 | if (!out || outsz == 0) { |
| 266 | return; |
| 267 | } |
| 268 | out[0] = '\0'; |
| 269 | if (!path) { |
| 270 | return; |
| 271 | } |
| 272 | size_t n = 0; |
| 273 | while (path[n] && path[n] != '?' && path[n] != '#' && n < outsz - 1) { |
| 274 | out[n] = path[n]; |
| 275 | n++; |
| 276 | } |
| 277 | out[n] = '\0'; |
| 278 | } |
| 279 | |
| 280 | void cbm_log_mcp_request(const char *method, const char *tool_name, bool is_error, |
| 281 | int64_t duration_us) { |
no outgoing calls
no test coverage detected