[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#299939: gkdial



#299939 and #218014 likely have the same cause.  Someone might
consider downgrading #299939 and/or merging them.

It seems that both are caused by a user-trigged disconnect event while
in a state when disconnect should be disallowed.  A proper solution
probably requires glib synchronization, but I'll bet that the problems
can be visibly solved by something like:

  /*
   * runs the command the user defined to disconnect 
   */
  void
  gk_disconnect (GtkWidget * button, gpointer data)
  {
    GkDial *gkdial = (GkDial *) data;
    gchar *disconnect_cmd = DOWNCMD;
+   
+   if (!disconnect_valid) return;
+   disconnect_valid=0;
  
    /*
     * this shows that gkdial was the responsible for the connection
     * being 
     * closed 
     */
    gkdial->was_gkdial = FALSE;
    gkdial_exec (gkdial, disconnect_cmd, DISCONNECTING);
  }

where disconnect_valid is a global variable, set to TRUE at the
appropriate time, and set to FALSE above, and while redialing.

I'm having trouble testing this since I don't have a linmodem..

Justin 



Reply to: