gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r30432 - gnunet-gtk/src/namestore


From: gnunet
Subject: [GNUnet-SVN] r30432 - gnunet-gtk/src/namestore
Date: Sun, 27 Oct 2013 19:41:23 +0100

Author: grothoff
Date: 2013-10-27 19:41:23 +0100 (Sun, 27 Oct 2013)
New Revision: 30432

Modified:
   gnunet-gtk/src/namestore/Makefile.am
   gnunet-gtk/src/namestore/plugin_gtk_namestore_soa.c
   gnunet-gtk/src/namestore/plugin_gtk_namestore_srv.c
   gnunet-gtk/src/namestore/plugin_gtk_namestore_txt.c
   gnunet-gtk/src/namestore/plugin_gtk_namestore_vpn.c
Log:
-finishing rest of plugins

Modified: gnunet-gtk/src/namestore/Makefile.am
===================================================================
--- gnunet-gtk/src/namestore/Makefile.am        2013-10-27 17:07:02 UTC (rev 
30431)
+++ gnunet-gtk/src/namestore/Makefile.am        2013-10-27 18:41:23 UTC (rev 
30432)
@@ -40,11 +40,12 @@
   libgnunet_plugin_gtk_namestore_pkey.la \
   libgnunet_plugin_gtk_namestore_ptr.la \
   libgnunet_plugin_gtk_namestore_soa.la \
-  libgnunet_plugin_gtk_namestore_srv.la \
   libgnunet_plugin_gtk_namestore_txt.la \
   libgnunet_plugin_gtk_namestore_vpn.la
 
+#  libgnunet_plugin_gtk_namestore_srv.la
 
+
 libgnunet_plugin_gtk_namestore_a_la_SOURCES = \
   plugin_gtk_namestore_a.c
 libgnunet_plugin_gtk_namestore_a_la_CFLAGS = \
@@ -155,16 +156,16 @@
 libgnunet_plugin_gtk_namestore_soa_la_LDFLAGS = \
  $(GN_PLUGIN_LDFLAGS)
 
-libgnunet_plugin_gtk_namestore_srv_la_SOURCES = \
-  plugin_gtk_namestore_srv.c
-libgnunet_plugin_gtk_namestore_srv_la_CFLAGS = \
-  @GTK_CFLAGS@ \
-  @GNUNET_CFLAGS@ \
-  @GLADE_CFLAGS@
-libgnunet_plugin_gtk_namestore_srv_la_LIBADD = \
-  -lgnunetutil
-libgnunet_plugin_gtk_namestore_srv_la_LDFLAGS = \
- $(GN_PLUGIN_LDFLAGS)
+#libgnunet_plugin_gtk_namestore_srv_la_SOURCES = \
+#  plugin_gtk_namestore_srv.c
+#libgnunet_plugin_gtk_namestore_srv_la_CFLAGS = \
+#  @GTK_CFLAGS@ \
+#  @GNUNET_CFLAGS@ \
+#  @GLADE_CFLAGS@
+#libgnunet_plugin_gtk_namestore_srv_la_LIBADD = \
+#  -lgnunetutil
+#libgnunet_plugin_gtk_namestore_srv_la_LDFLAGS = \
+# $(GN_PLUGIN_LDFLAGS)
 
 libgnunet_plugin_gtk_namestore_txt_la_SOURCES = \
   plugin_gtk_namestore_txt.c

Modified: gnunet-gtk/src/namestore/plugin_gtk_namestore_soa.c
===================================================================
--- gnunet-gtk/src/namestore/plugin_gtk_namestore_soa.c 2013-10-27 17:07:02 UTC 
(rev 30431)
+++ gnunet-gtk/src/namestore/plugin_gtk_namestore_soa.c 2013-10-27 18:41:23 UTC 
(rev 30432)
@@ -28,6 +28,40 @@
 
 
 /**
+ * The user has edited the SOA record value.  Enable/disable 'save'
+ * button depending on the validity of the value.
+ *
+ * @param entry editing widget
+ * @param user_data the plugin environment
+ */
+void
+GNS_edit_dialog_soa_contact_email_entry_changed_cb (GtkEditable *entry,
+                                                   gpointer user_data)
+{
+  struct GNUNET_GTK_NAMESTORE_PluginEnvironment *env = user_data;
+
+  env->check_validity (env->cls);
+}
+
+
+/**
+ * The user has edited the SOA record value.  Enable/disable 'save'
+ * button depending on the validity of the value.
+ *
+ * @param entry editing widget
+ * @param user_data the plugin environment
+ */
+void
+GNS_edit_dialog_soa_source_host_entry_changed_cb (GtkEditable *entry,
+                                                 gpointer user_data)
+{
+  struct GNUNET_GTK_NAMESTORE_PluginEnvironment *env = user_data;
+
+  env->check_validity (env->cls);
+}
+
+
+/**
  * Function that will be called to initialize the builder's
  * widgets from the existing record (if there is one).
  * The `n_value` is the existing value of the record as a string.
@@ -41,7 +75,51 @@
         gchar *n_value,
         GtkBuilder *builder)
 {
-  GNUNET_break (0);
+  char soa_rname[253 + 1];
+  char soa_mname[253 + 1];
+  unsigned int soa_serial;
+  unsigned int soa_refresh;
+  unsigned int soa_retry;
+  unsigned int soa_expire;
+  unsigned int soa_min;
+
+  if (7 != SSCANF (n_value,
+                   "rname=%253s mname=%253s %u,%u,%u,%u,%u",
+                   soa_rname,
+                   soa_mname,
+                   &soa_serial,
+                   &soa_refresh,
+                   &soa_retry,
+                   &soa_expire,
+                   &soa_min))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                _("Unable to parse SOA record `%s'\n"),
+                n_value);
+    return;
+  }
+  /* set SOA record */
+  gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (builder,
+                                                         
"edit_dialog_soa_source_host_entry")),
+                      soa_rname);
+  gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (builder,
+                                                         
"edit_dialog_soa_contact_email_entry")),
+                      soa_mname);
+  gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (builder,
+                                                                      
"edit_dialog_soa_serial_number_spinbutton")),
+                             soa_serial);
+  gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (builder,
+                                                                      
"edit_dialog_soa_refresh_time_spinbutton")),
+                             soa_refresh);
+  gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (builder,
+                                                                      
"edit_dialog_soa_retry_time_spinbutton")),
+                             soa_retry);
+  gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (builder,
+                                                                      
"edit_dialog_soa_expire_time_spinbutton")),
+                             soa_expire);
+  gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object (builder,
+                                                                      
"edit_dialog_soa_minimum_ttl_spinbutton")),
+                             soa_min);
 }
 
 
@@ -57,8 +135,41 @@
 soa_store (void *cls,
          GtkBuilder *builder)
 {
-  GNUNET_break (0);
-  return NULL;
+  GtkEntry *entry;
+  const gchar *source_host;
+  const gchar *contact_email;
+  unsigned int soa_serial;
+  unsigned int soa_refresh;
+  unsigned int soa_retry;
+  unsigned int soa_expire;
+  unsigned int soa_min;
+  char *result;
+
+  entry = GTK_ENTRY (gtk_builder_get_object (builder,
+                                             
"edit_dialog_soa_source_host_entry"));
+  source_host = gtk_entry_get_text (entry);
+  entry = GTK_ENTRY (gtk_builder_get_object (builder,
+                                             
"edit_dialog_soa_contact_email_entry"));
+  contact_email = gtk_entry_get_text (entry);
+  soa_serial = gtk_spin_button_get_value (GTK_SPIN_BUTTON 
(gtk_builder_get_object (builder,
+                                                                               
    "edit_dialog_soa_serial_number_spinbutton")));
+  soa_refresh = gtk_spin_button_get_value (GTK_SPIN_BUTTON 
(gtk_builder_get_object (builder,
+                                                                               
     "edit_dialog_soa_refresh_time_spinbutton")));
+  soa_retry = gtk_spin_button_get_value (GTK_SPIN_BUTTON 
(gtk_builder_get_object (builder,
+                                                                               
   "edit_dialog_soa_retry_time_spinbutton")));
+  soa_expire = gtk_spin_button_get_value (GTK_SPIN_BUTTON 
(gtk_builder_get_object (builder,
+                                                                               
    "edit_dialog_soa_expire_time_spinbutton")));
+  soa_min = gtk_spin_button_get_value (GTK_SPIN_BUTTON (gtk_builder_get_object 
(builder,
+                                                                               
 "edit_dialog_soa_minimum_ttl_spinbutton")));
+  GNUNET_asprintf (&result,
+                   "rname=%s mname=%s %lu,%lu,%lu,%lu,%lu",
+                   source_host, contact_email,
+                   soa_serial,
+                   soa_refresh,
+                   soa_retry,
+                   soa_expire,
+                   soa_min);
+  return result;
 }
 
 
@@ -77,7 +188,27 @@
 soa_validate (void *cls,
             GtkBuilder *builder)
 {
-  GNUNET_break (0);
+  GtkEditable *entry;
+  const gchar *preedit;
+
+  entry = GTK_EDITABLE (gtk_builder_get_object (builder,
+                                               
"edit_dialog_soa_source_host_entry")),
+  preedit = gtk_editable_get_chars (entry, 0, -1);
+  if ( (NULL == preedit) ||
+       (GNUNET_OK != GNUNET_DNSPARSER_check_name (preedit)) )
+    return GNUNET_SYSERR;
+  /* check for '@' in the e-mail --- required format uses "." instead! */
+  entry = GTK_EDITABLE (gtk_builder_get_object (builder,
+                                               
"edit_dialog_soa_contact_email_entry")),
+  preedit = gtk_editable_get_chars (entry, 0, -1);
+  /* E-mail is specified in the RFC also as a 'domain-name', hence
+     we check above that it follows those conventions as well; the '@'
+     is a common mistake, and while it should be illegal despite IDN,
+     it feels better to check explicitly. */
+  if ( (NULL == preedit) ||
+       (NULL != strstr (preedit, "@")) ||
+       (GNUNET_OK != GNUNET_DNSPARSER_check_name (preedit)) )
+    return GNUNET_SYSERR;
   return GNUNET_OK;
 }
 

Modified: gnunet-gtk/src/namestore/plugin_gtk_namestore_srv.c
===================================================================
--- gnunet-gtk/src/namestore/plugin_gtk_namestore_srv.c 2013-10-27 17:07:02 UTC 
(rev 30431)
+++ gnunet-gtk/src/namestore/plugin_gtk_namestore_srv.c 2013-10-27 18:41:23 UTC 
(rev 30432)
@@ -22,6 +22,8 @@
  * @file namestore/plugin_gtk_namestore_srv.c
  * @brief namestore plugin for editing SRV records
  * @author Christian Grothoff
+ *
+ * FIXME: implementation incomplete
  */
 #include "gnunet_gtk.h"
 #include "gnunet_gtk_namestore_plugin.h"
@@ -77,7 +79,21 @@
 srv_validate (void *cls,
             GtkBuilder *builder)
 {
-  GNUNET_break (0);
+  GtkEditable *entry;
+  const gchar *preedit;
+
+  entry = GTK_EDITABLE (gtk_builder_get_object (edc->builder,
+                                               
"edit_dialog_srv_target_entry"));
+  preedit = gtk_editable_get_chars (entry, 0, -1);
+  if ( (NULL == preedit) ||
+       (GNUNET_OK != GNUNET_DNSPARSER_check_name (preedit)) )
+    return GNUNET_SYSERR;
+  entry = GTK_EDITABLE (gtk_builder_get_object (edc->builder,
+                                               "edit_dialog_name_entry")),
+  preedit = gtk_editable_get_chars (entry, 0, -1);
+#if 0
+  /* FIXME: check service name format! */
+#endif
   return GNUNET_OK;
 }
 

Modified: gnunet-gtk/src/namestore/plugin_gtk_namestore_txt.c
===================================================================
--- gnunet-gtk/src/namestore/plugin_gtk_namestore_txt.c 2013-10-27 17:07:02 UTC 
(rev 30431)
+++ gnunet-gtk/src/namestore/plugin_gtk_namestore_txt.c 2013-10-27 18:41:23 UTC 
(rev 30432)
@@ -41,7 +41,9 @@
         gchar *n_value,
         GtkBuilder *builder)
 {
-  GNUNET_break (0);
+  gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (builder,
+                                                         
"edit_dialog_txt_entry")),
+                      n_value);
 }
 
 
@@ -57,8 +59,13 @@
 txt_store (void *cls,
          GtkBuilder *builder)
 {
-  GNUNET_break (0);
-  return NULL;
+  GtkEntry *entry;
+  const gchar *value;
+
+  entry = GTK_ENTRY (gtk_builder_get_object (builder,
+                                             "edit_dialog_txt_entry"));
+  value = gtk_entry_get_text (entry);
+  return g_strdup (value);
 }
 
 
@@ -77,7 +84,6 @@
 txt_validate (void *cls,
             GtkBuilder *builder)
 {
-  GNUNET_break (0);
   return GNUNET_OK;
 }
 

Modified: gnunet-gtk/src/namestore/plugin_gtk_namestore_vpn.c
===================================================================
--- gnunet-gtk/src/namestore/plugin_gtk_namestore_vpn.c 2013-10-27 17:07:02 UTC 
(rev 30431)
+++ gnunet-gtk/src/namestore/plugin_gtk_namestore_vpn.c 2013-10-27 18:41:23 UTC 
(rev 30432)
@@ -28,6 +28,23 @@
 
 
 /**
+ * The user has edited the VPN record value.  Enable/disable 'save'
+ * button depending on the validity of the value.
+ *
+ * @param entry editing widget
+ * @param user_data the plugin environment
+ */
+void
+GNS_edit_dialog_vpn_peer_entry_changed_cb (GtkEditable *entry,
+                                          gpointer user_data)
+{
+  struct GNUNET_GTK_NAMESTORE_PluginEnvironment *env = user_data;
+
+  env->check_validity (env->cls);
+}
+
+
+/**
  * Function that will be called to initialize the builder's
  * widgets from the existing record (if there is one).
  * The `n_value` is the existing value of the record as a string.
@@ -41,7 +58,31 @@
         gchar *n_value,
         GtkBuilder *builder)
 {
-  GNUNET_break (0);
+  char s_peer[103 + 1];
+  char s_serv[253 + 1];
+  unsigned int proto;
+
+  if (3 != SSCANF (n_value,
+                   "%u %103s %253s",
+                   &proto, s_peer, s_serv))
+  {
+    GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
+                _("Unable to parse VPN record string `%s'\n"),
+                n_value);
+    return;
+  }
+  gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (builder,
+                                                         
"edit_dialog_vpn_identifier_entry")),
+                      s_serv);
+  gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (builder,
+                                                         
"edit_dialog_vpn_peer_entry")),
+                      s_peer);
+  if (IPPROTO_UDP == proto)
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object 
(builder,
+                                                                             
"edit_dialog_vpn_protocol_udp_radiobutton")), TRUE);
+  else
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object 
(builder,
+                                                                             
"edit_dialog_vpn_protocol_tcp_radiobutton")), TRUE);
 }
 
 
@@ -57,8 +98,26 @@
 vpn_store (void *cls,
          GtkBuilder *builder)
 {
-  GNUNET_break (0);
-  return NULL;
+  GtkEntry *entry;
+  const gchar *identifier;
+  const gchar *peer;
+  unsigned int proto;
+  char *result;
+
+  entry = GTK_ENTRY (gtk_builder_get_object (builder,
+                                             
"edit_dialog_vpn_identifier_entry"));
+  identifier = gtk_entry_get_text (entry);
+  entry = GTK_ENTRY (gtk_builder_get_object (builder,
+                                             "edit_dialog_vpn_peer_entry"));
+  peer = gtk_entry_get_text (entry);
+  proto = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON 
(gtk_builder_get_object (builder,
+                                                                               
    "edit_dialog_vpn_protocol_tcp_radiobutton"))) ? IPPROTO_TCP : IPPROTO_UDP;
+  GNUNET_asprintf (&result,
+                   "%u %s %s",
+                   proto,
+                   (const char *) peer,
+                   (const char *) identifier);
+  return result;
 }
 
 
@@ -77,7 +136,17 @@
 vpn_validate (void *cls,
             GtkBuilder *builder)
 {
-  GNUNET_break (0);
+  GtkEditable *entry;
+  const gchar *preedit;
+  struct GNUNET_HashCode hc;
+
+  entry = GTK_EDITABLE (gtk_builder_get_object (builder,
+                                               "edit_dialog_vpn_peer_entry")),
+  preedit = gtk_editable_get_chars (entry, 0, -1);
+  if ( (NULL == preedit) ||
+       (GNUNET_OK !=
+       GNUNET_CRYPTO_hash_from_string (preedit, &hc)) )
+    return GNUNET_SYSERR;
   return GNUNET_OK;
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]