-rw-r--r-- | PumpKINDlg.cpp | 20 | ||||
-rw-r--r-- | pumpkin.rc | 2 |
2 files changed, 15 insertions, 7 deletions
diff --git a/PumpKINDlg.cpp b/PumpKINDlg.cpp index fc24596..b6b8a36 100644 --- a/PumpKINDlg.cpp +++ b/PumpKINDlg.cpp | |||
@@ -920,51 +920,55 @@ BOOL rv = TRUE; | |||
920 | } | 920 | } |
921 | } | 921 | } |
922 | UpdateList(); | 922 | UpdateList(); |
923 | DoXfer(); | 923 | DoXfer(); |
924 | } | 924 | } |
925 | break; | 925 | break; |
926 | case tftp::opACK: | 926 | case tftp::opACK: |
927 | m_ACK=p->data.m_ACK.Block(); | 927 | m_ACK=p->data.m_ACK.Block(); |
928 | if(state!=stateFinish){ | 928 | if(state!=stateFinish){ |
929 | UpdateList(); | 929 | UpdateList(); |
930 | DoXfer(); | 930 | DoXfer(); |
931 | } | 931 | } |
932 | break; | 932 | break; |
933 | case tftp::opERROR: | 933 | case tftp::opERROR: |
934 | { | 934 | { |
935 | ASSERT(m_Daddy); | 935 | ASSERT(m_Daddy); |
936 | CString tmp; | 936 | CString tmp; |
937 | tmp.Format(IDS_LOG_GOTTFTPERROR,p->data.m_ERROR.Code(),(LPCTSTR)p->errMessage()); | 937 | tmp.Format(IDS_LOG_GOTTFTPERROR,p->data.m_ERROR.Code(),(LPCTSTR)p->errMessage()); |
938 | m_Daddy->LogLine(tmp); | 938 | m_Daddy->LogLine(tmp); |
939 | } | 939 | } |
940 | Destroy(FALSE); | 940 | Destroy(FALSE); |
941 | rv = FALSE; | 941 | rv = FALSE; |
942 | break; | 942 | break; |
943 | default: | 943 | default: |
944 | ASSERT(m_Daddy); | 944 | { |
945 | m_Daddy->LogLine(IDS_LOG_XFEROPCODE); | 945 | ASSERT(m_Daddy); |
946 | // *** Self destruct maybe?? | 946 | CString tmp; |
947 | tmp.Format(IDS_LOG_XFEROPCODE,p->Opcode()); | ||
948 | m_Daddy->LogLine(tmp); | ||
949 | // *** Self destruct maybe?? | ||
950 | } | ||
947 | break; | 951 | break; |
948 | } | 952 | } |
949 | return rv; | 953 | return rv; |
950 | } | 954 | } |
951 | 955 | ||
952 | BOOL CWRQSocket::OnTFTP(tftp* p) | 956 | BOOL CWRQSocket::OnTFTP(tftp* p) |
953 | { | 957 | { |
954 | switch(p->Opcode()){ | 958 | switch(p->Opcode()){ |
955 | case tftp::opOACK: | 959 | case tftp::opOACK: |
956 | ASSERT(state!=stateFinish); | 960 | ASSERT(state!=stateFinish); |
957 | { | 961 | { |
958 | if(m_bResume) | 962 | if(m_bResume) |
959 | m_ACK=m_File.GetLength()/m_blkSize; | 963 | m_ACK=m_File.GetLength()/m_blkSize; |
960 | else | 964 | else |
961 | m_ACK=0; | 965 | m_ACK=0; |
962 | tftp::tftpOptions o; | 966 | tftp::tftpOptions o; |
963 | if(p->GetOptions(&o)){ | 967 | if(p->GetOptions(&o)){ |
964 | CString v; | 968 | CString v; |
965 | if(o.Lookup(tftpoBSize,v)){ | 969 | if(o.Lookup(tftpoBSize,v)){ |
966 | m_blkSize=atoi(v); | 970 | m_blkSize=atoi(v); |
967 | if(!m_blkSize){// *** More sanity checks | 971 | if(!m_blkSize){// *** More sanity checks |
968 | Deny(tftp::errOption,IDS_TFTP_ERROR_BSIZE); | 972 | Deny(tftp::errOption,IDS_TFTP_ERROR_BSIZE); |
969 | return TRUE; | 973 | return TRUE; |
970 | } | 974 | } |
@@ -1000,51 +1004,55 @@ BOOL CWRQSocket::OnTFTP(tftp* p) | |||
1000 | ASSERT(m_Daddy); | 1004 | ASSERT(m_Daddy); |
1001 | CString tmp; | 1005 | CString tmp; |
1002 | tmp.Format(IDS_LOG_XFERWRQFINISHED,(LPCTSTR)m_FileName); | 1006 | tmp.Format(IDS_LOG_XFERWRQFINISHED,(LPCTSTR)m_FileName); |
1003 | m_Daddy->LogLine(tmp); | 1007 | m_Daddy->LogLine(tmp); |
1004 | } | 1008 | } |
1005 | m_ACK=block; | 1009 | m_ACK=block; |
1006 | m_LastSlack=m_blkSize-bytes; | 1010 | m_LastSlack=m_blkSize-bytes; |
1007 | UpdateList(); | 1011 | UpdateList(); |
1008 | DoXfer(); | 1012 | DoXfer(); |
1009 | }CATCH(CFileException,e){ | 1013 | }CATCH(CFileException,e){ |
1010 | Deny(e); | 1014 | Deny(e); |
1011 | }END_CATCH | 1015 | }END_CATCH |
1012 | } | 1016 | } |
1013 | break; | 1017 | break; |
1014 | case tftp::opERROR: | 1018 | case tftp::opERROR: |
1015 | { | 1019 | { |
1016 | ASSERT(m_Daddy); | 1020 | ASSERT(m_Daddy); |
1017 | CString tmp; | 1021 | CString tmp; |
1018 | tmp.Format(IDS_LOG_GOTTFTPERROR,p->data.m_ERROR.Code(),(LPCTSTR)p->errMessage()); | 1022 | tmp.Format(IDS_LOG_GOTTFTPERROR,p->data.m_ERROR.Code(),(LPCTSTR)p->errMessage()); |
1019 | m_Daddy->LogLine(tmp); | 1023 | m_Daddy->LogLine(tmp); |
1020 | } | 1024 | } |
1021 | Destroy(FALSE); | 1025 | Destroy(FALSE); |
1022 | return FALSE; | 1026 | return FALSE; |
1023 | default: | 1027 | default: |
1024 | ASSERT(m_Daddy); | 1028 | { |
1025 | m_Daddy->LogLine(IDS_LOG_XFEROPCODE); | 1029 | ASSERT(m_Daddy); |
1026 | // *** Self destruct maybe?? | 1030 | CString tmp; |
1031 | tmp.Format(IDS_LOG_XFEROPCODE,p->Opcode()); | ||
1032 | m_Daddy->LogLine(tmp); | ||
1033 | // *** Self destruct maybe?? | ||
1034 | } | ||
1027 | break; | 1035 | break; |
1028 | } | 1036 | } |
1029 | return TRUE; | 1037 | return TRUE; |
1030 | } | 1038 | } |
1031 | 1039 | ||
1032 | void tftp::SetOpcode(WORD op) | 1040 | void tftp::SetOpcode(WORD op) |
1033 | { | 1041 | { |
1034 | opcode = REVERSEBYTES(op); | 1042 | opcode = REVERSEBYTES(op); |
1035 | } | 1043 | } |
1036 | void tftp::tftpDATA::SetBlock(WORD b) | 1044 | void tftp::tftpDATA::SetBlock(WORD b) |
1037 | { | 1045 | { |
1038 | block=REVERSEBYTES(b); | 1046 | block=REVERSEBYTES(b); |
1039 | } | 1047 | } |
1040 | WORD tftp::tftpDATA::Block() | 1048 | WORD tftp::tftpDATA::Block() |
1041 | { | 1049 | { |
1042 | return REVERSEBYTES(block); | 1050 | return REVERSEBYTES(block); |
1043 | } | 1051 | } |
1044 | WORD tftp::tftpACK::Block() | 1052 | WORD tftp::tftpACK::Block() |
1045 | { | 1053 | { |
1046 | return REVERSEBYTES(block); | 1054 | return REVERSEBYTES(block); |
1047 | } | 1055 | } |
1048 | void tftp::tftpACK::SetBlock(WORD b) | 1056 | void tftp::tftpACK::SetBlock(WORD b) |
1049 | { | 1057 | { |
1050 | block = REVERSEBYTES(b); | 1058 | block = REVERSEBYTES(b); |
@@ -474,49 +474,49 @@ BEGIN | |||
474 | IDS_FMT_BYTES "%lu" | 474 | IDS_FMT_BYTES "%lu" |
475 | IDP_SOCKETS_INIT_FAILED "Windows sockets initialization failed." | 475 | IDP_SOCKETS_INIT_FAILED "Windows sockets initialization failed." |
476 | IDS_TFTP_ERROR_ACCESS "Access violation" | 476 | IDS_TFTP_ERROR_ACCESS "Access violation" |
477 | IDS_TFTP_ERROR_NOTFOUND "File not found" | 477 | IDS_TFTP_ERROR_NOTFOUND "File not found" |
478 | IDS_TFTP_ERROR_DIRFULL "Directory is full" | 478 | IDS_TFTP_ERROR_DIRFULL "Directory is full" |
479 | IDS_TFTP_ERROR_SHARING "Sharing violation" | 479 | IDS_TFTP_ERROR_SHARING "Sharing violation" |
480 | IDS_TFTP_ERROR_DISKFULL "Disk full" | 480 | IDS_TFTP_ERROR_DISKFULL "Disk full" |
481 | IDS_TFTP_ERROR_UNDEFINED "Undefined error" | 481 | IDS_TFTP_ERROR_UNDEFINED "Undefined error" |
482 | IDS_LOG_START "PumpKIN started" | 482 | IDS_LOG_START "PumpKIN started" |
483 | IDS_LOG_LISTENRECEIVEERROR "Error listening for incoming connections" | 483 | IDS_LOG_LISTENRECEIVEERROR "Error listening for incoming connections" |
484 | END | 484 | END |
485 | 485 | ||
486 | STRINGTABLE DISCARDABLE | 486 | STRINGTABLE DISCARDABLE |
487 | BEGIN | 487 | BEGIN |
488 | IDS_LOG_LISTENACCEPTERROR "Error accepting incoming connection" | 488 | IDS_LOG_LISTENACCEPTERROR "Error accepting incoming connection" |
489 | IDS_LOG_RRQSERVE "'%s' of type '%s' is requested from %s" | 489 | IDS_LOG_RRQSERVE "'%s' of type '%s' is requested from %s" |
490 | IDS_LOG_LISTENOPCODE "Invalid opcode in initial connection request" | 490 | IDS_LOG_LISTENOPCODE "Invalid opcode in initial connection request" |
491 | IDS_LOG_XFERUDPSEND "UDP packet send failed" | 491 | IDS_LOG_XFERUDPSEND "UDP packet send failed" |
492 | IDS_LOG_XFERRECEIVE "Error on xfer socket" | 492 | IDS_LOG_XFERRECEIVE "Error on xfer socket" |
493 | IDS_LOG_XFERSEND "Error on xfer socket" | 493 | IDS_LOG_XFERSEND "Error on xfer socket" |
494 | IDS_LOG_XFERUDPRECEIVE "UDP packet receive failed" | 494 | IDS_LOG_XFERUDPRECEIVE "UDP packet receive failed" |
495 | IDS_LOG_XFERSOURCETID "Packet from unexpected source" | 495 | IDS_LOG_XFERSOURCETID "Packet from unexpected source" |
496 | IDS_LOG_SENTTFTPERROR ":%u: %s" | 496 | IDS_LOG_SENTTFTPERROR ":%u: %s" |
497 | IDS_LOG_GOTTFTPERROR "TFTP:%u: %s" | 497 | IDS_LOG_GOTTFTPERROR "TFTP:%u: %s" |
498 | IDS_LOG_XFEROPCODE "Invalid opcode during transfer received" | 498 | IDS_LOG_XFEROPCODE "Invalid opcode (%u) during transfer received" |
499 | IDS_LOG_XFERRRQFINISHED "Transfer of '%s' has successfully completed" | 499 | IDS_LOG_XFERRRQFINISHED "Transfer of '%s' has successfully completed" |
500 | IDS_TITLE_OPTIONS "Options" | 500 | IDS_TITLE_OPTIONS "Options" |
501 | IDS_LOG_WRQSERVE "Writing of '%s' of type '%s' is requested by %s" | 501 | IDS_LOG_WRQSERVE "Writing of '%s' of type '%s' is requested by %s" |
502 | IDS_TFTP_ERROR_FAILEDTORENAME "Too many clones of the file" | 502 | IDS_TFTP_ERROR_FAILEDTORENAME "Too many clones of the file" |
503 | IDS_RENAME_TITLE "Save As" | 503 | IDS_RENAME_TITLE "Save As" |
504 | END | 504 | END |
505 | 505 | ||
506 | STRINGTABLE DISCARDABLE | 506 | STRINGTABLE DISCARDABLE |
507 | BEGIN | 507 | BEGIN |
508 | IDS_LOG_TIMEDOUT "Transmission of '%s' is timed out" | 508 | IDS_LOG_TIMEDOUT "Transmission of '%s' is timed out" |
509 | IDS_CONFIRMEXIT_TITLE "Exit" | 509 | IDS_CONFIRMEXIT_TITLE "Exit" |
510 | IDS_CONFIRMEXIT_TEXT "File transmission is currently in progress. Are you sure you want to exit?" | 510 | IDS_CONFIRMEXIT_TEXT "File transmission is currently in progress. Are you sure you want to exit?" |
511 | IDS_LOG_XFERWRQFINISHED "Transfer of '%s' has successfully completed" | 511 | IDS_LOG_XFERWRQFINISHED "Transfer of '%s' has successfully completed" |
512 | IDS_LOG_XFERABORTED "Transfer of '%s' was aborted" | 512 | IDS_LOG_XFERABORTED "Transfer of '%s' was aborted" |
513 | IDS_TITLE_PUTREQUEST "Send file" | 513 | IDS_TITLE_PUTREQUEST "Send file" |
514 | IDS_TITLE_GETREQUEST "Fetch file" | 514 | IDS_TITLE_GETREQUEST "Fetch file" |
515 | IDS_WTALKHEADING "Talk with " | 515 | IDS_WTALKHEADING "Talk with " |
516 | IDS_TITLE_BROWSEFILE "Browse" | 516 | IDS_TITLE_BROWSEFILE "Browse" |
517 | IDS_LOG_RESOLVEFAILED "Failed to resolve host address for '%s'" | 517 | IDS_LOG_RESOLVEFAILED "Failed to resolve host address for '%s'" |
518 | IDS_LOG_FAILEDLOCALFILE "Failed to open local file '%s'" | 518 | IDS_LOG_FAILEDLOCALFILE "Failed to open local file '%s'" |
519 | IDS_LOG_FAILEDTOOPEN "Failed to open '%s'" | 519 | IDS_LOG_FAILEDTOOPEN "Failed to open '%s'" |
520 | IDS_OTALXHEADING "Open Talks: talking to " | 520 | IDS_OTALXHEADING "Open Talks: talking to " |
521 | IDS_REGISTRYKEY "Klever Group" | 521 | IDS_REGISTRYKEY "Klever Group" |
522 | IDS_KLEVERNET_URL "http://www.klever.net/" | 522 | IDS_KLEVERNET_URL "http://www.klever.net/" |