summaryrefslogtreecommitdiff
path: root/noncore/net/mailit/popclient.cpp
Unidiff
Diffstat (limited to 'noncore/net/mailit/popclient.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mailit/popclient.cpp20
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;