Changeset 9275


Ignore:
Timestamp:
Oct 10, 2009, 7:24:46 PM (12 years ago)
Author:
charles
Message:

(trunk gtk) #2489: tr_torrentSetAnnounceList() should check for invalid and duplicate announce URLs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/gtk/details.c

    r9259 r9275  
    18691869onEditTrackersResponse( GtkDialog * dialog, int response, gpointer data )
    18701870{
     1871    gboolean do_destroy = TRUE;
    18711872    struct DetailsImpl * di = data;
    18721873
     
    18761877        int tier;
    18771878        GtkTextIter start, end;
     1879        tr_announce_list_err err;
    18781880        char * tracker_text;
    18791881        char ** tracker_strings;
     
    19001902
    19011903        /* update the torrent */
    1902         tr_torrentSetAnnounceList( tor, trackers, n );
    1903         di->trackers = NULL;
    1904         di->tracker_buffer = NULL;
     1904        err = tr_torrentSetAnnounceList( tor, trackers, n );
     1905        if( err )
     1906        {
     1907            GtkWidget * w;
     1908            const char * str = NULL;
     1909            if( err == TR_ANNOUNCE_LIST_HAS_DUPLICATES )
     1910                str = _( "List contains duplicate URLs" );
     1911            else if( err == TR_ANNOUNCE_LIST_HAS_BAD )
     1912                str = _( "List contains invalid URLs" );
     1913            else
     1914                assert( 0 && "unhandled condition" );
     1915            w = gtk_message_dialog_new( GTK_WINDOW( dialog ),
     1916                                        GTK_DIALOG_MODAL,
     1917                                        GTK_MESSAGE_ERROR,
     1918                                        GTK_BUTTONS_CLOSE, "%s", str );
     1919            gtk_dialog_run( GTK_DIALOG( w ) );
     1920            gtk_widget_destroy( w );
     1921            do_destroy = FALSE;
     1922        }
     1923        else
     1924        {
     1925            di->trackers = NULL;
     1926            di->tracker_buffer = NULL;
     1927        }
    19051928
    19061929        /* cleanup */
     
    19101933    }
    19111934
    1912     gtk_widget_destroy( GTK_WIDGET( dialog ) );
     1935    if( do_destroy )
     1936        gtk_widget_destroy( GTK_WIDGET( dialog ) );
    19131937}
    19141938
Note: See TracChangeset for help on using the changeset viewer.