{
for (domaincontroller dc : domaincontrollers) {
std::cerr << "testing against " << dc.server << std::endl;
- const int rv = Valid_User(username, password, dc.server.c_str(), dc.domain.c_str());
+ const int rv = Valid_User(username, password, dc.server.c_str(), NULL, dc.domain.c_str());
std::cerr << "check result: " << rv << std::endl;
if (rv == NTV_NO_ERROR)
return true;
#include "valid.h"
int
-Valid_User(char *username, char *password, const char *SERVER, const char *DOMAIN)
+Valid_User(char *USERNAME, char *PASSWORD, const char *SERVER, char *BACKUP, const char *DOMAIN)
{
const char *supportedDialects[] = {"PC NETWORK PROGRAM 1.0",
- "MICchecROSOFT NETWORKS 1.03",
+ "MICROSOFT NETWORKS 1.03",
"MICROSOFT NETWORKS 3.0",
"LANMAN1.0",
"LM1.2X002",
SMB_Init();
con = SMB_Connect_Server(NULL, SERVER, DOMAIN);
- if (con == NULL)
- return (NTV_SERVER_ERROR);
-
+ if (con == NULL) { /* Error ... */
+ con = SMB_Connect_Server(NULL, BACKUP, DOMAIN);
+ if (con == NULL) {
+ return (NTV_SERVER_ERROR);
+ }
+ }
if (SMB_Negotiate(con, supportedDialects) < 0) { /* An error */
SMB_Discon(con, 0);
return (NTV_PROTOCOL_ERROR);
}
- if (SMB_Logon_Server(con, username, password, NULL, 0) < 0) {
+ if (SMB_Logon_Server(con, USERNAME, PASSWORD, NULL, 0) < 0) {
SMB_Discon(con, 0);
return (NTV_LOGON_ERROR);
}
#define NTV_PROTOCOL_ERROR 2
#define NTV_LOGON_ERROR 3
-int Valid_User(char *USERNAME, char *PASSWORD, const char *SERVER, const char *DOMAIN);
+int Valid_User(char *USERNAME, char *PASSWORD, const char *SERVER, char *BACKUP, const char *DOMAIN);
#endif