コード例 #1
0
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);
}
コード例 #2
0
ファイル: auth.c プロジェクト: Alexis-D/luakit
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? */
}