DPAccess: DPbox Common Gateway Interface
Paolo Subiaco http://gw.ir3ip.ampr.org/iw3grx
DPbox is a powerful amateur radio BBS program, written by DL8HBS and DL4YBG
running in some unices platforms such as Linux.
The Main characteristic of DPbox is the communication with other programs using
a socket: this is a great idea because it permits an easy way to access DPbox
from external applications.
Since version 5.00, DL8HBS provided an external program, DPGATE, usable to access
DPbox features from telnet connections or CGI scripts.
In the optics of access ham BBS features through a web browser, the DPAccess
project was born: it is a small suite of programs and scripts which permits
users to access DPBbox bbs functions from a CGI interface.
Programs are written in C language, scripts are written in Tcl.
- If browser support gzip encoding, the scripts will send the result pages compressed
using gzip, improving speed due to the compress factor usually better than 1:4.
This is a necessary feature for hams who connect DPbox using TCP/IP over a radio
network
- Uses the cookies method to recognize user callsign, password and preferences
- List private user messages
- List bulletins arrived since the last user login
- From the two lists above, you can select (simply clicking) which message read,
and then reply with a private message or bulletin.
- Create new messages, either private or bulletins
- Use DPbox crawler to search messages containing the specified keywords in the
body (Full Text Retrieval)
- Search messages with the specify keyword in the subject or address
- Print user and bbs informations
- Permit stylesheets selection
- Multilanguage support permit administrator to easely translate text to unimplemented
languages, just creating a new simple text file named dptext.XX where
XX is the browser language abbreviation (i.e. it for italian, en for english,
de for german, ....).
- Security improvements in dpgate C program (encrypt password controlling to avoid
users to call dpgate from the shell without authenticate themself)
- Board list selection directly from CGI interface (to setup the wantboard
list).
I'm very glad if someone would improve new features to this project, and redistribute
it with all sources as I've done.
Probably many developers prefer other scripting language than Tcl: the first
version of DPAccess scripts was written in Perl, resulting in a large amount
of resources needed with a very long execution time, either using Apache/mod_perl.
Then i tried with Tcl, and now execution time is satisfied: Tcl is fast and
has a very clear sintax similar to C and Bourne Shell.
To permit informations to be exchanged by people who are interested about this
project, a forum is created at URL http://gw.ir3ip.ampr.org/eforum.
This was the first published version.
[15k] dpaccess-0.2.tar.gz
More complete version, with multilanguage support and stylesheet selection.
Not very easy to install, but i hope that someone help me to make DPAccess installation
less traumatic!
[94kb] dpaccess-1.0.tar.gz
Introduced Full Text Retrieval using DPbox crawler.
The scripts called by the web server are made in Tcl language: in this
way they are easely adjustable and testable, and also they are very fast. Infact,
Tcl is one of the faster scripting language, much more than Perl either enabling
apache/mod_perl.
The scripts, which must be put into the cgi-bin directory of the web server,
are:
- [dp.tcl]the main script
- [dplog.tcl]administration tool to read the log created
Other text files, contained in a directory reachable by the web server such
as /home/www/html/dpbox, are used in support to dp.tcl main script:
- [dptext.*]language specific file, which permit the internationalization
of the script; i.e. just create the dptext.ru file to implement russian
language
- [xxxx.css]where xxxx is the name of the cascading stylesheet specification
for all pages generated by dp.tcl.
Few C programs are provided, and they will be put in the /usr/local/*bin directories:
- [dpaccess_pass]SUID root program used to authenticate and add new
users
- [dpgate]original DL8HBS program with few modifications
- [dpprivlinks]similar to dpputlinks, is used to convert dpgate text
output in HTML
and finally, some utilities like:
- [adddpbox]simplest bash script based on dpaccess_pass which add a
new user, insert a new line on reject.box to hold his sent messages, and finally
send a mail to the dpbox administrator (which can be an alias to cover all administrators)
informing that the user have been added.
- [Makefile]within definition of how C programs must be compiled, and
where all files must be copied.
From a shell, you must type make to compile the C programs, then type
su - to obtain a root shell, finally make install to install all
needed files in the appropriate directories.
Note: there are some definitions which you must changed in the top of
Makefile, dp.tcl, dpaccess_pass.c and dpprivlinks.c.
This is a C program which provid user authentication using one-way encrypting
alghoritm. The program will take user information from a file in a directory
readable from nobody and writable from dpbox administrator. Dpaccess cgi script
will call this program with this syntax dpaccess_pass command arg1 [arg2
[arg3]]
- dpaccess_pass control callsign providedpassword
providedpassword is the plain text password that must be encrypted and
then compared with the one written in the dpbox_access_file
The program must return
- [Ok]-> The password is right!
- [No-User]-> The file does not contain that callsign
- [No-Pass]-> Provided password don't match with the specified
- dpaccess_pass encode callsign
Return in the stdout the encrypt password of callsign: this password will be
stored in the cookie of callsign browser, and must be decode from the next dpaccess_pass
(using the next instruction) to grant access
- dpaccess_pass decode callsign
Compare the cookie password and the one stored in the DPBOX_ACCESS_FILE.
Return
- [Ok]-> Access grant
- [No-User]-> The DPBOX_ACCESS_FILE does not contain that callsign
- [No-Pass]-> The password provided is wrong
Installing this software is not easy: you must probably change some parameters
in Makefile, dp.tcl and dpaccess_pass.c, so be patient!
For any request, post a short message on the dpbox forum at http://gw.ir3ip.ampr.org/eforum.
Any opinion, suggestion about this project is welcome. Any modifications to
the scripts are welcome too.
Finally, i want apologize for my bad english.
DPAccess: DPbox Common Gateway Interface
This document was generated using the
LaTeX2HTML translator Version 99.2beta8 (1.42)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 -nonavigation dpaccess.tex
The translation was initiated by Paolo Subiaco on 2001-06-10
Paolo Subiaco
2001-06-10