static void session_authenticate(SoupSession* session, SoupMessage* msg, SoupAuth* auth, gboolean retrying, gpointer user_data) { SoupURI* uri; WebKitAuthData* authData; SoupSessionFeature* manager = (SoupSessionFeature*)user_data; #ifdef SOUP_TYPE_PASSWORD_MANAGER GSList* users; #endif const char *login, *password; soup_session_pause_message(session, msg); /* We need to make sure the message sticks around when pausing it */ g_object_ref(msg); uri = soup_message_get_uri(msg); authData = g_slice_new0(WebKitAuthData); authData->msg = msg; authData->auth = auth; authData->session = session; authData->manager = manager; login = password = NULL; #ifdef SOUP_TYPE_PASSWORD_MANAGER users = soup_auth_get_saved_users(auth); if (users) { login = users->data; password = soup_auth_get_saved_password(auth, login); g_slist_free(users); } #endif show_auth_dialog(authData, login, password); }
static void session_authenticate(SoupSession *session, SoupMessage *msg, SoupAuth *auth, gboolean retrying, gpointer user_data) { (void) retrying; SoupSessionFeature *manager = SOUP_SESSION_FEATURE(user_data); soup_session_pause_message(session, msg); /* We need to make sure the message sticks around when pausing it */ g_object_ref(msg); SoupURI *uri = soup_message_get_uri(msg); LuakitAuthData *auth_data = g_slice_new(LuakitAuthData); auth_data->msg = msg; auth_data->auth = auth; auth_data->session = session; auth_data->manager = manager; const gchar *login = NULL; const gchar *password = NULL; luakit_find_password(uri, &login, &password); show_auth_dialog(auth_data, login, password); /* TODO: g_free login and password? */ }