author | groucho <groucho> | 2003-04-24 11:19:11 (UTC) |
---|---|---|
committer | groucho <groucho> | 2003-04-24 11:19:11 (UTC) |
commit | 9671975e21266e3bfa6f3c793a3278b67cea34b7 (patch) (unidiff) | |
tree | 876c77939cfd0e00fc844b1b5af09b2978564a6d /noncore/net/mailit/popclient.cpp | |
parent | 51e782b9658de61dc02579e115a9c62f396609a3 (diff) | |
download | opie-9671975e21266e3bfa6f3c793a3278b67cea34b7.zip opie-9671975e21266e3bfa6f3c793a3278b67cea34b7.tar.gz opie-9671975e21266e3bfa6f3c793a3278b67cea34b7.tar.bz2 |
- reworked size filtering
- started reworking offline download
- better tab focus switching
- Hello "Whats this" capability
- Fixed parsing of To: header files (no more Delivered-To: and Reply-To: matches)
- Good bye Settings.txt, hello Config Objects and encrypted passwords
- Translation improvements (added trs)
- Parser optimizations
Diffstat (limited to 'noncore/net/mailit/popclient.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/mailit/popclient.cpp | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/noncore/net/mailit/popclient.cpp b/noncore/net/mailit/popclient.cpp index f9cc337..67306be 100644 --- a/noncore/net/mailit/popclient.cpp +++ b/noncore/net/mailit/popclient.cpp | |||
@@ -116,36 +116,25 @@ void PopClient::incomingData() | |||
116 | // char *md5Digest; | 116 | // char *md5Digest; |
117 | char md5Digest[16]; | 117 | char md5Digest[16]; |
118 | // if ( !socket->canReadLine() ) | 118 | // if ( !socket->canReadLine() ) |
119 | // return; | 119 | // return; |
120 | 120 | ||
121 | response = socket->readLine(); | 121 | response = socket->readLine(); |
122 | //qDebug(response +" %d", status); | ||
123 | 122 | ||
124 | switch(status) { | 123 | switch(status) { |
125 | //logging in | 124 | //logging in |
126 | case Init: { | 125 | case Init: { |
127 | #ifdef APOP_TEST | 126 | #ifdef APOP_TEST |
128 | start = response.find('<',0); | 127 | start = response.find('<',0); |
129 | end = response.find('>', start); | 128 | end = response.find('>', start); |
130 | if( start >= 0 && end > start ) | 129 | if( start >= 0 && end > start ) |
131 | { | 130 | { |
132 | timeStamp = response.mid( start , end - start + 1); | 131 | timeStamp = response.mid( start , end - start + 1); |
133 | md5Source = timeStamp + popPassword; | 132 | md5Source = timeStamp + popPassword; |
134 | //qDebug( md5Source); | ||
135 | // for( int i = 0; i < md5Source.length(); i++) { | ||
136 | // buff[i] = (QChar)md5Source[i]; | ||
137 | // } | ||
138 | 133 | ||
139 | md5_buffer( (char const *)md5Source, md5Source.length(),&md5Digest[0]); | 134 | md5_buffer( (char const *)md5Source, md5Source.length(),&md5Digest[0]); |
140 | // md5_buffer(char const *buffer, unsigned int len, char *digest); | ||
141 | |||
142 | // MD5_Init( &ctx); | ||
143 | // MD5_Update( &ctx, buff, sizeof( buff) ); | ||
144 | // MD5_Final( md5Digest, &ctx); | ||
145 | // MD5( buff, md5Source.length(), md5Digest); | ||
146 | 135 | ||
147 | for(int j =0;j < MD5_DIGEST_LENGTH ;j++) | 136 | for(int j =0;j < MD5_DIGEST_LENGTH ;j++) |
148 | { | 137 | { |
149 | printf("%x", md5Digest[j]); | 138 | printf("%x", md5Digest[j]); |
150 | } | 139 | } |
151 | printf("\n"); | 140 | printf("\n"); |
@@ -161,13 +150,13 @@ void PopClient::incomingData() | |||
161 | *stream << "USER " << popUserName << "\r\n"; | 150 | *stream << "USER " << popUserName << "\r\n"; |
162 | status = Pass; | 151 | status = Pass; |
163 | } | 152 | } |
164 | 153 | ||
165 | break; | 154 | break; |
166 | } | 155 | } |
167 | //password shhh. don't tell anyone (implement APOP...) | 156 | |
168 | case Pass: { | 157 | case Pass: { |
169 | *stream << "PASS " << popPassword << "\r\n"; | 158 | *stream << "PASS " << popPassword << "\r\n"; |
170 | status = Stat; | 159 | status = Stat; |
171 | break; | 160 | break; |
172 | } | 161 | } |
173 | //ask for number of messages | 162 | //ask for number of messages |
@@ -245,13 +234,14 @@ void PopClient::incomingData() | |||
245 | } | 234 | } |
246 | } | 235 | } |
247 | } | 236 | } |
248 | //Read message number x, count upwards to messageCount | 237 | //Read message number x, count upwards to messageCount |
249 | case Retr: { | 238 | case Retr: { |
250 | if (status != Quit) { | 239 | if (status != Quit) { |
251 | if (!preview || mailSize <= headerLimit) { | 240 | if (mailSize <= headerLimit) |
241 | { | ||
252 | *stream << "RETR " << messageCount << "\r\n"; | 242 | *stream << "RETR " << messageCount << "\r\n"; |
253 | } else { //only header | 243 | } else { //only header |
254 | *stream << "TOP " << messageCount << " 0\r\n"; | 244 | *stream << "TOP " << messageCount << " 0\r\n"; |
255 | } | 245 | } |
256 | messageCount++; | 246 | messageCount++; |
257 | status = Ignore; | 247 | status = Ignore; |
@@ -280,13 +270,15 @@ void PopClient::incomingData() | |||
280 | emit downloadedSize(message.length()); | 270 | emit downloadedSize(message.length()); |
281 | int x = message.find("\r\n.\r\n",-5); | 271 | int x = message.find("\r\n.\r\n",-5); |
282 | if (x == -1) { | 272 | if (x == -1) { |
283 | break; | 273 | break; |
284 | } else { //message reach entire size | 274 | } else { //message reach entire size |
285 | //complete mail downloaded | 275 | //complete mail downloaded |
286 | if ( (!preview ) || ((preview) && (mailSize <= headerLimit)) ){ | 276 | //if ( (!preview ) || ((preview) && (mailSize <= headerLimit)) ){ |
277 | if ( mailSize <= headerLimit) | ||
278 | { | ||
287 | emit newMessage(message, messageCount-1, mailSize, TRUE); | 279 | emit newMessage(message, messageCount-1, mailSize, TRUE); |
288 | } else { //incomplete mail downloaded | 280 | } else { //incomplete mail downloaded |
289 | emit newMessage(message, messageCount-1, mailSize, FALSE); | 281 | emit newMessage(message, messageCount-1, mailSize, FALSE); |
290 | } | 282 | } |
291 | if (messageCount > newMessages) //that was the last message | 283 | if (messageCount > newMessages) //that was the last message |
292 | status = Quit; | 284 | status = Quit; |