summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@vcore.(none)>2009-02-26 01:33:34 +0900
committerfrsyuki <frsyuki@vcore.(none)>2009-02-26 01:33:34 +0900
commite7fe3be34dbae518af91eb671e4fee79bc32fb4e (patch)
treefe56e65b802f87e0c428aa1ed858bcf1e8e391d8
parent980bb9cdd08bd3e5a0ff6021a45a1d880691c013 (diff)
downloadmsgpack-python-e7fe3be34dbae518af91eb671e4fee79bc32fb4e.tar.gz
example: limit message size
-rw-r--r--example/stream.cc4
-rw-r--r--example/stream.rb5
2 files changed, 9 insertions, 0 deletions
diff --git a/example/stream.cc b/example/stream.cc
index 8fd92f9..1e2e733 100644
--- a/example/stream.cc
+++ b/example/stream.cc
@@ -43,6 +43,10 @@ public:
process_message(msg, life);
}
+
+ if(m_pac.message_size() > 10*1024*1024) {
+ throw std::runtime_error("message is too large");
+ }
}
private:
diff --git a/example/stream.rb b/example/stream.rb
index e53ce82..a72f5b9 100644
--- a/example/stream.rb
+++ b/example/stream.rb
@@ -34,12 +34,17 @@ class Server
@pk.reset
@buffer.slice!(0, @nread)
@nread = 0
+
next unless @buffer.empty?
end
break
end
+ if @buffer.length > 10*1024*1024
+ raise "message is too large"
+ end
+
rescue
puts "error while processing client packet: #{$!}"
end