summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/smtpwrapper.cpp24
1 files changed, 11 insertions, 13 deletions
diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
index 00181ff..4764b77 100644
--- a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
@@ -538,7 +538,7 @@ void SMTPwrapper::smtpSend( mailmime *mail,bool later, SMTPaccount *smtp )
538 538
539int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMTPaccount *smtp ) 539int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMTPaccount *smtp )
540{ 540{
541 char *server, *user, *pass; 541 const char *server, *user, *pass;
542 bool ssl; 542 bool ssl;
543 uint16_t port; 543 uint16_t port;
544 mailsmtp *session; 544 mailsmtp *session;
@@ -546,7 +546,7 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT
546 546
547 result = 1; 547 result = 1;
548 server = user = pass = 0; 548 server = user = pass = 0;
549 server = strdup( smtp->getServer().latin1() ); 549 server = smtp->getServer().latin1();
550 ssl = smtp->getSSL(); 550 ssl = smtp->getSSL();
551 port = smtp->getPort().toUInt(); 551 port = smtp->getPort().toUInt();
552 552
@@ -561,7 +561,7 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT
561 qDebug( "No SSL session" ); 561 qDebug( "No SSL session" );
562 err = mailsmtp_socket_connect( session, server, port ); 562 err = mailsmtp_socket_connect( session, server, port );
563 } 563 }
564 if ( err != MAILSMTP_NO_ERROR ) {result = 0;goto free_mem_session;} 564 if ( err != MAILSMTP_NO_ERROR ) {qDebug("Error init connection");result = 0;goto free_mem_session;}
565 565
566 err = mailsmtp_init( session ); 566 err = mailsmtp_init( session );
567 if ( err != MAILSMTP_NO_ERROR ) {result = 0; goto free_con_session;} 567 if ( err != MAILSMTP_NO_ERROR ) {result = 0; goto free_con_session;}
@@ -569,25 +569,28 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size, SMT
569 qDebug( "INIT OK" ); 569 qDebug( "INIT OK" );
570 570
571 if ( smtp->getLogin() ) { 571 if ( smtp->getLogin() ) {
572 qDebug("smtp with auth");
572 if ( smtp->getUser().isEmpty() || smtp->getPassword().isEmpty() ) { 573 if ( smtp->getUser().isEmpty() || smtp->getPassword().isEmpty() ) {
573 // get'em 574 // get'em
574 LoginDialog login( smtp->getUser(), smtp->getPassword(), NULL, 0, true ); 575 LoginDialog login( smtp->getUser(), smtp->getPassword(), NULL, 0, true );
575 login.show(); 576 login.show();
576 if ( QDialog::Accepted == login.exec() ) { 577 if ( QDialog::Accepted == login.exec() ) {
577 // ok 578 // ok
578 user = strdup( login.getUser().latin1() ); 579 user = login.getUser().latin1();
579 pass = strdup( login.getPassword().latin1() ); 580 pass = login.getPassword().latin1();
580 } else { 581 } else {
581 result = 0; goto free_con_session; 582 result = 0; goto free_con_session;
582 } 583 }
583 } else { 584 } else {
584 user = strdup( smtp->getUser().latin1() ); 585 user = smtp->getUser().latin1();
585 pass = strdup( smtp->getPassword().latin1() ); 586 pass = smtp->getPassword().latin1();
586 } 587 }
587 qDebug( "session->auth: %i", session->auth); 588 qDebug( "session->auth: %i", session->auth);
588 err = mailsmtp_auth( session, user, pass ); 589 err = mailsmtp_auth( session, (char*)user, (char*)pass );
589 if ( err == MAILSMTP_NO_ERROR ) qDebug("auth ok"); 590 if ( err == MAILSMTP_NO_ERROR ) qDebug("auth ok");
590 qDebug( "Done auth!" ); 591 qDebug( "Done auth!" );
592 } else {
593 qDebug("SMTP without auth");
591 } 594 }
592 595
593 err = mailsmtp_send( session, from, rcpts, data, size ); 596 err = mailsmtp_send( session, from, rcpts, data, size );
@@ -604,11 +607,6 @@ free_con_session:
604free_mem_session: 607free_mem_session:
605 mailsmtp_free( session ); 608 mailsmtp_free( session );
606free_mem: 609free_mem:
607 if (server) free( server );
608 if ( smtp->getLogin() ) {
609 free( user );
610 free( pass );
611 }
612 return result; 610 return result;
613} 611}
614 612