summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorArtyom Poptsov <poptsov.artyom@gmail.com>2014-01-04 11:45:43 +0400
committerArtyom Poptsov <poptsov.artyom@gmail.com>2014-01-04 11:45:43 +0400
commit0ca20a43bd426415d8b5af43b37801c8541c591a (patch)
tree75687188196de2015b55bb28a79e7d1110f958c5 /examples
parentsrc/channel.scm: Update copyright notice. (diff)
downloadguile-ssh-0ca20a43bd426415d8b5af43b37801c8541c591a.tar.gz
src/channel-type.c (ptob_close): New procedure.
* src/channel-type.c (ptob_close): New procedure. (print_channel): Don't try to get state of a channel if its port is closed because it leads to segfaults. Closed port means closed channel. (init_channel_type): Register `ptob_close' with `scm_set_port_close'. * examples/echo/client.scm (main): Call `close' on a channel. * examples/echo/server.scm (main): Likewise.
Diffstat (limited to 'examples')
-rwxr-xr-xexamples/echo/client.scm5
-rwxr-xr-xexamples/echo/server.scm6
2 files changed, 6 insertions, 5 deletions
diff --git a/examples/echo/client.scm b/examples/echo/client.scm
index 478aa67..ccbc9bb 100755
--- a/examples/echo/client.scm
+++ b/examples/echo/client.scm
@@ -139,6 +139,9 @@
(poll (channel-poll channel #f))
(begin
(display (read-line channel))
- (newline)))))))))
+ (newline))))
+
+ (close channel)
+ (display channel))))))
;;; echo.scm ends here.
diff --git a/examples/echo/server.scm b/examples/echo/server.scm
index 29b1376..b13675a 100755
--- a/examples/echo/server.scm
+++ b/examples/echo/server.scm
@@ -126,7 +126,8 @@
(let ((str (read-line channel)))
(format #t "Received message: ~a~%" str)
(display "Echoing back...\n")
- (display str channel)))))
+ (display str channel))))
+ (close channel))
((request-channel)
(handle-req-channel msg msg-type channel))
@@ -134,9 +135,6 @@
(else
(display "Reply default\n")
(message-reply-default msg)))))
- ;; (if channel
- ;; (let ((str (read-line channel)))
- ;; (display str))))
(if (connected? session)
(session-loop (server-message-get session))))
(disconnect! session)