                             *** DPGATE 1.0 ***
          Part of the DPNET series: Internet Software for PowerBBS

                              by Detlef Pleiss

               Internet:   det@powerbbs.com
               Compuserve: 74101.755

               Download and Online Order:
               Internet: http://dpsoft.powerbbs.com
                         http://www.abacus2.com
                         http://www.write-byte.com/3rd-Party-Download-Central
               Compuserve: GO PBBS

               Online Support Mailing List:
               to subscribe send a message to majordomo@mail.msen.com with
               "subscribe dpsoft" in the body (no quotes)

====================================================================
Files included in package:
DPGATE.DLL   - BBS side server DLL, 16 bit version
DPGATE32.DLL - BBS side server DLL, 32 bit version
DPGATE2.PA   - Caller side GUI DLL
DPGATE.ICO   - Icon for PowerGenerator Screens
DPGATE.INI   - sample configuration file
DPGATE.TXT   - This File
DPSOFT.TXT   - Information about DP Software Products
FILE_ID.DIZ  - Description for BBS File Lists
====================================================================

The Basics of DPGATE

DPGATE "tunnels" TCP/IP connections through the PBBS <-> PA frame protocol.
This way it allows the caller to use the most common Internet protocols like
HTTP   - browsing the World Wide Web
POP3   - retrieving EMail
SMTP   - sending EMail
NNTP   - access to Newsgroups
IRC    - Internet Relay Chat
Telnet - remote console access
once logged into your BBS with PowerAccess.
The caller uses his own clients, whatever software he prefers.

====================================================================

Requirements at the BBS Side

Obviously, you need a working PowerBBS that allows Power-Access.
You need PowerBBS 5.50 or later and the caller needs PowerAccess 2.50 or
later.
DPGATE DOES NOT WORK WITH POWERACCESS 1.50!
DPGate relies on some features that have been introduced after PowerAccess
1.50. It may work with some versions of PowerAccess 2.0 or PowerAccess PRO,
this has not been tested.
You need a working Windows Socket TCP/IP stack, a WINSOCK.DLL (WSOCK32.DLL for
32 bit). The type of connection to your Internet provider doesn't matter, even
a dialup connection does the job. DPGATE can call a batch file of your
choice in order to establish a dial-up connection on demand. This document
does not explain how to get your TCP/IP stack up and running. For that you
need to refer to the documentation of the TCP/IP software you're using or to
your internet provider.
Especially to allow Web browsing, you need access to a Proxy server. This can
be a Proxy server that your ISP runs or you can run a Proxy server on your own
machine / network. As there are some Windows based Proxy servers available
that are free for local only connections, this shouldn't be an issue. As with
DPGATE connections to the Proxy originate from the BBS machine, even
connections from multiple BBS nodes on that machine count as local
connections, for a Proxy installed on the same machine. Even if your ISP offers
access to a Proxy server, installing one on your BBS machine(s) will help save
your bandwidth, given it is a caching Proxy. Most Proxy servers allow a
"cascading" configuration, so they forward requests that they cannot answer
from their own cache to the Proxy server of your ISP.

====================================================================

Requirements at the Caller Side

The caller needs PowerAccess 2.50 or later.
DPGATE DOES NOT WORK WITH POWERACCESS 1.50!
DPGate relies on some features that have been introduced after PowerAccess
1.50. It may work with some versions of PowerAccess 2.0 or PowerAccess PRO,
this has not been tested.

The caller needs a TCP/IP stack, a WINSOCK.DLL installed on his machine. As
PowerAccess and the DPGATE PA GUI client is a 16 bit program, a 16 bit
WINSOCK.DLL is required. If the caller wishes to use 32 bit software, he needs
a TCP/IP stack that supports both, 16 bit and 32 bit. This is the case with the
Windows 95 TCP/IP stack and with Trumpet Winsocket. In case of Windows 95, the
caller just needs to install the TCP/IP protocol and the Dial-Up Networking
Adapter from the Networking Control Panel. The caller does *not* need to
configure anything else. DPGATE at the caller side connects *only* to the
127.0.0.1 local loopback address, which should be supported by any Winsocket
without further configuration.
The caller needs Winsocket client software for the protocols he wishes to use,
speak a Web Browser, EMail client, Newsreader, IRC client, Telnet client etc.
Make such software available in your file areas!

====================================================================

Installation

Before trying to install and use DPGATE, read the *complete* documentation.

In order to configure DPGATE you need to know the Internet addresses (IP
numbers or DNS names) and port numbers you want to give PowerAccess
callers access to. In particular you need to know the address of the HTTP
Proxy of your ISP, or first install and configure a Proxy server on your own
machine. This document does not explain how to install and configure a Proxy
server. For that you need to refer to the documentation of the software you
install. In the following it is assumed that you know the addresses and port
numbers of a HTTP Proxy and eventually other servers you want to give callers
access to, like EMail- (SMTP and POP3), News-, IRC- or Telnet-(Proxy)Servers.
If your Proxy server software offers Telnet services, you can have your
callers use that to connect to whatever Telnet server addresses they like. You
can also choose to configure Telnet access to one or more fixed addresses of
your choice. In case of IRC, you can choose to configure one or more fixed
mappings to server addresses of your choice.

If you run the 16 bit version of PowerBBS, copy DPGATE.DLL to your PowerBBS
home directory.
If you run the 32 bit version of PowerBBS, copy DPGATE32.DLL to your PowerBBS
home directory and there rename it to DPGATE.DLL.
Copy DPGATE2.PA to your POWRBBS\SOURCE directory.
Copy DPGATE.INI to your \windows home directory. You will need to edit that
file, using any text editor, like Notepad, in order to configure DPGATE.
Therefore read on, before trying to launch DPGATE :-)
On networked BBS's have a copy of \windows\dpgate.ini on each machine!
On one of your PGen screens add a command to run DPGATE as a PA DLL. The
command reads "O-DPGATE.DLL". You may want to use DPGATE.ICO for the icon.

====================================================================

Configuration at the BBS Side

In order to properly configure DPGATE, you need to understand how it works:
For each service you configure, DPGATE opens a "listen socket" at the caller
side that accepts connections on a specified port number. These port numbers
have to be unique, so each service you configure needs a different port number
assigned. It is handy to use just the standard port numbers for services like:
HTTP Proxy:   8080
POP3 Proxy:    110
SMTP Proxy:     25
NNTP Proxy:    119
IRC Proxy:    6667
Telnet Proxy:   23
(numbers given in decimal)
For each service you also configure an address and port number for the BBS
server to connect to, i.e. the address and port of your Proxy server for that
service. Now, each time some software at the caller side establishes a
connection to one of the configured "listen" ports, the server DLL at the BBS
side will establish a connection to the configured target address. Once
connections are established, all data is forwarded back and forth through the
PBBS <-> PA frame protocol. With DPGATE running, the callers machine behaves
like it would be running i.e. the Proxy server itself, while it actually runs
on the BBS machine or at your ISP.
Example:
The callers Web browser establishes a connection to the HTTP service listen
port at the caller side. The BBS server DLL then establishes a connection to
your configured HTTP Proxy server address. Once connections are established,
the caller's Web browser sends a request to DPGATE at his end. This request
goes through the PBBS <-> PA frame protocol to the DPGATE server DLL at the
BBS, which then forwards that request to the actual HTTP Proxy. Once the
requested response, i.e. a web page arrives at the BBS server DLL, it gets
forwarded to the caller side DLL, through the PBBS <-> PA protocol. There the
callers local Winsocket finally sends the data to the Web browser which then
displays the requested page.

DPGATE is configured by means of the DPGATE.INI file in your \windows home
directory. A sample DPGATE.INI is provided as a starting point. DPGATE.INI has
four sections:
[SERVICENAMES]
[LISTENPORTS]
[ADDRESSES]
[DPGATE]
The first three sections configure the services you forward to your callers.
The [DPGATE] section holds general DPGATE configuration parameters. Currently
the latter are just the parameters for dial-up support as explained in the
"Dial-Up Support" chapter of this documentation.
The first three sections hold each one entry for each service you configure.
These entries are called
service0=
service1=
etc.
you can configure up to 10 services, numbered "service0" to "service9".
For each service you configure, you need one "service<n>" entry in the
[SERVICENAMES], [LISTENPORTS] and [ADDRESSES] sections of DPGATE.INI.

The [SERVICENAMES] entry is just a name you give to that service. That name
shows up on the DPGATE window at the caller side.

The [LISTENPORT] entry configures the port number where the caller's DPGATE
should listen for connections to that service. Addresses are not needed here,
as all connections at the caller side go to the local loopback interface at IP
address 127.0.0.1. The port numbers in this section must be unique, as each
port can be opened for listening only once.

The [ADDRESSES] section configures where the actual connections from the BBS
side should go to. Here you configure i.e. the actual address of your (or your
ISPs) HTTP Proxy. The addresses you configure can be IP addresses or DNS
names, optionally followed by a ':' and a port number. If no port number is
given, the port number you configured for this service in LISTENPORTS will be
used.

While the entries for HTTP, POP3, SMTP and NNTP should just point to your (or
your ISPs) servers, you can configure one or more fixed mappings for IRC and
Telnet. I.e. you can have one service map port 6667 at the caller side to
"irc.dal.net" and another service maps port 6668 at the caller side to
"irc.winpoint.com". Once the caller then points his IRC client to
"127.0.0.1:6667", it will connect him to DALNet, while pointing his IRC client
to "127.0.0.1:6668" will connect him to the Global PowrCHAT Network. In the
same manner you can configure different ports at the caller side to point to
different Telnet servers. On the other hand, if your Proxy server supports
forwarding Telnet services, you can just point the DPGATE Telnet service to
your Proxy, so callers can then type in whatever Telnet server address they
want to connect to.

The supplied sample configuration will not work for your setup, but should
give you an idea of how things work. In particular you will need to fill in
the correct addresses for your setup in the [ADDRESSES] section.

DPGATE buffers all data it receives until it can actually send them through
the PBBS <-> PA protocol to the caller. Especially if you have a fast Internet
connection that may lead to DPGATE requiring large amounts of memory. If a
caller with a 2400 baud modem requests download of a 10MB file over your T3
connection to the Internet :-) you may end up with DPGATE requiring 10MB
buffer space. This does not need to be actual RAM, it can safely reside in
the swap file. Only make sure you have enough room for a large swap file,
you have been warned :-)

====================================================================

Configuration at the Caller Side

It is assumed that the caller has a 16 bit (required) plus maybe 32 bit
(optional) TCP/IP stack, WINSOCK.DLL (and optionally WSOCK32.DLL) installed.
This TCP/IP stack shouldn't require further configuration, as all connections
at the caller side just go to the local loopback address, 127.0.0.1.
As the caller is not actually connected to the Internet, this is the only IP
address he can reach when using DPGATE. In order to browse the Web through
DPGATE, he needs to configure his Web browser to go through a Proxy at address
"127.0.0.1" and the port number you configured for HTTP services in
DPGATE.INI, section [LISTENPORTS]. Connections to this address will then be
forwarded to the actual HTTP Proxy address you configured in the [ADDRESSES]
section of DPGATE.INI. This is why access to a Proxy is required for Web
browsing with DPGATE.

The same is true for all other client software the caller uses, the server
address is always "127.0.0.1" and the port number whatever you configured for
that service. So, i.e. in an EMail client, the caller uses "127.0.0.1" for the
POP3 and SMTP server address, while you configure the actual mail server
address in DPGATE.INI, section [ADDRESSES].

The caller should
NOT USE POWERACCESS WHILE DPGATE TRANSFERS DATA!
He should
CLOSE THE CHAT ROOM WINDOW!
TELL THIS YOUR CALLERS ON THE PGEN SCREEN THEY LAUNCH DPGATE FROM!
The DPGATE data transfer between PowerBBS and PowerAccess only works reliably
if PowerAccess does not send frames while DPGATE is transfering data. Some
measures have been taken to work around the problems if DPGATE and PowerAccess
itself try to transfer data concurrently, but this may lead to data loss on
the DPGATE connection. It is fine to use PowerAccess to open screens, download
files or chat etc. while DPGATE is idle, only you should not try to do
something in PowerAccess while DPGATE is i.e. downloading a file from the
Internet, or a web page, or running an EMail exchange. Trying to do so may
lead to data loss. You have been warned.

====================================================================

Dial-Up Support

DPGATE supports dialup connections to your provider in that you can specify
the

Dialup= path to batch file called on Internet connection requests

parameter in the [DPGATE] section of DPGATE.INI. This batch file is called
everytime a caller launches DPGATE. Its purpose is to initiate a dialup
connection in case your Windows Socket stack doesn't dial-on-demand. If you
don't need it just leave this parameter empty.
During dial-up the "please wait" message taken from the

PleaseWait=  message to be displayed during dial-up

entry in the [DPGATE] section of DPGATE.INI is displayed to the caller.

====================================================================

Limitations

DPGATE supports TCP connections only, no UDP. So it cannot be used for UDP
based programs like RealAudio, voice chat or video software, Internet
Phones, Netmeeting, ICQ, "Talk" etc.
DPGATE works only with TCP protocols where the client software initiates a
connection to a "well known" port number. Especially FTP does not work
through DPGATE, as FTP works with dynamically assigned port numbers for data
transfers. However, if (and only if) the HTTP Proxy you use understands the
"HTTP-FTP" protocol, the caller can access "ftp://" URLs from within his Web
browser. He may need to configure the FTP Proxy address in his browser to
point to the same address like for HTTP Proxy services
(127.0.0.1:whatever-port-you-configured-for-the-HTTP-service).

====================================================================

Troubleshooting

If at the caller side the DPGate window shows up, but displays only a title
line and no "initializing <servicename from dpgate.ini> service" etc. lines,
the reason most likely is that the caller uses a PowerAccess version that
is not yet compatible to DPGate. Upgrade the caller to PowerAccess 2.50!

====================================================================

For backup and reference purposes here a copy of the sample DPGATE.INI file:

[SERVICENAMES]
service0=HTTP Proxy
service1=POP3 Proxy
service2=SMTP Proxy
service3=NNTP Proxy
service4=IRC Proxy
service5=Telnet Proxy

[LISTENPORTS]
service0=8080
service1=110
service2=25
service3=119
service4=6667
service5=23

[ADDRESSES]
service0=127.0.0.1:1845
service1=mail.goliath.de:110
service2=mail.goliath.de:25
service3=news.gtn.com:119
service4=irc.winpoint.com:6667
service5=127.0.0.1:8023

[DPGATE]

#DialUp=c:\powrbbs\in_dial.bat
#PleaseWait=please wait

====================================================================

Registration and Disclaimer

DPGATE is shareware. It is neither free, nor freeware nor in the public
domain. The unregistered version may be distributed freely in its unaltered
form. This software is provided as is. Detlef Pleiss disclaims all
warranties, either expressed or implied, including but not limited to implied
warranties of merchantability, fitness for a particular purpose. In no event
will Detlef Pleiss be liable to you for damages, including any loss of data,
profits, lost savings, or other incidental or consequential damages arising
out of your use or inability to use the software. Use at your own risk.

The unregistered version of DPGATE displays an "UNREGISTERED SHAREWARE"
message and shuts down after 15 minutes. The timeout will vanish after
applying a valid registration code and a "Registered to: ..." message gets
displayed to the caller.

Online registration is available at
http://addons.powerbbs.com/pleiss.htm
http://www.abacus2.com
http://www.write-byte.com/3rd-Party-Download-Central
and via Compuserve GO SWREG, ID 16955.

Registration fee is $90.
After registering you'll receive a registration code that is valid for your
name and your BBS's name. If registering at Compuserve, please additionally
send Compuserve mail to 74101.755 stating which program you registered, your
name and your BBS's name. This information will be needed. Registrations can
not be transferred. If either name or BBS name change a new registration is
required.

====================================================================

History of DPGATE:

v 1.0 - released: Apr 15 1998

