blob: f2c062eb9057640dbdf53381e6b4a7f48568bea6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
@(do
(defun put-binary-str (str stream)
(let ((len (length str)))
(put-byte (trunc len 256) stream)
(put-byte (mod len 256) stream)
(put-string str stream)))
(defun sasl-auth (user pass)
(let ((sock (open-socket af-unix sock-stream)))
(sock-connect sock (new sockaddr-un path "/var/run/saslauthd/mux"))
(put-binary-str user sock)
(put-binary-str pass sock)
(put-binary-str "" sock)
(put-binary-str "" sock)
(let ((response (get-string sock)))
(equal [response 2..4] "OK")))))
@(define auth (userid password))
@ (require (sasl-auth userid password))
@(end)
|