MINOR: http: change url_decode to return the size of the decoded string.

Currently url_decode returns 1 or 0 depending on whether it could decode
the string or not. For some future use cases, it will be needed to get the
decoded string length after a successful decoding, so let's make it return
that value, and fall back to a negative one in case of error.
This commit is contained in:
Thierry FOURNIER 2013-10-04 16:27:27 +02:00 committed by Willy Tarreau
parent de6617b486
commit 5068d96ac1
2 changed files with 5 additions and 5 deletions

View File

@ -2861,7 +2861,7 @@ int http_process_req_stat_post(struct stream_interface *si, struct http_txn *txn
*value++ = '\0'; *value++ = '\0';
} }
if (!url_decode(key) || !url_decode(value)) if (url_decode(key) < 0 || url_decode(value) < 0)
break; break;
/* Now we can check the key to see what to do */ /* Now we can check the key to see what to do */

View File

@ -1047,13 +1047,13 @@ char *encode_string(char *start, char *stop,
/* Decode an URL-encoded string in-place. The resulting string might /* Decode an URL-encoded string in-place. The resulting string might
* be shorter. If some forbidden characters are found, the conversion is * be shorter. If some forbidden characters are found, the conversion is
* aborted, the string is truncated before the issue and non-zero is returned, * aborted, the string is truncated before the issue and a negative value is
* otherwise the operation returns non-zero indicating success. * returned, otherwise the operation returns the length of the decoded string.
*/ */
int url_decode(char *string) int url_decode(char *string)
{ {
char *in, *out; char *in, *out;
int ret = 0; int ret = -1;
in = string; in = string;
out = string; out = string;
@ -1074,7 +1074,7 @@ int url_decode(char *string)
} }
in++; in++;
} }
ret = 1; /* success */ ret = out - string; /* success */
end: end:
*out = 0; *out = 0;
return ret; return ret;