[usocket-cvs] r629 - usocket/branches/0.5.x/backend
Chun Tian (binghe)
ctian at common-lisp.net
Fri Apr 1 08:45:48 UTC 2011
Author: ctian
Date: Fri Apr 1 04:45:48 2011
New Revision: 629
Log:
[CLISP] SOCKET-RECEIVE (RAWSOCK version) returns reduced buffer when calling with a NIL buffer argument.
Modified:
usocket/branches/0.5.x/backend/clisp.lisp
Modified: usocket/branches/0.5.x/backend/clisp.lisp
==============================================================================
--- usocket/branches/0.5.x/backend/clisp.lisp (original)
+++ usocket/branches/0.5.x/backend/clisp.lisp Fri Apr 1 04:45:48 2011
@@ -237,15 +237,19 @@
(sockaddr (rawsock:make-sockaddr :inet))
(real-length (or length +max-datagram-packet-size+))
(real-buffer (or buffer
- (make-array real-length :element-type '(unsigned-byte 8))))
- (rv (rawsock:recvfrom sock real-buffer sockaddr
+ (make-array real-length
+ :element-type '(unsigned-byte 8)))))
+ (let ((rv (rawsock:recvfrom sock real-buffer sockaddr
:start 0 :end real-length))
- (host 0) (port 0))
- (unless (connected-p socket)
- (let ((data (rawsock:sockaddr-data sockaddr)))
- (setq host (ip-from-octet-buffer data :start 4)
- port (port-from-octet-buffer data :start 2))))
- (values real-buffer rv host port)))
+ (host 0) (port 0))
+ (unless (connected-p socket)
+ (let ((data (rawsock:sockaddr-data sockaddr)))
+ (setq host (ip-from-octet-buffer data :start 4)
+ port (port-from-octet-buffer data :start 2))))
+ (values (if buffer real-buffer (subseq real-buffer 0 rv))
+ rv
+ host
+ port))))
(defmethod socket-send ((socket datagram-usocket) buffer length &key host port)
"Returns the number of octets sent."
More information about the usocket-cvs
mailing list