r4592 - trunk/varnish-cache/bin/varnishd
phk at projects.linpro.no
phk at projects.linpro.no
Fri Feb 26 13:17:31 CET 2010
Author: phk
Date: 2010-02-26 13:17:31 +0100 (Fri, 26 Feb 2010)
New Revision: 4592
Modified:
trunk/varnish-cache/bin/varnishd/mgt_cli.c
Log:
Use the library function to check the authentication response.
Modified: trunk/varnish-cache/bin/varnishd/mgt_cli.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/mgt_cli.c 2010-02-26 12:12:00 UTC (rev 4591)
+++ trunk/varnish-cache/bin/varnishd/mgt_cli.c 2010-02-26 12:17:31 UTC (rev 4592)
@@ -55,7 +55,6 @@
#include "cli_common.h"
#include "cli_serve.h"
#include "vev.h"
-#include "vsha256.h"
#include "shmlog.h"
#include "vlu.h"
#include "vss.h"
@@ -289,10 +288,8 @@
static void
mcf_auth(struct cli *cli, const char *const *av, void *priv)
{
- char buf[1025];
- int i, fd;
- struct SHA256Context sha256ctx;
- unsigned char digest[SHA256_LEN];
+ int fd;
+ char buf[CLI_AUTH_RESPONSE_LEN];
AN(av[2]);
(void)priv;
@@ -304,33 +301,8 @@
cli_result(cli, CLIS_CANT);
return;
}
- i = read(fd, buf, sizeof buf);
- if (i == 0) {
- cli_out(cli, "Empty secret file");
- cli_result(cli, CLIS_CANT);
- return;
- }
- if (i < 0) {
- cli_out(cli, "Read error on secret file (%s)\n",
- strerror(errno));
- cli_result(cli, CLIS_CANT);
- return;
- }
- if (i == sizeof buf) {
- cli_out(cli, "Secret file too long (> %d)\n",
- sizeof buf - 1);
- cli_result(cli, CLIS_CANT);
- return;
- }
- buf[i] = '\0';
+ CLI_response(fd, cli->challenge, buf);
AZ(close(fd));
- SHA256_Init(&sha256ctx);
- SHA256_Update(&sha256ctx, cli->challenge, strlen(cli->challenge));
- SHA256_Update(&sha256ctx, buf, i);
- SHA256_Update(&sha256ctx, cli->challenge, strlen(cli->challenge));
- SHA256_Final(digest, &sha256ctx);
- for (i = 0; i < SHA256_LEN; i++)
- sprintf(buf + i + i, "%02x", digest[i]);
if (strcasecmp(buf, av[2])) {
mgt_cli_challenge(cli);
return;
More information about the varnish-commit
mailing list