Philipp Hörist pushed to branch master at gajim / gajim


Commits:
f9058e21 by Philipp Hörist at 2023-03-11T19:48:30+01:00
fix: HTTPUpload: Respect infinite file size limit

Fixes #11436

- - - - -


1 changed file:

- gajim/gtk/file_transfer_selector.py


Changes:

=====================================
gajim/gtk/file_transfer_selector.py
=====================================
@@ -66,7 +66,7 @@ def __init__(self,
         self._method = method or app.window.get_preferred_ft_method(contact)
 
         client = app.get_client(contact.account)
-        self._max_file_size = client.get_module('HTTPUpload').max_file_size or 0
+        self._max_http_file_size = 
client.get_module('HTTPUpload').max_file_size
 
         self._ui = get_builder('file_transfer_selector.ui')
         self.add(self._ui.stack)
@@ -104,6 +104,11 @@ def __init__(self,
 
         self.show_all()
 
+    def _is_over_max_http_file_size(self, path: Path) -> bool:
+        if self._max_http_file_size is None:
+            return False
+        return path.stat().st_size > self._max_http_file_size
+
     def transfer_resource_required(self) -> bool:
         if not isinstance(self._contact, BareContact):
             # No jingle file transfer for group chats
@@ -116,7 +121,7 @@ def transfer_resource_required(self) -> bool:
         current_page = self._ui.stack.get_visible_child_name()
         if self._method == 'httpupload':
             for path in self._get_file_paths():
-                if path.stat().st_size > self._max_file_size:
+                if self._is_over_max_http_file_size(path):
                     if current_page == 'resource-selection':
                         return False
 
@@ -139,7 +144,7 @@ def get_catalog(self) -> list[tuple[Path, str, JID]]:
         file_paths = self._get_file_paths()
         for path in file_paths:
             if (self._method == 'jingle' or
-                    path.stat().st_size > self._max_file_size):
+                    self._is_over_max_http_file_size(path)):
                 assert self._resource_selector is not None
                 item = (path, 'jingle', self._resource_selector.get_jid())
             elif self._method == 'httpupload':
@@ -162,7 +167,7 @@ def add_files(self, uris: list[str]) -> None:
                 continue
 
             size_warning = bool(self._method == 'httpupload' and
-                                path.stat().st_size > self._max_file_size)
+                                self._is_over_max_http_file_size(path))
             jingle_warning = bool(self._method == 'jingle')
 
             row = FileRow(path, size_warning, jingle_warning)
@@ -208,7 +213,7 @@ def _on_files_changed(self, _listbox: Gtk.ListBox, _row: 
FileRow) -> None:
         if self._method == 'httpupload' and self._contact.is_groupchat:
             # Enforce HTTPUpload file size limit for group chats
             for path in file_paths:
-                if path.stat().st_size > self._max_file_size:
+                if self._is_over_max_http_file_size(path):
                     self.emit('changed', False)
                     return
 



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/f9058e21a2c79ac202cc770b754bbfe83c512eb8

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/commit/f9058e21a2c79ac202cc770b754bbfe83c512eb8
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to