Bläddra i källkod

Shortened the maximum conversation levels.

Set to a compilation define in MAX_CONVERSATION_LEVELS.
default 2 år sedan
förälder
incheckning
093f4af282
3 ändrade filer med 8 tillägg och 3 borttagningar
  1. 1 1
      activitypub.c
  2. 3 2
      html.c
  3. 4 0
      snac.h

+ 1 - 1
activitypub.c

@@ -310,7 +310,7 @@ int timeline_request(snac *snac, char **id, xs_str **wrk, int level)
 {
     int status = 0;
 
-    if (level < 256 && !xs_is_null(*id)) {
+    if (level < MAX_CONVERSATION_LEVELS && !xs_is_null(*id)) {
         xs *msg = NULL;
 
         /* is the object already there? */

+ 3 - 2
html.c

@@ -1334,8 +1334,9 @@ xs_html *html_entry(snac *user, xs_dict *msg, int read_only,
     }
 
     /* avoid too deep nesting, as it may be a loop */
-    if (level >= 256)
-        return NULL;
+    if (level >= MAX_CONVERSATION_LEVELS)
+        return xs_html_tag("mark",
+            xs_html_text(L("Truncated (too deep)")));
 
     if (strcmp(type, "Follow") == 0) {
         return xs_html_tag("div",

+ 4 - 0
snac.h

@@ -16,6 +16,10 @@
 #define MAX_THREADS 256
 #endif
 
+#ifndef MAX_CONVERSATION_LEVELS
+#define MAX_CONVERSATION_LEVELS 48
+#endif
+
 extern double disk_layout;
 extern xs_str *srv_basedir;
 extern xs_dict *srv_config;