digest: Use boolean based success code for Curl_sasl_digest_get_pair()
Rather than use a 0 and 1 integer base result code use a TRUE / FALSE based success code.
This commit is contained in:
		@@ -92,13 +92,8 @@ const struct {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if !defined(CURL_DISABLE_CRYPTO_AUTH)
 | 
			
		||||
/*
 | 
			
		||||
 * Returns 0 on success and then the buffers are filled in fine.
 | 
			
		||||
 *
 | 
			
		||||
 * Non-zero means failure to parse.
 | 
			
		||||
 */
 | 
			
		||||
int Curl_sasl_digest_get_pair(const char *str, char *value, char *content,
 | 
			
		||||
                              const char **endptr)
 | 
			
		||||
bool Curl_sasl_digest_get_pair(const char *str, char *value, char *content,
 | 
			
		||||
                               const char **endptr)
 | 
			
		||||
{
 | 
			
		||||
  int c;
 | 
			
		||||
  bool starts_with_quote = FALSE;
 | 
			
		||||
@@ -110,7 +105,7 @@ int Curl_sasl_digest_get_pair(const char *str, char *value, char *content,
 | 
			
		||||
 | 
			
		||||
  if('=' != *str++)
 | 
			
		||||
    /* eek, no match */
 | 
			
		||||
    return 1;
 | 
			
		||||
    return FALSE;
 | 
			
		||||
 | 
			
		||||
  if('\"' == *str) {
 | 
			
		||||
    /* this starts with a quote so it must end with one as well! */
 | 
			
		||||
@@ -129,6 +124,7 @@ int Curl_sasl_digest_get_pair(const char *str, char *value, char *content,
 | 
			
		||||
        continue;
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case ',':
 | 
			
		||||
      if(!starts_with_quote) {
 | 
			
		||||
        /* this signals the end of the content if we didn't get a starting
 | 
			
		||||
@@ -137,11 +133,13 @@ int Curl_sasl_digest_get_pair(const char *str, char *value, char *content,
 | 
			
		||||
        continue;
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
 | 
			
		||||
    case '\r':
 | 
			
		||||
    case '\n':
 | 
			
		||||
      /* end of string */
 | 
			
		||||
      c = 0;
 | 
			
		||||
      continue;
 | 
			
		||||
 | 
			
		||||
    case '\"':
 | 
			
		||||
      if(!escape && starts_with_quote) {
 | 
			
		||||
        /* end of string */
 | 
			
		||||
@@ -150,14 +148,15 @@ int Curl_sasl_digest_get_pair(const char *str, char *value, char *content,
 | 
			
		||||
      }
 | 
			
		||||
      break;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    escape = FALSE;
 | 
			
		||||
    *content++ = *str;
 | 
			
		||||
  }
 | 
			
		||||
  *content = 0;
 | 
			
		||||
 | 
			
		||||
  *content = 0;
 | 
			
		||||
  *endptr = str;
 | 
			
		||||
 | 
			
		||||
  return 0; /* all is fine! */
 | 
			
		||||
  return TRUE;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
@@ -780,7 +779,7 @@ CURLcode Curl_sasl_decode_digest_http_message(const char *chlg,
 | 
			
		||||
      chlg++;
 | 
			
		||||
 | 
			
		||||
    /* Extract a value=content pair */
 | 
			
		||||
    if(!Curl_sasl_digest_get_pair(chlg, value, content, &chlg)) {
 | 
			
		||||
    if(Curl_sasl_digest_get_pair(chlg, value, content, &chlg)) {
 | 
			
		||||
      if(Curl_raw_equal(value, "nonce")) {
 | 
			
		||||
        free(digest->nonce);
 | 
			
		||||
        digest->nonce = strdup(content);
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
 *                            | (__| |_| |  _ <| |___
 | 
			
		||||
 *                             \___|\___/|_| \_\_____|
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2012 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
 | 
			
		||||
 * Copyright (C) 2012 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
 | 
			
		||||
 *
 | 
			
		||||
 * This software is licensed as described in the file COPYING, which
 | 
			
		||||
 * you should have received as part of this distribution. The terms
 | 
			
		||||
@@ -149,8 +149,8 @@ char *Curl_sasl_build_gssapi_spn(const char *service, const char *instance);
 | 
			
		||||
 | 
			
		||||
#ifndef CURL_DISABLE_CRYPTO_AUTH
 | 
			
		||||
/* This is used to extract the realm from a challenge message */
 | 
			
		||||
int Curl_sasl_digest_get_pair(const char *str, char *value, char *content,
 | 
			
		||||
                              const char **endptr);
 | 
			
		||||
bool Curl_sasl_digest_get_pair(const char *str, char *value, char *content,
 | 
			
		||||
                               const char **endptr);
 | 
			
		||||
 | 
			
		||||
/* This is used to generate a base64 encoded DIGEST-MD5 response message */
 | 
			
		||||
CURLcode Curl_sasl_create_digest_md5_message(struct SessionHandle *data,
 | 
			
		||||
 
 | 
			
		||||
@@ -304,7 +304,7 @@ CURLcode Curl_override_sspi_http_realm(const char *chlg,
 | 
			
		||||
        chlg++;
 | 
			
		||||
 | 
			
		||||
      /* Extract a value=content pair */
 | 
			
		||||
      if(!Curl_sasl_digest_get_pair(chlg, value, content, &chlg)) {
 | 
			
		||||
      if(Curl_sasl_digest_get_pair(chlg, value, content, &chlg)) {
 | 
			
		||||
        if(Curl_raw_equal(value, "realm")) {
 | 
			
		||||
 | 
			
		||||
          /* Setup identity's domain and length */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user