summaryrefslogtreecommitdiffstats
path: root/etc/inc/basic_sasl_client.inc
diff options
context:
space:
mode:
authorPierre POMES <pierre.pomes@gmail.com>2011-01-02 15:30:44 -0500
committerPierre POMES <pierre.pomes@gmail.com>2011-01-02 15:30:44 -0500
commit2cd8d942d64d090e5672dd963eb75012a8242330 (patch)
treeefcc1e136a978e94e7c9e7bb319ebca3d436590b /etc/inc/basic_sasl_client.inc
parent76d11a57802be53c7cbb274c49ec8646279d0f40 (diff)
downloadpfsense-2cd8d942d64d090e5672dd963eb75012a8242330.zip
pfsense-2cd8d942d64d090e5672dd963eb75012a8242330.tar.gz
Ticket #1141. Add necessary stuff for smtp auth using sasl
Diffstat (limited to 'etc/inc/basic_sasl_client.inc')
-rw-r--r--etc/inc/basic_sasl_client.inc61
1 files changed, 61 insertions, 0 deletions
diff --git a/etc/inc/basic_sasl_client.inc b/etc/inc/basic_sasl_client.inc
new file mode 100644
index 0000000..b2972b5
--- /dev/null
+++ b/etc/inc/basic_sasl_client.inc
@@ -0,0 +1,61 @@
+<?php
+/*
+ * basic_sasl_client.php
+ *
+ * @(#) $Id: basic_sasl_client.php,v 1.1 2004/11/17 08:01:23 mlemos Exp $
+ *
+ */
+
+define("SASL_BASIC_STATE_START", 0);
+define("SASL_BASIC_STATE_DONE", 1);
+
+class basic_sasl_client_class
+{
+ var $credentials=array();
+ var $state=SASL_BASIC_STATE_START;
+
+ Function Initialize(&$client)
+ {
+ return(1);
+ }
+
+ Function Start(&$client, &$message, &$interactions)
+ {
+ if($this->state!=SASL_BASIC_STATE_START)
+ {
+ $client->error="Basic authentication state is not at the start";
+ return(SASL_FAIL);
+ }
+ $this->credentials=array(
+ "user"=>"",
+ "password"=>""
+ );
+ $defaults=array(
+ );
+ $status=$client->GetCredentials($this->credentials,$defaults,$interactions);
+ if($status==SASL_CONTINUE)
+ {
+ $message=$this->credentials["user"].":".$this->credentials["password"];
+ $this->state=SASL_BASIC_STATE_DONE;
+ }
+ else
+ Unset($message);
+ return($status);
+ }
+
+ Function Step(&$client, $response, &$message, &$interactions)
+ {
+ switch($this->state)
+ {
+ case SASL_BASIC_STATE_DONE:
+ $client->error="Basic authentication was finished without success";
+ return(SASL_FAIL);
+ default:
+ $client->error="invalid Basic authentication step state";
+ return(SASL_FAIL);
+ }
+ return(SASL_CONTINUE);
+ }
+};
+
+?> \ No newline at end of file
OpenPOWER on IntegriCloud