summaryrefslogtreecommitdiffabout
authorMichael Krelin <hacker@klever.net>2011-04-27 14:18:48 (UTC)
committer Michael Krelin <hacker@klever.net>2011-04-27 14:18:48 (UTC)
commitc3b240e06bae3b663505e2b1c52eb67c34ddd3ea (patch) (unidiff)
tree06793f5d56a8129bfdaaee441fc34fbb361ddb13
parentd097b824b7fcad001c9581fb2e322bf3e3e5961d (diff)
downloadpumpkin-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>
Diffstat (more/less context) (show whitespace changes)
-rwxr-xr-x[-rw-r--r--]PropsNetwork.cpp3
-rwxr-xr-x[-rw-r--r--]PropsNetwork.h1
-rwxr-xr-xPumpKINDlg.cpp16
-rwxr-xr-x[-rw-r--r--]PumpKINDlg.h1
-rw-r--r--help/pumpkin.rtf43
-rw-r--r--help/pumpkin.xml1
-rw-r--r--pumpkin.clw12
-rwxr-xr-x[-rw-r--r--]pumpkin.rc30
-rwxr-xr-x[-rw-r--r--]resource.h5
9 files changed, 64 insertions, 48 deletions
diff --git a/PropsNetwork.cpp b/PropsNetwork.cpp
index b5585d7..2dd5913 100644..100755
--- a/PropsNetwork.cpp
+++ b/PropsNetwork.cpp
@@ -23,6 +23,7 @@ CPropsNetwork::CPropsNetwork() : CPropertyPage(CPropsNetwork::IDD)
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
@@ -43,6 +44,8 @@ void CPropsNetwork::DoDataExchange(CDataExchange* pDX)
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
diff --git a/PropsNetwork.h b/PropsNetwork.h
index 67d0b53..565b090 100644..100755
--- a/PropsNetwork.h
+++ b/PropsNetwork.h
@@ -24,6 +24,7 @@ public:
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
diff --git a/PumpKINDlg.cpp b/PumpKINDlg.cpp
index 3ff1500..0c5c19b 100755
--- a/PumpKINDlg.cpp
+++ b/PumpKINDlg.cpp
@@ -1228,6 +1228,7 @@ CPropsACL acl;
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;
@@ -1251,6 +1252,7 @@ CPropsACL acl;
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;
@@ -1875,6 +1877,7 @@ CWinApp *app = AfxGetApp();
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);
@@ -1905,6 +1908,7 @@ CWinApp *app = AfxGetApp();
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);
@@ -2067,16 +2071,14 @@ void CPumpKINDlg::OnHelp()
2067 2071
2068BOOL CListenSocket::SetListen(BOOL b) { 2072BOOL 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
2082void CPumpKINDlg::OnListening() 2084void CPumpKINDlg::OnListening()
diff --git a/PumpKINDlg.h b/PumpKINDlg.h
index 23c2657..9077292 100644..100755
--- a/PumpKINDlg.h
+++ b/PumpKINDlg.h
@@ -431,6 +431,7 @@ public:
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
diff --git a/help/pumpkin.rtf b/help/pumpkin.rtf
index 8358490..39fc02a 100644
--- a/help/pumpkin.rtf
+++ b/help/pumpkin.rtf
@@ -14,11 +14,11 @@ DO NOT MODIFY THIS FILE DIRECTLY. EDIT XML DOCUMENT INSTEAD
14${\footnote About PumpKIN} 14${\footnote About PumpKIN}
15K{\footnote about} 15K{\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.
@@ -28,6 +28,8 @@ K{\footnote about}
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.1 - Apr 27th, 2011
32\par\pard\plain\fi0\li0\f1\fs18 \bullet Fixed a minor bug that lead to misdiagnosis of the packet from unexpected source
31\par\pard\plain\f1\fs24\qc\cf2\b 2.7.2 - October 18th, 2006 33\par\pard\plain\f1\fs24\qc\cf2\b 2.7.2 - October 18th, 2006
32\par\pard\plain\fi0\li0\f1\fs18 \bullet Added rejecting of too large file requests with explicit error message about the block size 34\par\pard\plain\fi0\li0\f1\fs18 \bullet Added rejecting of too large file requests with explicit error message about the block size
33\par\pard\plain\fi0\li0\f1\fs18 \bullet A bit more elaborate logging 35\par\pard\plain\fi0\li0\f1\fs18 \bullet A bit more elaborate logging
@@ -61,32 +63,32 @@ ${\footnote What's New}
61#{\footnote Using} 63#{\footnote Using}
62${\footnote Using PumpKIN} 64${\footnote Using PumpKIN}
63{ \f1\fs18\b\sb120 Using {\b PumpKIN}} 65{ \f1\fs18\b\sb120 Using {\b PumpKIN}}
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}. 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}.
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. 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.
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. 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.
67\par\sa120\sb120\qj\pard \f1\fs18\sb120 Use {\uldb Options}{\v Options} button to set {\b PumpKIN} options. 69\par\sa120\sb120\qj \f1\fs18\sb120 Use {\uldb Options}{\v Options} button to set {\b PumpKIN} options.
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. 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.
69\page 71\page
70 72
71\pard\plain\keepn 73\pard\plain\keepn
72#{\footnote ConfirmRRQ} 74#{\footnote ConfirmRRQ}
73${\footnote Confirm Read Request Dialog} 75${\footnote Confirm Read Request Dialog}
74{ \f1\fs18\b\sb120 Confirm Read Request Dialog} 76{ \f1\fs18\b\sb120 Confirm Read Request Dialog}
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. 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.
76\page 78\page
77 79
78\pard\plain\keepn 80\pard\plain\keepn
79#{\footnote ConfirmWRQ} 81#{\footnote ConfirmWRQ}
80${\footnote Confirm Write Request Dialog} 82${\footnote Confirm Write Request Dialog}
81{ \f1\fs18\b\sb120 Confirm Write Request Dialog} 83{ \f1\fs18\b\sb120 Confirm Write Request Dialog}
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). 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).
83\page 85\page
84 86
85\pard\plain\keepn 87\pard\plain\keepn
86#{\footnote Request} 88#{\footnote Request}
87${\footnote Request Dialog} 89${\footnote Request Dialog}
88{ \f1\fs18\b\sb120 Request Dialog} 90{ \f1\fs18\b\sb120 Request Dialog}
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 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
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. 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.
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). 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).
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. 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.
@@ -98,7 +100,7 @@ ${\footnote Request Dialog}
98#{\footnote Options} 100#{\footnote Options}
99${\footnote Options} 101${\footnote Options}
100{ \f1\fs18\b\sb120 Options} 102{ \f1\fs18\b\sb120 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. 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.
102\page 104\page
103 105
104\pard\plain\keepn 106\pard\plain\keepn
@@ -107,6 +109,7 @@ ${\footnote Network Options}
107{ \f1\fs18\b\sb120 Network Options}\pard 109{ \f1\fs18\b\sb120 Network Options}\pard
108\par \fi0\li0 \bullet {\b UDP Ports}\pard 110\par \fi0\li0 \bullet {\b UDP Ports}\pard
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. 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 ip address} - ip address to listen to.
110\par \fi0\li0 \bullet {\b Send outgoing requests to port} - specifies the port we're going to send all requests to.\pard 113\par \fi0\li0 \bullet {\b Send outgoing requests to port} - specifies the port we're going to send all requests to.\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. 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.
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 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
@@ -128,18 +131,18 @@ ${\footnote Server Options}
128#{\footnote SoundsOptions} 131#{\footnote SoundsOptions}
129${\footnote Sounds Options} 132${\footnote Sounds Options}
130{ \f1\fs18\b\sb120 Sounds} 133{ \f1\fs18\b\sb120 Sounds}
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. 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.
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. 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.
133\page 136\page
134 137
135\pard\plain\keepn 138\pard\plain\keepn
136#{\footnote ACL} 139#{\footnote ACL}
137${\footnote Access Lists} 140${\footnote Access Lists}
138{ \f1\fs18\b\sb120 Access Lists} 141{ \f1\fs18\b\sb120 Access Lists}
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. 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.
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}). 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}).
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. 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.
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. 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.
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. 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.
144\page 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
@@ -81,6 +81,7 @@
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>
diff --git a/pumpkin.clw b/pumpkin.clw
index 213d8c1..7fa927b 100644
--- a/pumpkin.clw
+++ b/pumpkin.clw
@@ -2,7 +2,7 @@
2 2
3[General Info] 3[General Info]
4Version=1 4Version=1
5LastClass=CPumpKINDlg 5LastClass=CPropsNetwork
6LastTemplate=CComboBox 6LastTemplate=CComboBox
7NewFileInclude1=#include "stdafx.h" 7NewFileInclude1=#include "stdafx.h"
8NewFileInclude2=#include "PumpKIN.h" 8NewFileInclude2=#include "PumpKIN.h"
@@ -14,7 +14,7 @@ Class3=CAboutDlg
14 14
15ResourceCount=10 15ResourceCount=10
16Resource1=IDD_REQUEST 16Resource1=IDD_REQUEST
17Resource2=IDD_PROPS_NETWORK 17Resource2=IDD_PUMPKIN_DIALOG
18Resource3=IDD_CONFIRM_RRQ 18Resource3=IDD_CONFIRM_RRQ
19Resource4=IDD_PROPS_SERVER 19Resource4=IDD_PROPS_SERVER
20Class4=CPropsServer 20Class4=CPropsServer
@@ -33,7 +33,7 @@ Class12=CPropsSounds
33Resource9=IDM_POPUPS 33Resource9=IDM_POPUPS
34Class13=CPropsACL 34Class13=CPropsACL
35Class14=CACLTargetCombo 35Class14=CACLTargetCombo
36Resource10=IDD_PUMPKIN_DIALOG 36Resource10=IDD_PROPS_NETWORK
37 37
38[CLS:CPumpKINApp] 38[CLS:CPumpKINApp]
39Type=0 39Type=0
@@ -110,7 +110,7 @@ Control18=IDC_LOGFILE_BROWSE,button,1342242880
110[DLG:IDD_PROPS_NETWORK] 110[DLG:IDD_PROPS_NETWORK]
111Type=1 111Type=1
112Class=CPropsNetwork 112Class=CPropsNetwork
113ControlCount=15 113ControlCount=17
114Control1=IDC_STATIC,button,1342177287 114Control1=IDC_STATIC,button,1342177287
115Control2=IDC_STATIC,static,1342308354 115Control2=IDC_STATIC,static,1342308354
116Control3=IDC_LISTENPORT,edit,1350631552 116Control3=IDC_LISTENPORT,edit,1350631552
@@ -126,6 +126,8 @@ Control12=IDC_STATIC,static,1342308352
126Control13=IDC_STATIC,static,1342308352 126Control13=IDC_STATIC,static,1342308352
127Control14=IDC_BLOCKSIZE,edit,1350639744 127Control14=IDC_BLOCKSIZE,edit,1350639744
128Control15=IDC_BSIZESPIN,msctls_updown32,1342177463 128Control15=IDC_BSIZESPIN,msctls_updown32,1342177463
129Control16=IDC_STATIC,static,1342308354
130Control17=IDC_LISTENADDRESS,edit,1350631552
129 131
130[CLS:CPropsServer] 132[CLS:CPropsServer]
131Type=0 133Type=0
@@ -143,7 +145,7 @@ ImplementationFile=PropsNetwork.cpp
143BaseClass=CPropertyPage 145BaseClass=CPropertyPage
144Filter=D 146Filter=D
145VirtualFilter=idWC 147VirtualFilter=idWC
146LastObject=IDC_BLOCKSIZE 148LastObject=IDC_LISTENADDRESS
147 149
148[DLG:IDD_CONFIRM_RRQ] 150[DLG:IDD_CONFIRM_RRQ]
149Type=1 151Type=1
diff --git a/pumpkin.rc b/pumpkin.rc
index f52c4bd..babd066 100644..100755
--- a/pumpkin.rc
+++ b/pumpkin.rc
@@ -166,30 +166,32 @@ STYLE WS_CHILD | WS_DISABLED | WS_CAPTION
166CAPTION "Network" 166CAPTION "Network"
167FONT 8, "MS Sans Serif" 167FONT 8, "MS Sans Serif"
168BEGIN 168BEGIN
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
193END 195END
194 196
195IDD_CONFIRM_RRQ DIALOGEX 0, 0, 181, 79 197IDD_CONFIRM_RRQ DIALOGEX 0, 0, 181, 79
diff --git a/resource.h b/resource.h
index 7961e5e..2c2fa02 100644..100755
--- a/resource.h
+++ b/resource.h
@@ -151,6 +151,7 @@
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
@@ -165,9 +166,9 @@
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