[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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r30432 - gnunet-gtk/src/namestore,
gnunet <=