From 15d26f55958d05629308863045633daf1112054b Mon Sep 17 00:00:00 2001 From: Brian Candler Date: Fri, 6 May 2011 14:48:15 +0100 Subject: [PATCH] Apply dest_sockaddr in sendmsg --- lib/linux/sendmsg.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/linux/sendmsg.rb b/lib/linux/sendmsg.rb index 329c98e..4f30d9e 100644 --- a/lib/linux/sendmsg.rb +++ b/lib/linux/sendmsg.rb @@ -35,8 +35,13 @@ if BasicSocket.instance_methods.grep(/^sendmsg$/).empty? iov[:len] = mesg.bytesize header = Msghdr.new - header[:name] = nil # TODO: dest_sockaddr - header[:namelen] = 0 # dest_sockaddr + if dest_sockaddr + dest_sockaddr = dest_sockaddr.to_sockaddr if dest_sockaddr.respond_to?(:to_sockaddr) + nbuf = FFI::MemoryPointer.new(dest_sockaddr.bytesize, 1, false) + nbuf.put_bytes(0, dest_sockaddr) + header[:name] = nbuf + header[:namelen] = dest_sockaddr.bytesize + end header[:iov] = iov header[:iovlen] = 1 header[:control] = nil # TODO: controls