chiark / gitweb /
Merge from disorder.dev.
[disorder] / disobedience / client.c
index 8a300c4a235857427220264f4cdee37069c5abeb..45c6c0a94b2406d408a0c546d6722ca4bb71b640 100644 (file)
@@ -1,21 +1,19 @@
 /*
  * This file is part of DisOrder.
- * Copyright (C) 2006 Richard Kettlewell
+ * Copyright (C) 2006, 2007, 2008 Richard Kettlewell
  *
- * This program is free software; you can redistribute it and/or modify
+ * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- * USA
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 /** @file disobedience/client.c
  * @brief GLIB integration for @ref lib/eclient.c client
@@ -39,7 +37,7 @@ static gboolean gtkclient_prepare(GSource *source,
                                  gint *timeout) {
   const struct eclient_source *esource = (struct eclient_source *)source;
   D(("gtkclient_prepare"));
-  if(time(0) > esource->last_poll + 10)
+  if(xtime(0) > esource->last_poll + 10)
     return TRUE;               /* timed out */
   *timeout = 3000/*milliseconds*/;
   return FALSE;                        /* please poll */
@@ -67,7 +65,7 @@ static gboolean gtkclient_dispatch(GSource *source,
     mode |= DISORDER_POLL_READ;
   if(revents & (G_IO_OUT|G_IO_HUP|G_IO_ERR))
     mode |= DISORDER_POLL_WRITE;
-  time(&esource->last_poll);
+  xtime(&esource->last_poll);
   disorder_eclient_polled(esource->client, mode);
   return TRUE;                          /* ??? not documented */
 }
@@ -119,26 +117,21 @@ static void gtkclient_poll(void *u,
 static void gtkclient_comms_error(void attribute((unused)) *u,
                                  const char *msg) {
   D(("gtkclient_comms_error %s", msg));
-  menu_update(-1);
   gtk_label_set_text(GTK_LABEL(report_label), msg);
 }
 
 /** @brief Report a protocol-level error
  *
  * The error will not be retried.  We offer a callback to the submitter of the
- * original command and if none is supplied we pop up an error box.
+ * original command and if none is supplied we drop the error message in the
+ * status bar.
  */
 static void gtkclient_protocol_error(void attribute((unused)) *u,
-                                    void *v,
-                                     int code,
+                                    void attribute((unused)) *v,
+                                     int attribute((unused)) code,
                                     const char *msg) {
-  struct callbackdata *cbd = v;
-
   D(("gtkclient_protocol_error %s", msg));
-  if(cbd && cbd->onerror)
-    cbd->onerror(cbd, code, msg);
-  else
-    popup_protocol_error(code, msg);
+  gtk_label_set_text(GTK_LABEL(report_label), msg);
 }
 
 /** @brief Report callback from eclient */
@@ -147,14 +140,13 @@ static void gtkclient_report(void attribute((unused)) *u,
   if(!msg)
     /* We're idle - clear the report line */
     gtk_label_set_text(GTK_LABEL(report_label), "");
-  menu_update(-1);
 }
 
 /** @brief Repoort an unhandled protocol-level error to the user */
 void popup_protocol_error(int attribute((unused)) code,
                           const char *msg) {
   gtk_label_set_text(GTK_LABEL(report_label), msg);
-  popup_error(msg);
+  popup_msg(GTK_MESSAGE_ERROR, msg);
 }
 
 /** @brief Table of eclient callbacks */
@@ -165,7 +157,7 @@ static const disorder_eclient_callbacks gtkclient_callbacks = {
   gtkclient_report
 };
 
-/** @brief Create a @ref disorder_ecliient using the GLib main loop */
+/** @brief Create a @ref disorder_eclient using the GLib main loop */
 disorder_eclient *gtkclient(void) {
   GSource *source;
   struct eclient_source *esource;