Class: UNIXSocket
Constant Summary
Constants inherited
from BasicSocket
BasicSocket::FFI
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from BasicSocket
#close_read, #close_write, #do_not_reverse_lookup, do_not_reverse_lookup, #do_not_reverse_lookup=, do_not_reverse_lookup=, for_fd, from_descriptor, #getpeername, #getsockname, #getsockopt, #recv, #recv_nonblock, #send, #setsockopt, #shutdown
Constructor Details
Returns a new instance of UNIXSocket.
1122
1123
1124
1125
1126
1127
|
# File 'lib/rubysl/socket.rb', line 1122
def initialize(path)
@no_reverse_lookup = self.class.do_not_reverse_lookup
@path = path
unix_setup
@path = ""
end
|
Class Method Details
.socketpair(type = Socket::SOCK_STREAM, protocol = 0) ⇒ Object
Also known as:
pair
1209
1210
1211
|
# File 'lib/rubysl/socket.rb', line 1209
def socketpair(type=Socket::SOCK_STREAM, protocol=0)
Socket.socketpair(Socket::PF_UNIX, type, protocol, self)
end
|
Instance Method Details
#addr ⇒ Object
1180
1181
1182
1183
1184
|
# File 'lib/rubysl/socket.rb', line 1180
def addr
sockaddr = Socket::Foreign.getsockname descriptor
_, sock_path = sockaddr.unpack('SZ*')
["AF_UNIX", sock_path]
end
|
#from_descriptor(fixnum) ⇒ Object
1138
1139
1140
1141
|
# File 'lib/rubysl/socket.rb', line 1138
def from_descriptor(fixnum)
super
@path = nil
end
|
#path ⇒ Object
1129
1130
1131
1132
1133
1134
1135
1136
|
# File 'lib/rubysl/socket.rb', line 1129
def path
unless @path
sockaddr = Socket::Foreign.getsockname descriptor
_, @path = sockaddr.unpack('SZ*')
end
return @path
end
|
#peeraddr ⇒ Object
1186
1187
1188
1189
1190
|
# File 'lib/rubysl/socket.rb', line 1186
def peeraddr
sockaddr = Socket::Foreign.getpeername descriptor
_, sock_path = sockaddr.unpack('SZ*')
["AF_UNIX", sock_path]
end
|
#recv_io(klass = IO, mode = nil) ⇒ Object
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
|
# File 'lib/rubysl/socket.rb', line 1192
def recv_io(klass=IO, mode=nil)
begin
fd = recv_fd
rescue PrimitiveFailure
raise SocketError, "file descriptor was not passed"
end
return fd unless klass
if klass < BasicSocket
klass.for_fd(fd)
else
klass.for_fd(fd, mode)
end
end
|
#recvfrom(bytes_read, flags = 0) ⇒ Object
Coding to the lowest standard here.
1117
1118
1119
1120
|
# File 'lib/rubysl/socket.rb', line 1117
def recvfrom(bytes_read, flags = 0)
socket_recv(bytes_read, flags, 2)
end
|