Mercurial > pidgin.yaz
changeset 27540:da3d0159333d
XMPP domains can also be IPv4 or IPv6 addresses
We don't have an IPv6 validation function and I didn't feel
like writing one, so I left those checks commented out and
added a note to jabber_nameprep_validate (which is
increasingly misnamed).
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sat, 11 Jul 2009 01:57:14 +0000 |
parents | 167d7c3a4f7b |
children | 302934aea9fb |
files | libpurple/protocols/jabber/jutil.c libpurple/protocols/jabber/jutil.h libpurple/tests/test_jabber_jutil.c |
diffstat | 3 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jutil.c Sat Jul 11 00:49:25 2009 +0000 +++ b/libpurple/protocols/jabber/jutil.c Sat Jul 11 01:57:14 2009 +0000 @@ -65,9 +65,8 @@ return FALSE; /* - * This should be more similar to purple_email_is_valid(). Maybe - * that function should even be split up and we should call the part - * that validates the domain name. + * TODO: An IPv6 address of the form [2001:470:1f05:d58::2] is also + * a valid XMPP domain portion. */ c = str; while(c && *c) {
--- a/libpurple/protocols/jabber/jutil.h Sat Jul 11 00:49:25 2009 +0000 +++ b/libpurple/protocols/jabber/jutil.h Sat Jul 11 01:57:14 2009 +0000 @@ -45,6 +45,7 @@ gboolean jabber_is_own_account(JabberStream *js, const char *jid); gboolean jabber_nodeprep_validate(const char *); +/* TODO: This needs to be named jabber_domain_validate and handle IPv6/IDNA. */ gboolean jabber_nameprep_validate(const char *); gboolean jabber_resourceprep_validate(const char *);
--- a/libpurple/tests/test_jabber_jutil.c Sat Jul 11 00:49:25 2009 +0000 +++ b/libpurple/tests/test_jabber_jutil.c Sat Jul 11 01:57:14 2009 +0000 @@ -99,6 +99,12 @@ assert_valid_jid("stuart@nödåtXäYZ.se/まりるーむ"); assert_valid_jid("mark.doliner@わいど.org"); assert_valid_jid("nick@まつ.おおかみ.net"); + assert_valid_jid("paul@10.0.42.230/s"); +#if 0 +/* Uncomment these when jabber_domain_validate supports IPv6 addresses */ + assert_valid_jid("paul@[::1]"); /* IPv6 */ + assert_valid_jid("paul@[2001:470:1f05:d58::2]"); +#endif assert_invalid_jid("@gmail.com"); assert_invalid_jid("@@gmail.com");