diff options
author | Eric Wong <e@80x24.org> | 2015-12-07 09:50:26 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2015-12-07 09:50:26 +0000 |
commit | b08fe09e296524daf4de7ed16e0bed224f5008a2 (patch) | |
tree | c349b14b6e72f168469e3a8a732099d5bd5d681a /lib/dtas/player/client_handler.rb | |
parent | 3e013d3f24f0f935dce985d4c6bd155889e05dbb (diff) | |
download | dtas-b08fe09e296524daf4de7ed16e0bed224f5008a2.tar.gz |
This defaults to 16384? This is what mpd uses by default as well. Of course folks interacting with dtas-player directly can override this: dtas-tl max INTEGER dtas-tl max This is NOT meant to be a hard security measure for local users talking to dtas-player directly. It is only to prevent accidentally stupid things like flooding the playlist with a broken script and to prevent remote users from DoS-ing us via the to-be-written mpd proxy/emulation layer. Remember: dtas-player itself will ALWAYS remain capable of executing arbitrary code :)
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 500704a..119aa31 100644 --- a/lib/dtas/player/client_handler.rb +++ b/lib/dtas/player/client_handler.rb @@ -566,6 +566,7 @@ module DTAS::Player::ClientHandler # :nodoc: end begin track_id = @tl.add_track(path, after_track_id, set_as_current) + return io.emit('ERR FULL') unless track_id rescue ArgumentError => e return io.emit("ERR #{e.message}") end @@ -593,6 +594,13 @@ module DTAS::Player::ClientHandler # :nodoc: set_bool(io, 'tl shuffle', v) { |b| @tl.shuffle = b } io.emit('OK') end + when 'max' + case v = msg.shift + when nil then io.emit("tl max #{@tl.max}") + when %r{\A(\d[\d_]*)\z} then io.emit("tl max #{@tl.max = $1.to_i}") + else + return io.emit('ERR tl max must a non-negative integer') + end when "remove" track_id = msg.shift or return io.emit("ERR track_id not specified") track_id = track_id.to_i |