logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

pop3d::udb - Simple user database for pop3d

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

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

________________________________________________________________________________________________________________

See Also