libpurple/protocols/gg/validator.c

Wed, 21 Aug 2013 14:59:29 +0200

author
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
date
Wed, 21 Aug 2013 14:59:29 +0200
changeset 34304
faf0414a8b51
parent 33348
2394cd23ce8f
child 35305
056b8468d470
permissions
-rw-r--r--

Fix most of libpurple warnings about -Wsign-compare

33348
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
1 /* purple
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
2 *
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
3 * Purple is the legal property of its developers, whose names are too numerous
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
5 * source distribution.
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
6 *
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
7 * Rewritten from scratch during Google Summer of Code 2012
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
8 * by Tomek Wasilczyk (http://www.wasilczyk.pl).
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
9 *
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
10 * Previously implemented by:
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
11 * - Arkadiusz Miskiewicz <misiek@pld.org.pl> - first implementation (2001);
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
12 * - Bartosz Oler <bartosz@bzimage.us> - reimplemented during GSoC 2005;
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
13 * - Krzysztof Klinikowski <grommasher@gmail.com> - some parts (2009-2011).
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
14 *
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
15 * This program is free software; you can redistribute it and/or modify
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
16 * it under the terms of the GNU General Public License as published by
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
17 * the Free Software Foundation; either version 2 of the License, or
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
18 * (at your option) any later version.
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
19 *
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
20 * This program is distributed in the hope that it will be useful,
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
23 * GNU General Public License for more details.
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
24 *
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
25 * You should have received a copy of the GNU General Public License
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
26 * along with this program; if not, write to the Free Software
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
27 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
28 */
2394cd23ce8f Gadu-Gadu: add GSoC copyright note
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents: 33332
diff changeset
29
33332
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
30 #include "validator.h"
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
31
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
32 #include "account.h"
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
33 #include "utils.h"
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
34
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
35 gboolean ggp_validator_token(PurpleRequestField *field, gchar **errmsg,
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
36 void *token)
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
37 {
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
38 const char *value;
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
39
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
40 g_return_val_if_fail(field != NULL, FALSE);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
41 g_return_val_if_fail(purple_request_field_get_type(field) ==
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
42 PURPLE_REQUEST_FIELD_STRING, FALSE);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
43
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
44 value = purple_request_field_string_get_value(field);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
45
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
46 if (value != NULL && ggp_account_token_validate(token, value))
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
47 return TRUE;
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
48
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
49 if (errmsg)
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
50 *errmsg = g_strdup(_("Captcha validation failed"));
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
51 return FALSE;
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
52 }
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
53
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
54 gboolean ggp_validator_password(PurpleRequestField *field, gchar **errmsg,
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
55 void *user_data)
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
56 {
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
57 const char *value;
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
58
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
59 g_return_val_if_fail(field != NULL, FALSE);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
60 g_return_val_if_fail(purple_request_field_get_type(field) ==
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
61 PURPLE_REQUEST_FIELD_STRING, FALSE);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
62
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
63 value = purple_request_field_string_get_value(field);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
64
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
65 if (value != NULL && ggp_password_validate(value))
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
66 return TRUE;
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
67
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
68 if (errmsg)
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
69 *errmsg = g_strdup(_("Password can contain 6-15 alphanumeric characters"));
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
70 return FALSE;
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
71 }
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
72
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
73 gboolean ggp_validator_password_equal(PurpleRequestField *field, gchar **errmsg,
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
74 void *field2_p)
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
75 {
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
76 const char *value1, *value2;
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
77 PurpleRequestField *field2 = field2_p;
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
78
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
79 g_return_val_if_fail(field != NULL, FALSE);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
80 g_return_val_if_fail(field2 != NULL, FALSE);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
81 g_return_val_if_fail(purple_request_field_get_type(field) ==
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
82 PURPLE_REQUEST_FIELD_STRING, FALSE);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
83 g_return_val_if_fail(purple_request_field_get_type(field2) ==
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
84 PURPLE_REQUEST_FIELD_STRING, FALSE);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
85
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
86 value1 = purple_request_field_string_get_value(field);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
87 value2 = purple_request_field_string_get_value(field2);
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
88
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
89 if (g_strcmp0(value1, value2) == 0)
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
90 return TRUE;
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
91
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
92 if (errmsg)
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
93 *errmsg = g_strdup(_("Passwords do not match"));
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
94 return FALSE;
3d3f0584edf6 Gadu-Gadu: let's use brand new validation for Request API (2)
Tomasz Wasilczyk <tomkiewicz@cpw.pidgin.im>
parents:
diff changeset
95 }

mercurial