Skip to content

Commit 62e9c8e

Browse files
committed
Revert new libmicrohttpd authentication function changes
1 parent 8b90995 commit 62e9c8e

1 file changed

Lines changed: 25 additions & 35 deletions

File tree

src/webu_ans.cpp

Lines changed: 25 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ mhdrslt cls_webu_ans::mhd_digest_fail(int signal_stale)
469469
/* Perform digest authentication */
470470
mhdrslt cls_webu_ans::mhd_digest()
471471
{
472-
enum MHD_DigestAuthResult retcd;
472+
int retcd;
473473
char *username;
474474
std::string chkuser;
475475

@@ -483,44 +483,34 @@ mhdrslt cls_webu_ans::mhd_digest()
483483
if (chkuser == "") {
484484
return mhd_digest_fail(MHD_NO);
485485
} else if (auth_admin_name == chkuser) {
486-
retcd = MHD_digest_auth_check3(connection
486+
retcd = MHD_digest_auth_check(connection
487487
, auth_realm
488488
, auth_admin_name.c_str()
489489
, auth_admin_pass.c_str()
490-
, 0, 0
491-
, MHD_DIGEST_AUTH_MULT_QOP_AUTH
492-
, MHD_DIGEST_AUTH_MULT_ALGO3_ANY);
490+
, 300);
493491
is_admin = true;
494492
} else if (auth_user_name == chkuser) {
495-
retcd = MHD_digest_auth_check3(connection
493+
retcd = MHD_digest_auth_check(connection
496494
, auth_realm
497495
, auth_user_name.c_str()
498496
, auth_user_pass.c_str()
499-
, 0, 0
500-
, MHD_DIGEST_AUTH_MULT_QOP_AUTH
501-
, MHD_DIGEST_AUTH_MULT_ALGO3_ANY);
497+
, 300);
502498
is_admin = false;
503499
} else {
504500
failauth_log(true);
505501
return mhd_digest_fail(MHD_NO);
506502
}
507503

508-
if (retcd == MHD_DAUTH_OK) {
509-
authenticated = true;
510-
return MHD_YES;
511-
} else if (retcd == MHD_DAUTH_WRONG_USERNAME) {
512-
failauth_log(true);
513-
return mhd_digest_fail(MHD_NO);
514-
} else if (retcd == MHD_DAUTH_RESPONSE_WRONG) {
504+
if (retcd == MHD_NO) {
515505
failauth_log(false);
516-
return mhd_digest_fail(MHD_NO);
517-
} else if ((retcd == MHD_DAUTH_NONCE_STALE) ||
518-
(retcd == MHD_DAUTH_NONCE_OTHER_COND) ||
519-
(retcd == MHD_DAUTH_NONCE_WRONG)) {
520-
return mhd_digest_fail(MHD_INVALID_NONCE);
521-
} else {
522-
return mhd_digest_fail(MHD_NO);
523506
}
507+
508+
if ( (retcd == MHD_INVALID_NONCE) || (retcd == MHD_NO) ) {
509+
return mhd_digest_fail(retcd);
510+
}
511+
512+
authenticated = true;
513+
return MHD_YES;
524514
}
525515

526516
/* Create a authorization denied response to user*/
@@ -555,20 +545,21 @@ mhdrslt cls_webu_ans::mhd_basic_fail()
555545
/* Perform Basic Authentication. */
556546
mhdrslt cls_webu_ans::mhd_basic()
557547
{
558-
struct MHD_BasicAuthInfo *authinfo;
559548
std::string chkuser, chkpass;
560-
561-
authinfo = MHD_basic_auth_get_username_password3(connection);
562-
if (authinfo == NULL) {
563-
return mhd_basic_fail();
564-
}
565-
chkuser = authinfo->username;
566-
chkpass = authinfo->password;
567-
MHD_free(authinfo);
568-
569-
if ((chkuser == "") || (chkpass == "")) {
549+
char *user, *pass;
550+
551+
user = NULL;
552+
pass = NULL;
553+
user = MHD_basic_auth_get_username_password (connection, &pass);
554+
if ((user == NULL) || (pass == NULL)) {
555+
myfree(user);
556+
myfree(pass);
570557
return mhd_basic_fail();
571558
}
559+
chkuser = user;
560+
chkpass = pass;
561+
myfree(user);
562+
myfree(pass);
572563

573564
if ((chkuser == auth_admin_name) &&
574565
(chkpass == auth_admin_pass)) {
@@ -589,7 +580,6 @@ mhdrslt cls_webu_ans::mhd_basic()
589580
}
590581
return mhd_basic_fail();
591582
}
592-
593583
}
594584

595585
/* Parse apart the user:pass provided*/

0 commit comments

Comments
 (0)