static void liferea_htmlview_proxy_changed (NetworkMonitor *nm, gpointer userdata) { LifereaHtmlView *htmlview = LIFEREA_HTMLVIEW (userdata); (RENDERER (htmlview)->setProxy) (network_get_proxy_host (), network_get_proxy_port (), network_get_proxy_username (), network_get_proxy_password ()); }
void network_init (void) { gchar *useragent; SoupCookieJar *cookies; gchar *filename; SoupLogger *logger; /* Set an appropriate user agent */ if (g_getenv ("LANG")) { /* e.g. "Liferea/1.10.0 (Linux; de_DE; https://lzone.de/liferea/) AppleWebKit (KHTML, like Gecko)" */ useragent = g_strdup_printf ("Liferea/%s (%s; %s; %s) AppleWebKit (KHTML, like Gecko)", VERSION, OSNAME, g_getenv ("LANG"), HOMEPAGE); } else { /* e.g. "Liferea/1.10.0 (Linux; https://lzone.de/liferea/) AppleWebKit (KHTML, like Gecko)" */ useragent = g_strdup_printf ("Liferea/%s (%s; %s) AppleWebKit (KHTML, like Gecko)", VERSION, OSNAME, HOMEPAGE); } /* Cookies */ filename = common_create_config_filename ("cookies.txt"); cookies = soup_cookie_jar_text_new (filename, FALSE); g_free (filename); /* Initialize libsoup */ session = soup_session_new_with_options (SOUP_SESSION_USER_AGENT, useragent, SOUP_SESSION_TIMEOUT, 120, SOUP_SESSION_IDLE_TIMEOUT, 30, SOUP_SESSION_ADD_FEATURE, cookies, SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_CONTENT_DECODER, NULL); session2 = soup_session_new_with_options (SOUP_SESSION_USER_AGENT, useragent, SOUP_SESSION_TIMEOUT, 120, SOUP_SESSION_IDLE_TIMEOUT, 30, SOUP_SESSION_ADD_FEATURE, cookies, SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_CONTENT_DECODER, SOUP_SESSION_PROXY_URI, NULL, SOUP_SESSION_PROXY_RESOLVER, NULL, NULL); /* Only 'session' gets proxy, 'session2' is for non-proxy requests */ network_set_soup_session_proxy (session, network_get_proxy_detect_mode(), network_get_proxy_host (), network_get_proxy_port (), network_get_proxy_username (), network_get_proxy_password ()); g_signal_connect (session, "authenticate", G_CALLBACK (network_authenticate), NULL); /* Soup debugging */ if (debug_level & DEBUG_NET) { logger = soup_logger_new (SOUP_LOGGER_LOG_HEADERS, -1); soup_session_add_feature (session, SOUP_SESSION_FEATURE (logger)); } g_free (useragent); }