Re: [Standards] summary: allowable characters

2007-08-05 Thread Matthias Wimmer

Hi Robin!

Robin Redeker schrieb:

The problem is that you don't know which JID was a 1.1 JID before it was
escaped. So you would unescape every JID in the roster, leading to
falsely unescaped JIDs.


Well any JID received on a XMPP 1.0 server is escaped, no?


Of course we currently don't have many JIDs with a \ in the nodepart,
and probably even less which would represent an escaped JID. But you
will have false positives, like jabber.org currently has
'[EMAIL PROTECTED]', that will be unescaped with your logic when
migrating to 1.1 to 'stpeter @jabber.org' which would be wrong IMO.


The case [EMAIL PROTECTED] which is no valid escaped JID won't get 
unescaped I'd say. But that's something in the escaping XEP that has to 
be clearified there.


Let's asume the cleaner case where the \20 is inside the node: 
[EMAIL PROTECTED]


Yes, this one would get unescaped when converting the roster from 
XMPP1.0 storage to XMPP1.1 storage. If jabber.org is still an XMPP1.0 
server it will get escaped again when the presence is passing the 
XMPP1.1 to XMPP1.0 border and everything is working fine.


If jabber.org in contrary is also a XMPP1.1 server, there would not have 
been [EMAIL PROTECTED] in the roster, as the jabber.org server would 
have escaped the JID when passing it to the XMPP1.0 world in which case 
on the roster there would have been stored [EMAIL PROTECTED] ... 
which when converting this to XMPP1.1 gets the correct 
[EMAIL PROTECTED]



Matthias


Re: [Standards] summary: allowable characters

2007-08-05 Thread Robin Redeker
On Sun, Aug 05, 2007 at 12:44:27PM +0200, Matthias Wimmer wrote:
> Robin Redeker schrieb:
> >But the problem that we have then is that a 1.0 server, which will only
> >receive escaped JIDs, stores those (escaped) 1.1 JIDs in the 1.0 contacts
> >roster as escaped JIDs (because he doesn't even know they are escaped
> >JIDs!).
> >
> >That means that after migration (1.0 server upgrades software to a 1.1
> >capable one) those JIDs are still in their escaped form in the roster.
> >And because there doesn't happen any escaping between 1.1 servers our
> >recently upgraded 1.0 server has broken rosters.
> 
> I'd say that this just means that when migrating from a 1.0 server to a 
> 1.1 server, that you have to convert the roster as it is stored on the 
> server.
> 
> This is something the server implementation has to handle. E.g. by 
> flagging rosters that are created on the 1.1 software are that have 
> already been converted. Whenever the software reads a roster without 
> this flag, it knows it has to convert the roster first.
> 
> Sorry, but I don't see the problem. Some sort of the same logic is also 
> needed for converting account names from a 1.0 server on upgrade to a 
> 1.1 server.
> 

The problem is that you don't know which JID was a 1.1 JID before it was
escaped. So you would unescape every JID in the roster, leading to
falsely unescaped JIDs.

Of course we currently don't have many JIDs with a \ in the nodepart,
and probably even less which would represent an escaped JID. But you
will have false positives, like jabber.org currently has
'[EMAIL PROTECTED]', that will be unescaped with your logic when
migrating to 1.1 to 'stpeter @jabber.org' which would be wrong IMO.


Robin


Re: [Standards] summary: allowable characters

2007-08-05 Thread Matthias Wimmer

Robin Redeker schrieb:

But the problem that we have then is that a 1.0 server, which will only
receive escaped JIDs, stores those (escaped) 1.1 JIDs in the 1.0 contacts
roster as escaped JIDs (because he doesn't even know they are escaped
JIDs!).

That means that after migration (1.0 server upgrades software to a 1.1
capable one) those JIDs are still in their escaped form in the roster.
And because there doesn't happen any escaping between 1.1 servers our
recently upgraded 1.0 server has broken rosters.


I'd say that this just means that when migrating from a 1.0 server to a 
1.1 server, that you have to convert the roster as it is stored on the 
server.


This is something the server implementation has to handle. E.g. by 
flagging rosters that are created on the 1.1 software are that have 
already been converted. Whenever the software reads a roster without 
this flag, it knows it has to convert the roster first.


Sorry, but I don't see the problem. Some sort of the same logic is also 
needed for converting account names from a 1.0 server on upgrade to a 
1.1 server.



Matthias


Re: [Standards] summary: allowable characters

2007-08-05 Thread Mridul Muralidharan

Robin Redeker wrote:

On Sun, Aug 05, 2007 at 05:10:13AM +0530, Mridul Muralidharan wrote:

Robin Redeker wrote:

On Fri, Aug 03, 2007 at 04:29:15AM +0530, Mridul Muralidharan wrote:

Just mentioning a basic problem which was discussed at jdev.

If two 1.0 server move to 1.1, all the 'older' 1.0 jid's will become 
unroutable - which are present in user 
roster/affiliations/privacylists/etc.



Yes, this sounds like the death blow for escaping for backward
compatibility. It will poison the old 1.0 servers and make whole roster
subscriptions unusable once that server upgrades to 1.1. (Not to mention
the JIDs in the private XML storage or other places you mentioned).

Do you see any problem in just disallowing incompatible 1.1 JIDs to be
able to communicate with 1.0 JIDs? The old 1.0-compatible JID accounts
on a 1.1 server will of course still be able to talk with people on 1.0
servers.

The problem is 1.1 JID's cant communicate with 1.1 contact JID's -
if user has [EMAIL PROTECTED], what will the 1.1 server do ? It could 
either be pointing to a 1.1 [EMAIL PROTECTED] (route as-is), was a 1.0 
jid - convert to cont&[EMAIL PROTECTED] (needs transformation) or continues to 
be 1.0 [EMAIL PROTECTED] (route as-is) (all three as different cases, 
though 1 and 3 look the same).


I don't know exactly what you mean. There MUST NOT be done any escaping
between two 1.1 servers. So a 1.1 contact on server A and another 1.1
contact on server B are communicating nicely with each other. And also
the JIDs in their rosters will be a 1.1 JID.

Escaping only happens between 1.1 and 1.0 servers, and only on those
1.1 vs. 1.0 borders.

But the problem that we have then is that a 1.0 server, which will only
receive escaped JIDs, stores those (escaped) 1.1 JIDs in the 1.0 contacts
roster as escaped JIDs (because he doesn't even know they are escaped
JIDs!).

That means that after migration (1.0 server upgrades software to a 1.1
capable one) those JIDs are still in their escaped form in the roster.
And because there doesn't happen any escaping between 1.1 servers our
recently upgraded 1.0 server has broken rosters.


Yes, I am refering to this case above. 1.0 roster, 1.1 server.
It is not always practical to say - do full user data migration before 
moving to 1.1 (not always possible).





The network won't be split the day servers start speaking XMPP 1.1.
By preventing people with JIDs with incompatible characters to speak
with 1.0 servers the 1.1 servers can prevent that split.
Existing data will be present - and without jid meta-data, we cant 
associate encoding info.


One possible option would be to move to use uri scheme for jid's - (and 
so this could be the differentiator for 1.1 vs 1.0).

More importantly, it would help in case of interop with other protocols.

Last time I brought this up, it was considered a bit too disruptive, and 
so dropped :-) Since Peter was considering 1.1 of xmpp, maybe this would 
be a good time to rethink this idea !


You mean if a 1.1 server speaks with a 1.0 server it gives him an URL
instead of an escaped JID? How will 1.0 servers handle that? They will
have to code a little to handle that, don't they?


At the boundary, the 1.1 server will convert from/to uri form to current 
(1.0) form while talking to an 'older' (1.0) server, and will continue 
with uri form for a 1.1 server..


Mridul



(I like the idea of URLs btw., but changing a whole culture from their
JIDs to URIs will be quite hard I guess :-)


Robin




Re: [Standards] summary: allowable characters

2007-08-05 Thread Robin Redeker
On Sun, Aug 05, 2007 at 05:10:13AM +0530, Mridul Muralidharan wrote:
> Robin Redeker wrote:
> >On Fri, Aug 03, 2007 at 04:29:15AM +0530, Mridul Muralidharan wrote:
> >>
> >>Just mentioning a basic problem which was discussed at jdev.
> >>
> >>If two 1.0 server move to 1.1, all the 'older' 1.0 jid's will become 
> >>unroutable - which are present in user 
> >>roster/affiliations/privacylists/etc.
> >>
> >
> >Yes, this sounds like the death blow for escaping for backward
> >compatibility. It will poison the old 1.0 servers and make whole roster
> >subscriptions unusable once that server upgrades to 1.1. (Not to mention
> >the JIDs in the private XML storage or other places you mentioned).
> >
> >Do you see any problem in just disallowing incompatible 1.1 JIDs to be
> >able to communicate with 1.0 JIDs? The old 1.0-compatible JID accounts
> >on a 1.1 server will of course still be able to talk with people on 1.0
> >servers.
> 
> The problem is 1.1 JID's cant communicate with 1.1 contact JID's -
> if user has [EMAIL PROTECTED], what will the 1.1 server do ? It could 
> either be pointing to a 1.1 [EMAIL PROTECTED] (route as-is), was a 1.0 
> jid - convert to cont&[EMAIL PROTECTED] (needs transformation) or continues 
> to 
> be 1.0 [EMAIL PROTECTED] (route as-is) (all three as different cases, 
> though 1 and 3 look the same).

I don't know exactly what you mean. There MUST NOT be done any escaping
between two 1.1 servers. So a 1.1 contact on server A and another 1.1
contact on server B are communicating nicely with each other. And also
the JIDs in their rosters will be a 1.1 JID.

Escaping only happens between 1.1 and 1.0 servers, and only on those
1.1 vs. 1.0 borders.

But the problem that we have then is that a 1.0 server, which will only
receive escaped JIDs, stores those (escaped) 1.1 JIDs in the 1.0 contacts
roster as escaped JIDs (because he doesn't even know they are escaped
JIDs!).

That means that after migration (1.0 server upgrades software to a 1.1
capable one) those JIDs are still in their escaped form in the roster.
And because there doesn't happen any escaping between 1.1 servers our
recently upgraded 1.0 server has broken rosters.

> >
> >The network won't be split the day servers start speaking XMPP 1.1.
> >By preventing people with JIDs with incompatible characters to speak
> >with 1.0 servers the 1.1 servers can prevent that split.
> 
> Existing data will be present - and without jid meta-data, we cant 
> associate encoding info.
> 
> One possible option would be to move to use uri scheme for jid's - (and 
> so this could be the differentiator for 1.1 vs 1.0).
> More importantly, it would help in case of interop with other protocols.
> 
> Last time I brought this up, it was considered a bit too disruptive, and 
> so dropped :-) Since Peter was considering 1.1 of xmpp, maybe this would 
> be a good time to rethink this idea !

You mean if a 1.1 server speaks with a 1.0 server it gives him an URL
instead of an escaped JID? How will 1.0 servers handle that? They will
have to code a little to handle that, don't they?

(I like the idea of URLs btw., but changing a whole culture from their
JIDs to URIs will be quite hard I guess :-)


Robin


Re: [Standards] summary: allowable characters

2007-08-04 Thread Mridul Muralidharan

Robin Redeker wrote:

On Fri, Aug 03, 2007 at 04:29:15AM +0530, Mridul Muralidharan wrote:


Just mentioning a basic problem which was discussed at jdev.

If two 1.0 server move to 1.1, all the 'older' 1.0 jid's will become 
unroutable - which are present in user roster/affiliations/privacylists/etc.




Yes, this sounds like the death blow for escaping for backward
compatibility. It will poison the old 1.0 servers and make whole roster
subscriptions unusable once that server upgrades to 1.1. (Not to mention
the JIDs in the private XML storage or other places you mentioned).

Do you see any problem in just disallowing incompatible 1.1 JIDs to be
able to communicate with 1.0 JIDs? The old 1.0-compatible JID accounts
on a 1.1 server will of course still be able to talk with people on 1.0
servers.


The problem is 1.1 JID's cant communicate with 1.1 contact JID's -
if user has [EMAIL PROTECTED], what will the 1.1 server do ? It could 
either be pointing to a 1.1 [EMAIL PROTECTED] (route as-is), was a 1.0 
jid - convert to cont&[EMAIL PROTECTED] (needs transformation) or continues to 
be 1.0 [EMAIL PROTECTED] (route as-is) (all three as different cases, 
though 1 and 3 look the same).




The network won't be split the day servers start speaking XMPP 1.1.
By preventing people with JIDs with incompatible characters to speak
with 1.0 servers the 1.1 servers can prevent that split.


Existing data will be present - and without jid meta-data, we cant 
associate encoding info.


One possible option would be to move to use uri scheme for jid's - (and 
so this could be the differentiator for 1.1 vs 1.0).

More importantly, it would help in case of interop with other protocols.

Last time I brought this up, it was considered a bit too disruptive, and 
so dropped :-) Since Peter was considering 1.1 of xmpp, maybe this would 
be a good time to rethink this idea !



Regards,
Mridul



The 1.1<->1.0 gap will grow with people who want to use the new
characters in their JID, and hopefully the server administrators also
upgrade their servers at the same speed that these people come.

Clients would also have to take care whether they speak to a 1.0 or 1.1
server. A client error message like: "your server doesn't support these
characters in the JID, convince the admin to upgrade!" will maybe even
raise the pressure for admins a bit to upgrade :-)

The problem with forcing admins to upgrade I see here is that they are
maybe forced to upgrade to a unstable version or not so stable version
as they had before.



Robin





Re: [Standards] summary: allowable characters

2007-08-04 Thread Robin Redeker
On Fri, Aug 03, 2007 at 04:29:15AM +0530, Mridul Muralidharan wrote:
> 
> 
> Just mentioning a basic problem which was discussed at jdev.
> 
> If two 1.0 server move to 1.1, all the 'older' 1.0 jid's will become 
> unroutable - which are present in user roster/affiliations/privacylists/etc.
> 

Yes, this sounds like the death blow for escaping for backward
compatibility. It will poison the old 1.0 servers and make whole roster
subscriptions unusable once that server upgrades to 1.1. (Not to mention
the JIDs in the private XML storage or other places you mentioned).

Do you see any problem in just disallowing incompatible 1.1 JIDs to be
able to communicate with 1.0 JIDs? The old 1.0-compatible JID accounts
on a 1.1 server will of course still be able to talk with people on 1.0
servers.

The network won't be split the day servers start speaking XMPP 1.1.
By preventing people with JIDs with incompatible characters to speak
with 1.0 servers the 1.1 servers can prevent that split.

The 1.1<->1.0 gap will grow with people who want to use the new
characters in their JID, and hopefully the server administrators also
upgrade their servers at the same speed that these people come.

Clients would also have to take care whether they speak to a 1.0 or 1.1
server. A client error message like: "your server doesn't support these
characters in the JID, convince the admin to upgrade!" will maybe even
raise the pressure for admins a bit to upgrade :-)

The problem with forcing admins to upgrade I see here is that they are
maybe forced to upgrade to a unstable version or not so stable version
as they had before.



Robin


Re: [Standards] summary: allowable characters

2007-08-02 Thread Tomasz Sterna
Dnia 03-08-2007, pią o godzinie 00:28 +0200, Robin Redeker napisał(a):
> There exists no real easy way to prevent that except just not allowing
> 'stpeter @jabber.org' to register. To detect a case like this, that a
> new user with a colliding JID registers, the 1.1 server needs to keep
> track of the old JIDs in his database.

There is really no difference whether you're colliding an 1.0 username,
or 1.1.
>From the connecting 1.0 server perspective it does not matter.

So on 1.1 server you just unescape the requested username and check for
collision. If there is one, you deny the request.


As for the whole idea.
The escaping-unescaping is going to happen completely behind the scene,
on the server side on both s2s and c2s connections. On the 1.1 side.
It's the 1.1 endpoint (no matter if it is server or client) to do
escaping sent data and unescaping received data when it talks with 1.0.
Well...
- We have unchanged 1.0 servers
- We have unchanged 1.0 clients (it's users need to escape manually)
- We have interoperability 1.0 <-> 1.1
- We have all possible characters in the nodepart of the JID
Looks good to me.



-- 
Tomasz Sterna
Xiaoka Grp.  http://www.xiaoka.com/



Re: [Standards] summary: allowable characters

2007-08-02 Thread Mridul Muralidharan



Just mentioning a basic problem which was discussed at jdev.

If two 1.0 server move to 1.1, all the 'older' 1.0 jid's will become 
unroutable - which are present in user roster/affiliations/privacylists/etc.



Regards,
Mridul

Robin Redeker wrote:

(Warning, long mail ahead! Get a coffee and some time first :-)

On Thu, Aug 02, 2007 at 03:34:30PM -0600, Peter Saint-Andre wrote:

Mridul Muralidharan wrote:

The problem essentially is that any place where we have a JID persisted
in the backend (user roster, acl's, affiliations, privacy lists/block
lists, etc), it will become incompatible change.
For example, what used to be [EMAIL PROTECTED] will now become
contact&[EMAIL PROTECTED] - causing incompatibilities.

Well we're having a long discussion about this in the jdev room
right now:

http://www.jabber.org/muc-logs/[EMAIL PROTECTED]/2007-08-02.html

I volunteer elmex for posting a summary once we're done. :)


Yes, basically Mridul is completly right, we can't do much about the
already deployed backslashes in JIDs. Especially in 1.0 server rosters.

But...

First we have to wonder whethere there are actually people with
[EMAIL PROTECTED] in their roster, as registering a JID with a \ in
the username is a considerable problem with XMPP 1.0 servers with SASL
and DIGEST-MD5 (see some older message from me in the JID escaping
thread).

Of course that should be further investigaged as old-style IQ auth works
with [EMAIL PROTECTED] and also some jabberd2 servers allow
authentication as [EMAIL PROTECTED] without problems.

But there exists a possibility to migrate our old JIDs to the 1.1 world
and staying interoperable with 1.0 servers:

First: A 1.1 server that is going to communicate with 1.0 server will
escape the JIDs from his userbase when he SENDS to a 1.0 entity.
Escaping can be performed as described in XEP-0106 (after dropping the
silly \20 escaping rule).

That will work great if the 1.1 server has NO old userbase.

If we have for example jabber.org, a large userbase, and there is
actually [EMAIL PROTECTED] as registered user in. And we want to
upgrade to a 1.1 server then we will run into the problems Mridul
pointed out:

1.0 servers have [EMAIL PROTECTED] in their roster, and if we have
now 'stpeter @jabber.org' registering a new account he will collide with
that, because his JID will be escaped to the in the 1.0 servers roster
existing [EMAIL PROTECTED] Bang, we got a collision.

There exists no real easy way to prevent that except just not allowing
'stpeter @jabber.org' to register. To detect a case like this, that a
new user with a colliding JID registers, the 1.1 server needs to keep
track of the old JIDs in his database.

If the 1.1 server knows that [EMAIL PROTECTED] is a JID from the
pre-1.1 times, he can assume that [EMAIL PROTECTED] is already in
some rosters out there. So he MUST NOT allow anyone who might collide
with that to register at jabber.org after the migration to 1.1.

So when upgrading jabber.org could just mark all JIDs with a \ in their
name to be a pre-1.1 JID and disallow anyone to register who might
collide with one of the registered JIDs.

This way ' [EMAIL PROTECTED]' can register if no
'[EMAIL PROTECTED]' existed before (he knows that from his
database with the marks of old JIDs).

If ' [EMAIL PROTECTED]' now wants to talk with '[EMAIL PROTECTED]', it
would look like this:

   

As jabber.org (1.1) knows that chrome.pl (1.0) is in fact 1.0 he escapes
like XEP-0106 recommends and sends actually:

   

In [EMAIL PROTECTED]'s client will now popup a message from
"[EMAIL PROTECTED]" and except some weird JID he can talk with him.
Because if he sends a message back:

   

Then jabber.org will unescape the to-field and deliver the message to
' [EMAIL PROTECTED]'.

Of course this solution is not a perfect one for the end-users as I will
describe below, but I argue that the incompatibilities will increase
the pressure on developers a bit and on administrators to adapt XMPP
1.1. And thus that might speed up the migration while providing a
compatibility-workaround for maybr 98-99% of the cases, or maybe even
99,% (this needs to be investigated a big IMO, maybe my assumptions
are completly wrong).

So much for the server-to-server interoperability.



Now about 1.1 clients and 1.0 clients. 1.0 clients will have no way
to reach ' [EMAIL PROTECTED]', which is fine, either the user knows
that guy's JID needs to be escaped because he uses an old client, or he
has to upgrade to a client with 1.1 capabilities (what this means is
described below).

Not being able to send a message to ' [EMAIL PROTECTED]' will increase
the pressure on the client developers as stated above.
So 1.0 clients are basically out of luck if the user don't know how to
escape, however, tell em: "get a new client".

Of course it's blunt to say that, but I guess we can assume that not our
WHOLE old userbase without spaces and all those fancy characters in
their JID are

Re: [Standards] summary: allowable characters

2007-08-02 Thread Peter Saint-Andre
Matthias Wimmer wrote:
> Peter Saint-Andre schrieb:
>> Well we're having a long discussion about this in the jdev room
>> right now:
>>
>> http://www.jabber.org/muc-logs/[EMAIL PROTECTED]/2007-08-02.html
> 
> I just read the log. Sounds good and is how I intended/proposed that it
> would work:
> - Escaping JIDs when sending to a server that does not support the
> eXtended iIDs (are these XIDs then? *g*)

That's good. :)

> - Not doing unescaping, when a JID is displayed.

Right.

Peter

-- 
Peter Saint-Andre
https://stpeter.im/



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] summary: allowable characters

2007-08-02 Thread Robin Redeker
(Warning, long mail ahead! Get a coffee and some time first :-)

On Thu, Aug 02, 2007 at 03:34:30PM -0600, Peter Saint-Andre wrote:
> Mridul Muralidharan wrote:
> > The problem essentially is that any place where we have a JID persisted
> > in the backend (user roster, acl's, affiliations, privacy lists/block
> > lists, etc), it will become incompatible change.
> > For example, what used to be [EMAIL PROTECTED] will now become
> > contact&[EMAIL PROTECTED] - causing incompatibilities.
> 
> Well we're having a long discussion about this in the jdev room
> right now:
> 
> http://www.jabber.org/muc-logs/[EMAIL PROTECTED]/2007-08-02.html
> 
> I volunteer elmex for posting a summary once we're done. :)

Yes, basically Mridul is completly right, we can't do much about the
already deployed backslashes in JIDs. Especially in 1.0 server rosters.

But...

First we have to wonder whethere there are actually people with
[EMAIL PROTECTED] in their roster, as registering a JID with a \ in
the username is a considerable problem with XMPP 1.0 servers with SASL
and DIGEST-MD5 (see some older message from me in the JID escaping
thread).

Of course that should be further investigaged as old-style IQ auth works
with [EMAIL PROTECTED] and also some jabberd2 servers allow
authentication as [EMAIL PROTECTED] without problems.

But there exists a possibility to migrate our old JIDs to the 1.1 world
and staying interoperable with 1.0 servers:

First: A 1.1 server that is going to communicate with 1.0 server will
escape the JIDs from his userbase when he SENDS to a 1.0 entity.
Escaping can be performed as described in XEP-0106 (after dropping the
silly \20 escaping rule).

That will work great if the 1.1 server has NO old userbase.

If we have for example jabber.org, a large userbase, and there is
actually [EMAIL PROTECTED] as registered user in. And we want to
upgrade to a 1.1 server then we will run into the problems Mridul
pointed out:

1.0 servers have [EMAIL PROTECTED] in their roster, and if we have
now 'stpeter @jabber.org' registering a new account he will collide with
that, because his JID will be escaped to the in the 1.0 servers roster
existing [EMAIL PROTECTED] Bang, we got a collision.

There exists no real easy way to prevent that except just not allowing
'stpeter @jabber.org' to register. To detect a case like this, that a
new user with a colliding JID registers, the 1.1 server needs to keep
track of the old JIDs in his database.

If the 1.1 server knows that [EMAIL PROTECTED] is a JID from the
pre-1.1 times, he can assume that [EMAIL PROTECTED] is already in
some rosters out there. So he MUST NOT allow anyone who might collide
with that to register at jabber.org after the migration to 1.1.

So when upgrading jabber.org could just mark all JIDs with a \ in their
name to be a pre-1.1 JID and disallow anyone to register who might
collide with one of the registered JIDs.

This way ' [EMAIL PROTECTED]' can register if no
'[EMAIL PROTECTED]' existed before (he knows that from his
database with the marks of old JIDs).

If ' [EMAIL PROTECTED]' now wants to talk with '[EMAIL PROTECTED]', it
would look like this:

   

As jabber.org (1.1) knows that chrome.pl (1.0) is in fact 1.0 he escapes
like XEP-0106 recommends and sends actually:

   

In [EMAIL PROTECTED]'s client will now popup a message from
"[EMAIL PROTECTED]" and except some weird JID he can talk with him.
Because if he sends a message back:

   

Then jabber.org will unescape the to-field and deliver the message to
' [EMAIL PROTECTED]'.

Of course this solution is not a perfect one for the end-users as I will
describe below, but I argue that the incompatibilities will increase
the pressure on developers a bit and on administrators to adapt XMPP
1.1. And thus that might speed up the migration while providing a
compatibility-workaround for maybr 98-99% of the cases, or maybe even
99,% (this needs to be investigated a big IMO, maybe my assumptions
are completly wrong).

So much for the server-to-server interoperability.



Now about 1.1 clients and 1.0 clients. 1.0 clients will have no way
to reach ' [EMAIL PROTECTED]', which is fine, either the user knows
that guy's JID needs to be escaped because he uses an old client, or he
has to upgrade to a client with 1.1 capabilities (what this means is
described below).

Not being able to send a message to ' [EMAIL PROTECTED]' will increase
the pressure on the client developers as stated above.
So 1.0 clients are basically out of luck if the user don't know how to
escape, however, tell em: "get a new client".

Of course it's blunt to say that, but I guess we can assume that not our
WHOLE old userbase without spaces and all those fancy characters in
their JID are NOT GOING TO signup a new account. So the users with
spaces and & or whatever in their JID will probably come as slow as the
XMPP world migrates to 1.1, and thus not experience any weird things.

Lets assume now our guy,

Re: [Standards] summary: allowable characters

2007-08-02 Thread Matthias Wimmer

Peter Saint-Andre schrieb:

Well we're having a long discussion about this in the jdev room
right now:

http://www.jabber.org/muc-logs/[EMAIL PROTECTED]/2007-08-02.html


I just read the log. Sounds good and is how I intended/proposed that it 
would work:
- Escaping JIDs when sending to a server that does not support the 
eXtended iIDs (are these XIDs then? *g*)

- Not doing unescaping, when a JID is displayed.


Matthias


Re: [Standards] summary: allowable characters

2007-08-02 Thread Peter Saint-Andre
Mridul Muralidharan wrote:
> 
> Peter Saint-Andre wrote:
>> Mridul Muralidharan wrote:
>>> Btw, changing nodeprep now will cause quite a lot of problem with
>>> existing deployments - since the contact jid's are part of the user data
>>> - and would pretty much mean we cant adopt bis spec.
>>
>> What specifically breaks? Does it depend on which characters would be
>> allowed in nodeprep2? I agree that / and @ are problematic, but the
>> characters " & ' < > seem less so. But I may be missing something.
> 
> 
> The problem essentially is that any place where we have a JID persisted
> in the backend (user roster, acl's, affiliations, privacy lists/block
> lists, etc), it will become incompatible change.
> For example, what used to be [EMAIL PROTECTED] will now become
> contact&[EMAIL PROTECTED] - causing incompatibilities.

Well we're having a long discussion about this in the jdev room
right now:

http://www.jabber.org/muc-logs/[EMAIL PROTECTED]/2007-08-02.html

I volunteer elmex for posting a summary once we're done. :)

/psa


smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] summary: allowable characters

2007-08-02 Thread Mridul Muralidharan


Hi Peter,

Peter Saint-Andre wrote:

Mridul Muralidharan wrote:

Peter Saint-Andre wrote:

4. One solution would be to define version 2 of nodeprep in rfc3920bis.
As far as I can see, nodeprep2 would allow " & ' < > since those can be
escaped in XML (e.g., XMPP 'to' address) as the predefined entities
" & ' < >. I'm not sure why : was prohibited in the
first place so that would be allowed. I suppose / was prohibited because
it's used later in a full JID to differentiate the resource identifier,
but in a node identifier I don't think it would be confusing so that
would be allowed. 


user/[EMAIL PROTECTED] and domain/[EMAIL PROTECTED] cant be differentiated if / 
is
allowed.


Interesting, I think you're right. Consider "foo.com/[EMAIL PROTECTED]", it
could be the bare JID of a user "foo.com/bar" at jabber.org or a domain
of foo.com with a resource of "[EMAIL PROTECTED]". Not good.


Btw, changing nodeprep now will cause quite a lot of problem with
existing deployments - since the contact jid's are part of the user data
- and would pretty much mean we cant adopt bis spec.


What specifically breaks? Does it depend on which characters would be
allowed in nodeprep2? I agree that / and @ are problematic, but the
characters " & ' < > seem less so. But I may be missing something.



The problem essentially is that any place where we have a JID persisted 
in the backend (user roster, acl's, affiliations, privacy lists/block 
lists, etc), it will become incompatible change.
For example, what used to be [EMAIL PROTECTED] will now become 
contact&[EMAIL PROTECTED] - causing incompatibilities.



Regards,
Mridul





The number of deployments with these usecases are not as specialized as
it might seem.


I agree with that. Which is why I stand by XEP-0106. In part I think
that those who are so opposed to XEP-0106 are not familiar with the
deployment issues. But I agree that XEP-0106 needs to be clarified in
the ways we discussed recently. It's on my list to complete those
clarifications and post an interim version.

/psa





Re: [Standards] summary: allowable characters

2007-08-02 Thread Peter Saint-Andre
Thomas Charron wrote:
> On 8/2/07, Peter Saint-Andre <[EMAIL PROTECTED]> wrote:
>> What specifically breaks? Does it depend on which characters would be
>> allowed in nodeprep2? I agree that / and @ are problematic, but the
>> characters " & ' < > seem less so. But I may be missing something.
> 
>   I believe this section was a left over from the original pre-rfc
> specification which was attempting to fit a JID into standardized URI
> notation, which specifically explains allowable characters, reserved
> characters, and characters which must be escaped.  See rfc 2396.  The
> section which deals with those characters is:
> 
> 
> The angle-bracket "<" and ">" and double-quote (") characters are
>excluded because they are often used as the delimiters around URI in
>text documents and protocol fields.  The character "#" is excluded
>because it is used to delimit a URI from a fragment identifier in URI
>references (Section 4). The percent character "%" is excluded because
>it is used for the encoding of escaped characters.
> 
>delims  = "<" | ">" | "#" | "%" | <">
> 

Yeah, but a JID isn't a URI and never will be, that's why I went through
all the trouble of writing RFC 4622. But I agree with you that similar
reasoning led to exclusion of those characters (and & ' too).

>   I'll go jump down in a hole again.  :-)

Oh don't, we cherish your occasional visits. :)

Peter

-- 
Peter Saint-Andre
https://stpeter.im/



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] summary: allowable characters

2007-08-02 Thread Thomas Charron
On 8/2/07, Peter Saint-Andre <[EMAIL PROTECTED]> wrote:
> What specifically breaks? Does it depend on which characters would be
> allowed in nodeprep2? I agree that / and @ are problematic, but the
> characters " & ' < > seem less so. But I may be missing something.

  I believe this section was a left over from the original pre-rfc
specification which was attempting to fit a JID into standardized URI
notation, which specifically explains allowable characters, reserved
characters, and characters which must be escaped.  See rfc 2396.  The
section which deals with those characters is:


The angle-bracket "<" and ">" and double-quote (") characters are
   excluded because they are often used as the delimiters around URI in
   text documents and protocol fields.  The character "#" is excluded
   because it is used to delimit a URI from a fragment identifier in URI
   references (Section 4). The percent character "%" is excluded because
   it is used for the encoding of escaped characters.

   delims  = "<" | ">" | "#" | "%" | <">


  I'll go jump down in a hole again.  :-)

-- 
-- Thomas


Re: [Standards] summary: allowable characters

2007-08-02 Thread Peter Saint-Andre
Mridul Muralidharan wrote:
> Peter Saint-Andre wrote:
>>
>> 4. One solution would be to define version 2 of nodeprep in rfc3920bis.
>> As far as I can see, nodeprep2 would allow " & ' < > since those can be
>> escaped in XML (e.g., XMPP 'to' address) as the predefined entities
>> " & ' < >. I'm not sure why : was prohibited in the
>> first place so that would be allowed. I suppose / was prohibited because
>> it's used later in a full JID to differentiate the resource identifier,
>> but in a node identifier I don't think it would be confusing so that
>> would be allowed. 
> 
> 
> user/[EMAIL PROTECTED] and domain/[EMAIL PROTECTED] cant be differentiated if 
> / is
> allowed.

Interesting, I think you're right. Consider "foo.com/[EMAIL PROTECTED]", it
could be the bare JID of a user "foo.com/bar" at jabber.org or a domain
of foo.com with a resource of "[EMAIL PROTECTED]". Not good.

> Btw, changing nodeprep now will cause quite a lot of problem with
> existing deployments - since the contact jid's are part of the user data
> - and would pretty much mean we cant adopt bis spec.

What specifically breaks? Does it depend on which characters would be
allowed in nodeprep2? I agree that / and @ are problematic, but the
characters " & ' < > seem less so. But I may be missing something.

> The number of deployments with these usecases are not as specialized as
> it might seem.

I agree with that. Which is why I stand by XEP-0106. In part I think
that those who are so opposed to XEP-0106 are not familiar with the
deployment issues. But I agree that XEP-0106 needs to be clarified in
the ways we discussed recently. It's on my list to complete those
clarifications and post an interim version.

/psa



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] summary: allowable characters

2007-08-02 Thread Peter Saint-Andre
Michal 'vorner' Vaner wrote:
> Hello
> 
> On Thu, Aug 02, 2007 at 11:40:25AM -0600, Peter Saint-Andre wrote:
>> Clearly we can't allow @ because we use that character
>> as a separator between the node identifier and the domain identifier.
> 
> Email address can contain @ in the username part - the identifier is the
> last @ in the address. 

Really? I don't see that in RFC 2822, but I'm not fluent in ABNF. :)

> But Emails don't have resources. We would have to
> decide which is more valuable to have in the node part allowed - one of
> them can not be allowed.

I'd vote against "@" and say that a node could include "/".

/psa



smime.p7s
Description: S/MIME Cryptographic Signature


Re: [Standards] summary: allowable characters

2007-08-02 Thread Mridul Muralidharan

Peter Saint-Andre wrote:

OK, we have had a long long discussion thread about JID Escaping and
nodeprep and allowable characters in JIDs etc. Here I summarize the
discussion and draw some conclusions for those of you who have checked
out. :)

1. Support for XEP-0106: JID Escaping (i.e., mapping of ' to \27 etc.)
is needed only in certain specialized deployment situations -- mainly
when an organization wants to reuse existing userids (e.g., email
addresses) or gateway to other messaging systems.

2. We needed to define JID escaping because version 1 of nodeprep (see
RFC 3920) prohibits including the characters SP " & ' / : < > @ in XMPP
node identifiers. (See also XEP-0029.)

3. IIRC we prohibited some of those characters because very early Jabber
clients didn't properly escape things like " & ' < > in XMPP 'to' and
'from' addresses.

4. One solution would be to define version 2 of nodeprep in rfc3920bis.
As far as I can see, nodeprep2 would allow " & ' < > since those can be
escaped in XML (e.g., XMPP 'to' address) as the predefined entities
" & ' < >. I'm not sure why : was prohibited in the
first place so that would be allowed. I suppose / was prohibited because
it's used later in a full JID to differentiate the resource identifier,
but in a node identifier I don't think it would be confusing so that
would be allowed. 



user/[EMAIL PROTECTED] and domain/[EMAIL PROTECTED] cant be differentiated if / is 
allowed.


Btw, changing nodeprep now will cause quite a lot of problem with 
existing deployments - since the contact jid's are part of the user data 
- and would pretty much mean we cant adopt bis spec.


The number of deployments with these usecases are not as specialized as 
it might seem.


- Mridul


Clearly we can't allow @ because we use that character
as a separator between the node identifier and the domain identifier. So
nodeprep2 would be the same as nodepre1 except that it would disallow
only the at-sign ("@"). (Naturally we can discuss this further...) As to
how it is discovered that a server supports nodeprep2, I will post a
separate message about that.

Peter





Re: [Standards] summary: allowable characters

2007-08-02 Thread Michal 'vorner' Vaner
Hello

On Thu, Aug 02, 2007 at 11:40:25AM -0600, Peter Saint-Andre wrote:
> Clearly we can't allow @ because we use that character
> as a separator between the node identifier and the domain identifier.

Email address can contain @ in the username part - the identifier is the
last @ in the address. But Emails don't have resources. We would have to
decide which is more valuable to have in the node part allowed - one of
them can not be allowed.

Just wanted to point out it is theoretically possible to have @ in the
node too.

-- 
Anything is possible, unless it's not.

Michal 'vorner' Vaner


pgpf6KIJ5VK8f.pgp
Description: PGP signature