about summary refs log tree commit homepage
path: root/lib/dtas/unix_client.rb
DateCommit message (Collapse)
2014-12-22reduce syscalls in recvmsg invocations
Favor IO.select over IO#wait since the latter makes another ioctl syscall (which we'll make anyways for IO#nread). Having BasicSocket#recvmsg and recvmsg_nonblock detect the buffer size requires extra syscalls, so pass explict maxmesglen, flags, and maxcontrollen args to elide auto-detection since we already have the buffered amount from IO#nread. This cuts more syscalls from the "dtas-tl cat" invocation with larger tracklists.
2014-08-16rely on filesystem encoding
This avoids compatibility problems as File.expand_path respects the "filesystem" encoding of Ruby. I'm not 100% sure this is correct, as Ruby encoding support still confuses me, but this fixes a problem where I attempted to add UTF-8 filename with non-US-ASCII characters in it on ruby-trunk.
2014-06-06update copyrights and email address for 2014
I'm still normal, and still trolling, but 80x24.org will be epic :)
2013-10-13use shorter socket constants for sockets
This is to be compatible with Rubinius, but also works with MRI.
2013-10-12IO#nread compatibility for Rubinius (Linux-only)
We don't deal with user-space buffers, so we should be fine using this compatibility layer and only checking the kernel buffers (until rbx implements a proper solution).
2013-08-29remove "encoding: binary" header use
We don't need it since IO#read(bytes, buf) will convert to ASCII-8BIT anyways. Everywhere else, we ensure path names are already binary. We do this mainly at the client layer before using Shellwords to escape the paths. We also must be careful about parsing output from soxi/avprobe which can show us metadata in whatever encoding is in the file. We must still handle data from parsing command output as binary, as the encoding of file metadata tends to vary. This also should buy us Syck compatibility for Ruby 1.9.3 users on Debian systems where Ruby 1.9.3 still uses Syck.
2013-08-28add license/copyright headers/footers to all files
All files we distribute in the tarball need to have a copyright/license specified for Savannah. We don't need the example state file anymore.
2013-08-25unix_client: remove non-SOCK_SEQPACKET support
It's too much work for me to attempt to wedge SOCK_DGRAM or SOCK_STREAM support into this. SOCK_SEQPACKET is the best use of _my_ time and I have limited patience for crippled OSes. Linux has had this forever and FreeBSD 9 supports SOCK_SEQPACKET already, so maybe this will be another way to nudge developers of other OSes into supporting SOCK_SEQPACKET. If somebody can provide clean patches to support SOCK_DGRAM or SOCK_STREAM, I'll accept them.
2013-08-25more cleanups for packaging and documentation v0.0.0
Rename COPYRIGHT -> COPYING, as that seems to be the more common name for the GPLv3 license file. Kill all rdoc, since I don't agree with HTML documentation and we do not expose any Ruby APIs.
2013-08-24initial commit