aboutsummaryrefslogtreecommitdiff
path: root/src/lib/daemon_options.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/daemon_options.c')
-rw-r--r--src/lib/daemon_options.c30
1 files changed, 28 insertions, 2 deletions
diff --git a/src/lib/daemon_options.c b/src/lib/daemon_options.c
index 576779e3..3adee960 100644
--- a/src/lib/daemon_options.c
+++ b/src/lib/daemon_options.c
@@ -698,14 +698,40 @@ MHD_daemon_digest_auth_random (struct MHD_Daemon *daemon,
698 * @param daemon daemon to configure 698 * @param daemon daemon to configure
699 * @param nc_length desired array length 699 * @param nc_length desired array length
700 */ 700 */
701void 701enum MHD_StatusCode
702MHD_daemon_digest_auth_nc_length (struct MHD_Daemon *daemon, 702MHD_daemon_digest_auth_nc_length (struct MHD_Daemon *daemon,
703 size_t nc_length) 703 size_t nc_length)
704{ 704{
705#if ENABLE_DAUTH 705#if ENABLE_DAUTH
706 if ( ( (size_t) (nc_length * sizeof (struct MHD_NonceNc))) /
707 sizeof (struct MHD_NonceNc) != nc_length)
708 {
709#ifdef HAVE_MESSAGES
710 MHD_DLOG (daemon,
711 _("Specified value for NC_SIZE too large\n"));
712#endif
713 return MHD_DIGEST_AUTH_NC_LENGTH_TOO_BIG;
714 }
715 if (0 < nc_length)
716 {
717 if (NULL != daemon->nnc)
718 free (daemon->nnc);
719 daemon->nnc = malloc (daemon->nonce_nc_size *
720 sizeof (struct MHD_NonceNc));
721 if (NULL == daemon->nnc)
722 {
723#ifdef HAVE_MESSAGES
724 MHD_DLOG (daemon,
725 _("Failed to allocate memory for nonce-nc map: %s\n"),
726 MHD_strerror_ (errno));
727#endif
728 return MHD_DIGEST_AUTH_NC_ALLOCATION_FAILURE;
729 }
730 }
706 daemon->digest_nc_length = nc_length; 731 daemon->digest_nc_length = nc_length;
732 return MHD_SC_OK;
707#else 733#else
708 MHD_PANIC ("digest authentication not supported by this build"); 734 return MHD_DIGEST_AUTH_NOT_SUPPORTED_BY_BUILD;
709#endif 735#endif
710} 736}
711 737