libpurple/protocols/gg/validator.c

branch
soc.2012.gg
changeset 33332
3d3f0584edf6
child 33348
2394cd23ce8f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libpurple/protocols/gg/validator.c	Mon Aug 06 21:26:07 2012 +0200
@@ -0,0 +1,66 @@
+#include "validator.h"
+
+#include "account.h"
+#include "utils.h"
+
+gboolean ggp_validator_token(PurpleRequestField *field, gchar **errmsg,
+	void *token)
+{
+	const char *value;
+	
+	g_return_val_if_fail(field != NULL, FALSE);
+	g_return_val_if_fail(purple_request_field_get_type(field) ==
+		PURPLE_REQUEST_FIELD_STRING, FALSE);
+	
+	value = purple_request_field_string_get_value(field);
+	
+	if (value != NULL && ggp_account_token_validate(token, value))
+		return TRUE;
+	
+	if (errmsg)
+		*errmsg = g_strdup(_("Captcha validation failed"));
+	return FALSE;
+}
+
+gboolean ggp_validator_password(PurpleRequestField *field, gchar **errmsg,
+	void *user_data)
+{
+	const char *value;
+	
+	g_return_val_if_fail(field != NULL, FALSE);
+	g_return_val_if_fail(purple_request_field_get_type(field) ==
+		PURPLE_REQUEST_FIELD_STRING, FALSE);
+	
+	value = purple_request_field_string_get_value(field);
+	
+	if (value != NULL && ggp_password_validate(value))
+		return TRUE;
+	
+	if (errmsg)
+		*errmsg = g_strdup(_("Password can contain 6-15 alphanumeric characters"));
+	return FALSE;
+}
+
+gboolean ggp_validator_password_equal(PurpleRequestField *field, gchar **errmsg,
+	void *field2_p)
+{
+	const char *value1, *value2;
+	PurpleRequestField *field2 = field2_p;
+	
+	g_return_val_if_fail(field != NULL, FALSE);
+	g_return_val_if_fail(field2 != NULL, FALSE);
+	g_return_val_if_fail(purple_request_field_get_type(field) ==
+		PURPLE_REQUEST_FIELD_STRING, FALSE);
+	g_return_val_if_fail(purple_request_field_get_type(field2) ==
+		PURPLE_REQUEST_FIELD_STRING, FALSE);
+	
+	value1 = purple_request_field_string_get_value(field);
+	value2 = purple_request_field_string_get_value(field2);
+	
+	if (g_strcmp0(value1, value2) == 0)
+		return TRUE;
+	
+	if (errmsg)
+		*errmsg = g_strdup(_("Passwords do not match"));
+	return FALSE;
+}

mercurial