============================================================================= IVSProvider plugin for WiRNS 1.x Version 1.02 (10/05/04) By j.m. (with large portions borrowed from kjac's defunct IVSProxy plugin) ============================================================================= ___________ Description The IVSProvider plugin proxies requests to the RDDNS (IVS) server and allows you to override the IP and port information it normally returns with custom info of your own. It also caches all responses to previous lookup requests and will returns the cached info in the case of failed RDDNS requests (e.g. when the server is down). Uses for this plugin include: - Simulating loopback for those using routers that do not support it (loopback is required in order to IVS between two ReplayTVs on the same LAN) - Allowing two parties who are both using this plugin to use IVS even when the RDDNS server is down by manually entering each other's ISN, IP address, and port in the IVSProvider configuration file - Permitting IVS transfers between two ReplayTVs that had previously communicated via IVS (through the plugin) even when the RDDNS server is down, provided that the IP and port information has not changed since the time of the last communication. Please read and acknowledge the DISCLAIMER below before installing and using this plugin. ____________ Installation For existing WiRNS users: To install the plugin, place the "IVSProvider.dll" file in the "Plugins" sub-folder within the folder containing the "WiRNS.exe" file. Place the "micro_dns.dll" file in the folder containing the "WiRNS.exe" file, overwriting the existing "micro_dns.dll" file. For new WiRNS users: It is possible to use this plugin with a very minimal installation of WiRNS. To do so, follow this subset of the normal WiRNS installation instructions: - Download WiRNS v1.x and unzip it to a folder - Place the included "micro_dns.dll" file in the folder containing the "WiRNS.exe" file, overwriting the existing "micro_dns.dll" file. - Place the included "IVSProvider.dll" file in the "Plugins" sub-folder - Start WiRNS by double-clicking the "StartWirns.bat" file - Configure WiRNS by browsing to "http://127.0.0.1:8923" in your web browser Click Configuration->WiRNS Set "WiRNS IP" to the IP address of your PC Set "DNS Server" to the IP address of a working DNS server (e.g. the IP of your ISP's DNS server *or* the IP of your router) - Close the WiRNS server by closing its console window - Restart WiRNS by double-clicking the "StartWirns.bat" file again - Reconfigure your ReplayTV to connect via WiRNS Go to Menu->Setup->Network and Input Settings->Change network Configure the ReplayTV to use a static (manual) IP Set DNS1 to the "WiRNS IP" you specified above, leaving DNS2 blank. Alternatively, if you want the ReplayTV to use WiRNS only if it is running, set DNS2 to your normal DNS IP. If the ReplayTV fails when contacting DNS1 (e.g. WiRNS isn't unning), then it will fall back upon DNS2, which should work if you entered the IP of a working DNS server. For users of WiRNS v0.7a: This version of the IVSProvider plugin is backwards compatible with WiRNS v0.7a. However, installation and usage is a little different with the earlier version of WiRNS. Please read the included "LEGACY.TXT" file (in addition to this README) for details. _____ Usage To return custom IP/port information for a given ISN, create a file named "IVSProvider.conf" in the folder containing the "WiRNS.exe" file (NOT in the "Plugins" sub-folder). Using any text editor, type the custom info into the "IVSProvider.conf" file. The format is one "IP|Port|ISN" entry per line (without the quotes). Comments are supported, just start the line with "#." Save the file. In response to a RDDNS lookup request for an ISN listed in "IVSProvider.conf", the message "[PLUGIN] IVSProvider returned custom information for ISN" should appear in the console window. Caching of RDDNS responses is automatically handled by the IVSProvider plugin (the cache file is "IVSProvider.cache"). In the event a lookup request to RDDNS fails, IVSProvider will return any information it has cached for that ISN. The message "[PLUGIN] IVSProvider returned cached information for ISN" should appear in the console window. IVSProvider will *only* use the cached info as a last resort--i.e. when no other information is available from the RDDNS server. This will allow you to continue to *receive* a show from any cached ISNs--even if the RDDNS server is down--as long as the IP and Port information for the ISN has not changed since the last time it was cached. It will not allow you to continue to *send* a show unless the receiving party is using this plugin and has the correct information cached for your ISN. NOTE: If you make changes to the above files while WiRNS is running, you MUST restart WiRNS for those changes to take effect! _______________________ Sample IVSProvider.conf # Sample configuration # Lines beginning with # are comments # Info in this file will ALWAYS override info from the RDDNS server # Format: IP|Port|ISN # Simulated loopback for ReplayTVs on a LAN 192.168.1.10|29000|00055-09166-55000 192.168.1.11|29001|00055-09166-55001 192.168.1.12|29002|00055-09166-55002 ____ Tips ***INSTALLATION*** - If you do not know the IP address of your PC or your DNS servers, you can find them by typing "ipconfig /all" at a command prompt. Look for the "DNS Servers" entry and use the first one listed for the "DNS Server" setting in the WiRNS configuration. You can also enter the "IP Address" listed there for your "WiRNS IP." - Assuming your router forwards DNS requests (as most do), you can use the router's IP address for the "DNS Server" when configuring WiRNS. - Unless you want to use WiRNS for its other features such as custom guide data etc., you do not need to enter any info about your ReplayTVs, DataDirect, etc. when setting up WiRNS. Just stick to the steps I listed above. ***USAGE*** - Use of this plugin does NOT alter any info stored on the RDDNS server. Anyone not using this plugin will still be able to reach you via IVS as long as the RDDNS server is working. - If IVSProvider does not seem to be using the contents of the "IVSProvider.conf" file, make SURE you placed the "IVSProvider.conf" file in the same folder as the "WiRNS.exe" file. Do *not* put it in the "Plugins" sub-folder, as it will not be used there. - For this plugin to work most effectively, you must be running WiRNS 24/7. However, you can just run it when you need to do local IVS. Also, you can run it when the RDDNS server goes down by putting the ISN/IP/Port information for the other party in the "IVSProvider.conf" file. IMPORTANT: Both parties to a transfer (sender and receiver) must do this in order to initiate a transfer while the RDDNS server is down. ***TROUBLESHOOTING*** - Start WiRNS from a command prompt instead of double-clicking from Windows Explorer. This way the WiRNS console window will not close if an error occurs, which will allow you to record the error and report it. - You cannot run WiRNS and any other HTTP server--e.g. DVArchive, IIS, Apache, etc.--on the same PC at the same time (unless all such servers are bound to separate IP addresses). WiRNS works by binding port 80 (HTTP) on the "WiRNS IP" you specify. That means WiRNS will not work properly if another program has already bound port 80 of that IP. If you are having problems getting your ReplayTV to connect through WiRNS, try typing "netstat -ano" into a command prompt while WiRNS IS NOT RUNNING. Look for any entries that have ":80" with "LISTENING" beside it. If the IP address for that entry is "0.0.0.0" or matches your "WiRNS IP" then something else is binding port 80, which prevents WiRNS from working. The same is also true with regard to running any other program that binds port 53 (DNS). - If your ReplayTV is not able to communicate with WiRNS, ensure that you are not running any firewall on the WiRNS PC (or configure the firewall to permit WiRNS to communicate). Otherwise, it will block the necessary communication between the ReplayTV and WiRNS. In particular, be sure to disable the firewall that is included with Windows XP (the Internet Connection Firewall or Windows Firewall). NOTE: Windows XP Service Pack 2 will enable the Windows Firewall by default, so it is critical to check this when troubleshooting. _____ Links WiRNS http://wirns.sourceforge.net ReplayTV FAQ http://www.replayfaqs.com ReplayTV TWiki http://www.molehill.org/twiki/bin/view/Replay/WebHome __________ DISCLAIMER 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.