--- a/libpurple/purplegio.c Mon Oct 14 23:41:43 2024 -0500 +++ b/libpurple/purplegio.c Tue Oct 15 00:03:58 2024 -0500 @@ -22,7 +22,9 @@ #include "purplegio.h" +#include "core.h" #include "debug.h" +#include "network.h" #include "prefs.h" #include "proxy.h" @@ -140,16 +142,24 @@ GObject *source_object, GError **error) { + GSettings *settings = NULL; GError *internal_error = NULL; guint16 port, start, end; - if(!purple_prefs_get_bool("/purple/network/ports_range_use")) { + settings = g_settings_new_with_backend("im.pidgin.Purple.Network.Ports.Manual", + purple_core_get_settings_backend()); + + if(!g_settings_get_boolean(settings, "enabled")) { + g_object_unref(settings); + return g_socket_listener_add_any_inet_port(listener, source_object, error); } - start = purple_prefs_get_int("/purple/network/ports_range_start"); - end = purple_prefs_get_int("/purple/network/ports_range_end"); + start = g_settings_get_int(settings, "start"); + end = g_settings_get_int(settings, "end"); + g_clear_object(&settings); + for(port = start; port <= end; port++) { if (g_socket_listener_add_inet_port(listener, port, source_object, &internal_error))