| 138 guint16 |
140 guint16 |
| 139 purple_socket_listener_add_any_inet_port(GSocketListener *listener, |
141 purple_socket_listener_add_any_inet_port(GSocketListener *listener, |
| 140 GObject *source_object, |
142 GObject *source_object, |
| 141 GError **error) |
143 GError **error) |
| 142 { |
144 { |
| |
145 GSettings *settings = NULL; |
| 143 GError *internal_error = NULL; |
146 GError *internal_error = NULL; |
| 144 guint16 port, start, end; |
147 guint16 port, start, end; |
| 145 |
148 |
| 146 if(!purple_prefs_get_bool("/purple/network/ports_range_use")) { |
149 settings = g_settings_new_with_backend("im.pidgin.Purple.Network.Ports.Manual", |
| |
150 purple_core_get_settings_backend()); |
| |
151 |
| |
152 if(!g_settings_get_boolean(settings, "enabled")) { |
| |
153 g_object_unref(settings); |
| |
154 |
| 147 return g_socket_listener_add_any_inet_port(listener, source_object, |
155 return g_socket_listener_add_any_inet_port(listener, source_object, |
| 148 error); |
156 error); |
| 149 } |
157 } |
| 150 |
158 |
| 151 start = purple_prefs_get_int("/purple/network/ports_range_start"); |
159 start = g_settings_get_int(settings, "start"); |
| 152 end = purple_prefs_get_int("/purple/network/ports_range_end"); |
160 end = g_settings_get_int(settings, "end"); |
| |
161 g_clear_object(&settings); |
| |
162 |
| 153 for(port = start; port <= end; port++) { |
163 for(port = start; port <= end; port++) { |
| 154 if (g_socket_listener_add_inet_port(listener, port, source_object, |
164 if (g_socket_listener_add_inet_port(listener, port, source_object, |
| 155 &internal_error)) |
165 &internal_error)) |
| 156 { |
166 { |
| 157 return port; |
167 return port; |