]> gitweb.factorcode.org Git - factor.git/commitdiff
irc.client: Reconnect when the connection drops
authorBruno Deferrari <utizoc@gmail.com>
Wed, 3 Dec 2008 00:39:49 +0000 (22:39 -0200)
committerBruno Deferrari <utizoc@gmail.com>
Wed, 3 Dec 2008 00:39:49 +0000 (22:39 -0200)
extra/irc/client/client-tests.factor
extra/irc/client/client.factor

index 327bfc629282a0dfd47cb6a12a40fc71b0440de6..622b5eaa2ce3a20e149920bd8791b2f542d33d21 100644 (file)
@@ -19,7 +19,7 @@ M: mb-reader stream-readln ( mb-reader -- str/f ) lines>> mailbox-get ;
 M: mb-writer stream-nl ( mb-writer -- )
     [ [ last-line>> concat ] [ lines>> ] bi push ] keep
     V{ } clone >>last-line drop ;
-M: mb-reader dispose drop ;
+M: mb-reader dispose f swap push-line ;
 M: mb-writer dispose drop ;
 
 : spawn-client ( -- irc-client )
@@ -39,7 +39,7 @@ M: mb-writer dispose drop ;
     [ in-messages>> 0.1 seconds ] dip mailbox-get-timeout? ;
 
 : with-irc ( quot: ( -- ) -- )
-    [ spawn-client ] dip [ f %push-line ] compose with-irc-client ; inline
+    [ spawn-client ] dip [ irc> terminate-irc ] compose with-irc-client ; inline
 
 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !                       TESTS
@@ -60,17 +60,16 @@ M: mb-writer dispose drop ;
 
 ! Test login and nickname set
 [ { "factorbot2" } [
-     ":some.where 001 factorbot2 :Welcome factorbot2" %push-line
-      irc> nick>>
+    ":some.where 001 factorbot2 :Welcome factorbot2" %push-line
+    irc> nick>>
   ] unit-test
 ] with-irc
 
 ! Test connect
 { V{ "NICK factorbot" "USER factorbot hostname servername :irc.factor" } } [
-   "someserver" irc-port "factorbot" f <irc-profile> <irc-client>
+    "someserver" irc-port "factorbot" f <irc-profile> <irc-client>
     [ 2drop <test-stream> t ] >>connect
-    [ connect-irc ] keep
-    stream>> [ in>> [ f ] dip push-line ] [ out>> lines>> ] bi
+    [ connect-irc ] [ stream>> out>> lines>> ] [ terminate-irc ] tri
 ] unit-test
 
 ! Test join
index d79e8e0ee5a52f353d83b66ff9cbd96ae530b145..8199347feb0c0a2b6529a8374b97044a9c3e99ca 100755 (executable)
@@ -297,7 +297,7 @@ DEFER: (connect-irc)
         |dispose stream-readln [
             parse-irc-line handle-reader-message t
         ] [
-            irc> terminate-irc f
+            handle-disconnect
         ] if*
     ] with-destructors ;