IMPLEMENT_DYNAMIC(CGitProgressDlg, CResizableStandAloneDialog)\r
CGitProgressDlg::CGitProgressDlg(CWnd* pParent /*=NULL*/)\r
: CResizableStandAloneDialog(CGitProgressDlg::IDD, pParent)\r
+ , m_bCancelled(FALSE)\r
+ , m_pThread(NULL)\r
#if 0\r
, m_Revision(_T("HEAD"))\r
//, m_RevisionEnd(0)\r
, m_bLockWarning(false)\r
, m_bLockExists(false)\r
- , m_bCancelled(FALSE)\r
, m_bThreadRunning(FALSE)\r
, m_nConflicts(0)\r
, m_bErrorsOccurred(FALSE)\r
, m_bMergesAddsDeletesOccurred(FALSE)\r
- , m_pThread(NULL)\r
+ \r
, m_options(ProgOptNone)\r
, m_dwCloseOnEnd((DWORD)-1)\r
, m_bFinishedItemAdded(false)\r
data->color = m_Colors.GetColor(CColors::Modified);\r
break;\r
\r
+ case git_wc_notify_sendmail_retry:\r
+ data->sActionColumnText.LoadString(IDS_SVNACTION_SENDMAIL_RETRY);\r
+ data->sPathColumnText.Empty();\r
+ data->color = m_Colors.GetColor(CColors::Modified);\r
+ break;\r
+\r
\r
case git_wc_notify_resolved:\r
data->sActionColumnText.LoadString(IDS_SVNACTION_RESOLVE);\r
CTGitPath path;\r
Notify(path,git_wc_notify_sendmail_start);\r
CString err;\r
- if(CPatch::Send(m_targetPathList,m_SendMailTO,m_SendMailCC,m_SendMailSubject,this->m_SendMailFlags&SENDMAIL_COMBINED,&err))\r
+ if(CPatch::Send(m_targetPathList,m_SendMailTO,m_SendMailCC,m_SendMailSubject,this->m_SendMailFlags&SENDMAIL_ATTACHMENT,&err))\r
{\r
Notify(path,git_wc_notify_sendmail_error,ret,&err);\r
ret = false;\r
{\r
CPatch patch;\r
Notify(m_targetPathList[i],git_wc_notify_sendmail_start);\r
- int ret=patch.Send((CString&)m_targetPathList[i].GetWinPathString(),this->m_SendMailTO,\r
- this->m_SendMailCC,this->m_SendMailFlags&SENDMAIL_ATTACHMENT);\r
- if(ret)\r
+\r
+ int retry=0;\r
+ while(retry<3)\r
{\r
- Notify(m_targetPathList[i],git_wc_notify_sendmail_error,ret,&patch.m_LastError);\r
- ret = false;\r
+ int ret=patch.Send((CString&)m_targetPathList[i].GetWinPathString(),this->m_SendMailTO,\r
+ this->m_SendMailCC,this->m_SendMailFlags&SENDMAIL_ATTACHMENT);\r
+ if(ret)\r
+ {\r
+ Notify(m_targetPathList[i],git_wc_notify_sendmail_error,ret,&patch.m_LastError);\r
+ ret = false;\r
+ }else\r
+ break;\r
+\r
+ Notify(m_targetPathList[i],git_wc_notify_sendmail_retry,ret,&patch.m_LastError);\r
+\r
+ retry++;\r
+ Sleep(2000);\r
+ if(m_bCancelled)\r
+ {\r
+ Notify(m_targetPathList[i],git_wc_notify_sendmail_retry,ret,&CString("User Canceled"));\r
+ return false;\r
+ }\r
}\r
Notify(m_targetPathList[i],git_wc_notify_sendmail_done,ret);\r
- if(m_bCancelled)\r
- return false;\r
+ \r
}\r
}\r
return ret;\r
m_csPartBoundary = _T( "WC_MAIL_PaRt_BoUnDaRy_05151998" );\r
m_csNoMIMEText = _T( "This is a multi-part message in MIME format." );\r
//m_csCharSet = _T("\r\n\tcharset=\"iso-8859-1\"\r\n");\r
+\r
+ AfxSocketInit();\r
}\r
\r
CHwSMTP::~CHwSMTP()\r
std::map<CString,std::vector<CString>>::iterator itr1 = Address.begin();\r
for( ; itr1 != Address.end(); ++itr1 )\r
{\r
- PDNS_RECORD pDnsRecord; \r
-\r
+ PDNS_RECORD pDnsRecord;\r
+ PDNS_RECORD pNext;\r
+ \r
DnsQuery(itr1->first ,\r
- DNS_TYPE_MX,DNS_QUERY_BYPASS_CACHE,\r
+ DNS_TYPE_MX,DNS_QUERY_STANDARD,\r
NULL, //Contains DNS server IP address.\r
&pDnsRecord, //Resource record that contains the response.\r
NULL\r
if(to.IsEmpty())\r
continue;\r
\r
- if(!SendEmail(pDnsRecord->Data.MX.pNameExchange,NULL,NULL,false,\r
+ pNext=pDnsRecord;\r
+ while(pNext)\r
+ {\r
+ \r
+ if(SendEmail(pNext->Data.MX.pNameExchange,NULL,NULL,false,\r
lpszAddrFrom,to,lpszSubject,lpszBody,lpszCharSet,pStrAryAttach,pStrAryCC,\r
25,pSend,lpszAddrTo))\r
+ break;\r
+ pNext=pNext->pNext;\r
+ }\r
+ if(pNext == NULL)\r
ret = false;\r
\r
//SendEmail(itr1.first,NULL,NULL,false,lpszAddrFrom,,lpszFromname);\r
m_SendSock.Close();\r
if ( !m_SendSock.Create () )\r
{\r
+ int nResult = GetLastError();\r
m_csLastError.Format ( _T("Create socket failed!") );\r
return FALSE;\r
}\r
if ( !GetResponse( _T("220") ) ) return FALSE;\r
\r
m_bConnected = TRUE;\r
- return SendEmail();\r
+ BOOL ret= SendEmail();\r
+\r
+ m_SendSock.Close();\r
\r
+ return ret;\r
}\r
\r
\r