pop3d::udb - Simple user database for pop3d
Contents
Bugs, Ideas, Feedback
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please
report such in the category pop3d of the TcllibTrackers [http://core.tcl.tk/tcllib/reportlist]. Please
also report any ideas for enhancements you may have for either package and/or documentation.
When proposing code changes, please provide unifieddiffs, i.e the output of diff-u.
Note further that attachments are strongly preferred over inlined patches. Attachments can be made by
going to the Edit form of the ticket immediately after its creation, and then using the left-most button
in the secondary navigation bar.
Category
Networking
Copyright
Copyright (c) 2002 Andreas Kupries <andreas_kupries@users.sourceforge.net>
tcllib 1.0.1 pop3d::udb(3tcl)
Description
The package pop3d::udb provides simple in memory databases which can be used in conjunction with the pop3
server core provided by the package pop3d. The databases will use the names of users as keys and
associates passwords and storage references with them.
Objects created by this package can be directly used in the authentication callback of pop3 servers
following the same interface as servers created by the package pop3d.
::pop3d::udb::new ?dbName?
This command creates a new database object with an associated global Tcl command whose name is
dbName.
The command dbName may be used to invoke various operations on the database. It has the following
general form:
dbNameoption ?argarg...?
Option and the args determine the exact behavior of the command.
The following commands are possible for database objects:
dbNamedestroy
Destroys the database object.
dbNameadduserpwdstorage
Add a new user or changes the data of an existing user. Stores password and storage reference for
the given user.
dbNameremoveuser
Removes the specified user from the database.
dbNamerenameusernewName
Changes the name of the specified user to newName.
dbNamelookupuser
Searches the database for the specified user and returns a two-element list containing the
associated password and storage reference, in this order. Throws an error if the user could not be
found. This is the interface as expected by the authentication callback of package pop3d.
dbNameexistsuser
Returns true if the specified user is known to the database, else false.
dbNamewho
Returns a list of users known to the database.
dbNamesave ?file?
Saves the contents of the database into the given file. If the file is not specified the system
will use the path last used in a call to dbNameread. The generated file can be read by the read
method.
dbNamereadfile
Reads the specified file and adds the contained user definitions to the database. As the file is
actually source'd a safe interpreter is employed to safeguard against malicious code. This
interpreter knows the add command for adding users and their associated data to this database.
This command has the same argument signature as the method add. The path of the file is remembered
internally so that it can be used in the next call of dbNamesave without an argument.
Keywords
internet, network, pop3, protocol
Name
pop3d::udb - Simple user database for pop3d
Synopsis
package require Tcl8.59
package require pop3d::udb?1.0.1?::pop3d::udb::new ?dbName?
dbNameoption ?argarg...?
dbNamedestroydbNameadduserpwdstoragedbNameremoveuserdbNamerenameusernewNamedbNamelookupuserdbNameexistsuserdbNamewhodbNamesave ?file?
dbNamereadfile
________________________________________________________________________________________________________________
