diff --git a/src/auth.cc b/src/auth.cc index 747a6f4..77c6e47 100644 --- a/src/auth.cc +++ b/src/auth.cc @@ -405,7 +405,7 @@ static void Auth_realm_delete(AuthRealm_t *realm) dFree(realm->nonce); dFree(realm->opaque); dFree(realm->domain); - dFree(realm); + delete realm; } static int Auth_realm_includes_path(const AuthRealm_t *realm, const char *path) @@ -544,7 +544,7 @@ static void Auth_do_auth_dialog_cb(const char *user, const char *password, /* find or create the realm */ if (!(realm = Auth_realm_by_name(host, data->auth_parse->realm.value().c_str()))) { - realm = dNew0(AuthRealm_t, 1); + realm = std::make_unique< AuthRealm_t >().release(); realm->name = dStrdup(data->auth_parse->realm.value().c_str()); realm->paths = dList_new(1); dList_append(host->realms, realm); diff --git a/src/auth.hh b/src/auth.hh index e0c397b..3f5647f 100644 --- a/src/auth.hh +++ b/src/auth.hh @@ -6,7 +6,7 @@ enum AuthParseHTTPAuthType_t { TYPENOTSET, BASIC, DIGEST }; enum AuthParseDigestAlgorithm_t { ALGORITHMNOTSET, MD5, MD5SESS }; enum AuthParseDigestQOP_t { QOPNOTSET, AUTH, AUTHINT }; -typedef struct { +struct AuthRealm_t{ enum AuthParseHTTPAuthType_t type; char *name; Dlist *paths; /* stripped of any trailing '/', so the root path is "" */ @@ -21,7 +21,7 @@ typedef struct { enum AuthParseDigestAlgorithm_t algorithm; char *domain; /* NOT USED */ enum AuthParseDigestQOP_t qop; -} AuthRealm_t; +}; char *a_Auth_get_auth_str(const DilloUrl *url, const char *request_uri);