ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/WinXPFAQPoll/Contactor.cpp
(Generate patch)

Comparing trunk/WinXPFAQPoll/Contactor.cpp (file contents):
Revision 107 by douglas, 2003-03-31T20:39:56-08:00 vs.
Revision 218 by douglas, 2003-07-23T18:31:13-07:00

# Line 49 | Line 49
49   //
50   // Contactor.cpp
51  
52 #include "conio.h"
52   #include "Contactor.h"
53  
54 + #ifdef _WIN32
55 + #include "conio.h"
56 + #else
57 + #include <pwd.h>
58 + #include <unistd.h>
59 + #endif
60 +
61   Contactor::Contactor()
62   {
63          loadAccount();
# Line 67 | Line 73 | Contactor::Contactor()
73                          << "\n   mailbox = " << account.getMailbox() << "\n}\n";
74          }
75  
76 <        session = new IMAPHandler(account.getHost(), true);
76 >        session = new IMAPHandler(account.getHost(), account.getPort() == 993);
77 >
78 >        string capability = session->capability();
79  
80 <        if (session->capability().find("IMAP4rev1") == string::npos)
80 >        if (capability.find(" IMAP4rev1") == string::npos &&
81 >                capability.find(" IMAP4REV1") == string::npos)
82          {
83                  cerr << program << ": Server does not have IMAP4rev1 capability\n";
84  
85                  exit(1);
86          }
87 +        
88 +        if (capability.find(" LOGINDISABLED") != string::npos)
89 +        {
90 +                if (capability.find(" STARTTLS") != string::npos)
91 +                {
92 +                        session->starttls();
93 +
94 +                        capability = session->capability();
95 +                }
96 +                else
97 +                {
98 +                        cerr << program << ": Server does not allow plain text login\n";
99 +
100 +                        exit(1);
101 +                }
102 +        }
103  
104          session->login(account.getLogin() + ' ' + account.getPassword());
105  
# Line 171 | Line 196 | void Contactor::saveAccount()
196          account.setEmail(email);
197          delete [] email;
198  
199 + #ifdef _WIN32
200          cout << "Password: " << flush;
201  
202          string password;
# Line 200 | Line 226 | void Contactor::saveAccount()
226                  }
227          }
228          while (letter != '\r' && letter != '\n');
229 + #else
230 +        string password = getpass("Password: ");
231 + #endif
232  
233          account.setPassword(password);
234  
# Line 258 | Line 287 | void Contactor::loadAccount()
287  
288          if (account.getPassword() == "")
289          {
290 + #ifdef _WIN32
291                  cout << "Password: " << flush;
292  
293                  string password;
# Line 287 | Line 317 | void Contactor::loadAccount()
317                          }
318                  }
319                  while (letter != '\r' && letter != '\n');
320 + #else
321 +                string password = getpass("Password: ");
322 + #endif
323  
324                  account.setPassword(password);
325          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines