static bool mongoc_uri_parse (mongoc_uri_t *uri, const char *str) { if (!mongoc_uri_parse_scheme(str, &str)) { return false; } if (!*str || !mongoc_uri_parse_userpass(uri, str, &str)) { return false; } if (!*str || !mongoc_uri_parse_hosts(uri, str, &str)) { return false; } switch (*str) { case '/': str++; if (*str && !mongoc_uri_parse_database(uri, str, &str)) { return false; } if (!*str) { break; } /* Fall through */ case '?': str++; if (*str && !mongoc_uri_parse_options(uri, str)) { return false; } break; default: break; } return mongoc_uri_finalize_auth(uri); }
static bson_bool_t mongoc_uri_parse (mongoc_uri_t *uri, const char *str) { if (!mongoc_uri_parse_scheme(str, &str)) { return FALSE; } if (!*str || !mongoc_uri_parse_userpass(uri, str, &str)) { return FALSE; } if (!*str || !mongoc_uri_parse_hosts(uri, str, &str)) { return FALSE; } switch (*str) { case '/': str++; if (*str && !mongoc_uri_parse_database(uri, str, &str)) { return FALSE; } if (!*str) { break; } /* Fall through */ case '?': str++; if (*str && !mongoc_uri_parse_options(uri, str)) { return FALSE; } break; default: break; } return TRUE; }