]> git.ipfire.org Git - thirdparty/squid.git/blob - helpers/basic_auth/MSNT/valid.cc
Renamed squid.h to squid-old.h and config.h to squid.h
[thirdparty/squid.git] / helpers / basic_auth / MSNT / valid.cc
1 #include "squid.h"
2 #if HAVE_SYS_TYPES_H
3 #include <sys/types.h>
4 #endif
5 #if HAVE_UNISTD_H
6 #include <unistd.h>
7 #endif
8 #if HAVE_SYSLOG_H
9 #include <syslog.h>
10 #endif
11 #include "smblib/smblib.h"
12 #include "valid.h"
13
14 int
15 Valid_User(char *USERNAME, char *PASSWORD, char *SERVER, char *BACKUP, char *DOMAIN)
16 {
17 const char *supportedDialects[] = {"PC NETWORK PROGRAM 1.0",
18 "MICROSOFT NETWORKS 1.03",
19 "MICROSOFT NETWORKS 3.0",
20 "LANMAN1.0",
21 "LM1.2X002",
22 "Samba",
23 "NT LM 0.12",
24 "NT LANMAN 1.0",
25 NULL
26 };
27 SMB_Handle_Type con;
28
29 SMB_Init();
30 con = SMB_Connect_Server(NULL, SERVER, DOMAIN);
31 if (con == NULL) { /* Error ... */
32 con = SMB_Connect_Server(NULL, BACKUP, DOMAIN);
33 if (con == NULL) {
34 return (NTV_SERVER_ERROR);
35 }
36 }
37 if (SMB_Negotiate(con, supportedDialects) < 0) { /* An error */
38 SMB_Discon(con, 0);
39 return (NTV_PROTOCOL_ERROR);
40 }
41 if (SMB_Logon_Server(con, USERNAME, PASSWORD, NULL, 0) < 0) {
42 SMB_Discon(con, 0);
43 return (NTV_LOGON_ERROR);
44 }
45 SMB_Discon(con, 0);
46 return (NTV_NO_ERROR);
47 }