summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Kozak <spag@golwen.net>2013-08-16 07:23:17 +0200
committerPeter Kozak <spag@golwen.net>2013-08-16 07:23:17 +0200
commit76e5451e7a6215467a3dafc38fecd9047e1232a4 (patch)
treeedb170da2dc30acd5fb06bf12da9b3a240852d8a
parentda03f8e03c456c8579e3eb9f2d52f4259c75fea2 (diff)
limit memory used for phone books
-rw-r--r--app/controllers/config_yealink_controller.rb17
1 files changed, 16 insertions, 1 deletions
diff --git a/app/controllers/config_yealink_controller.rb b/app/controllers/config_yealink_controller.rb
index d616191..7bc51fc 100644
--- a/app/controllers/config_yealink_controller.rb
+++ b/app/controllers/config_yealink_controller.rb
@@ -2,7 +2,8 @@ class ConfigYealinkController < ApplicationController
MAX_SIP_ACCOUNTS = 5
MAX_HANDSETS = 5
- MAX_PHONEBOOK_ENTRIES = 100
+ MAX_PHONEBOOK_ENTRIES = 1000
+ IGNORE_PHONEBOOK_EXCEEDING = 500
MAX_PHONE_BOOKS = 5
SIP_DEFAULT_PORT = 5060
@@ -201,6 +202,13 @@ class ConfigYealinkController < ApplicationController
phone_book_ids = {}
if @phone.phoneable.class == User
@phone.phoneable.phone_books.each do |phone_book|
+ if @phone_books.count >= MAX_PHONEBOOK_ENTRIES
+ break
+ end
+ if phone_book.phone_book_entries.count > IGNORE_PHONEBOOK_EXCEEDING
+ next
+ end
+
@phone_books << {:name => phone_book.name, :url => "#{base_url}/#{phone_book.id}/phone_book.xml"}
phone_book_ids[phone_book.id]
end
@@ -211,6 +219,13 @@ class ConfigYealinkController < ApplicationController
if tenant
tenant.phone_books.each do |phone_book|
+ if @phone_books.count >= MAX_PHONEBOOK_ENTRIES
+ break
+ end
+ if phone_book.phone_book_entries.count > IGNORE_PHONEBOOK_EXCEEDING
+ next
+ end
+
@phone_books << {:name => phone_book.name, :url => "#{base_url}/#{phone_book.id}/phone_book.xml"}
phone_book_ids[phone_book.id]
end