ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/trunk/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 117 by douglas, 2003-04-01T01:04:41-08: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          {
82                  cerr << program << ": Server does not have IMAP4rev1 capability\n";
83  
84                  exit(1);
85          }
86 +        
87 +        if (capability.find(" LOGINDISABLED") != string::npos)
88 +        {
89 +                if (capability.find(" STARTTLS") != string::npos)
90 +                {
91 +                        session->starttls();
92 +
93 +                        capability = session->capability();
94 +                }
95 +                else
96 +                {
97 +                        cerr << program << ": Server does not allow plain text login\n";
98 +
99 +                        exit(1);
100 +                }
101 +        }
102  
103          session->login(account.getLogin() + ' ' + account.getPassword());
104  
# Line 171 | Line 195 | void Contactor::saveAccount()
195          account.setEmail(email);
196          delete [] email;
197  
198 + #ifdef _WIN32
199          cout << "Password: " << flush;
200  
201          string password;
# Line 200 | Line 225 | void Contactor::saveAccount()
225                  }
226          }
227          while (letter != '\r' && letter != '\n');
228 + #else
229 +        string password = getpass("Password: ");
230 + #endif
231  
232          account.setPassword(password);
233  
# Line 258 | Line 286 | void Contactor::loadAccount()
286  
287          if (account.getPassword() == "")
288          {
289 + #ifdef _WIN32
290                  cout << "Password: " << flush;
291  
292                  string password;
# Line 287 | Line 316 | void Contactor::loadAccount()
316                          }
317                  }
318                  while (letter != '\r' && letter != '\n');
319 + #else
320 +                string password = getpass("Password: ");
321 + #endif
322  
323                  account.setPassword(password);
324          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines