mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Minor code beautification in conninfo_uri_parse_params().
Reading this made me itch, so clean the logic a bit.
This commit is contained in:
parent
b26e208142
commit
3d9b6f31ee
@ -4934,36 +4934,30 @@ conninfo_uri_parse_params(char *params,
|
||||
{
|
||||
printfPQExpBuffer(errorMessage,
|
||||
libpq_gettext("extra key/value separator \"=\" in URI query parameter: \"%s\"\n"),
|
||||
params);
|
||||
keyword);
|
||||
return false;
|
||||
}
|
||||
/* Cut off keyword, advance to value */
|
||||
*p = '\0';
|
||||
value = ++p;
|
||||
*p++ = '\0';
|
||||
value = p;
|
||||
}
|
||||
else if (*p == '&' || *p == '\0')
|
||||
{
|
||||
char prevchar;
|
||||
|
||||
/* Cut off value, remember old value */
|
||||
prevchar = *p;
|
||||
*p = '\0';
|
||||
|
||||
/*
|
||||
* If not at the end, cut off value and advance; leave p
|
||||
* pointing to start of the next parameter, if any.
|
||||
*/
|
||||
if (*p != '\0')
|
||||
*p++ = '\0';
|
||||
/* Was there '=' at all? */
|
||||
if (value == NULL)
|
||||
{
|
||||
printfPQExpBuffer(errorMessage,
|
||||
libpq_gettext("missing key/value separator \"=\" in URI query parameter: \"%s\"\n"),
|
||||
params);
|
||||
keyword);
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* If not at the end, advance; now pointing to start of the
|
||||
* next parameter, if any.
|
||||
*/
|
||||
if (prevchar != '\0')
|
||||
++p;
|
||||
/* Got keyword and value, go process them. */
|
||||
break;
|
||||
}
|
||||
else
|
||||
@ -5007,24 +5001,12 @@ conninfo_uri_parse_params(char *params,
|
||||
if (!conninfo_storeval(connOptions, keyword, value,
|
||||
errorMessage, true, false))
|
||||
{
|
||||
/*
|
||||
* Check if there was a hard error when decoding or storing the
|
||||
* option.
|
||||
*/
|
||||
if (errorMessage->len != 0)
|
||||
{
|
||||
if (malloced)
|
||||
{
|
||||
free(keyword);
|
||||
free(value);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
printfPQExpBuffer(errorMessage,
|
||||
libpq_gettext(
|
||||
"invalid URI query parameter: \"%s\"\n"),
|
||||
keyword);
|
||||
/* Insert generic message if conninfo_storeval didn't give one. */
|
||||
if (errorMessage->len == 0)
|
||||
printfPQExpBuffer(errorMessage,
|
||||
libpq_gettext("invalid URI query parameter: \"%s\"\n"),
|
||||
keyword);
|
||||
/* And fail. */
|
||||
if (malloced)
|
||||
{
|
||||
free(keyword);
|
||||
@ -5032,13 +5014,14 @@ conninfo_uri_parse_params(char *params,
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (malloced)
|
||||
{
|
||||
free(keyword);
|
||||
free(value);
|
||||
}
|
||||
|
||||
/* Proceed to next key=value pair */
|
||||
/* Proceed to next key=value pair, if any */
|
||||
params = p;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user