(define (read-message)
(let ((BUFFER "") (RESULT ""))
- (while (net-select (%socket) "r" 1000)
- (net-receive (%socket) BUFFER 8192)
- (extend RESULT BUFFER))
+ (while (and RESULT (net-select (%socket) "r" 1000))
+ (if (net-receive (%socket) BUFFER 8192)
+ (extend RESULT BUFFER)
+ (begin
+ (setf RESULT nil)
+ (die 1 "dbus socket closed"))
+ ))
RESULT))
;; (handshake MSG PAT)
(setf RESULT (read-message))
(if PAT (regex PAT RESULT 0) RESULT)))
-(define (char2hex STR)
- (join (map (curry format "%2x") (map char (explode STR)))))
-
(constant
'AUTHFMT "AUTH EXTERNAL %s\r\n"
'AUTHACK "OK (\\S+)\r\n"
(define (cancel)
(handshake "CANCEL\r\n" "(.*)"))
-"DbusConnection"
-
+"lsp-dbus-connection.lsp"