diff options
Diffstat (limited to 'lib/dtas/player/client_handler.rb')
-rw-r--r-- | lib/dtas/player/client_handler.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/dtas/player/client_handler.rb b/lib/dtas/player/client_handler.rb index 16714f0..7f1c72e 100644 --- a/lib/dtas/player/client_handler.rb +++ b/lib/dtas/player/client_handler.rb @@ -416,6 +416,14 @@ module DTAS::Player::ClientHandler # :nodoc: end def env_handler(io, msg) + if msg.empty? + # this may fail for large envs due to SEQPACKET size restrictions + # do we care? + env = ENV.map do |k,v| + "#{Shellwords.escape(k)}=#{Shellwords.escape(v)}" + end.join(' ') + return io.emit(env) + end msg.each do |kv| case kv when %r{\A([^=]+)=(.*)\z} |