author | Michael Krelin <hacker@klever.net> | 2011-04-27 14:18:48 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2011-04-27 14:18:48 (UTC) |
commit | c3b240e06bae3b663505e2b1c52eb67c34ddd3ea (patch) (unidiff) | |
tree | 06793f5d56a8129bfdaaee441fc34fbb361ddb13 | |
parent | d097b824b7fcad001c9581fb2e322bf3e3e5961d (diff) | |
download | pumpkin-c3b240e06bae3b663505e2b1c52eb67c34ddd3ea.zip pumpkin-c3b240e06bae3b663505e2b1c52eb67c34ddd3ea.tar.gz pumpkin-c3b240e06bae3b663505e2b1c52eb67c34ddd3ea.tar.bz2 |
network settings: bind to specific ip address
Signed-off-by: Michael Krelin <hacker@klever.net>
-rwxr-xr-x[-rw-r--r--] | PropsNetwork.cpp | 3 | ||||
-rwxr-xr-x[-rw-r--r--] | PropsNetwork.h | 1 | ||||
-rwxr-xr-x | PumpKINDlg.cpp | 16 | ||||
-rwxr-xr-x[-rw-r--r--] | PumpKINDlg.h | 1 | ||||
-rw-r--r-- | help/pumpkin.rtf | 291 | ||||
-rw-r--r-- | help/pumpkin.xml | 1 | ||||
-rw-r--r-- | pumpkin.clw | 12 | ||||
-rwxr-xr-x[-rw-r--r--] | pumpkin.rc | 30 | ||||
-rwxr-xr-x[-rw-r--r--] | resource.h | 5 |
9 files changed, 188 insertions, 172 deletions
diff --git a/PropsNetwork.cpp b/PropsNetwork.cpp index b5585d7..2dd5913 100644..100755 --- a/PropsNetwork.cpp +++ b/PropsNetwork.cpp | |||
@@ -20,12 +20,13 @@ CPropsNetwork::CPropsNetwork() : CPropertyPage(CPropsNetwork::IDD) | |||
20 | { | 20 | { |
21 | //{{AFX_DATA_INIT(CPropsNetwork) | 21 | //{{AFX_DATA_INIT(CPropsNetwork) |
22 | m_ListenPort = 0; | 22 | m_ListenPort = 0; |
23 | m_SpeakPort = 0; | 23 | m_SpeakPort = 0; |
24 | m_TimeOut = 0; | 24 | m_TimeOut = 0; |
25 | m_BlockSize = 0; | 25 | m_BlockSize = 0; |
26 | m_ListenAddress = _T(""); | ||
26 | //}}AFX_DATA_INIT | 27 | //}}AFX_DATA_INIT |
27 | } | 28 | } |
28 | 29 | ||
29 | CPropsNetwork::~CPropsNetwork() | 30 | CPropsNetwork::~CPropsNetwork() |
30 | { | 31 | { |
31 | } | 32 | } |
@@ -40,12 +41,14 @@ void CPropsNetwork::DoDataExchange(CDataExchange* pDX) | |||
40 | DDX_Control(pDX, IDC_LISTENSPIN, m_ListenSpinCtl); | 41 | DDX_Control(pDX, IDC_LISTENSPIN, m_ListenSpinCtl); |
41 | DDX_Text(pDX, IDC_LISTENPORT, m_ListenPort); | 42 | DDX_Text(pDX, IDC_LISTENPORT, m_ListenPort); |
42 | DDX_Text(pDX, IDC_SPEAKPORT, m_SpeakPort); | 43 | DDX_Text(pDX, IDC_SPEAKPORT, m_SpeakPort); |
43 | DDX_Text(pDX, IDC_TIMEOUT, m_TimeOut); | 44 | DDX_Text(pDX, IDC_TIMEOUT, m_TimeOut); |
44 | DDV_MinMaxUInt(pDX, m_TimeOut, 5, 60); | 45 | DDV_MinMaxUInt(pDX, m_TimeOut, 5, 60); |
45 | DDX_Text(pDX, IDC_BLOCKSIZE, m_BlockSize); | 46 | DDX_Text(pDX, IDC_BLOCKSIZE, m_BlockSize); |
47 | DDX_Text(pDX, IDC_LISTENADDRESS, m_ListenAddress); | ||
48 | DDV_MaxChars(pDX, m_ListenAddress, 15); | ||
46 | //}}AFX_DATA_MAP | 49 | //}}AFX_DATA_MAP |
47 | } | 50 | } |
48 | 51 | ||
49 | 52 | ||
50 | BEGIN_MESSAGE_MAP(CPropsNetwork, CPropertyPage) | 53 | BEGIN_MESSAGE_MAP(CPropsNetwork, CPropertyPage) |
51 | //{{AFX_MSG_MAP(CPropsNetwork) | 54 | //{{AFX_MSG_MAP(CPropsNetwork) |
diff --git a/PropsNetwork.h b/PropsNetwork.h index 67d0b53..565b090 100644..100755 --- a/PropsNetwork.h +++ b/PropsNetwork.h | |||
@@ -21,12 +21,13 @@ public: | |||
21 | CSpinButtonCtrlm_SpeakSpinCtl; | 21 | CSpinButtonCtrlm_SpeakSpinCtl; |
22 | CSpinButtonCtrlm_ListenSpinCtl; | 22 | CSpinButtonCtrlm_ListenSpinCtl; |
23 | UINTm_ListenPort; | 23 | UINTm_ListenPort; |
24 | UINTm_SpeakPort; | 24 | UINTm_SpeakPort; |
25 | UINTm_TimeOut; | 25 | UINTm_TimeOut; |
26 | UINTm_BlockSize; | 26 | UINTm_BlockSize; |
27 | CStringm_ListenAddress; | ||
27 | //}}AFX_DATA | 28 | //}}AFX_DATA |
28 | 29 | ||
29 | 30 | ||
30 | // Overrides | 31 | // Overrides |
31 | // ClassWizard generate virtual function overrides | 32 | // ClassWizard generate virtual function overrides |
32 | //{{AFX_VIRTUAL(CPropsNetwork) | 33 | //{{AFX_VIRTUAL(CPropsNetwork) |
diff --git a/PumpKINDlg.cpp b/PumpKINDlg.cpp index 3ff1500..0c5c19b 100755 --- a/PumpKINDlg.cpp +++ b/PumpKINDlg.cpp | |||
@@ -1225,12 +1225,13 @@ CPropsACL acl; | |||
1225 | server.m_TFTPSubdirs=m_bTFTPSubdirs; | 1225 | server.m_TFTPSubdirs=m_bTFTPSubdirs; |
1226 | server.m_WRQMode=m_WRQMode; | 1226 | server.m_WRQMode=m_WRQMode; |
1227 | server.m_PromptTimeOut=m_PromptTimeOut; | 1227 | server.m_PromptTimeOut=m_PromptTimeOut; |
1228 | server.m_LogFile=m_LogFile; | 1228 | server.m_LogFile=m_LogFile; |
1229 | 1229 | ||
1230 | network.m_ListenPort=m_ListenPort; | 1230 | network.m_ListenPort=m_ListenPort; |
1231 | network.m_ListenAddress=m_ListenAddress; | ||
1231 | network.m_SpeakPort=m_SpeakPort; | 1232 | network.m_SpeakPort=m_SpeakPort; |
1232 | network.m_TimeOut=m_TFTPTimeOut.GetTotalSeconds(); | 1233 | network.m_TimeOut=m_TFTPTimeOut.GetTotalSeconds(); |
1233 | network.m_BlockSize=m_BlockSize; | 1234 | network.m_BlockSize=m_BlockSize; |
1234 | 1235 | ||
1235 | sounds.m_Request = m_bnwRequest; | 1236 | sounds.m_Request = m_bnwRequest; |
1236 | sounds.m_Success = m_bnwSuccess; | 1237 | sounds.m_Success = m_bnwSuccess; |
@@ -1248,12 +1249,13 @@ CPropsACL acl; | |||
1248 | m_bTFTPSubdirs=server.m_TFTPSubdirs; | 1249 | m_bTFTPSubdirs=server.m_TFTPSubdirs; |
1249 | m_WRQMode=server.m_WRQMode; | 1250 | m_WRQMode=server.m_WRQMode; |
1250 | m_PromptTimeOut=server.m_PromptTimeOut; | 1251 | m_PromptTimeOut=server.m_PromptTimeOut; |
1251 | m_LogFile=server.m_LogFile; | 1252 | m_LogFile=server.m_LogFile; |
1252 | 1253 | ||
1253 | m_ListenPort=network.m_ListenPort; | 1254 | m_ListenPort=network.m_ListenPort; |
1255 | m_ListenAddress=network.m_ListenAddress; | ||
1254 | m_SpeakPort=network.m_SpeakPort; | 1256 | m_SpeakPort=network.m_SpeakPort; |
1255 | m_TFTPTimeOut=CTimeSpan(network.m_TimeOut); | 1257 | m_TFTPTimeOut=CTimeSpan(network.m_TimeOut); |
1256 | m_BlockSize=network.m_BlockSize; | 1258 | m_BlockSize=network.m_BlockSize; |
1257 | 1259 | ||
1258 | m_bnwRequest = sounds.m_Request; | 1260 | m_bnwRequest = sounds.m_Request; |
1259 | m_bnwSuccess = sounds.m_Success; | 1261 | m_bnwSuccess = sounds.m_Success; |
@@ -1872,12 +1874,13 @@ CWinApp *app = AfxGetApp(); | |||
1872 | m_bListen=app->GetProfileInt("TFTPSettings","Listen",m_bListen); | 1874 | m_bListen=app->GetProfileInt("TFTPSettings","Listen",m_bListen); |
1873 | m_bnwRequest=app->GetProfileString("BellsNWhistles","Request",m_bnwRequest); | 1875 | m_bnwRequest=app->GetProfileString("BellsNWhistles","Request",m_bnwRequest); |
1874 | m_bnwSuccess=app->GetProfileString("BellsNWhistles","Success",m_bnwSuccess); | 1876 | m_bnwSuccess=app->GetProfileString("BellsNWhistles","Success",m_bnwSuccess); |
1875 | m_bnwAbort=app->GetProfileString("BellsNWhistles","Abort",m_bnwAbort); | 1877 | m_bnwAbort=app->GetProfileString("BellsNWhistles","Abort",m_bnwAbort); |
1876 | m_bTFTPSubdirs=app->GetProfileInt("TFTPSettings","Subdirs",m_bTFTPSubdirs); | 1878 | m_bTFTPSubdirs=app->GetProfileInt("TFTPSettings","Subdirs",m_bTFTPSubdirs); |
1877 | m_ListenPort=app->GetProfileInt("TFTPSettings","ListenPort",m_ListenPort); | 1879 | m_ListenPort=app->GetProfileInt("TFTPSettings","ListenPort",m_ListenPort); |
1880 | m_ListenAddress=app->GetProfileString("TFTPSettings","ListenAddress",m_ListenAddress); | ||
1878 | m_LogLength=app->GetProfileInt("UISettings","LogLength",m_LogLength); | 1881 | m_LogLength=app->GetProfileInt("UISettings","LogLength",m_LogLength); |
1879 | m_PromptTimeOut=app->GetProfileInt("UISettings","PromptTimeout",m_PromptTimeOut); | 1882 | m_PromptTimeOut=app->GetProfileInt("UISettings","PromptTimeout",m_PromptTimeOut); |
1880 | m_RRQMode=app->GetProfileInt("TFTPSettings","RRQMode",m_RRQMode); | 1883 | m_RRQMode=app->GetProfileInt("TFTPSettings","RRQMode",m_RRQMode); |
1881 | m_SpeakPort=app->GetProfileInt("TFTPSettings","SpeakPort",m_SpeakPort); | 1884 | m_SpeakPort=app->GetProfileInt("TFTPSettings","SpeakPort",m_SpeakPort); |
1882 | m_TFTPRoot=app->GetProfileString("TFTPSettings","TFTPRoot",m_TFTPRoot); | 1885 | m_TFTPRoot=app->GetProfileString("TFTPSettings","TFTPRoot",m_TFTPRoot); |
1883 | m_LogFile=app->GetProfileString("General","LogFile",m_LogFile); | 1886 | m_LogFile=app->GetProfileString("General","LogFile",m_LogFile); |
@@ -1902,12 +1905,13 @@ CWinApp *app = AfxGetApp(); | |||
1902 | app->WriteProfileInt("TFTPSettings","Listen",m_bListen); | 1905 | app->WriteProfileInt("TFTPSettings","Listen",m_bListen); |
1903 | app->WriteProfileString("BellsNWhistles","Request",m_bnwRequest); | 1906 | app->WriteProfileString("BellsNWhistles","Request",m_bnwRequest); |
1904 | app->WriteProfileString("BellsNWhistles","Success",m_bnwSuccess); | 1907 | app->WriteProfileString("BellsNWhistles","Success",m_bnwSuccess); |
1905 | app->WriteProfileString("BellsNWhistles","Abort",m_bnwAbort); | 1908 | app->WriteProfileString("BellsNWhistles","Abort",m_bnwAbort); |
1906 | app->WriteProfileInt("TFTPSettings","Subdirs",m_bTFTPSubdirs); | 1909 | app->WriteProfileInt("TFTPSettings","Subdirs",m_bTFTPSubdirs); |
1907 | app->WriteProfileInt("TFTPSettings","ListenPort",m_ListenPort); | 1910 | app->WriteProfileInt("TFTPSettings","ListenPort",m_ListenPort); |
1911 | app->WriteProfileString("TFTPSettings","ListenAddress",m_ListenAddress); | ||
1908 | app->WriteProfileInt("UISettings","LogLength",m_LogLength); | 1912 | app->WriteProfileInt("UISettings","LogLength",m_LogLength); |
1909 | app->WriteProfileInt("UISettings","PromptTimeout",m_PromptTimeOut); | 1913 | app->WriteProfileInt("UISettings","PromptTimeout",m_PromptTimeOut); |
1910 | app->WriteProfileInt("TFTPSettings","RRQMode",m_RRQMode); | 1914 | app->WriteProfileInt("TFTPSettings","RRQMode",m_RRQMode); |
1911 | app->WriteProfileInt("TFTPSettings","SpeakPort",m_SpeakPort); | 1915 | app->WriteProfileInt("TFTPSettings","SpeakPort",m_SpeakPort); |
1912 | app->WriteProfileString("TFTPSettings","TFTPRoot",m_TFTPRoot); | 1916 | app->WriteProfileString("TFTPSettings","TFTPRoot",m_TFTPRoot); |
1913 | app->WriteProfileString("General","LogFile",m_LogFile); | 1917 | app->WriteProfileString("General","LogFile",m_LogFile); |
@@ -2064,22 +2068,20 @@ void CPumpKINDlg::OnHelp() | |||
2064 | { | 2068 | { |
2065 | AfxGetApp()->WinHelp(0,HELP_FINDER); | 2069 | AfxGetApp()->WinHelp(0,HELP_FINDER); |
2066 | } | 2070 | } |
2067 | 2071 | ||
2068 | BOOL CListenSocket::SetListen(BOOL b) { | 2072 | BOOL CListenSocket::SetListen(BOOL b) { |
2069 | ASSERT(m_Daddy); | 2073 | ASSERT(m_Daddy); |
2070 | if(b==m_bListen) | 2074 | if(b==m_bListen) return TRUE; |
2071 | return TRUE; | 2075 | if(!b) { |
2072 | if(b) { | ||
2073 | if(!Create(m_Daddy->m_ListenPort,SOCK_DGRAM)) | ||
2074 | return FALSE; | ||
2075 | return m_bListen=TRUE; | ||
2076 | }else{ | ||
2077 | Close(); m_bListen=FALSE; | 2076 | Close(); m_bListen=FALSE; |
2078 | return TRUE; | 2077 | return TRUE; |
2079 | } | 2078 | } |
2079 | return m_bListen=Create(m_Daddy->m_ListenPort,SOCK_DGRAM, | ||
2080 | FD_READ|FD_WRITE|FD_OOB|FD_ACCEPT|FD_CONNECT|FD_CLOSE, | ||
2081 | m_Daddy->m_ListenAddress.IsEmpty()?NULL:(LPCTSTR)m_Daddy->m_ListenAddress); | ||
2080 | } | 2082 | } |
2081 | 2083 | ||
2082 | void CPumpKINDlg::OnListening() | 2084 | void CPumpKINDlg::OnListening() |
2083 | { | 2085 | { |
2084 | if(!m_Listener.SetListen(m_ListenCtl.GetCheck()==1)) { | 2086 | if(!m_Listener.SetListen(m_ListenCtl.GetCheck()==1)) { |
2085 | TRACE0("Failed to create socket\n"); | 2087 | TRACE0("Failed to create socket\n"); |
diff --git a/PumpKINDlg.h b/PumpKINDlg.h index 23c2657..9077292 100644..100755 --- a/PumpKINDlg.h +++ b/PumpKINDlg.h | |||
@@ -428,12 +428,13 @@ public: | |||
428 | }; | 428 | }; |
429 | UINT m_RRQMode; | 429 | UINT m_RRQMode; |
430 | UINT m_WRQMode; | 430 | UINT m_WRQMode; |
431 | BOOL m_bTFTPSubdirs; | 431 | BOOL m_bTFTPSubdirs; |
432 | CString m_TFTPRoot; | 432 | CString m_TFTPRoot; |
433 | UINT m_ListenPort; | 433 | UINT m_ListenPort; |
434 | CString m_ListenAddress; | ||
434 | UINT m_BlockSize; | 435 | UINT m_BlockSize; |
435 | CListenSocket m_Listener; | 436 | CListenSocket m_Listener; |
436 | CPumpKINDlg(CWnd* pParent = NULL);// standard constructor | 437 | CPumpKINDlg(CWnd* pParent = NULL);// standard constructor |
437 | 438 | ||
438 | // Dialog Data | 439 | // Dialog Data |
439 | //{{AFX_DATA(CPumpKINDlg) | 440 | //{{AFX_DATA(CPumpKINDlg) |
diff --git a/help/pumpkin.rtf b/help/pumpkin.rtf index 8358490..39fc02a 100644 --- a/help/pumpkin.rtf +++ b/help/pumpkin.rtf | |||
@@ -1,145 +1,148 @@ | |||
1 | {\rtf1\ansi | 1 | {\rtf1\ansi |
2 | @{\footnote | 2 | @{\footnote |
3 | THIS FILE WAS AUTOMATICALLY GENERATED FROM XML DOCUMENT. | 3 | THIS FILE WAS AUTOMATICALLY GENERATED FROM XML DOCUMENT. |
4 | DO NOT MODIFY THIS FILE DIRECTLY. EDIT XML DOCUMENT INSTEAD | 4 | DO NOT MODIFY THIS FILE DIRECTLY. EDIT XML DOCUMENT INSTEAD |
5 | } | 5 | } |
6 | {\fonttbl{\f0\froman Times New Roman;}{\f1\fswiss Arial;}{\f3\froman Symbol;}}{\colortbl; | 6 | {\fonttbl{\f0\froman Times New Roman;}{\f1\fswiss Arial;}{\f3\froman Symbol;}}{\colortbl; |
7 | \red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0; | 7 | \red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0; |
8 | \red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255; | 8 | \red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255; |
9 | \red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128; | 9 | \red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128; |
10 | \red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;} | 10 | \red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;} |
11 | 11 | ||
12 | \pard\plain\keepn | 12 | \pard\plain\keepn |
13 | #{\footnote About} | 13 | #{\footnote About} |
14 | ${\footnote About PumpKIN} | 14 | ${\footnote About PumpKIN} |
15 | K{\footnote about} | 15 | K{\footnote about} |
16 | { \f1\fs18\b\sb120 About {\b PumpKIN}} | 16 | { \f1\fs18\b\sb120 About {\b PumpKIN}} |
17 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b PumpKIN} is a program designed to send and receive files over the net while having {\uldb {\b T42}}{\v %!ExecFile("http://kin.klever.net/T42/")} or {\b\cf6 Wintalk} session running using {\i TFTP} ({\uldb {\b RFC1350}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1350.txt")}) protocol. It includes full-functional {\i TFTP} server/client so it may be useful for maintaining {\uldb CISCO}{\v %!ExecFile("http://www.cisco.com/")} routers and other network equipment. | 17 | \par\sa120\sb120\qj \f1\fs18\sb120 {\b PumpKIN} is a program designed to send and receive files over the net while having {\uldb {\b T42}}{\v %!ExecFile("http://kin.klever.net/T42/")} or {\b\cf6 Wintalk} session running using {\i TFTP} ({\uldb {\b RFC1350}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1350.txt")}) protocol. It includes full-functional {\i TFTP} server/client so it may be useful for maintaining {\uldb CISCO}{\v %!ExecFile("http://www.cisco.com/")} routers and other network equipment. |
18 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 | 18 | \par\sa120\sb120\qj \f1\fs18\sb120 |
19 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b {\i Enjoy!}} | 19 | \par\sa120\sb120\qj \f1\fs18\sb120 {\b {\i Enjoy!}} |
20 | { | 20 | { |
21 | \par\pard\plain\sb360\sa120 \f1\fs16 Copyright (c) 1997-2006 {\uldb\cf0 Klever Group (http://www.klever.net/)}{\v %!ExecFile("http://www.klever.net/")} | 21 | \par\pard\plain\sb360\sa120 \f1\fs16 Copyright (c) 1997-2011 {\uldb\cf0 Klever Group (http://www.klever.net/)}{\v %!ExecFile("http://www.klever.net/")} |
22 | \par\qj\sb120\sa120Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: | 22 | \par\qj\sb120\sa120Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: |
23 | \par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. | 23 | \par The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. |
24 | \par \sa360 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | 24 | \par \sa360 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
25 | } | 25 | } |
26 | \page | 26 | \page |
27 | 27 | ||
28 | \pard\plain | 28 | \pard\plain |
29 | #{\footnote News} | 29 | #{\footnote News} |
30 | ${\footnote What's New} | 30 | ${\footnote What's New} |
31 | \par\pard\plain\f1\fs24\qc\cf2\b 2.7.2 - October 18th, 2006 | 31 | \par\pard\plain\f1\fs24\qc\cf2\b 2.7.2.1 - Apr 27th, 2011 |
32 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Added rejecting of too large file requests with explicit error message about the block size | 32 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Fixed a minor bug that lead to misdiagnosis of the packet from unexpected source |
33 | \par\pard\plain\fi0\li0\f1\fs18 \bullet A bit more elaborate logging | 33 | \par\pard\plain\f1\fs24\qc\cf2\b 2.7.2 - October 18th, 2006 |
34 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Not closing receive socket until the last ACK receved now | 34 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Added rejecting of too large file requests with explicit error message about the block size |
35 | \par\pard\plain\f1\fs24\qc\cf2\b 2.7.1 - March 13th, 2006 | 35 | \par\pard\plain\fi0\li0\f1\fs18 \bullet A bit more elaborate logging |
36 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Bugfix release | 36 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Not closing receive socket until the last ACK receved now |
37 | \par\pard\plain\f1\fs24\qc\cf2\b 2.7 - February 28th, 2006 | 37 | \par\pard\plain\f1\fs24\qc\cf2\b 2.7.1 - March 13th, 2006 |
38 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Access lists based on request IP address and TFTP opcode for automating access policy | 38 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Bugfix release |
39 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Possibility to start/stop TFTP server, while keeping client functionality intact | 39 | \par\pard\plain\f1\fs24\qc\cf2\b 2.7 - February 28th, 2006 |
40 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Logging to file | 40 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Access lists based on request IP address and TFTP opcode for automating access policy |
41 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Resizable main window | 41 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Possibility to start/stop TFTP server, while keeping client functionality intact |
42 | \par\pard\plain\f1\fs24\qc\cf2\b 2.6 - August 6th, 2005 | 42 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Logging to file |
43 | \par\pard\plain\fi0\li0\f1\fs18 \bullet more robust solution to the backslash/slash dilemma | 43 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Resizable main window |
44 | \par\pard\plain\fi0\li0\f1\fs18 \bullet A bit more elaborate error reporting | 44 | \par\pard\plain\f1\fs24\qc\cf2\b 2.6 - August 6th, 2005 |
45 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Fixed uninstall procedure so that it works on XP | 45 | \par\pard\plain\fi0\li0\f1\fs18 \bullet more robust solution to the backslash/slash dilemma |
46 | \par\pard\plain\f1\fs24\qc\cf2\b 2.5 - July 11th, 2004 | 46 | \par\pard\plain\fi0\li0\f1\fs18 \bullet A bit more elaborate error reporting |
47 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Change of {\uldb license}{\v About} and opening the source. | 47 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Fixed uninstall procedure so that it works on XP |
48 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Minor cosmetic changes | 48 | \par\pard\plain\f1\fs24\qc\cf2\b 2.5 - July 11th, 2004 |
49 | \par\pard\plain\f1\fs24\qc\cf2\b 2.0 - June 13th, 1998 | 49 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Change of {\uldb license}{\v About} and opening the source. |
50 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Sounds customization. Now you can customize {\b PumpKIN} bells and whistles or turn them off completely. | 50 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Minor cosmetic changes |
51 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Previous version of {\b PumpKIN} had a bug causing it to misbehave when you're requesting file from remote {\i tftp} server using {\b IP Address} (as opposed to {\b hostname}). | 51 | \par\pard\plain\f1\fs24\qc\cf2\b 2.0 - June 13th, 1998 |
52 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Typo causing {\b PumpKIN} to log outgoing request in reverse (i.e. {\i Requesting 'hostname' from 'filename'}) fixed. | 52 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Sounds customization. Now you can customize {\b PumpKIN} bells and whistles or turn them off completely. |
53 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Something else that you may not notice and I can not remember. | 53 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Previous version of {\b PumpKIN} had a bug causing it to misbehave when you're requesting file from remote {\i tftp} server using {\b IP Address} (as opposed to {\b hostname}). |
54 | \par\pard\plain\f1\fs24\qc\cf2\b 1.5 - February 12th, 1998 | 54 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Typo causing {\b PumpKIN} to log outgoing request in reverse (i.e. {\i Requesting 'hostname' from 'filename'}) fixed. |
55 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Transfer resumes. No checking on file contents is done, so it's up to you to decide whether you want to start transmission from the beginning or resume unfinished transfer. | 55 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Something else that you may not notice and I can not remember. |
56 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Support for {\b block size}, {\b trasnfer size} and {\b transfer timeout} options as described in {\uldb {\b RFC1782}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1782.txt")}, {\uldb {\b RFC1783}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1783.txt")} and {\uldb {\b RFC1784}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1784.txt")}. I'm not sure if there are any other {\i TFTP} implementations supporting this, but at least it makes sense if you use {\b PumpKIN} on both ends. | 56 | \par\pard\plain\f1\fs24\qc\cf2\b 1.5 - February 12th, 1998 |
57 | \par\pard\plain\fi0\li0\f1\fs18 \bullet New Install program | 57 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Transfer resumes. No checking on file contents is done, so it's up to you to decide whether you want to start transmission from the beginning or resume unfinished transfer. |
58 | \page | 58 | \par\pard\plain\fi0\li0\f1\fs18 \bullet Support for {\b block size}, {\b trasnfer size} and {\b transfer timeout} options as described in {\uldb {\b RFC1782}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1782.txt")}, {\uldb {\b RFC1783}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1783.txt")} and {\uldb {\b RFC1784}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1784.txt")}. I'm not sure if there are any other {\i TFTP} implementations supporting this, but at least it makes sense if you use {\b PumpKIN} on both ends. |
59 | 59 | \par\pard\plain\fi0\li0\f1\fs18 \bullet New Install program | |
60 | \pard\plain\keepn | 60 | \page |
61 | #{\footnote Using} | 61 | |
62 | ${\footnote Using PumpKIN} | 62 | \pard\plain\keepn |
63 | { \f1\fs18\b\sb120 Using {\b PumpKIN}} | 63 | #{\footnote Using} |
64 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 This is a simple program for file exchange between two parties. It allows you to send files over the network to your party while having a {\uldb {\b T42}}{\v %!ExecFile("http://kin.klever.net/T42/")} or {\b\cf6 Wintalk} conversation. It uses open sessions to determine IP address of your party. Also you may use it as a {\i TFTP} client/server by itself. To get/put files from/to {\i TFTP} server you need to enter host name/IP address manually in the {\uldb Request Dialog}{\v Request}. | 64 | ${\footnote Using PumpKIN} |
65 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 To Abort transfer(s) currently in progress - select transfer(s) you want to terminate in the list and click {\b Abort xfer} button. | 65 | { \f1\fs18\b\sb120 Using {\b PumpKIN}} |
66 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 You may want to hide {\b PumpKIN} window and leave it as a tray icon only. Just click the \{bmct pumpkin.bmp\} icon in the tray or simply close the window. | 66 | \par\sa120\sb120\qj \f1\fs18\sb120 This is a simple program for file exchange between two parties. It allows you to send files over the network to your party while having a {\uldb {\b T42}}{\v %!ExecFile("http://kin.klever.net/T42/")} or {\b\cf6 Wintalk} conversation. It uses open sessions to determine IP address of your party. Also you may use it as a {\i TFTP} client/server by itself. To get/put files from/to {\i TFTP} server you need to enter host name/IP address manually in the {\uldb Request Dialog}{\v Request}. |
67 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 Use {\uldb Options}{\v Options} button to set {\b PumpKIN} options. | 67 | \par\sa120\sb120\qj \f1\fs18\sb120 To Abort transfer(s) currently in progress - select transfer(s) you want to terminate in the list and click {\b Abort xfer} button. |
68 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 You can start and stop {\b PumpKIN}'s {\i TFTP} server by checking and unchecking the {\b Server is running} checkbox in the lower right corner of main {\b PumpKIN} window. | 68 | \par\sa120\sb120\qj \f1\fs18\sb120 You may want to hide {\b PumpKIN} window and leave it as a tray icon only. Just click the \{bmct pumpkin.bmp\} icon in the tray or simply close the window. |
69 | \page | 69 | \par\sa120\sb120\qj \f1\fs18\sb120 Use {\uldb Options}{\v Options} button to set {\b PumpKIN} options. |
70 | 70 | \par\sa120\sb120\qj \f1\fs18\sb120 You can start and stop {\b PumpKIN}'s {\i TFTP} server by checking and unchecking the {\b Server is running} checkbox in the lower right corner of main {\b PumpKIN} window. | |
71 | \pard\plain\keepn | 71 | \page |
72 | #{\footnote ConfirmRRQ} | 72 | |
73 | ${\footnote Confirm Read Request Dialog} | 73 | \pard\plain\keepn |
74 | { \f1\fs18\b\sb120 Confirm Read Request Dialog} | 74 | #{\footnote ConfirmRRQ} |
75 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 When the file is requested from your {\i TFTP} server you may choose to {\b Grant Access} to this file or to {\b Deny Access}. If you hesitate to answer for {\uldb {\b Confirmation timeout}}{\v ConfirmationTimeout} ({\i default - 30 seconds}) {\b PumpKIN} defaults to denial of all requests. | 75 | ${\footnote Confirm Read Request Dialog} |
76 | \page | 76 | { \f1\fs18\b\sb120 Confirm Read Request Dialog} |
77 | 77 | \par\sa120\sb120\qj \f1\fs18\sb120 When the file is requested from your {\i TFTP} server you may choose to {\b Grant Access} to this file or to {\b Deny Access}. If you hesitate to answer for {\uldb {\b Confirmation timeout}}{\v ConfirmationTimeout} ({\i default - 30 seconds}) {\b PumpKIN} defaults to denial of all requests. | |
78 | \pard\plain\keepn | 78 | \page |
79 | #{\footnote ConfirmWRQ} | 79 | |
80 | ${\footnote Confirm Write Request Dialog} | 80 | \pard\plain\keepn |
81 | { \f1\fs18\b\sb120 Confirm Write Request Dialog} | 81 | #{\footnote ConfirmWRQ} |
82 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 Whenever your party sends you a file you have always a choice to accept it or not. You can also save the file under a different name by choosing the {\b Rename} option. If you already have file with such name you may chose to {\b resume} transfer. No checking on file contents is done. This option may or may not work depending on remote implementation of protocol. It does work if you use {\b PumpKIN} on both ends. If you are still unsure for {\uldb {\b Confirmation timeout}}{\v ConfirmationTimeOut} ({\i default - 30 seconds}) {\b PumpKIN} will make safe decision for you (deny). | 82 | ${\footnote Confirm Write Request Dialog} |
83 | \page | 83 | { \f1\fs18\b\sb120 Confirm Write Request Dialog} |
84 | 84 | \par\sa120\sb120\qj \f1\fs18\sb120 Whenever your party sends you a file you have always a choice to accept it or not. You can also save the file under a different name by choosing the {\b Rename} option. If you already have file with such name you may chose to {\b resume} transfer. No checking on file contents is done. This option may or may not work depending on remote implementation of protocol. It does work if you use {\b PumpKIN} on both ends. If you are still unsure for {\uldb {\b Confirmation timeout}}{\v ConfirmationTimeOut} ({\i default - 30 seconds}) {\b PumpKIN} will make safe decision for you (deny). | |
85 | \pard\plain\keepn | 85 | \page |
86 | #{\footnote Request} | 86 | |
87 | ${\footnote Request Dialog} | 87 | \pard\plain\keepn |
88 | { \f1\fs18\b\sb120 Request Dialog} | 88 | #{\footnote Request} |
89 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 Request dialog is aimed to let you form read or write request. You may set the following options:\pard | 89 | ${\footnote Request Dialog} |
90 | \par \fi0\li0 \bullet {\b Local File} - You can change the name of the file you're sending (or destination in case you're receiving) right here. You may also use {\b Browse} button to select the file. | 90 | { \f1\fs18\b\sb120 Request Dialog} |
91 | \par \fi0\li0 \bullet {\b Remote File} Specifies the name of file on the remote host you're requesting (in case of read request) or the name of file you want your file to appear as (in case of write request). | 91 | \par\sa120\sb120\qj \f1\fs18\sb120 Request dialog is aimed to let you form read or write request. You may set the following options:\pard |
92 | \par \fi0\li0 \bullet {\b Remote Host} is your party's host or {\i TFTP} server you're requesting file from/sending file to. To refresh the list of your talk windows use {\b REFRESH} button. | 92 | \par \fi0\li0 \bullet {\b Local File} - You can change the name of the file you're sending (or destination in case you're receiving) right here. You may also use {\b Browse} button to select the file. |
93 | \par \fi0\li0 \bullet {\b Type} is the type of transfer as defined in {\uldb {\b RFC1350}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1350.txt")}. Doesn't mean much, really. Defined types are '{\i octet}' or '{\i netascii}'. Default is '{\i octet}'. | 93 | \par \fi0\li0 \bullet {\b Remote File} Specifies the name of file on the remote host you're requesting (in case of read request) or the name of file you want your file to appear as (in case of write request). |
94 | \par \fi0\li0 \bullet {\b Block Size} - Use this block size if remote is {\uldb {\b RFC1783}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1783.txt")}-compliant. If remote doesn't support this option {\b PumpKIN} will fallback to 512 bytes per block.\pard | 94 | \par \fi0\li0 \bullet {\b Remote Host} is your party's host or {\i TFTP} server you're requesting file from/sending file to. To refresh the list of your talk windows use {\b REFRESH} button. |
95 | \page | 95 | \par \fi0\li0 \bullet {\b Type} is the type of transfer as defined in {\uldb {\b RFC1350}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1350.txt")}. Doesn't mean much, really. Defined types are '{\i octet}' or '{\i netascii}'. Default is '{\i octet}'. |
96 | 96 | \par \fi0\li0 \bullet {\b Block Size} - Use this block size if remote is {\uldb {\b RFC1783}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1783.txt")}-compliant. If remote doesn't support this option {\b PumpKIN} will fallback to 512 bytes per block.\pard | |
97 | \pard\plain\keepn | 97 | \page |
98 | #{\footnote Options} | 98 | |
99 | ${\footnote Options} | 99 | \pard\plain\keepn |
100 | { \f1\fs18\b\sb120 Options} | 100 | #{\footnote Options} |
101 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 {\b PumpKIN} options property sheet consists of two tabs. For more information see {\uldb {\b Network}}{\v NetworkOptions} and {\b Server} options. | 101 | ${\footnote Options} |
102 | \page | 102 | { \f1\fs18\b\sb120 Options} |
103 | 103 | \par\sa120\sb120\qj \f1\fs18\sb120 {\b PumpKIN} options property sheet consists of two tabs. For more information see {\uldb {\b Network}}{\v NetworkOptions} and {\b Server} options. | |
104 | \pard\plain\keepn | 104 | \page |
105 | #{\footnote NetworkOptions} | 105 | |
106 | ${\footnote Network Options} | 106 | \pard\plain\keepn |
107 | { \f1\fs18\b\sb120 Network Options}\pard | 107 | #{\footnote NetworkOptions} |
108 | \par \fi0\li0 \bullet {\b UDP Ports}\pard | 108 | ${\footnote Network Options} |
109 | \par \fi0\li0 \bullet {\b Listen for incoming connections on port} - specifies the port we're listening to. The default as defined in {\uldb {\b RFC1350}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1350.txt")} is 69. | 109 | { \f1\fs18\b\sb120 Network Options}\pard |
110 | \par \fi0\li0 \bullet {\b Send outgoing requests to port} - specifies the port we're going to send all requests to.\pard | 110 | \par \fi0\li0 \bullet {\b UDP Ports}\pard |
111 | \par \fi0\li0 \bullet {\b Default Connection timeout} - if there's no activity for specified time, transfer is considered to be dead and terminated. {\b PumpKIN} tries to propagate this value to remote as described in {\uldb {\b RFC1782}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1782.txt")} and {\uldb {\b RFC1784}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1784.txt")} if possible. | 111 | \par \fi0\li0 \bullet {\b Listen for incoming connections on port} - specifies the port we're listening to. The default as defined in {\uldb {\b RFC1350}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1350.txt")} is 69. |
112 | \par \fi0\li0 \bullet {\b Default Block Size} - {\b PumpKIN} tries to negotiate block size with remote using this value unless specified explicitly in request. If remote doesn't support {\uldb {\b RFC1782}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1782.txt")} and {\uldb {\b RFC1783}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1783.txt")}{\b PumpKIN} falls back to 512 bytes per block.\pard | 112 | \par \fi0\li0 \bullet {\b ip address} - ip address to listen to. |
113 | \page | 113 | \par \fi0\li0 \bullet {\b Send outgoing requests to port} - specifies the port we're going to send all requests to.\pard |
114 | 114 | \par \fi0\li0 \bullet {\b Default Connection timeout} - if there's no activity for specified time, transfer is considered to be dead and terminated. {\b PumpKIN} tries to propagate this value to remote as described in {\uldb {\b RFC1782}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1782.txt")} and {\uldb {\b RFC1784}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1784.txt")} if possible. | |
115 | \pard\plain\keepn | 115 | \par \fi0\li0 \bullet {\b Default Block Size} - {\b PumpKIN} tries to negotiate block size with remote using this value unless specified explicitly in request. If remote doesn't support {\uldb {\b RFC1782}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1782.txt")} and {\uldb {\b RFC1783}}{\v %!ExecFile("http://www.rfc-editor.org/rfc/rfc1783.txt")}{\b PumpKIN} falls back to 512 bytes per block.\pard |
116 | #{\footnote ServerOptions} | 116 | \page |
117 | ${\footnote Server Options} | 117 | |
118 | { \f1\fs18\b\sb120 Server Options}\pard | 118 | \pard\plain\keepn |
119 | \par \fi0\li0 \bullet {\b TFTP Filesystem root} - Specifies the location of files you're transmitting or where to start looking for them from. Defaults to the directory you start {\b PumpKIN} for the first time from. | 119 | #{\footnote ServerOptions} |
120 | \par \fi0\li0 \bullet {\b Allow access to subdirectories} - specifies whether you want allow access to the whole subtree of {\b TFTP Root} or only to the directory itself. | 120 | ${\footnote Server Options} |
121 | \par \fi0\li0 \bullet {\b Read Request Behavior} - You may choose to automatically agree to give all files requested, to be prompted to confirm these operations, or to deny all requests as if you're not even here. | 121 | { \f1\fs18\b\sb120 Server Options}\pard |
122 | \par \fi0\li0 \bullet {\b Write Request Behavior} - You may chose to {\b take all files} ({\i not recommended}), to {\b prompt only if file exists already}, {\b Always prompt} or {\b Deny all requests}. | 122 | \par \fi0\li0 \bullet {\b TFTP Filesystem root} - Specifies the location of files you're transmitting or where to start looking for them from. Defaults to the directory you start {\b PumpKIN} for the first time from. |
123 | \par \fi0\li0 \bullet {#{\footnote ConfirmationTimeOut}}{\b Confirmation timeout} - this is the time {\b PumpKIN} will wait for you to accept or deny request before it will give up and take default action which is always deny. | 123 | \par \fi0\li0 \bullet {\b Allow access to subdirectories} - specifies whether you want allow access to the whole subtree of {\b TFTP Root} or only to the directory itself. |
124 | \par \fi0\li0 \bullet {\b Log file} - If you want to enable logging to file, set the destination file here.\pard | 124 | \par \fi0\li0 \bullet {\b Read Request Behavior} - You may choose to automatically agree to give all files requested, to be prompted to confirm these operations, or to deny all requests as if you're not even here. |
125 | \page | 125 | \par \fi0\li0 \bullet {\b Write Request Behavior} - You may chose to {\b take all files} ({\i not recommended}), to {\b prompt only if file exists already}, {\b Always prompt} or {\b Deny all requests}. |
126 | 126 | \par \fi0\li0 \bullet {#{\footnote ConfirmationTimeOut}}{\b Confirmation timeout} - this is the time {\b PumpKIN} will wait for you to accept or deny request before it will give up and take default action which is always deny. | |
127 | \pard\plain\keepn | 127 | \par \fi0\li0 \bullet {\b Log file} - If you want to enable logging to file, set the destination file here.\pard |
128 | #{\footnote SoundsOptions} | 128 | \page |
129 | ${\footnote Sounds Options} | 129 | |
130 | { \f1\fs18\b\sb120 Sounds} | 130 | \pard\plain\keepn |
131 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 You can customize {\b PumpKIN} sounds notifications here. There are three customizable sounds defined - {\b Incoming request}, which notifies you about incoming request prompt if you're set to be prompted whenever incoming request occurs. {\b xfer Aborted} - which happens to sound every time transfer is interrupted for whatever reason - time out, explicit kill, denied access, etc. {\b xfer Finished} means that your file was successfully transmitted. | 131 | #{\footnote SoundsOptions} |
132 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 You can select any {\b .wav} file or one of the predefined sounds from the dropdown list. | 132 | ${\footnote Sounds Options} |
133 | \page | 133 | { \f1\fs18\b\sb120 Sounds} |
134 | 134 | \par\sa120\sb120\qj \f1\fs18\sb120 You can customize {\b PumpKIN} sounds notifications here. There are three customizable sounds defined - {\b Incoming request}, which notifies you about incoming request prompt if you're set to be prompted whenever incoming request occurs. {\b xfer Aborted} - which happens to sound every time transfer is interrupted for whatever reason - time out, explicit kill, denied access, etc. {\b xfer Finished} means that your file was successfully transmitted. | |
135 | \pard\plain\keepn | 135 | \par\sa120\sb120\qj \f1\fs18\sb120 You can select any {\b .wav} file or one of the predefined sounds from the dropdown list. |
136 | #{\footnote ACL} | 136 | \page |
137 | ${\footnote Access Lists} | 137 | |
138 | { \f1\fs18\b\sb120 Access Lists} | 138 | \pard\plain\keepn |
139 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 You can slightly automate your access policies by setting up read/write request behavior for different incoming requests. | 139 | #{\footnote ACL} |
140 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 The rule consists of {\b request type}, source network ({\b ip} and {\b netmask}) and {\b action} to take (see also {\uldb Server Options}{\v ServerOptions}). | 140 | ${\footnote Access Lists} |
141 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 When {\b PumpKIN} receives request it goes through the list of rules and bases its decision on the first matching rule. To rearrange order of rules, select the rule you wish to move and use up and down arrows buttons on the right. To remove rule, use the cross button. | 141 | { \f1\fs18\b\sb120 Access Lists} |
142 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 To add a new rule fill in the information about {\b request type}, source {\b address} and {\b netmask} and desired action. Then click on the 'Add new rule' button. | 142 | \par\sa120\sb120\qj \f1\fs18\sb120 You can slightly automate your access policies by setting up read/write request behavior for different incoming requests. |
143 | \par\sa120\sb120\qj\pard \f1\fs18\sb120 If you wish to amend the rule, select it in the rules list, change parameters below and click the 'Replace rule' button. | 143 | \par\sa120\sb120\qj \f1\fs18\sb120 The rule consists of {\b request type}, source network ({\b ip} and {\b netmask}) and {\b action} to take (see also {\uldb Server Options}{\v ServerOptions}). |
144 | \page | 144 | \par\sa120\sb120\qj \f1\fs18\sb120 When {\b PumpKIN} receives request it goes through the list of rules and bases its decision on the first matching rule. To rearrange order of rules, select the rule you wish to move and use up and down arrows buttons on the right. To remove rule, use the cross button. |
145 | \par\sa120\sb120\qj \f1\fs18\sb120 To add a new rule fill in the information about {\b request type}, source {\b address} and {\b netmask} and desired action. Then click on the 'Add new rule' button. | ||
146 | \par\sa120\sb120\qj \f1\fs18\sb120 If you wish to amend the rule, select it in the rules list, change parameters below and click the 'Replace rule' button. | ||
147 | \page | ||
145 | } \ No newline at end of file | 148 | } \ No newline at end of file |
diff --git a/help/pumpkin.xml b/help/pumpkin.xml index 2e53edd..153219a 100644 --- a/help/pumpkin.xml +++ b/help/pumpkin.xml | |||
@@ -78,12 +78,13 @@ | |||
78 | <topic id="NetworkOptions" title="Network Options"> | 78 | <topic id="NetworkOptions" title="Network Options"> |
79 | <heading scroll="no">Network Options</heading> | 79 | <heading scroll="no">Network Options</heading> |
80 | <ul> | 80 | <ul> |
81 | <li><b>UDP Ports</b> | 81 | <li><b>UDP Ports</b> |
82 | <ul> | 82 | <ul> |
83 | <li><b>Listen for incoming connections on port</b> - specifies the port we're listening to. The default as defined in <rfc num="1350"/> is 69.</li> | 83 | <li><b>Listen for incoming connections on port</b> - specifies the port we're listening to. The default as defined in <rfc num="1350"/> is 69.</li> |
84 | <li><b>ip address</b> - ip address to listen to.</li> | ||
84 | <li><b>Send outgoing requests to port</b> - specifies the port we're going to send all requests to.</li> | 85 | <li><b>Send outgoing requests to port</b> - specifies the port we're going to send all requests to.</li> |
85 | </ul> | 86 | </ul> |
86 | </li> | 87 | </li> |
87 | <li><b>Default Connection timeout</b> - if there's no activity for specified time, transfer is considered to be dead and terminated. <kin>PumpKIN</kin> tries to propagate this value to remote as described in <rfc num="1782"/> and <rfc num="1784"/> if possible.</li> | 88 | <li><b>Default Connection timeout</b> - if there's no activity for specified time, transfer is considered to be dead and terminated. <kin>PumpKIN</kin> tries to propagate this value to remote as described in <rfc num="1782"/> and <rfc num="1784"/> if possible.</li> |
88 | <li><b>Default Block Size</b> - <kin>PumpKIN</kin> tries to negotiate block size with remote using this value unless specified explicitly in request. If remote doesn't support <rfc num="1782"/> and <rfc num="1783"/> <kin>PumpKIN</kin> falls back to 512 bytes per block.</li> | 89 | <li><b>Default Block Size</b> - <kin>PumpKIN</kin> tries to negotiate block size with remote using this value unless specified explicitly in request. If remote doesn't support <rfc num="1782"/> and <rfc num="1783"/> <kin>PumpKIN</kin> falls back to 512 bytes per block.</li> |
89 | </ul> | 90 | </ul> |
diff --git a/pumpkin.clw b/pumpkin.clw index 213d8c1..7fa927b 100644 --- a/pumpkin.clw +++ b/pumpkin.clw | |||
@@ -1,23 +1,23 @@ | |||
1 | ; CLW file contains information for the MFC ClassWizard | 1 | ; CLW file contains information for the MFC ClassWizard |
2 | 2 | ||
3 | [General Info] | 3 | [General Info] |
4 | Version=1 | 4 | Version=1 |
5 | LastClass=CPumpKINDlg | 5 | LastClass=CPropsNetwork |
6 | LastTemplate=CComboBox | 6 | LastTemplate=CComboBox |
7 | NewFileInclude1=#include "stdafx.h" | 7 | NewFileInclude1=#include "stdafx.h" |
8 | NewFileInclude2=#include "PumpKIN.h" | 8 | NewFileInclude2=#include "PumpKIN.h" |
9 | 9 | ||
10 | ClassCount=14 | 10 | ClassCount=14 |
11 | Class1=CPumpKINApp | 11 | Class1=CPumpKINApp |
12 | Class2=CPumpKINDlg | 12 | Class2=CPumpKINDlg |
13 | Class3=CAboutDlg | 13 | Class3=CAboutDlg |
14 | 14 | ||
15 | ResourceCount=10 | 15 | ResourceCount=10 |
16 | Resource1=IDD_REQUEST | 16 | Resource1=IDD_REQUEST |
17 | Resource2=IDD_PROPS_NETWORK | 17 | Resource2=IDD_PUMPKIN_DIALOG |
18 | Resource3=IDD_CONFIRM_RRQ | 18 | Resource3=IDD_CONFIRM_RRQ |
19 | Resource4=IDD_PROPS_SERVER | 19 | Resource4=IDD_PROPS_SERVER |
20 | Class4=CPropsServer | 20 | Class4=CPropsServer |
21 | Class5=CPropsNetwork | 21 | Class5=CPropsNetwork |
22 | Resource5=IDD_CONFIRM_WRQ | 22 | Resource5=IDD_CONFIRM_WRQ |
23 | Resource6=IDD_PROPS_ACL | 23 | Resource6=IDD_PROPS_ACL |
@@ -30,13 +30,13 @@ Class10=CRetrier | |||
30 | Class11=CTrayer | 30 | Class11=CTrayer |
31 | Resource8=IDD_PROPS_SOUNDS | 31 | Resource8=IDD_PROPS_SOUNDS |
32 | Class12=CPropsSounds | 32 | Class12=CPropsSounds |
33 | Resource9=IDM_POPUPS | 33 | Resource9=IDM_POPUPS |
34 | Class13=CPropsACL | 34 | Class13=CPropsACL |
35 | Class14=CACLTargetCombo | 35 | Class14=CACLTargetCombo |
36 | Resource10=IDD_PUMPKIN_DIALOG | 36 | Resource10=IDD_PROPS_NETWORK |
37 | 37 | ||
38 | [CLS:CPumpKINApp] | 38 | [CLS:CPumpKINApp] |
39 | Type=0 | 39 | Type=0 |
40 | HeaderFile=PumpKIN.h | 40 | HeaderFile=PumpKIN.h |
41 | ImplementationFile=PumpKIN.cpp | 41 | ImplementationFile=PumpKIN.cpp |
42 | Filter=N | 42 | Filter=N |
@@ -107,13 +107,13 @@ Control16=IDC_STATIC,button,1342177287 | |||
107 | Control17=IDC_LOGFILE,edit,1350631552 | 107 | Control17=IDC_LOGFILE,edit,1350631552 |
108 | Control18=IDC_LOGFILE_BROWSE,button,1342242880 | 108 | Control18=IDC_LOGFILE_BROWSE,button,1342242880 |
109 | 109 | ||
110 | [DLG:IDD_PROPS_NETWORK] | 110 | [DLG:IDD_PROPS_NETWORK] |
111 | Type=1 | 111 | Type=1 |
112 | Class=CPropsNetwork | 112 | Class=CPropsNetwork |
113 | ControlCount=15 | 113 | ControlCount=17 |
114 | Control1=IDC_STATIC,button,1342177287 | 114 | Control1=IDC_STATIC,button,1342177287 |
115 | Control2=IDC_STATIC,static,1342308354 | 115 | Control2=IDC_STATIC,static,1342308354 |
116 | Control3=IDC_LISTENPORT,edit,1350631552 | 116 | Control3=IDC_LISTENPORT,edit,1350631552 |
117 | Control4=IDC_LISTENSPIN,msctls_updown32,1342177463 | 117 | Control4=IDC_LISTENSPIN,msctls_updown32,1342177463 |
118 | Control5=IDC_STATIC,static,1342308354 | 118 | Control5=IDC_STATIC,static,1342308354 |
119 | Control6=IDC_SPEAKPORT,edit,1350631552 | 119 | Control6=IDC_SPEAKPORT,edit,1350631552 |
@@ -123,12 +123,14 @@ Control9=IDC_TIMEOUT,edit,1350639744 | |||
123 | Control10=IDC_TIMESPIN,msctls_updown32,1342177463 | 123 | Control10=IDC_TIMESPIN,msctls_updown32,1342177463 |
124 | Control11=IDC_STATIC,static,1342308352 | 124 | Control11=IDC_STATIC,static,1342308352 |
125 | Control12=IDC_STATIC,static,1342308352 | 125 | Control12=IDC_STATIC,static,1342308352 |
126 | Control13=IDC_STATIC,static,1342308352 | 126 | Control13=IDC_STATIC,static,1342308352 |
127 | Control14=IDC_BLOCKSIZE,edit,1350639744 | 127 | Control14=IDC_BLOCKSIZE,edit,1350639744 |
128 | Control15=IDC_BSIZESPIN,msctls_updown32,1342177463 | 128 | Control15=IDC_BSIZESPIN,msctls_updown32,1342177463 |
129 | Control16=IDC_STATIC,static,1342308354 | ||
130 | Control17=IDC_LISTENADDRESS,edit,1350631552 | ||
129 | 131 | ||
130 | [CLS:CPropsServer] | 132 | [CLS:CPropsServer] |
131 | Type=0 | 133 | Type=0 |
132 | HeaderFile=PropsServer.h | 134 | HeaderFile=PropsServer.h |
133 | ImplementationFile=PropsServer.cpp | 135 | ImplementationFile=PropsServer.cpp |
134 | BaseClass=CPropertyPage | 136 | BaseClass=CPropertyPage |
@@ -140,13 +142,13 @@ LastObject=CPropsServer | |||
140 | Type=0 | 142 | Type=0 |
141 | HeaderFile=PropsNetwork.h | 143 | HeaderFile=PropsNetwork.h |
142 | ImplementationFile=PropsNetwork.cpp | 144 | ImplementationFile=PropsNetwork.cpp |
143 | BaseClass=CPropertyPage | 145 | BaseClass=CPropertyPage |
144 | Filter=D | 146 | Filter=D |
145 | VirtualFilter=idWC | 147 | VirtualFilter=idWC |
146 | LastObject=IDC_BLOCKSIZE | 148 | LastObject=IDC_LISTENADDRESS |
147 | 149 | ||
148 | [DLG:IDD_CONFIRM_RRQ] | 150 | [DLG:IDD_CONFIRM_RRQ] |
149 | Type=1 | 151 | Type=1 |
150 | Class=CConfirmRRQDlg | 152 | Class=CConfirmRRQDlg |
151 | ControlCount=9 | 153 | ControlCount=9 |
152 | Control1=IDOK,button,1342242817 | 154 | Control1=IDOK,button,1342242817 |
diff --git a/pumpkin.rc b/pumpkin.rc index f52c4bd..babd066 100644..100755 --- a/pumpkin.rc +++ b/pumpkin.rc | |||
@@ -163,36 +163,38 @@ END | |||
163 | 163 | ||
164 | IDD_PROPS_NETWORK DIALOG DISCARDABLE 0, 0, 300, 201 | 164 | IDD_PROPS_NETWORK DIALOG DISCARDABLE 0, 0, 300, 201 |
165 | STYLE WS_CHILD | WS_DISABLED | WS_CAPTION | 165 | STYLE WS_CHILD | WS_DISABLED | WS_CAPTION |
166 | CAPTION "Network" | 166 | CAPTION "Network" |
167 | FONT 8, "MS Sans Serif" | 167 | FONT 8, "MS Sans Serif" |
168 | BEGIN | 168 | BEGIN |
169 | GROUPBOX "UDP Ports",IDC_STATIC,7,7,286,40 | 169 | GROUPBOX "UDP Ports",IDC_STATIC,7,7,286,55 |
170 | RTEXT "Listen for &incoming requests on port:",IDC_STATIC,13, | 170 | RTEXT "Listen for &incoming requests on port:",IDC_STATIC,13, |
171 | 18,135,8 | 171 | 18,135,8 |
172 | EDITTEXT IDC_LISTENPORT,154,16,40,13,ES_AUTOHSCROLL | 172 | EDITTEXT IDC_LISTENPORT,154,16,61,13,ES_AUTOHSCROLL |
173 | CONTROL "Spin1",IDC_LISTENSPIN,"msctls_updown32",UDS_WRAP | | 173 | CONTROL "Spin1",IDC_LISTENSPIN,"msctls_updown32",UDS_WRAP | |
174 | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | | 174 | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | |
175 | UDS_ARROWKEYS | UDS_NOTHOUSANDS,183,16,11,13 | 175 | UDS_ARROWKEYS | UDS_NOTHOUSANDS,204,16,11,13 |
176 | RTEXT "Send &outging requests to port:",IDC_STATIC,13,31,135,8 | 176 | RTEXT "Send &outging requests to port:",IDC_STATIC,13,46,135,8 |
177 | EDITTEXT IDC_SPEAKPORT,154,29,40,13,ES_AUTOHSCROLL | 177 | EDITTEXT IDC_SPEAKPORT,154,44,61,13,ES_AUTOHSCROLL |
178 | CONTROL "Spin1",IDC_SPEAKSPIN,"msctls_updown32",UDS_WRAP | | 178 | CONTROL "Spin1",IDC_SPEAKSPIN,"msctls_updown32",UDS_WRAP | |
179 | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | | 179 | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | |
180 | UDS_ARROWKEYS | UDS_NOTHOUSANDS,183,29,11,13 | 180 | UDS_ARROWKEYS | UDS_NOTHOUSANDS,204,43,11,13 |
181 | LTEXT "Default connection timeout:",IDC_STATIC,7,52,88,8 | 181 | LTEXT "Default connection timeout:",IDC_STATIC,7,66,88,8 |
182 | EDITTEXT IDC_TIMEOUT,110,50,40,13,ES_AUTOHSCROLL | ES_NUMBER | 182 | EDITTEXT IDC_TIMEOUT,110,64,40,13,ES_AUTOHSCROLL | ES_NUMBER |
183 | CONTROL "Spin3",IDC_TIMESPIN,"msctls_updown32",UDS_WRAP | | 183 | CONTROL "Spin3",IDC_TIMESPIN,"msctls_updown32",UDS_WRAP | |
184 | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | | 184 | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | |
185 | UDS_ARROWKEYS | UDS_NOTHOUSANDS,140,50,11,13 | 185 | UDS_ARROWKEYS | UDS_NOTHOUSANDS,140,64,11,13 |
186 | LTEXT "Default block size:",IDC_STATIC,7,66,59,8 | 186 | LTEXT "Default block size:",IDC_STATIC,7,80,59,8 |
187 | LTEXT "seconds",IDC_STATIC,154,52,28,8 | 187 | LTEXT "seconds",IDC_STATIC,154,66,28,8 |
188 | LTEXT "bytes",IDC_STATIC,154,66,18,8 | 188 | LTEXT "bytes",IDC_STATIC,154,80,18,8 |
189 | EDITTEXT IDC_BLOCKSIZE,110,64,40,13,ES_AUTOHSCROLL | ES_NUMBER | 189 | EDITTEXT IDC_BLOCKSIZE,110,78,40,13,ES_AUTOHSCROLL | ES_NUMBER |
190 | CONTROL "Spin3",IDC_BSIZESPIN,"msctls_updown32",UDS_WRAP | | 190 | CONTROL "Spin3",IDC_BSIZESPIN,"msctls_updown32",UDS_WRAP | |
191 | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | | 191 | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | |
192 | UDS_ARROWKEYS | UDS_NOTHOUSANDS,140,64,11,13 | 192 | UDS_ARROWKEYS | UDS_NOTHOUSANDS,140,78,11,13 |
193 | RTEXT "ip address:",IDC_STATIC,13,32,135,8 | ||
194 | EDITTEXT IDC_LISTENADDRESS,154,28,61,14,ES_AUTOHSCROLL | ||
193 | END | 195 | END |
194 | 196 | ||
195 | IDD_CONFIRM_RRQ DIALOGEX 0, 0, 181, 79 | 197 | IDD_CONFIRM_RRQ DIALOGEX 0, 0, 181, 79 |
196 | STYLE DS_MODALFRAME | DS_NOIDLEMSG | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | | 198 | STYLE DS_MODALFRAME | DS_NOIDLEMSG | DS_SETFOREGROUND | DS_3DLOOK | WS_POPUP | |
197 | WS_CAPTION | 199 | WS_CAPTION |
198 | EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE | 200 | EXSTYLE WS_EX_TOOLWINDOW | WS_EX_CLIENTEDGE |
diff --git a/resource.h b/resource.h index 7961e5e..2c2fa02 100644..100755 --- a/resource.h +++ b/resource.h | |||
@@ -148,12 +148,13 @@ | |||
148 | #define IDC_ACL_ADD 1050 | 148 | #define IDC_ACL_ADD 1050 |
149 | #define IDC_ACL_XFER 1051 | 149 | #define IDC_ACL_XFER 1051 |
150 | #define IDC_ACL_REPLACE 1052 | 150 | #define IDC_ACL_REPLACE 1052 |
151 | #define IDC_LISTENING 1052 | 151 | #define IDC_LISTENING 1052 |
152 | #define IDC_LOGFILE 1053 | 152 | #define IDC_LOGFILE 1053 |
153 | #define IDC_LOGFILE_BROWSE 1054 | 153 | #define IDC_LOGFILE_BROWSE 1054 |
154 | #define IDC_LISTENADDRESS 1055 | ||
154 | #define ID_TRAY_HELP 32771 | 155 | #define ID_TRAY_HELP 32771 |
155 | #define ID_TRAY_ABOUTPUMPKIN 32772 | 156 | #define ID_TRAY_ABOUTPUMPKIN 32772 |
156 | #define ID_TRAY_EXIT 32773 | 157 | #define ID_TRAY_EXIT 32773 |
157 | #define ID_TRAY_SENDFILE 32774 | 158 | #define ID_TRAY_SENDFILE 32774 |
158 | #define ID_TRAY_FETCHFILE 32775 | 159 | #define ID_TRAY_FETCHFILE 32775 |
159 | #define ID_TRAY_OPTIONS 32776 | 160 | #define ID_TRAY_OPTIONS 32776 |
@@ -162,12 +163,12 @@ | |||
162 | #define ID_TRAY_LISTEN 32780 | 163 | #define ID_TRAY_LISTEN 32780 |
163 | 164 | ||
164 | // Next default values for new objects | 165 | // Next default values for new objects |
165 | // | 166 | // |
166 | #ifdef APSTUDIO_INVOKED | 167 | #ifdef APSTUDIO_INVOKED |
167 | #ifndef APSTUDIO_READONLY_SYMBOLS | 168 | #ifndef APSTUDIO_READONLY_SYMBOLS |
168 | #define _APS_NEXT_RESOURCE_VALUE 155 | 169 | #define _APS_NEXT_RESOURCE_VALUE 156 |
169 | #define _APS_NEXT_COMMAND_VALUE 32781 | 170 | #define _APS_NEXT_COMMAND_VALUE 32781 |
170 | #define _APS_NEXT_CONTROL_VALUE 1055 | 171 | #define _APS_NEXT_CONTROL_VALUE 1056 |
171 | #define _APS_NEXT_SYMED_VALUE 102 | 172 | #define _APS_NEXT_SYMED_VALUE 102 |
172 | #endif | 173 | #endif |
173 | #endif | 174 | #endif |