author | zautrix <zautrix> | 2004-09-10 16:47:36 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-09-10 16:47:36 (UTC) |
commit | 157120031b77a3d9f10d780a66b6441dac1399fa (patch) (unidiff) | |
tree | fe756e71b5290940d2824d06c11e5f887a6f00e2 | |
parent | 3b3e910d97287f6a538c114458d97800d430799a (diff) | |
download | kdepimpi-157120031b77a3d9f10d780a66b6441dac1399fa.zip kdepimpi-157120031b77a3d9f10d780a66b6441dac1399fa.tar.gz kdepimpi-157120031b77a3d9f10d780a66b6441dac1399fa.tar.bz2 |
Fixes in password dislog handling
-rw-r--r-- | kmicromail/libmailwrapper/imapwrapper.cpp | 18 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/nntpwrapper.cpp | 25 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/pop3wrapper.cpp | 18 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/smtpwrapper.cpp | 19 |
4 files changed, 34 insertions, 46 deletions
diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp index 11d3343..021633b 100644 --- a/kmicromail/libmailwrapper/imapwrapper.cpp +++ b/kmicromail/libmailwrapper/imapwrapper.cpp | |||
@@ -75,133 +75,133 @@ bool IMAPwrapper::start_tls(bool force_tls) | |||
75 | Global::statusMessage(tr("Server has no TLS support!")); | 75 | Global::statusMessage(tr("Server has no TLS support!")); |
76 | try_tls = false; | 76 | try_tls = false; |
77 | } else { | 77 | } else { |
78 | mailstream_low * low; | 78 | mailstream_low * low; |
79 | mailstream_low * new_low; | 79 | mailstream_low * new_low; |
80 | low = mailstream_get_low(m_imap->imap_stream); | 80 | low = mailstream_get_low(m_imap->imap_stream); |
81 | if (!low) { | 81 | if (!low) { |
82 | try_tls = false; | 82 | try_tls = false; |
83 | } else { | 83 | } else { |
84 | int fd = mailstream_low_get_fd(low); | 84 | int fd = mailstream_low_get_fd(low); |
85 | if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) { | 85 | if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) { |
86 | mailstream_low_free(low); | 86 | mailstream_low_free(low); |
87 | mailstream_set_low(m_imap->imap_stream, new_low); | 87 | mailstream_set_low(m_imap->imap_stream, new_low); |
88 | } else { | 88 | } else { |
89 | try_tls = false; | 89 | try_tls = false; |
90 | } | 90 | } |
91 | } | 91 | } |
92 | } | 92 | } |
93 | } | 93 | } |
94 | return try_tls; | 94 | return try_tls; |
95 | } | 95 | } |
96 | 96 | ||
97 | void IMAPwrapper::login() | 97 | void IMAPwrapper::login() |
98 | { | 98 | { |
99 | const char *server, *user, *pass; | 99 | QString server, user, pass; |
100 | uint16_t port; | 100 | uint16_t port; |
101 | int err = MAILIMAP_NO_ERROR; | 101 | int err = MAILIMAP_NO_ERROR; |
102 | 102 | ||
103 | if (account->getOffline()) return; | 103 | if (account->getOffline()) return; |
104 | /* we are connected this moment */ | 104 | /* we are connected this moment */ |
105 | /* TODO: setup a timer holding the line or if connection closed - delete the value */ | 105 | /* TODO: setup a timer holding the line or if connection closed - delete the value */ |
106 | if (m_imap) { | 106 | if (m_imap) { |
107 | err = mailimap_noop(m_imap); | 107 | err = mailimap_noop(m_imap); |
108 | if (err!=MAILIMAP_NO_ERROR) { | 108 | if (err!=MAILIMAP_NO_ERROR) { |
109 | logout(); | 109 | logout(); |
110 | } else { | 110 | } else { |
111 | mailstream_flush(m_imap->imap_stream); | 111 | mailstream_flush(m_imap->imap_stream); |
112 | return; | 112 | return; |
113 | } | 113 | } |
114 | } | 114 | } |
115 | server = account->getServer().latin1(); | 115 | server = account->getServer(); |
116 | port = account->getPort().toUInt(); | 116 | port = account->getPort().toUInt(); |
117 | if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { | 117 | if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { |
118 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); | 118 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); |
119 | login.show(); | 119 | login.show(); |
120 | if ( QDialog::Accepted == login.exec() ) { | 120 | if ( QDialog::Accepted == login.exec() ) { |
121 | // ok | 121 | // ok |
122 | user = login.getUser().latin1(); | 122 | user = login.getUser(); |
123 | pass = login.getPassword().latin1(); | 123 | pass = login.getPassword(); |
124 | } else { | 124 | } else { |
125 | // cancel | 125 | // cancel |
126 | return; | 126 | return; |
127 | } | 127 | } |
128 | } else { | 128 | } else { |
129 | user = account->getUser().latin1(); | 129 | user = account->getUser(); |
130 | pass = account->getPassword().latin1(); | 130 | pass = account->getPassword(); |
131 | } | 131 | } |
132 | 132 | ||
133 | m_imap = mailimap_new( 20, &imap_progress ); | 133 | m_imap = mailimap_new( 20, &imap_progress ); |
134 | 134 | ||
135 | /* connect */ | 135 | /* connect */ |
136 | bool ssl = false; | 136 | bool ssl = false; |
137 | bool try_tls = false; | 137 | bool try_tls = false; |
138 | bool force_tls = false; | 138 | bool force_tls = false; |
139 | 139 | ||
140 | if ( account->ConnectionType() == 2 ) { | 140 | if ( account->ConnectionType() == 2 ) { |
141 | ssl = true; | 141 | ssl = true; |
142 | } | 142 | } |
143 | if (account->ConnectionType()==1) { | 143 | if (account->ConnectionType()==1) { |
144 | force_tls = true; | 144 | force_tls = true; |
145 | } | 145 | } |
146 | 146 | ||
147 | if ( ssl ) { | 147 | if ( ssl ) { |
148 | qDebug("using ssl "); | 148 | qDebug("using ssl "); |
149 | err = mailimap_ssl_connect( m_imap, (char*)server, port ); | 149 | err = mailimap_ssl_connect( m_imap, (char*)server.latin1(), port ); |
150 | } else { | 150 | } else { |
151 | err = mailimap_socket_connect( m_imap, (char*)server, port ); | 151 | err = mailimap_socket_connect( m_imap, (char*)server.latin1(), port ); |
152 | } | 152 | } |
153 | 153 | ||
154 | if ( err != MAILIMAP_NO_ERROR && | 154 | if ( err != MAILIMAP_NO_ERROR && |
155 | err != MAILIMAP_NO_ERROR_AUTHENTICATED && | 155 | err != MAILIMAP_NO_ERROR_AUTHENTICATED && |
156 | err != MAILIMAP_NO_ERROR_NON_AUTHENTICATED ) { | 156 | err != MAILIMAP_NO_ERROR_NON_AUTHENTICATED ) { |
157 | QString failure = ""; | 157 | QString failure = ""; |
158 | if (err == MAILIMAP_ERROR_CONNECTION_REFUSED) { | 158 | if (err == MAILIMAP_ERROR_CONNECTION_REFUSED) { |
159 | failure="Connection refused"; | 159 | failure="Connection refused"; |
160 | } else { | 160 | } else { |
161 | failure="Unknown failure"; | 161 | failure="Unknown failure"; |
162 | } | 162 | } |
163 | Global::statusMessage(tr("error connecting imap server: %1").arg(failure)); | 163 | Global::statusMessage(tr("error connecting imap server: %1").arg(failure)); |
164 | mailimap_free( m_imap ); | 164 | mailimap_free( m_imap ); |
165 | m_imap = 0; | 165 | m_imap = 0; |
166 | return; | 166 | return; |
167 | } | 167 | } |
168 | 168 | ||
169 | if (!ssl) { | 169 | if (!ssl) { |
170 | try_tls = start_tls(force_tls); | 170 | try_tls = start_tls(force_tls); |
171 | } | 171 | } |
172 | 172 | ||
173 | bool ok = true; | 173 | bool ok = true; |
174 | if (force_tls && !try_tls) { | 174 | if (force_tls && !try_tls) { |
175 | Global::statusMessage(tr("Server has no TLS support!")); | 175 | Global::statusMessage(tr("Server has no TLS support!")); |
176 | ok = false; | 176 | ok = false; |
177 | } | 177 | } |
178 | 178 | ||
179 | 179 | ||
180 | /* login */ | 180 | /* login */ |
181 | 181 | ||
182 | if (ok) { | 182 | if (ok) { |
183 | err = mailimap_login_simple( m_imap, (char*)user, (char*)pass ); | 183 | err = mailimap_login_simple( m_imap, (char*)user.latin1(), (char*)pass.latin1() ); |
184 | if ( err != MAILIMAP_NO_ERROR ) { | 184 | if ( err != MAILIMAP_NO_ERROR ) { |
185 | Global::statusMessage(tr("error logging in imap server: %1").arg(m_imap->imap_response)); | 185 | Global::statusMessage(tr("error logging in imap server: %1").arg(m_imap->imap_response)); |
186 | ok = false; | 186 | ok = false; |
187 | } | 187 | } |
188 | } | 188 | } |
189 | if (!ok) { | 189 | if (!ok) { |
190 | err = mailimap_close( m_imap ); | 190 | err = mailimap_close( m_imap ); |
191 | mailimap_free( m_imap ); | 191 | mailimap_free( m_imap ); |
192 | m_imap = 0; | 192 | m_imap = 0; |
193 | } | 193 | } |
194 | } | 194 | } |
195 | 195 | ||
196 | void IMAPwrapper::logout() | 196 | void IMAPwrapper::logout() |
197 | { | 197 | { |
198 | int err = MAILIMAP_NO_ERROR; | 198 | int err = MAILIMAP_NO_ERROR; |
199 | if (!m_imap) return; | 199 | if (!m_imap) return; |
200 | err = mailimap_logout( m_imap ); | 200 | err = mailimap_logout( m_imap ); |
201 | err = mailimap_close( m_imap ); | 201 | err = mailimap_close( m_imap ); |
202 | mailimap_free( m_imap ); | 202 | mailimap_free( m_imap ); |
203 | m_imap = 0; | 203 | m_imap = 0; |
204 | m_Lastmbox = ""; | 204 | m_Lastmbox = ""; |
205 | } | 205 | } |
206 | 206 | ||
207 | void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> > &target , int maxSizeInKb) | 207 | void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> > &target , int maxSizeInKb) |
diff --git a/kmicromail/libmailwrapper/nntpwrapper.cpp b/kmicromail/libmailwrapper/nntpwrapper.cpp index f5d7f16..93cd2b5 100644 --- a/kmicromail/libmailwrapper/nntpwrapper.cpp +++ b/kmicromail/libmailwrapper/nntpwrapper.cpp | |||
@@ -96,100 +96,91 @@ RecBodyP NNTPwrapper::fetchBody( const RecMailP &mail ) { | |||
96 | free(message); | 96 | free(message); |
97 | 97 | ||
98 | return body; | 98 | return body; |
99 | } | 99 | } |
100 | 100 | ||
101 | 101 | ||
102 | void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb) | 102 | void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb) |
103 | { | 103 | { |
104 | login(); | 104 | login(); |
105 | if (!m_nntp) | 105 | if (!m_nntp) |
106 | return; | 106 | return; |
107 | uint32_t res_messages,res_recent,res_unseen; | 107 | uint32_t res_messages,res_recent,res_unseen; |
108 | mailsession_status_folder(m_nntp->sto_session,(char*)which.latin1(),&res_messages,&res_recent,&res_unseen); | 108 | mailsession_status_folder(m_nntp->sto_session,(char*)which.latin1(),&res_messages,&res_recent,&res_unseen); |
109 | parseList(target,m_nntp->sto_session,which,true, maxSizeInKb); | 109 | parseList(target,m_nntp->sto_session,which,true, maxSizeInKb); |
110 | } | 110 | } |
111 | 111 | ||
112 | void NNTPwrapper::login() | 112 | void NNTPwrapper::login() |
113 | { | 113 | { |
114 | if (account->getOffline()) | 114 | if (account->getOffline()) |
115 | return; | 115 | return; |
116 | /* we'll hold the line */ | 116 | /* we'll hold the line */ |
117 | if ( m_nntp != NULL ) | 117 | if ( m_nntp != NULL ) |
118 | return; | 118 | return; |
119 | 119 | ||
120 | const char *server, *user, *pass; | 120 | QString server; |
121 | QString User,Pass; | 121 | QString User,Pass; |
122 | uint16_t port; | 122 | uint16_t port; |
123 | int err = NEWSNNTP_NO_ERROR; | 123 | int err = NEWSNNTP_NO_ERROR; |
124 | 124 | ||
125 | server = account->getServer().latin1(); | 125 | server = account->getServer(); |
126 | port = account->getPort().toUInt(); | 126 | port = account->getPort().toUInt(); |
127 | 127 | ||
128 | user = pass = 0; | ||
129 | |||
130 | if ( ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) && account->getLogin() ) { | 128 | if ( ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) && account->getLogin() ) { |
131 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); | 129 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); |
132 | login.show(); | 130 | login.show(); |
133 | if ( QDialog::Accepted == login.exec() ) { | 131 | if ( QDialog::Accepted == login.exec() ) { |
134 | // ok | 132 | // ok |
135 | User = login.getUser().latin1(); | 133 | User = login.getUser(); |
136 | Pass = login.getPassword().latin1(); | 134 | Pass = login.getPassword(); |
137 | } else { | 135 | } else { |
138 | // cancel | 136 | // cancel |
139 | ; // << "NNTP: Login canceled" << oendl; | 137 | ; // << "NNTP: Login canceled" << oendl; |
140 | return; | 138 | return; |
141 | } | 139 | } |
142 | } else { | 140 | } else { |
143 | User = account->getUser().latin1(); | 141 | User = account->getUser(); |
144 | Pass = account->getPassword().latin1(); | 142 | Pass = account->getPassword(); |
145 | } | 143 | } |
146 | 144 | ||
147 | if (User.isEmpty()) { | ||
148 | user=0; | ||
149 | pass = 0; | ||
150 | } else { | ||
151 | user=User.latin1(); | ||
152 | pass=Pass.latin1(); | ||
153 | } | ||
154 | // bool ssl = account->getSSL(); | 145 | // bool ssl = account->getSSL(); |
155 | 146 | ||
156 | m_nntp=mailstorage_new(NULL); | 147 | m_nntp=mailstorage_new(NULL); |
157 | 148 | ||
158 | int conntypeset = account->ConnectionType(); | 149 | int conntypeset = account->ConnectionType(); |
159 | int conntype = 0; | 150 | int conntype = 0; |
160 | if ( conntypeset == 3 ) { | 151 | if ( conntypeset == 3 ) { |
161 | conntype = CONNECTION_TYPE_COMMAND; | 152 | conntype = CONNECTION_TYPE_COMMAND; |
162 | } else if ( conntypeset == 2 ) { | 153 | } else if ( conntypeset == 2 ) { |
163 | conntype = CONNECTION_TYPE_TLS; | 154 | conntype = CONNECTION_TYPE_TLS; |
164 | } else if ( conntypeset == 1 ) { | 155 | } else if ( conntypeset == 1 ) { |
165 | conntype = CONNECTION_TYPE_STARTTLS; | 156 | conntype = CONNECTION_TYPE_STARTTLS; |
166 | } else if ( conntypeset == 0 ) { | 157 | } else if ( conntypeset == 0 ) { |
167 | conntype = CONNECTION_TYPE_TRY_STARTTLS; | 158 | conntype = CONNECTION_TYPE_TRY_STARTTLS; |
168 | } | 159 | } |
169 | 160 | ||
170 | nntp_mailstorage_init(m_nntp,(char*)server, port, NULL, CONNECTION_TYPE_PLAIN, NNTP_AUTH_TYPE_PLAIN, | 161 | nntp_mailstorage_init(m_nntp,(char*)server.latin1(), port, NULL, CONNECTION_TYPE_PLAIN, NNTP_AUTH_TYPE_PLAIN, |
171 | (char*)user,(char*)pass,0,0,0); | 162 | (char*)User.latin1(),(char*)Pass.latin1(),0,0,0); |
172 | 163 | ||
173 | err = mailstorage_connect( m_nntp ); | 164 | err = mailstorage_connect( m_nntp ); |
174 | 165 | ||
175 | if (err != NEWSNNTP_NO_ERROR) { | 166 | if (err != NEWSNNTP_NO_ERROR) { |
176 | ; // << QString( "FEHLERNUMMER %1" ).arg( err ) << oendl; | 167 | ; // << QString( "FEHLERNUMMER %1" ).arg( err ) << oendl; |
177 | // Global::statusMessage(tr("Error initializing folder")); | 168 | // Global::statusMessage(tr("Error initializing folder")); |
178 | mailstorage_free(m_nntp); | 169 | mailstorage_free(m_nntp); |
179 | m_nntp = 0; | 170 | m_nntp = 0; |
180 | 171 | ||
181 | } else { | 172 | } else { |
182 | mailsession * session = m_nntp->sto_session; | 173 | mailsession * session = m_nntp->sto_session; |
183 | newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; | 174 | newsnntp * news = ( ( nntp_session_state_data * )session->sess_data )->nntp_session; |
184 | news->nntp_progr_fun = &nntp_progress; | 175 | news->nntp_progr_fun = &nntp_progress; |
185 | } | 176 | } |
186 | 177 | ||
187 | } | 178 | } |
188 | 179 | ||
189 | void NNTPwrapper::logout() | 180 | void NNTPwrapper::logout() |
190 | { | 181 | { |
191 | int err = NEWSNNTP_NO_ERROR; | 182 | int err = NEWSNNTP_NO_ERROR; |
192 | if ( m_nntp == NULL ) | 183 | if ( m_nntp == NULL ) |
193 | return; | 184 | return; |
194 | mailstorage_free(m_nntp); | 185 | mailstorage_free(m_nntp); |
195 | m_nntp = 0; | 186 | m_nntp = 0; |
diff --git a/kmicromail/libmailwrapper/pop3wrapper.cpp b/kmicromail/libmailwrapper/pop3wrapper.cpp index 0e6612c..f430121 100644 --- a/kmicromail/libmailwrapper/pop3wrapper.cpp +++ b/kmicromail/libmailwrapper/pop3wrapper.cpp | |||
@@ -97,93 +97,91 @@ RecBodyP POP3wrapper::fetchBody( const RecMailP &mail ) { | |||
97 | free(message); | 97 | free(message); |
98 | 98 | ||
99 | return body; | 99 | return body; |
100 | } | 100 | } |
101 | 101 | ||
102 | void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb ) | 102 | void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb ) |
103 | { | 103 | { |
104 | login(); | 104 | login(); |
105 | if (!m_pop3) | 105 | if (!m_pop3) |
106 | return; | 106 | return; |
107 | uint32_t res_messages,res_recent,res_unseen; | 107 | uint32_t res_messages,res_recent,res_unseen; |
108 | mailsession_status_folder(m_pop3->sto_session,"INBOX",&res_messages,&res_recent,&res_unseen); | 108 | mailsession_status_folder(m_pop3->sto_session,"INBOX",&res_messages,&res_recent,&res_unseen); |
109 | parseList(target,m_pop3->sto_session,"INBOX", false, maxSizeInKb); | 109 | parseList(target,m_pop3->sto_session,"INBOX", false, maxSizeInKb); |
110 | Global::statusMessage( tr("Mailbox contains %1 mail(s)").arg(res_messages)); | 110 | Global::statusMessage( tr("Mailbox contains %1 mail(s)").arg(res_messages)); |
111 | } | 111 | } |
112 | 112 | ||
113 | void POP3wrapper::login() | 113 | void POP3wrapper::login() |
114 | { | 114 | { |
115 | if (account->getOffline()) | 115 | if (account->getOffline()) |
116 | return; | 116 | return; |
117 | /* we'll hold the line */ | 117 | /* we'll hold the line */ |
118 | if ( m_pop3 != NULL ) | 118 | if ( m_pop3 != NULL ) |
119 | return; | 119 | return; |
120 | 120 | ||
121 | const char *server, *user, *pass; | 121 | QString server,user, pass; |
122 | uint16_t port; | 122 | uint16_t port; |
123 | int err = MAILPOP3_NO_ERROR; | 123 | int err = MAILPOP3_NO_ERROR; |
124 | 124 | ||
125 | server = account->getServer().latin1(); | 125 | server = account->getServer().latin1(); |
126 | port = account->getPort().toUInt(); | 126 | port = account->getPort().toUInt(); |
127 | 127 | ||
128 | if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { | 128 | if ( account->getUser().isEmpty() || account->getPassword().isEmpty() ) { |
129 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); | 129 | LoginDialog login( account->getUser(), account->getPassword(), NULL, 0, true ); |
130 | login.show(); | 130 | login.show(); |
131 | if ( QDialog::Accepted == login.exec() ) { | 131 | if ( QDialog::Accepted == login.exec() ) { |
132 | // ok | 132 | // ok |
133 | user = login.getUser().latin1(); | 133 | qDebug("ok "); |
134 | pass = login.getPassword().latin1(); | 134 | user = login.getUser(); |
135 | pass = login.getPassword(); | ||
135 | } else { | 136 | } else { |
136 | // cancel | 137 | // cancel |
137 | ; // odebug << "POP3: Login canceled" << oendl; | 138 | ; // odebug << "POP3: Login canceled" << oendl; |
138 | return; | 139 | return; |
139 | } | 140 | } |
140 | } else { | 141 | } else { |
141 | user = account->getUser().latin1(); | 142 | user = account->getUser(); |
142 | pass = account->getPassword().latin1(); | 143 | pass = account->getPassword(); |
143 | } | 144 | } |
144 | |||
145 | // bool ssl = account->getSSL(); | 145 | // bool ssl = account->getSSL(); |
146 | 146 | ||
147 | m_pop3=mailstorage_new(NULL); | 147 | m_pop3=mailstorage_new(NULL); |
148 | |||
149 | int conntypeset = account->ConnectionType(); | 148 | int conntypeset = account->ConnectionType(); |
150 | int conntype = 0; | 149 | int conntype = 0; |
151 | if ( conntypeset == 3 ) { | 150 | if ( conntypeset == 3 ) { |
152 | conntype = CONNECTION_TYPE_COMMAND; | 151 | conntype = CONNECTION_TYPE_COMMAND; |
153 | } else if ( conntypeset == 2 ) { | 152 | } else if ( conntypeset == 2 ) { |
154 | conntype = CONNECTION_TYPE_TLS; | 153 | conntype = CONNECTION_TYPE_TLS; |
155 | } else if ( conntypeset == 1 ) { | 154 | } else if ( conntypeset == 1 ) { |
156 | conntype = CONNECTION_TYPE_STARTTLS; | 155 | conntype = CONNECTION_TYPE_STARTTLS; |
157 | } else if ( conntypeset == 0 ) { | 156 | } else if ( conntypeset == 0 ) { |
158 | conntype = CONNECTION_TYPE_TRY_STARTTLS; | 157 | conntype = CONNECTION_TYPE_TRY_STARTTLS; |
159 | } | 158 | } |
160 | 159 | ||
161 | //(ssl?CONNECTION_TYPE_TLS:CONNECTION_TYPE_PLAIN); | 160 | //(ssl?CONNECTION_TYPE_TLS:CONNECTION_TYPE_PLAIN); |
162 | 161 | ||
163 | pop3_mailstorage_init(m_pop3,(char*)server, port, NULL, conntype, POP3_AUTH_TYPE_PLAIN, | 162 | pop3_mailstorage_init(m_pop3,(char*)server.latin1(), port, NULL, conntype, POP3_AUTH_TYPE_PLAIN, |
164 | (char*)user,(char*)pass,0,0,0); | 163 | (char*)user.latin1(),(char*)pass.latin1(),0,0,0); |
165 | |||
166 | 164 | ||
167 | err = mailstorage_connect(m_pop3); | 165 | err = mailstorage_connect(m_pop3); |
168 | if (err != MAIL_NO_ERROR) { | 166 | if (err != MAIL_NO_ERROR) { |
169 | ; // odebug << QString( "FEHLERNUMMER %1" ).arg( err ) << oendl; | 167 | ; // odebug << QString( "FEHLERNUMMER %1" ).arg( err ) << oendl; |
170 | Global::statusMessage(tr("Error initializing folder")); | 168 | Global::statusMessage(tr("Error initializing folder")); |
171 | mailstorage_free(m_pop3); | 169 | mailstorage_free(m_pop3); |
172 | m_pop3 = 0; | 170 | m_pop3 = 0; |
173 | } else { | 171 | } else { |
174 | mailsession * session = m_pop3->sto_session; | 172 | mailsession * session = m_pop3->sto_session; |
175 | mailpop3 * mail = ( ( pop3_session_state_data * )session->sess_data )->pop3_session; | 173 | mailpop3 * mail = ( ( pop3_session_state_data * )session->sess_data )->pop3_session; |
176 | if (mail) { | 174 | if (mail) { |
177 | mail->pop3_progr_fun = &pop3_progress; | 175 | mail->pop3_progr_fun = &pop3_progress; |
178 | } | 176 | } |
179 | } | 177 | } |
180 | } | 178 | } |
181 | 179 | ||
182 | void POP3wrapper::logout() | 180 | void POP3wrapper::logout() |
183 | { | 181 | { |
184 | if ( m_pop3 == NULL ) | 182 | if ( m_pop3 == NULL ) |
185 | return; | 183 | return; |
186 | mailstorage_free(m_pop3); | 184 | mailstorage_free(m_pop3); |
187 | m_pop3 = 0; | 185 | m_pop3 = 0; |
188 | } | 186 | } |
189 | 187 | ||
diff --git a/kmicromail/libmailwrapper/smtpwrapper.cpp b/kmicromail/libmailwrapper/smtpwrapper.cpp index 6a1b505..d5a528c 100644 --- a/kmicromail/libmailwrapper/smtpwrapper.cpp +++ b/kmicromail/libmailwrapper/smtpwrapper.cpp | |||
@@ -161,137 +161,136 @@ int SMTPwrapper::start_smtp_tls() | |||
161 | { | 161 | { |
162 | if (!m_smtp) { | 162 | if (!m_smtp) { |
163 | return MAILSMTP_ERROR_IN_PROCESSING; | 163 | return MAILSMTP_ERROR_IN_PROCESSING; |
164 | } | 164 | } |
165 | int err = mailesmtp_starttls(m_smtp); | 165 | int err = mailesmtp_starttls(m_smtp); |
166 | if (err != MAILSMTP_NO_ERROR) return err; | 166 | if (err != MAILSMTP_NO_ERROR) return err; |
167 | mailstream_low * low; | 167 | mailstream_low * low; |
168 | mailstream_low * new_low; | 168 | mailstream_low * new_low; |
169 | low = mailstream_get_low(m_smtp->stream); | 169 | low = mailstream_get_low(m_smtp->stream); |
170 | if (!low) { | 170 | if (!low) { |
171 | return MAILSMTP_ERROR_IN_PROCESSING; | 171 | return MAILSMTP_ERROR_IN_PROCESSING; |
172 | } | 172 | } |
173 | int fd = mailstream_low_get_fd(low); | 173 | int fd = mailstream_low_get_fd(low); |
174 | if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) { | 174 | if (fd > -1 && (new_low = mailstream_low_ssl_open(fd))!=0) { |
175 | mailstream_low_free(low); | 175 | mailstream_low_free(low); |
176 | mailstream_set_low(m_smtp->stream, new_low); | 176 | mailstream_set_low(m_smtp->stream, new_low); |
177 | } else { | 177 | } else { |
178 | return MAILSMTP_ERROR_IN_PROCESSING; | 178 | return MAILSMTP_ERROR_IN_PROCESSING; |
179 | } | 179 | } |
180 | return err; | 180 | return err; |
181 | } | 181 | } |
182 | 182 | ||
183 | void SMTPwrapper::connect_server() | 183 | void SMTPwrapper::connect_server() |
184 | { | 184 | { |
185 | const char *server, *user, *pass; | 185 | QString server, user, pass; |
186 | bool ssl; | 186 | bool ssl; |
187 | uint16_t port; | 187 | uint16_t port; |
188 | ssl = false; | 188 | ssl = false; |
189 | bool try_tls = true; | 189 | bool try_tls = true; |
190 | bool force_tls=false; | 190 | bool force_tls=false; |
191 | server = user = pass = 0; | ||
192 | QString failuretext = ""; | 191 | QString failuretext = ""; |
193 | 192 | ||
194 | if (m_smtp || !m_SmtpAccount) { | 193 | if (m_smtp || !m_SmtpAccount) { |
195 | return; | 194 | return; |
196 | } | 195 | } |
197 | server = m_SmtpAccount->getServer().latin1(); | 196 | server = m_SmtpAccount->getServer(); |
198 | if ( m_SmtpAccount->ConnectionType() == 2 ) { | 197 | if ( m_SmtpAccount->ConnectionType() == 2 ) { |
199 | ssl = true; | 198 | ssl = true; |
200 | try_tls = false; | 199 | try_tls = false; |
201 | } else if (m_SmtpAccount->ConnectionType() == 1) { | 200 | } else if (m_SmtpAccount->ConnectionType() == 1) { |
202 | force_tls = true; | 201 | force_tls = true; |
203 | } | 202 | } |
204 | int result = 1; | 203 | int result = 1; |
205 | port = m_SmtpAccount->getPort().toUInt(); | 204 | port = m_SmtpAccount->getPort().toUInt(); |
206 | 205 | ||
207 | m_smtp = mailsmtp_new( 20, &progress ); | 206 | m_smtp = mailsmtp_new( 20, &progress ); |
208 | if ( m_smtp == NULL ) { | 207 | if ( m_smtp == NULL ) { |
209 | /* no failure message cause this happens when problems with memory - than we | 208 | /* no failure message cause this happens when problems with memory - than we |
210 | we can not display any messagebox */ | 209 | we can not display any messagebox */ |
211 | return; | 210 | return; |
212 | } | 211 | } |
213 | 212 | ||
214 | int err = MAILSMTP_NO_ERROR; | 213 | int err = MAILSMTP_NO_ERROR; |
215 | ; // odebug << "Servername " << server << " at port " << port << "" << oendl; | 214 | ; // odebug << "Servername " << server << " at port " << port << "" << oendl; |
216 | if ( ssl ) { | 215 | if ( ssl ) { |
217 | ; // odebug << "SSL session" << oendl; | 216 | ; // odebug << "SSL session" << oendl; |
218 | err = mailsmtp_ssl_connect( m_smtp, server, port ); | 217 | err = mailsmtp_ssl_connect( m_smtp, server.latin1(), port ); |
219 | } else { | 218 | } else { |
220 | ; // odebug << "No SSL session" << oendl; | 219 | ; // odebug << "No SSL session" << oendl; |
221 | err = mailsmtp_socket_connect( m_smtp, server, port ); | 220 | err = mailsmtp_socket_connect( m_smtp, server.latin1(), port ); |
222 | } | 221 | } |
223 | if ( err != MAILSMTP_NO_ERROR ) { | 222 | if ( err != MAILSMTP_NO_ERROR ) { |
224 | ; // odebug << "Error init connection" << oendl; | 223 | ; // odebug << "Error init connection" << oendl; |
225 | failuretext = tr("Error init SMTP connection: %1").arg(mailsmtpError(err)); | 224 | failuretext = tr("Error init SMTP connection: %1").arg(mailsmtpError(err)); |
226 | result = 0; | 225 | result = 0; |
227 | } | 226 | } |
228 | 227 | ||
229 | /* switch to tls after init 'cause there it will send the ehlo */ | 228 | /* switch to tls after init 'cause there it will send the ehlo */ |
230 | if (result) { | 229 | if (result) { |
231 | err = mailsmtp_init( m_smtp ); | 230 | err = mailsmtp_init( m_smtp ); |
232 | if (err != MAILSMTP_NO_ERROR) { | 231 | if (err != MAILSMTP_NO_ERROR) { |
233 | result = 0; | 232 | result = 0; |
234 | failuretext = tr("Error init SMTP connection: %1").arg(mailsmtpError(err)); | 233 | failuretext = tr("Error init SMTP connection: %1").arg(mailsmtpError(err)); |
235 | } | 234 | } |
236 | } | 235 | } |
237 | 236 | ||
238 | if (try_tls) { | 237 | if (try_tls) { |
239 | err = start_smtp_tls(); | 238 | err = start_smtp_tls(); |
240 | if (err != MAILSMTP_NO_ERROR) { | 239 | if (err != MAILSMTP_NO_ERROR) { |
241 | try_tls = false; | 240 | try_tls = false; |
242 | } else { | 241 | } else { |
243 | err = mailesmtp_ehlo(m_smtp); | 242 | err = mailesmtp_ehlo(m_smtp); |
244 | } | 243 | } |
245 | } | 244 | } |
246 | 245 | ||
247 | if (!try_tls && force_tls) { | 246 | if (!try_tls && force_tls) { |
248 | result = 0; | 247 | result = 0; |
249 | failuretext = tr("Error init SMTP tls: %1").arg(mailsmtpError(err)); | 248 | failuretext = tr("Error init SMTP tls: %1").arg(mailsmtpError(err)); |
250 | } | 249 | } |
251 | 250 | ||
252 | if (result==1 && m_SmtpAccount->getLogin() ) { | 251 | if (result==1 && m_SmtpAccount->getLogin() ) { |
253 | ; // odebug << "smtp with auth" << oendl; | 252 | ; // odebug << "smtp with auth" << oendl; |
254 | if ( m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty() ) { | 253 | if ( m_SmtpAccount->getUser().isEmpty() || m_SmtpAccount->getPassword().isEmpty() ) { |
255 | // get'em | 254 | // get'em |
256 | LoginDialog login( m_SmtpAccount->getUser(), | 255 | LoginDialog login( m_SmtpAccount->getUser(), |
257 | m_SmtpAccount->getPassword(), NULL, 0, true ); | 256 | m_SmtpAccount->getPassword(), NULL, 0, true ); |
258 | login.show(); | 257 | login.show(); |
259 | if ( QDialog::Accepted == login.exec() ) { | 258 | if ( QDialog::Accepted == login.exec() ) { |
260 | // ok | 259 | // ok |
261 | user = login.getUser().latin1(); | 260 | user = login.getUser(); |
262 | pass = login.getPassword().latin1(); | 261 | pass = login.getPassword(); |
263 | } else { | 262 | } else { |
264 | result = 0; | 263 | result = 0; |
265 | failuretext=tr("Login aborted - storing mail to localfolder"); | 264 | failuretext=tr("Login aborted - storing mail to localfolder"); |
266 | } | 265 | } |
267 | } else { | 266 | } else { |
268 | user = m_SmtpAccount->getUser().latin1(); | 267 | user = m_SmtpAccount->getUser(); |
269 | pass = m_SmtpAccount->getPassword().latin1(); | 268 | pass = m_SmtpAccount->getPassword(); |
270 | } | 269 | } |
271 | ; // odebug << "session->auth: " << m_smtp->auth << "" << oendl; | 270 | ; // odebug << "session->auth: " << m_smtp->auth << "" << oendl; |
272 | if (result) { | 271 | if (result) { |
273 | err = mailsmtp_auth( m_smtp, (char*)user, (char*)pass ); | 272 | err = mailsmtp_auth( m_smtp, (char*)user.latin1(), (char*)pass.latin1() ); |
274 | if ( err == MAILSMTP_NO_ERROR ) { | 273 | if ( err == MAILSMTP_NO_ERROR ) { |
275 | ; // odebug << "auth ok" << oendl; | 274 | ; // odebug << "auth ok" << oendl; |
276 | } else { | 275 | } else { |
277 | failuretext = tr("Authentification failed"); | 276 | failuretext = tr("Authentification failed"); |
278 | result = 0; | 277 | result = 0; |
279 | } | 278 | } |
280 | } | 279 | } |
281 | } | 280 | } |
282 | } | 281 | } |
283 | 282 | ||
284 | void SMTPwrapper::disc_server() | 283 | void SMTPwrapper::disc_server() |
285 | { | 284 | { |
286 | if (m_smtp) { | 285 | if (m_smtp) { |
287 | mailsmtp_quit( m_smtp ); | 286 | mailsmtp_quit( m_smtp ); |
288 | mailsmtp_free( m_smtp ); | 287 | mailsmtp_free( m_smtp ); |
289 | m_smtp = 0; | 288 | m_smtp = 0; |
290 | } | 289 | } |
291 | } | 290 | } |
292 | 291 | ||
293 | int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size ) | 292 | int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size ) |
294 | { | 293 | { |
295 | int err,result; | 294 | int err,result; |
296 | QString failuretext = ""; | 295 | QString failuretext = ""; |
297 | 296 | ||