#include "bacula.h"
#include "filed.h"
+const int dbglvl = 3;
+
static char OK_hello[] = "2000 OK Hello\n";
static char Dir_sorry[] = "2999 No go\n";
static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
btimer_t *tid = NULL;
if (rcode != R_DIRECTOR) {
- Dmsg1(50, "I only authenticate directors, not %d\n", rcode);
+ Dmsg1(dbglvl, "I only authenticate directors, not %d\n", rcode);
Emsg1(M_FATAL, 0, _("I only authenticate directors, not %d\n"), rcode);
goto auth_fatal;
}
if (bs->msglen < 25 || bs->msglen > 500) {
- Dmsg2(50, "Bad Hello command from Director at %s. Len=%d.\n",
+ Dmsg2(dbglvl, "Bad Hello command from Director at %s. Len=%d.\n",
bs->who(), bs->msglen);
char addr[64];
char *who = bnet_get_peer(bs, addr, sizeof(addr)) ? bs->who() : addr;
char addr[64];
char *who = bnet_get_peer(bs, addr, sizeof(addr)) ? bs->who() : addr;
bs->msg[100] = 0;
- Dmsg2(50, "Bad Hello command from Director at %s: %s\n",
+ Dmsg2(dbglvl, "Bad Hello command from Director at %s: %s\n",
bs->who(), bs->msg);
Emsg2(M_FATAL, 0, _("Bad Hello command from Director at %s: %s\n"),
who, bs->msg);
if (!auth_success) {
char addr[64];
char *who = bnet_get_peer(bs, addr, sizeof(addr)) ? bs->who() : addr;
- Dmsg1(50, "cram_get_auth failed for %s\n", who);
+ Dmsg1(dbglvl, "cram_get_auth failed for %s\n", who);
}
} else {
char addr[64];
char *who = bnet_get_peer(bs, addr, sizeof(addr)) ? bs->who() : addr;
- Dmsg1(50, "cram_auth failed for %s\n", who);
+ Dmsg1(dbglvl, "cram_auth failed for %s\n", who);
}
if (!auth_success) {
Emsg1(M_FATAL, 0, _("Incorrect password given by Director at %s.\n"),
goto auth_fatal;
}
if (!auth_success) {
- Dmsg1(3, "cram_respond failed for %s\n", sd->who());
+ Dmsg1(dbglvl, "cram_respond failed for %s\n", sd->who());
} else {
/* Now challenge him */
auth_success = cram_md5_challenge(sd, jcr->sd_auth_key, tls_local_need, compatible);
if (!auth_success) {
- Dmsg1(3, "cram_challenge failed for %s\n", sd->who());
+ Dmsg1(dbglvl, "cram_challenge failed for %s\n", sd->who());
}
}
#include "bacula.h"
+const int dbglvl = 3;
+
/* Authorize other end
* Codes that tls_local_need and tls_remote_need can take:
* BNET_TLS_NONE I cannot do tls
/* Send challenge -- no hashing yet */
bsnprintf(chal, sizeof(chal), "<%u.%u@%s>", (uint32_t)random(), (uint32_t)time(NULL), host);
if (compatible) {
- Dmsg2(50, "send: auth cram-md5 %s ssl=%d\n", chal, tls_local_need);
+ Dmsg2(dbglvl, "send: auth cram-md5 %s ssl=%d\n", chal, tls_local_need);
if (!bs->fsend("auth cram-md5 %s ssl=%d\n", chal, tls_local_need)) {
- Dmsg1(50, "Bnet send challenge error.\n", bs->bstrerror());
+ Dmsg1(dbglvl, "Bnet send challenge error.\n", bs->bstrerror());
return false;
}
} else {
/* Old non-compatible system */
- Dmsg2(50, "send: auth cram-md5 %s ssl=%d\n", chal, tls_local_need);
+ Dmsg2(dbglvl, "send: auth cram-md5 %s ssl=%d\n", chal, tls_local_need);
if (!bs->fsend("auth cram-md5 %s ssl=%d\n", chal, tls_local_need)) {
- Dmsg1(50, "Bnet send challenge error.\n", bs->bstrerror());
+ Dmsg1(dbglvl, "Bnet send challenge error.\n", bs->bstrerror());
return false;
}
}
/* Read hashed response to challenge */
if (bs->wait_data(180) <= 0 || bs->recv() <= 0) {
- Dmsg1(50, "Bnet receive challenge response error.\n", bs->bstrerror());
+ Dmsg1(dbglvl, "Bnet receive challenge response error.\n", bs->bstrerror());
bmicrosleep(5, 0);
return false;
}
bin_to_base64(host, sizeof(host), (char *)hmac, 16, compatible);
ok = strcmp(bs->msg, host) == 0;
if (ok) {
- Dmsg1(50, "Authenticate OK %s\n", host);
+ Dmsg1(dbglvl, "Authenticate OK %s\n", host);
} else {
bin_to_base64(host, sizeof(host), (char *)hmac, 16, false);
ok = strcmp(bs->msg, host) == 0;
if (!ok) {
- Dmsg2(50, "Authenticate NOT OK: wanted %s, got %s\n", host, bs->msg);
+ Dmsg2(dbglvl, "Authenticate NOT OK: wanted %s, got %s\n", host, bs->msg);
}
}
if (ok) {
bs->fsend("1000 OK auth\n");
} else {
- Dmsg1(50, "Auth failed PW: %s\n", password);
+ Dmsg1(dbglvl, "Auth failed PW: %s\n", password);
bs->fsend(_("1999 Authorization failed.\n"));
bmicrosleep(5, 0);
}
return false;
}
if (bs->msglen >= MAXSTRING) {
- Dmsg1(50, "Msg too long wanted auth cram... Got: %s", bs->msg);
+ Dmsg1(dbglvl, "Msg too long wanted auth cram... Got: %s", bs->msg);
bmicrosleep(5, 0);
return false;
}
*compatible = true;
} else if (sscanf(bs->msg, "auth cram-md5 %s ssl=%d", chal, tls_remote_need) != 2) {
if (sscanf(bs->msg, "auth cram-md5 %s\n", chal) != 1) {
- Dmsg1(50, "Cannot scan challenge: %s", bs->msg);
+ Dmsg1(dbglvl, "Cannot scan challenge: %s", bs->msg);
bs->fsend(_("1999 Authorization failed.\n"));
bmicrosleep(5, 0);
return false;
bs->msglen = bin_to_base64(bs->msg, 50, (char *)hmac, 16, *compatible) + 1;
// Dmsg3(100, "get_auth: chal=%s pw=%s hmac=%s\n", chal, password, bs->msg);
if (!bs->send()) {
- Dmsg1(50, "Send challenge failed. ERR=%s\n", bs->bstrerror());
+ Dmsg1(dbglvl, "Send challenge failed. ERR=%s\n", bs->bstrerror());
return false;
}
Dmsg1(99, "sending resp to challenge: %s\n", bs->msg);
if (bs->wait_data(180) <= 0 || bs->recv() <= 0) {
- Dmsg1(50, "Receive chanllenge response failed. ERR=%s\n", bs->bstrerror());
+ Dmsg1(dbglvl, "Receive chanllenge response failed. ERR=%s\n", bs->bstrerror());
bmicrosleep(5, 0);
return false;
}
if (strcmp(bs->msg, "1000 OK auth\n") == 0) {
return true;
}
- Dmsg1(50, "Received bad response: %s\n", bs->msg);
+ Dmsg1(dbglvl, "Received bad response: %s\n", bs->msg);
bmicrosleep(5, 0);
return false;
}