From 58fbbde8c830ec651b97d4ab140641ff92e6cc2c Mon Sep 17 00:00:00 2001 From: roundcube Date: Mon, 3 Oct 2005 20:25:31 +0000 Subject: Minor bugfixes and SMTP support git-svn-id: https://svn.roundcube.net/trunk@17 208e9e7b-5314-0410-a742-e7e81cd9613c --- roundcubemail/program/lib/Auth/SASL.php | 98 +++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100755 roundcubemail/program/lib/Auth/SASL.php (limited to 'roundcubemail/program/lib/Auth/SASL.php') diff --git a/roundcubemail/program/lib/Auth/SASL.php b/roundcubemail/program/lib/Auth/SASL.php new file mode 100755 index 000000000..6e3dc34e4 --- /dev/null +++ b/roundcubemail/program/lib/Auth/SASL.php @@ -0,0 +1,98 @@ + | +// +-----------------------------------------------------------------------+ +// +// $Id$ + +/** +* Client implementation of various SASL mechanisms +* +* @author Richard Heyes +* @access public +* @version 1.0 +* @package Auth_SASL +*/ + +require_once('PEAR.php'); + +class Auth_SASL +{ + /** + * Factory class. Returns an object of the request + * type. + * + * @param string $type One of: Anonymous + * Plain + * CramMD5 + * DigestMD5 + * Types are not case sensitive + */ + function &factory($type) + { + switch (strtolower($type)) { + case 'anonymous': + $filename = 'Auth/SASL/Anonymous.php'; + $classname = 'Auth_SASL_Anonymous'; + break; + + case 'login': + $filename = 'Auth/SASL/Login.php'; + $classname = 'Auth_SASL_Login'; + break; + + case 'plain': + $filename = 'Auth/SASL/Plain.php'; + $classname = 'Auth_SASL_Plain'; + break; + + case 'crammd5': + $filename = 'Auth/SASL/CramMD5.php'; + $classname = 'Auth_SASL_CramMD5'; + break; + + case 'digestmd5': + $filename = 'Auth/SASL/DigestMD5.php'; + $classname = 'Auth_SASL_DigestMD5'; + break; + + default: + return PEAR::raiseError('Invalid SASL mechanism type'); + break; + } + + require_once($filename); + return new $classname(); + } +} + +?> \ No newline at end of file -- cgit v1.2.3