summaryrefslogtreecommitdiffabout
path: root/PumpKINDlg.h
authorMichael Krelin <hacker@klever.net>2006-07-02 22:16:25 (UTC)
committer Michael Krelin <hacker@klever.net>2006-07-02 22:16:25 (UTC)
commit577427e68ef10a4d2b75d28e42b22952ae3bcf23 (patch) (unidiff)
tree24c8fc94ea6524059cab7927ef76639bb1a1a98d /PumpKINDlg.h
parent24e693797daef020ece3fa19bb5acce000e37165 (diff)
downloadpumpkin-577427e68ef10a4d2b75d28e42b22952ae3bcf23.zip
pumpkin-577427e68ef10a4d2b75d28e42b22952ae3bcf23.tar.gz
pumpkin-577427e68ef10a4d2b75d28e42b22952ae3bcf23.tar.bz2
Do not close RRQ socket until the last ACK is received.
git-svn-id: http://svn.klever.net/kin/pumpkin/trunk@152 fe716a7a-6dde-0310-88d9-d003556173a8
Diffstat (limited to 'PumpKINDlg.h') (more/less context) (ignore whitespace changes)
-rw-r--r--PumpKINDlg.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/PumpKINDlg.h b/PumpKINDlg.h
index c5469f1..23c2657 100644
--- a/PumpKINDlg.h
+++ b/PumpKINDlg.h
@@ -303,25 +303,25 @@ public:
303 void PostError(UINT errCode,UINT errID); 303 void PostError(UINT errCode,UINT errID);
304 void PostTFTP(tftp* p,BOOL retryable=FALSE); 304 void PostTFTP(tftp* p,BOOL retryable=FALSE);
305 CXferSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN* sin); 305 CXferSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN* sin);
306 CFile m_File; 306 CFile m_File;
307 virtual ULONG GetACK(); 307 virtual ULONG GetACK();
308 CString m_Type; 308 CString m_Type;
309 CString m_FileName; 309 CString m_FileName;
310 CXferSocket(); 310 CXferSocket();
311 void UpdateList(); 311 void UpdateList();
312 void SetPeer(SOCKADDR_IN *sin); 312 void SetPeer(SOCKADDR_IN *sin);
313 virtual BOOL OnTFTP(tftp* p) = 0; 313 virtual BOOL OnTFTP(tftp* p) = 0;
314 virtual void OnReceive(int nErrorCode); 314 virtual void OnReceive(int nErrorCode);
315 void DoSelect(); 315 void DoSelect(BOOL do_select=FALSE);
316 SOCKADDR_IN m_Peer; 316 SOCKADDR_IN m_Peer;
317 virtual void OnSend(int nErrorCode); 317 virtual void OnSend(int nErrorCode);
318 CPumpKINDlg* m_Daddy; 318 CPumpKINDlg* m_Daddy;
319 CTFTPList m_Queue; 319 CTFTPList m_Queue;
320 320
321 DECLARE_DYNAMIC(CXferSocket) 321 DECLARE_DYNAMIC(CXferSocket)
322}; 322};
323class CWRQSocket : public CXferSocket { 323class CWRQSocket : public CXferSocket {
324public: 324public:
325 BOOL m_bResume; 325 BOOL m_bResume;
326 void OnHostKnown(); 326 void OnHostKnown();
327 virtual void OnResolved(); 327 virtual void OnResolved();
@@ -332,24 +332,25 @@ public:
332 BOOL SaveAs(CString& fn); 332 BOOL SaveAs(CString& fn);
333 BOOL RenameFile(CString& fn); 333 BOOL RenameFile(CString& fn);
334 BOOL m_Rename; 334 BOOL m_Rename;
335 BOOL ConfirmRequest(); 335 BOOL ConfirmRequest();
336 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL); 336 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL);
337 CWRQSocket(CPumpKINDlg* daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin); 337 CWRQSocket(CPumpKINDlg* daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin);
338 BOOL OnTFTP(tftp* p); 338 BOOL OnTFTP(tftp* p);
339 339
340 DECLARE_DYNAMIC(CWRQSocket) 340 DECLARE_DYNAMIC(CWRQSocket)
341}; 341};
342class CRRQSocket : public CXferSocket { 342class CRRQSocket : public CXferSocket {
343public: 343public:
344 UINT m_ACKtoClose;
344 void OnHostKnown(); 345 void OnHostKnown();
345 virtual void OnResolved(); 346 virtual void OnResolved();
346 BOOL ConfirmRequest(); 347 BOOL ConfirmRequest();
347 WORD m_LastSlack; 348 WORD m_LastSlack;
348 UINT m_ACK; 349 UINT m_ACK;
349 BOOL OnTFTP(tftp* p); 350 BOOL OnTFTP(tftp* p);
350 ULONG GetACK(void); 351 ULONG GetACK(void);
351 void DoXfer(); 352 void DoXfer();
352 CRRQSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin); 353 CRRQSocket(CPumpKINDlg *daddy,LPCTSTR fileName,LPCTSTR type,SOCKADDR_IN *sin);
353 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL); 354 BOOL Create(LPCTSTR localFile=NULL,LPCTSTR hostName=NULL);
354 355
355 DECLARE_DYNAMIC(CRRQSocket) 356 DECLARE_DYNAMIC(CRRQSocket)