Re: [jdev] Spoofing of iq ids and misbehaving servers

2014-01-30 Thread Sergei Golovan
Hi Thijs,

On Thu, Jan 30, 2014 at 4:49 PM, Thijs Alkemade m...@thijsalkema.de wrote:
 But what baffles me even more is that it almost appears like nobody else ever
 ran into this problem. Is it really the case that every XMPP client out there
 does not check for the correct 'from' on result iqs either? Or have they all
 implemented workarounds to deal with the incorrect behavior of the servers
 listed above?

I faced the same problem in Tkabber a while ago. And a bit more. The
other issue with this 'to'-'from' tracking is that you'll have to
implement proper JID matching (with stringprep), which wasn't
available in Tkabber at the moment.

So, I've ended up using random ids (not long though and generated by
not a sophisticated PRNG, but still).

Cheers!
-- 
Sergei Golovan
___
JDev mailing list
Info: http://mail.jabber.org/mailman/listinfo/jdev
Unsubscribe: jdev-unsubscr...@jabber.org
___


Re: [jdev] SOCKS5 Bytestream initiation between chat users in Semi-Anonymous room

2008-06-14 Thread Sergei Golovan
On Sat, Jun 14, 2008 at 3:35 AM, Daniel Atallah [EMAIL PROTECTED] wrote:

 The issue that I'm running into is that because the real JID of the
 initiator is different than the JID the target is seeing (and vice
 versa), the DST.ADDR hashes generated by the sender and recipient
 don't match and consequently the SOCKS5 connection initiation must
 fai.

Tkabber simply uses MUC JIDs ([EMAIL PROTECTED]/nick) when it sends a
request to or receives it from a MUC contact.

-- 
Sergei Golovan
___
JDev mailing list
FAQ: http://www.jabber.org/discussion-lists/jdev-faq
Forum: http://www.jabberforum.org/forumdisplay.php?f=20
Info: http://mail.jabber.org/mailman/listinfo/jdev
Unsubscribe: [EMAIL PROTECTED]
___


[jdev] Tkabber 0.11.0 is released

2008-06-08 Thread Sergei Golovan
Hi!

I'm pleased to announce that Tkabber 0.11.0 is released. Tkabber is an
advanced XMPP client written in Tcl/Tk. The release highlights are:

* New tabbed user interface. Tab headers now occupy several rows and
tab bar can be docked to the left and right sides of chat window
* Roster filter
* Added support for pixmaps (in particular emoticons) JISP archives (XEP-0038)
* Added support for SOCKS4a and SOCKS5 proxy for the main connection
* Added user location support (XEP-0080)
* Added user mood support (XEP-0107)
* Added user activity support (XEP-0108)
* Added user tune support (XEP-0118)
* Added entity capabilities (XEP-0115 v.1.5, only reporting) support
* Added basic robot challenges support (XEP-0158)
* Roster is now exported to XML instead of Tcl list
* Added support for entity time (XEP-0202)
* Tkabber version is now reported in disco#info (XEP-0232)
* Moved deprecated Jabber Browser (XEP-0011) to an external plugin
* Moved Jidlink file transfer to an external plugin
* Added several new plugins: attline, ctcomp, custom-urls,
floatinglog, gmail, openurl, presencecmd, receipts
* Many fixes and enhancements

To download Tkabber visit http://tkabber.jabber.ru/download

-- 
Sergei Golovan
___
JDev mailing list
FAQ: http://www.jabber.org/discussion-lists/jdev-faq
Forum: http://www.jabberforum.org/forumdisplay.php?f=20
Info: http://mail.jabber.org/mailman/listinfo/jdev
Unsubscribe: [EMAIL PROTECTED]
___


Re: [jdev] Reproducability of XEP-0115: Entity Capabilities - 5.3 Complex Generation Example

2008-04-22 Thread Sergei Golovan
On 4/22/08, Stephan Maka [EMAIL PROTECTED] wrote:
 Yann Leboulanger [EMAIL PROTECTED] wrote:
Why do http://jabber.org/protocol/caps  and
http://jabber.org/protocol/muc  include a trailing white-space,
opposed to their representation in the Service Discovery result?
   I don't see any space, but I don't see where in the disco resutl there

I guess spaces are added to allow line breaking. Hash is computed for
the string without spaces.



 Look again. I can't even reproduce with the SHA-1 method given in
  XEP-0115:


Remove http://jabber.org/protocol/caps from a hashed string and
you'll get the desired hash value.


 Because it is required. Perhaps this is a bug in the XEP?


It looks like a bug in XEP.

-- 
Sergei Golovan


[jdev] Retrieving items list for a pubsub nide

2008-03-12 Thread Sergei Golovan
Hi!

Looking at section 5.5 of XEP-0060
(http://www.xmpp.org/extensions/xep-0060.html#entity-discoveritems) I
see that disco#items query is used for retrieving published items
list.

However, published items are very different from disco#items. If a
naive client attempts to interpret published item as an ordinary disco
item it will succeed but the result will be quite strange.

Example:

iq id='21' to='[EMAIL PROTECTED]' type='get' xml:lang='en'
  query xmlns='http://jabber.org/protocol/disco#items'
node='http://jabber.org/protocol/mood'/
/iq

iq from='[EMAIL PROTECTED]' id='21' type='result' to='[EMAIL 
PROTECTED]/resource'
  query node='http://jabber.org/protocol/mood'
xmlns='http://jabber.org/protocol/disco#items'
item name='mood1' jid='[EMAIL PROTECTED]'/
item name='mood2' jid='[EMAIL PROTECTED]'/
  /query
/iq

A client will interpret the answer as if JID [EMAIL PROTECTED] have a natural
name (as in XEP-0030) mood1 or mood2.

To be able to process items list correctly two conditions must be met:
1) A client must support pubsub.
2) A client must know that a discovered node is a pubsub leaf node
(so, it must perform a preliminary disco#info query) and its
interpretation of disco#items query must depend on the context (which
makes client development more complicated).

Is there any valid reason why disco#items query is used for requesting
published items (except that both are items)? Maybe it would be better
to switch to some more appropriate custom protocol?

Cheers!
-- 
Sergei Golovan


Re: [jdev] Authentication Process For Jabber.com

2008-03-10 Thread Sergei Golovan
On 3/10/08, Justin Karneges [EMAIL PROTECTED] wrote:
 On Sunday 09 March 2008 5:49 pm, Peter Saint-Andre wrote:
  
   Correct. The spec currently does not say that the server must enforce
   that rule. But naturally the recipient (or the sender's or recipient's
   server) could return a stanza error on receiving it. A not-acceptable/
   error seems appropriate:
  
   message type='error'
 error type='modify
   not-acceptable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/
 /error
 gajim:die/
   /message


 Hmm, you should probably not send the original XML back in this case, since it
  is invalid.

The XML here isn't invalid, but so-called namespace-non-well-formed.
And it indeed breaks XML parsers, which take into account XMLNS
prefixes (which they MAY do according to clarified RFC-3290-bis).


  Further, since some XML parsers throw error when an unrecognized prefix is
  encountered, those clients/servers would most likely respond not with a
  stanza error, but with an xml-not-well-formed *stream* error and close the
  connection.

  I think we have to be very careful about how this stuff is routed.  Obviously
  clients shouldn't be generating invalid XML, but servers shouldn't be routing
  it either.  A good server would disconnect whoever sent gajim:die rather than
  routing it and DoS'ing other clients.

I would like to see (probably in a separate section) rules for closing
streams like the following:

1) If an entity sends non-well-formed XML as defined in
http://www.w3.org/TR/2006/REC-xml-20060816 then the receiving entity
MUST close the stream and return xml-not-well-formed error.

2) If an entity sends namespace-non-well-formed XML as defined in
http://www.w3.org/TR/REC-xml-names then the receiving entity MUST
close the stream and return xml-not-well-formed error (or may be it's
better to introduce a separate error for this case).

3) IF an entity defines XMLNS prefix in a stream header and use it in
a stanza (which means that the stanza isn't routable as is) then the
receiving entity MAY close the stream and return xml-non-well-formed
error, but SHOULD move namespace definition to a stanza level (or
convert namespace prefix into xmlns attribute) and process the stanza.

(The third rule is arguable though.) These rules ensure
namespace-well-formedness of XMPP streams, and no custom XML parsers
will be necessary to parse XMPP streams. Currently, general XML
parsers either ignore namespace prefixes at all (which means that
clients using them will loose some data) or break on unbound prefixes
(which means disconnections on gajim:die/).

-- 
Sergei Golovan


Re: [jdev] Authentication Process For Jabber.com

2008-03-09 Thread Sergei Golovan
On 3/9/08, Peter Saint-Andre [EMAIL PROTECTED] wrote:

  Therefore, this is wrong:


  stream:stream
 xmlns:stream='http://etherx.jabber.org/streams'
   messagegajim:die//message
  /stream

It means that it's wrong to send this stanza. But it doesn't mean that
it's wrong to accept this stanza.

-- 
Sergei Golovan


Re: [jdev] Authentication Process For Jabber.com

2008-02-29 Thread Sergei Golovan
On 2/28/08, Fabio Forno [EMAIL PROTECTED] wrote:
 On Thu, Feb 28, 2008 at 7:56 AM, Sergei Golovan [EMAIL PROTECTED] wrote:
  
It could be true if XMPP were defined as a XML subset in a consistent
way (currently, XMPP doesn't require stream to be
namesapce-well-formed, but allows to use XMLNS namespaces).


 Not true: http://www.xmpp.org/rfcs/rfc3920.html  paragraph 4.5

In paragraph 11.3 you could see that the only property which server
must validate is XML well-formedness. So, it is perfectly acceptable
for XMPP stream not to be namespace-well-formed as defined in
http://www.w3.org/TR/1999/REC-xml-names-19990114/

-- 
Sergei Golovan


Re: [jdev] Authentication Process For Jabber.com

2008-02-29 Thread Sergei Golovan
On 2/29/08, Norman Rasmussen [EMAIL PROTECTED] wrote:
 The point is that:

 stream:stream
 xmlns:stream='http://etherx.jabber.org/streams'
 messagegajim:die//message
 /stream

 contains an unbound prefix 'gajim', so MUST be rejected by all XMPP
 parsers..  If you want to send xml that looks similar to that, you need to
 transmit one of the following:

Just find any rule in RFC 3290 which forbids this stanza with unbound
prefix and I'll immediately file a bugreport to ejabberd.

-- 
Sergei Golovan


Re: [jdev] Authentication Process For Jabber.com

2008-02-29 Thread Sergei Golovan
On 2/29/08, Norman Rasmussen [EMAIL PROTECTED] wrote:
 RFC 3920: 11.2, says xml-names is to be used,

Does this mean XMPP stream MUST conform [XML‑NAMES]? I don't see that
strong statement.


 So please go and log a bug against ejabberd.

If I were an ejabberd developer I'd reject this bugreport as invalid.

-- 
Sergei Golovan


Re: [jdev] Authentication Process For Jabber.com

2008-02-27 Thread Sergei Golovan
On 2/28/08, Tomasz Sterna [EMAIL PROTECTED] wrote:

 Implementing a correct XML parser is very tedious and error prone job.
  It's always better to use one of the publicly available and well
  established parsers.
  Other way you'll end up redoing the hard work the implementers of these
  parsers did already. ;-)

It could be true if XMPP were defined as a XML subset in a consistent
way (currently, XMPP doesn't require stream to be
namesapce-well-formed, but allows to use XMLNS namespaces). But for
now we got two famous examples:

1) Gajim uses XMLNS prefixes and expects them to be defined. So, it
disconnects on receiving messagegajim:die//message.

2) Ejabberd doesn't respect XMLNS prefixes, so it doesn't understand
query like the following: iq
xmlns:v='jabber:iq:version'v:query/iq (but routes them happily).

And the interesting problem is that generic XML parsers (expat for
example) implement either namespace-well-formed document (with bound
XMLNS prefixes, Gajim case) parsers or simpy ignore namespace prefixes
(ejabberd case).

This means that impementing XMPP software one have to either implement
an XML parser or end up with either sometimes dying or somewhat
incompatible software.

It would be much better and easier to work with, if XMPP required XML
streams to be namespace-well-formed.

-- 
Sergei Golovan


Re: [jdev] Connectivity issues with gmail.com and googlemail.com

2007-09-28 Thread Sergei Golovan
On 9/28/07, George Hazan [EMAIL PROTECTED] wrote:

 http://www.ejabberd.im/fix-dns-srv solved my problem. Thanks to badlop :)

It's not my case. My server connects to gmail.com and is able to send
messages (users at gmail.com receive them). Their messages can't reach
me.

-- 
Sergei Golovan


[jdev] Connectivity issues with gmail.com and googlemail.com

2007-09-19 Thread Sergei Golovan
Hi!

Last few weeks I'm experiencing a loss of connectivity with gmail.com
and googlemail.com. It's interesting that my messages (from nes.ru to
gmail.com) rich recipients just fine, but messages from gmail.com
can't be delivered (users get error messages).

After switching off STARTTLS over S2S (which hides the problem) I got
the following ejabberd log (it's a typical scenario):

1) Google server connects to nes.ru:

=INFO REPORT 2007-09-19 20:35:31 ===
I(0.241.0:ejabberd_listener:90): (#Port0.6781) Accepted connection
{{72,14,252,129},30195} - {{212,119,199,80},5269}

(Note #Port0.6781. It's an Erlang port, which processes the TCP connection.)

2) ejabberd opens an incoming S2S stream:

=INFO REPORT 2007-09-19 20:35:31 ===
I(0.5062.0:ejabberd_s2s_in:105): started: {gen_tcp,#Port0.6781}

Now the stream is controlled by Erlang process 0.5062.0.

3) gmail.com sends a key

=INFO REPORT 2007-09-19 20:35:32 ===
I(0.5062.0:ejabberd_s2s_in:317): GET KEY: {nes.ru,
 gmail.com,
 [],

CAESBxC07cjz0SIaEEWGpREmNkivSJRYciOVI70=}

Note port number 0.5062.0.

4) nes.ru opens outgoing S2S stream to verify the key (it's irrelevant here)

5) googlemail.com sends a key over the same TCP connection (!):

=INFO REPORT 2007-09-19 20:35:32 ===
I(0.5062.0:ejabberd_s2s_in:317): GET KEY: {nes.ru,
 googlemail.com,
 [],

CAESBxC17cjz0SIaEBnkylXoIZMlEI4Y4qYXHDQ=}

The port is the same 0.5062.0. After that the connection is stalled.
ejabberd never receives anything in this stream.

For me it looks like a severe bug in Google Talk server.

Did someone experienced similar problems with gmail.com and
googlemail.com? May be Google Talk admins read this list and can help?

Cheers!
-- 
Sergei Golovan


Re: [jdev] Connectivity issues with gmail.com and googlemail.com

2007-09-19 Thread Sergei Golovan
On 9/19/07, Philipp Hancke [EMAIL PROTECTED] wrote:
 Hi Sergei,

  5) googlemail.com sends a key over the same TCP connection (!):

 That's called piggybacking.

Then things become more complicated, and I don't know where the bug is.

Ejabberd verifies both keys, sends dialback answers, and after 10
minutes of silence closes the socket.

-- 
Sergei Golovan


Re: [jdev] Connectivity issues with gmail.com and googlemail.com

2007-09-19 Thread Sergei Golovan
On 9/19/07, Sergei Golovan [EMAIL PROTECTED] wrote:
 On 9/19/07, Philipp Hancke [EMAIL PROTECTED] wrote:
  Hi Sergei,
 
   5) googlemail.com sends a key over the same TCP connection (!):
 
  That's called piggybacking.

 Then things become more complicated, and I don't know where the bug is.

 Ejabberd verifies both keys, sends dialback answers, and after 10
 minutes of silence closes the socket.

Moreover, when I removed the only contact with JID [EMAIL PROTECTED]
the situation remains the same. gmail.com opens the stream, and after
the dialback is verified no more data comes through the socket. After
ten minutes the socket is closed.

It's very strange given that other ejabberd deployment don't have
problems with Google Talk S2S.

Cheers!
-- 
Sergei Golovan


Re: [jdev] File Transfer Interoperability

2007-08-08 Thread Sergei Golovan
On 8/8/07, Justin Karneges [EMAIL PROTECTED] wrote:
 I wouldn't put this at the IBB level.  A negotiation timeout will work well
 enough there.

 The problem you speak of, which does indeed happen a lot, has more to do with
 the SI exchange.  If someone offers a file, and you take too long to accept,
 they may cancel the file offer and you'll never know.  This will happen
 regardless of whether you use S5B or IBB or anything.

Any other file transfer method requires opening a socket by the
receiving party. If the socket can't be opened then the stream is
obviously invalid. IBB lacks this part, and I think it would be good
to add it. It would make a file transfer working essentially the same
regardless of the SI method used.

-- 
Sergei Golovan


Re: [jdev] File Transfer Interoperability

2007-08-08 Thread Sergei Golovan
On 8/8/07, Justin Karneges [EMAIL PROTECTED] wrote:
 In Psi we solved this by adding a timeout to the accept phase.  The sender
 must begin the S5B negotiation within 30 seconds of the receiver

Using timeouts is a common way to workaround poorly designed
protocols. But isn't it better to fix protocol itself? In case of IBB
adding new XEP (almost) doesn't cause any harm.

 pressing Accept.  If the timeout expires, a dialog is presented to the
 receiver that says something along the lines of the sender probably
 cancelled.

-- 
Sergei Golovan


Re: [jdev] File Transfer Interoperability

2007-08-08 Thread Sergei Golovan
On 8/8/07, Justin Karneges [EMAIL PROTECTED] wrote:

 If the sender offers a file and then cancels it before the receiver accepts,
 then S5B hasn't even started yet.  In other words, the sender hasn't sent the
 iq-set for the S5B open.  Therefore, there are no sockets to time out, and
 the receiver will wait forever.  Just like with IBB, just like with anything.
 It's an SI issue.

You're right. It's a file transfer request which takes a long time to
answer, and not an IBB one.


 If the sender cancels the file transfer immediately after the receiver
 accepts, then there is a chance that the sender may have started an IBB or
 S5B negotiation.  This is much less common than the SI problem, and I think a
 timeout in IBB here would be enough to solve this situation of bad luck.

Well, it would be better to clarify at least the most frequent stream
breaks. As for now, there's no way to break file transfer gracefully
(with error messgae which is shown to the peer).


 FWIW, S5B also doesn't specify any timeouts.  If the receiver goes offline
 instead of replying with an iq, then the sender will wait forever (and this

At least you'll notice that the receiver goes offline (not always
though). And in case of sender I think that it's impossible to find a
proper timeout. There always will be users complaining that they
replied too late.

 is the case today with Psi).  As you can see, endlessly waiting is not a
 feature of just IBB.  We generally don't specify timeouts in XEPs.  For

Tkabber now uses timeout only when waiting for ping request. But
probably it would be better to add some to file transfer part.

 example, how long should you wait for a vcard request to be answered?

Hm. Is it important? You show a notebook (or any other GUI, or nothing
if it's a text client) and some progressbar and fill in the fields on
answer comes. I don't think that vcard requires timeout at all.

-- 
Sergei Golovan


Re: [jdev] File Transfer Interoperability

2007-08-07 Thread Sergei Golovan
On 8/8/07, Peter Saint-Andre [EMAIL PROTECTED] wrote:

 3. IBB (XEP-0047) is a great fallback if all else fails.

IBB couldn't be a great fallback. It's very inconvenient to use in the
fillowing circumstances (which don't so rarely happen):

1) JID A offers file to JID B and waits for the answer (note that to
answer, B must return an IQ result, and the time interval might be
quite long).

2) JID A decides to abort file transfer and closes the
file-transfer-window-or-whatever-GUI-she-has.

3) JID B replies with IQ result, but
a) File transfer doesn't start (A aborted it)
b) JID B will NEVER know about A aborted file transfer and
will stuck with file-receiving-GUI forever since there's no mechanism
to recognize this unwilling to transfer.

Wouldn't it better to add an extra query from B to A after stream
negotiation part? If A doesn't want to send file anymore, she will
return error to B.

Another possibility is to let JID B to ask any next file chunk
(instead of pushing file in IQ set query, B sends IQ get query and
receives a chunk in IQ result).

Cheers!
-- 
Sergei Golovan


Re: [jdev] XEP-0115: Entity Capabilities

2007-06-27 Thread Sergei Golovan

On 6/27/07, Joe Hildebrand [EMAIL PROTECTED] wrote:


On Jun 27, 2007, at 5:53 AM, Sergei Golovan wrote:

 I would consider this XEP dangerous and wouldn't like to implement it
 in Tkabber. It's too easy for malicious user to flood all contacts
 (and not only in his roster) by false information about all clients
 and versions he wants.

 I think that one never should apply info received from some user to
 other users.

Please bring this up on the standards list if you want to talk about
it again, but this point has been beaten to death, I think.


And the only result of these discussions is a really small note in
'Security consideration' section. Which really does cover a small
portion of possible security concerns. I could imagine for example an
attack on future software versions (where the victim can't check the
correctness of capabilities because there's no other sources of
information).



You can always just query each user independently if you like; you


I think that the XEP must not recommend to cache capabilities based
only on reported software name and version. The more acceptable index
is a tuple {jid, client name, client version}.


only need to check it against the cache to look for disagreement, not
cache each one separately.


See the idea of an attack above.

--
Sergei Golovan


[jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

Hi!

Could someone clarify how to escape the following JID (and to split it
into node, server and resource)?

[EMAIL PROTECTED]/[EMAIL PROTECTED]/resource

I could do it in two ways:

1) user
   jabber.org
[EMAIL PROTECTED]/resource

2) user\40jabber.org\27user
   jabber.org
  resource

XEP-0106 doesn't give an exact way of escaping such a JID. And if 1)
or 2) is preferrable then there's no way (or it's not easy) to send a
message to another JID.

Best wishes!
--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Tomasz Sterna [EMAIL PROTECTED] wrote:

Dnia 27-06-2007, śro o godzinie 12:53 +0400, Sergei Golovan napisał(a):
 Could someone clarify how to escape the following JID (and to split it
 into node, server and resource)?

 [EMAIL PROTECTED]/[EMAIL PROTECTED]/resource

This is not a JID.
(in other words: this is invalid JID)

There is no way of telling which part is a node, domain, resource.
You need to escape it FIRST (using XEP-0106) to be a valid JID before
trying to parse/split it.


You're right. And the question is: How to escape it? Can escaping be
done unambiguously?

The problem is that if I get alredy escaped JID
[EMAIL PROTECTED]/resource then I can unescape it
and show to a user as [EMAIL PROTECTED]/[EMAIL PROTECTED]/resource.

But what to do if a user enters such a JID into a client entry box and
wants to send a message to it?

Best wishes!
--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Norman Rasmussen [EMAIL PROTECTED] wrote:

On 6/27/07, Sergei Golovan [EMAIL PROTECTED] wrote:
 You're right. And the question is: How to escape it? Can escaping be
 done unambiguously?

Yes, but only if you already know the split.


So, a full unsecaped JID (with resource) can't be split unambiguously.
Then I'm afraid we should do something with the XEP.



 The problem is that if I get alredy escaped JID
 [EMAIL PROTECTED]/resource then I can
unescape it
 and show to a user as
[EMAIL PROTECTED]/[EMAIL PROTECTED]/resource.

 But what to do if a user enters such a JID into a client entry box and
 wants to send a message to it?

You have to provider two entry boxes, or require the the user enter a
pre-escaped jid, and reject the ambiguous jid.


There is another problem here. If the user receives message from
[EMAIL PROTECTED]/resource I can't unescape JID
because he will not know if the message came from [EMAIL PROTECTED]
Using two entry boxes is not good IMHO. It breaks the idea of JID -
the only user identifier in XMPP world.

--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Matthias Wimmer [EMAIL PROTECTED] wrote:

Matthias Wimmer schrieb:
 The resource is allowed to contain '@' as well as '/'. Everything behind
 the first '/' character in a JID is the resource.

... but this has nothing to do with XEP-0106 BTW.

XEP-0106 is about mapping non-JID addresses in a JID. e.g. if you have a
E-Mail address, that cannot map directly in a JID you will use XEP-0106.


As far as I understand, XEP-0106 is also about visual representation
of JID. And I think that if two different JIDs have one visual
representation then it's bad.

--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Tomasz Sterna [EMAIL PROTECTED] wrote:

Dnia 27-06-2007, śro o godzinie 15:03 +0400, Sergei Golovan napisał(a):
 You're right. And the question is: How to escape it? Can escaping be
 done unambiguously?

Yes. You have a node, domain and resource which you need to escape
before concatenating them into JID.


I didn't see any XMPP client, which requires to enter node and server
separately in send message dialogs (I did see clients which asks for
chatroom names).




 The problem is that if I get alredy escaped JID
 [EMAIL PROTECTED]/resource then I can unescape it
 and show to a user as [EMAIL PROTECTED]/[EMAIL PROTECTED]/resource.

Well... You shouldn't show such a monstrosity to a user.
Use the JID parts wisely. Show username, domain eventually resource.


In general, I can show unescaped JID. But what's the idea of XEP-0106 then?




 But what to do if a user enters such a JID into a client entry box and
 wants to send a message to it?

It's an invalid entry and you should return an error to the user.
You've asked for a JID and the text entered isn't a valid JID.
There is no way of telling which part is what without some external
information.


Unfortunately, it means that to be able to send message to such a
strange JID the user has to khow how to escape it. Should users read
XEPs? :)

--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Matthias Wimmer [EMAIL PROTECTED] wrote:

Hi Sergei!

Ah okay ... it seems I start understanding what you are trying to do.
You want to map a JID (or something like that) into another JID, e.g.
for building the infamous Jabber-Jabber transport.


Not exactly. I want to implement XEP-0106 in Tkabber and the idea was
to show only unescaped JIDs to a user. But since different escaped
(real) JIDs map to one escaped JID then it's impossible (user should
definitely know who sent the message).

My current yhought is the following: to show unescaped JID if and only
if it can be escaped unambiguously.

But this approach isn't good too (appending different resources we may
break unescaping of any bare JID).

So, probably I will not unescape / and @ in nodes. It should solve ambuguity.

Or may be hiding real (escaped) JIDs from the user is a bad idea at all?

Best wishes!
--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Matthias Wimmer [EMAIL PROTECTED] wrote:

HI Sergei!

Sergei Golovan schrieb:
 Or may be hiding real (escaped) JIDs from the user is a bad idea at all?

In fields where a general JID is expected, I'd say you should display
the full (escaped) JID. - As only this one is a JID.

The whole fuzz about escaping is just to make something a JID, that
wouldn't be one else. So if you need a JID you will always display the
result of the escaping.

IMO you only do unescaping, if you want to display something that is not
a JID but the original address. And you should only do this on places
where the user is aware about the fact, that he does not see a JID, but
an other address.


I see. Table 3 in section 5.1 confused me a bit (especially column
User Input). So, if I want to show unescaped JID it's better to show
only a node (if it's appropriate). It seems to be too complicated.
Thanks anyway.

--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Mridul Muralidharan [EMAIL PROTECTED] wrote:


It is not about visual representation.
xep 106 is about encoding pieces of the jid such that they are compliant
with xmpp requirements in a standard way.


Then I would like to ask who should escape JIDs and when? I don't
think that users will read XEP and escape desired characters.

One possible question is: user's client during registration process.
And user will be surprised looking at his new brand escaped JID.

--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Mridul Muralidharan [EMAIL PROTECTED] wrote:

Why would you want to unescape it ?
The identifier of the contact is user\40jabber.org\2fuser in xmpp world.
The node by itself conveys no meaning other than when associated with
the full jid.


Citing XEP-0106:  Typically, unescaping is performed only by a client
that wants to display JIDs containing escaped characters to a human
user, or by a gateway to some external system (e.g., email or LDAP)
that needs to generate identifiers for foreign systems.

The second purpose is clear, but the first (display to a human user)
is not so clear for me now.

--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Matthias Wimmer [EMAIL PROTECTED] wrote:

The same way XEP-0106 is not about allowing nice new characters and
displaying them animated in high color and blinking. It is just for the
case a character has to be transported and cannot be used directly. Any
use of escaping should be avoided when possible, you only do it if you
have to.


I would say that the introduction of the XEP clearly says that it IS
about allowing nice new characters.

--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Michal 'vorner' Vaner [EMAIL PROTECTED] wrote:

Hello

On Wed, Jun 27, 2007 at 01:11:03PM +0200, Norman Rasmussen wrote:
  On 6/27/07, Sergei Golovan [EMAIL PROTECTED] wrote:
 
  You're right. And the question is: How to escape it? Can escaping be
  done unambiguously?


  Yes, but only if you already know the split.

Is there a way the server part could contain @? I hope a domain name
can't contain it. I would take the last @ as the actual separator and
leave all the before as just part of the node (same as with email, where
you can have address like @@host.com, where the local name on host is
really @).


The last @ may be in a resource part.



Do you think there may be a problem with this approach?


Valig JIDs are always split into three parts unambiguously. As far as
I thought, XEP-0106 purpose is to allow invalid JIDs to be shown to a
user (hiding real complicated escaped JID). But it seems to fail in
this. So, let this XEP serve another goal - interoperability between
XMPP network and the others.

--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Matthias Wimmer [EMAIL PROTECTED] wrote:

Sergei Golovan schrieb:
 I would say that the introduction of the XEP clearly says that it IS
 about allowing nice new characters.

I don't read it that way. I read it:


And how should one read:

The escaped JID is unescaped only for presentation to a human user
(typically by an XMPP client)?

Probably the XEP needs some clarification. I think that your
interpretation is more reasonable than in the XEP text.

--
Sergei Golovan


Re: [jdev] Escaping JID using XEP-0106

2007-06-27 Thread Sergei Golovan

On 6/27/07, Matthias Wimmer [EMAIL PROTECTED] wrote:

Hi Sergei!

Sergei Golovan schrieb:
 And how should one read:

 The escaped JID is unescaped only for presentation to a human user
 (typically by an XMPP client)?

As I explained in one of my last e-mails: someone might want to
implement a Jabber client that has an interface like Pidgin but that
does only XMPP serverside.


In this case the client don't want to have unescaped full JID. It only
needs unescaped node. The XEP is perfectly suitable for this. But it
is full of examples of unescaped full JIDs (in fact bare JIDs). It is
confusing.

--
Sergei Golovan


Re: [jdev] XEP-0115: Entity Capabilities

2007-06-26 Thread Sergei Golovan

On 6/23/07, Sylvain Hellegouarch [EMAIL PROTECTED] wrote:

Kevin Smith a écrit :
 On 23 Jun 2007, at 04:14, Andreas Monitzer wrote:
 Is this XEP not really expected to be implemented by anybody? If so,
 why do all clients announce c
 xmlns='http://jabber.org/protocol/caps'/ in their presence stanzas?

 Caps is implemented by some clients (Psi and probably many others),
 and I believe Gajim is getting support as part of GSoC this year.

Moreover if you are running under Linux then you can try Kopete that
supports it already. I wonder if tkabber doesn't as well.


I would consider this XEP dangerous and wouldn't like to implement it
in Tkabber. It's too easy for malicious user to flood all contacts
(and not only in his roster) by false information about all clients
and versions he wants.

I think that one never should apply info received from some user to other users.

Best wishes!
--
Sergei Golovan


[jdev] Tkabber 0.10.0 is released

2007-04-12 Thread Sergei Golovan

Hi!

I'm pleased to announce a new stable release of Tkabber and Tkabber
plugins (0.10.0).

Some new features with respect to 0.9.9 are:

 *  New artwork by Artem Bannikov
 *  Mediated SOCKS5 connection support for file transfer (XEP-0065)
 *  Blocking communication with users not in roster (using XEP-0016
via simple interface)
 *  Translatable outgoing error messages support (based on
recipient's xml:lang)
 *  Remote controlling clients support (XEP-0146)
 *  Extended stanza addressing support (XEP-0033)
 *  New chats history tool with search over the all chatlog files
 *  Roster item icons are chosen based on Disco queries to item server
 *  Search in Disco, Browser, Headlines, RawXML, and Customize windows
 *  New internal plugins: abbrev allows to abbreviate words in chat
input windows, postpone stores/restores current input window content
 *  New external plugins (aniemoticons, latex, tkabber-khim, traffic, renju)
 *  Emoticons theme now can be loaded using GUI
 *  Most Tkabber's tabs can now be stored on exit and restored on start
 *  XMPP ping support (XEP-0199). Reconnecting based on XMPP ping replies
 *  Delayed delivery now recognizes XEP-0203 timestamps
 *  Added optional 'My Resources' roster group, which contains other
connected resources of the same JID
 *  Many other fixes and enhancements

The new release is available at
http://files.jabber.ru/tkabber/tkabber-0.10.0.tar.gz and
http://files.jabber.ru/tkabber/tkabber-plugins-0.10.0.tar.gz

More info and download options are at http://tkabber.jabber.ru/download

--
Sergei Golovan


Re: [jdev] XMPP Ping/Keepalive: Recommended method ?

2006-06-19 Thread Sergei Golovan

On 6/19/06, Michal vorner Vaner [EMAIL PROTECTED] wrote:

On Sun, Jun 18, 2006 at 10:47:19PM -0700, [EMAIL PROTECTED] wrote:
Given that the protocol itself does not seem to have a defined keep-alive
element, what is the recommended way for a client to keep its connection
alive to a XMPP server ?

Since XML allows any number of whitespace between elements that is just
ignored, you can send a whitespace if you are not in the middle of
stanza. It will do, NATs and other beasts will see data flowing,


The problem is that this ping is not a ping at all because it only
sends data and does not expect reply.

So, some NATs and proxies still break connection if they don't see
bidirectional flow.

Another issue is that with this ping you can't control the
connection. If TCP connection breaks (but before TCP timeout reaches -
and it is a quite long timeout) both messages and pings goes to
black hole and there's no way to work around this (to set some short
internal timeout or whatever).

--
Sergei Golovan


Re: [jdev] XMPP Ping/Keepalive: Recommended method ?

2006-06-19 Thread Sergei Golovan

On 6/19/06, Dave Cridland [EMAIL PROTECTED] wrote:

On Mon Jun 19 08:15:40 2006, Sergei Golovan wrote:
 So, some NATs and proxies still break connection if they don't see
 bidirectional flow.

Could you tell me which NATs do this? I'm unaware of any that handle
timeouts differently for unidirectional data flows.


I've never seen that but once there was a feature request for Tkabber.
Some gateway (probably on MS Windows)  dropped connection if there
weren't outgoing packets for some time.



 Another issue is that with this ping you can't control the
 connection. If TCP connection breaks (but before TCP timeout
 reaches -
 and it is a quite long timeout)

As far as I'm aware, there *is* no timeout on silent TCP connections.


I'm talking about the situation when I keep sending packets, but the
other side doesn't receive them.

--
Sergei Golovan


[jdev] Jabberd 1.4 bugzilla?

2005-08-06 Thread Sergei Golovan
Hi all!

Is there a bugzilla or some other place for reporting bugs or requesting new
features for jabberd-1.4?

-- 
Sergei Golovan
___
jdev mailing list
jdev@jabber.org
http://mail.jabber.org/mailman/listinfo/jdev


Re: [jdev] Client-side disco and MUC

2005-07-06 Thread Sergei Golovan
On Wed, Jul 06, 2005 at 03:38:43PM +1000, Steve Smith wrote:
 Hi,
 
 If a client implements disco responses is it required that it return a
 http://jabber.org/protocol/muc feature?

Look at http://www.jabber.org/jeps/jep-0045.html#discovery-client

-- 
Sergei Golovan
___
jdev mailing list
jdev@jabber.org
http://mail.jabber.org/mailman/listinfo/jdev


Re: [jdev] Clients that support JEP-0013

2005-04-13 Thread Sergei Golovan
On Wed, Apr 13, 2005 at 04:19:41PM +0200, Matthias Wimmer wrote:
 Hi Sergei!
 
 
 I don't think I want to implement alternate syntaxes for existing JEPs.
 If it would add features not present in JEPs okay ... but a client just
 using other commands because it does not like the syntax of a JEP - I
 don't think this is a good idea.

I've just warned you about current Tkabber implementation in case if you want
to use it for debugging jabberd. It's not a good idea because Tkabber doesn't
implement JEP-0013 (as someone mentioned earlier in the list).

 If you have concerns with a JEP - especially with one that is not final
 yet - you should discuss them on the standards-jig.

I don't want to discuss this JEP but I wonder how can any JEP be promoted to
draft without any reference implementation? As for me it's nonsense.

-- 
Sergei Golovan
___
jdev mailing list
jdev@jabber.org
http://mail.jabber.org/mailman/listinfo/jdev


Re: [jdev] Clients that support JEP-0013

2005-04-12 Thread Sergei Golovan
On Tue, Apr 12, 2005 at 04:03:14PM +0200, Matthias Wimmer wrote:
 Hi!
 
 Are there any clients that support JEP-0013 (Flexible Offline Message
 Retrieval)? I have implemented this for jabberd 1.4.5 and would then
 test it against existing implementations.

Tkabber has support, but not exactly of JEP-0013. It uses the following query
for requesting offline message headers:

iq type='get'
  offline xmlns='http://jabber.org/protocol/offline'/
/iq

instead of disco#items query.

The reason is that it's not reasonable to use usual disco query as a
state-switching query (server not only replies to the query but also changes
its behavior - doesn't send offline messages).

Best wishes!
-- 
Sergei Golovan
___
jdev mailing list
jdev@jabber.org
http://mail.jabber.org/mailman/listinfo/jdev


Re: [jdev] Clients that support JEP-0013

2005-04-12 Thread Sergei Golovan
On Tue, Apr 12, 2005 at 06:54:24PM +0400, Sergei Golovan wrote:
 On Tue, Apr 12, 2005 at 04:03:14PM +0200, Matthias Wimmer wrote:
  Hi!
  
  Are there any clients that support JEP-0013 (Flexible Offline Message
  Retrieval)? I have implemented this for jabberd 1.4.5 and would then
  test it against existing implementations.
 
 Tkabber has support, but not exactly of JEP-0013. It uses the following query
 for requesting offline message headers:
 
 iq type='get'
   offline xmlns='http://jabber.org/protocol/offline'/
 /iq

I forgot to mention that since there is no reason to use only jid, node and
name attributes (query isn't a disco#items query) Tkabber expects the
following answer:

iq type='result' to='[EMAIL PROTECTED]/orchard'
  offline xmlns='http://jabber.org/protocol/offline'
item 
node='2003-02-27T22:49:17.008Z'
from='[EMAIL PROTECTED]/pda'
category='presence'
type='subscribe'/
item 
node='2003-02-27T22:52:37.225Z'
name='[EMAIL PROTECTED]/balcony'
category='message'
type='chat'/
item 
node='2003-02-27T22:52:51.270Z'
name='[EMAIL PROTECTED]/balcony'
category='message'
type='headline'/
item 
node='2003-02-27T22:53:03.421Z'
name='[EMAIL PROTECTED]/balcony'
category='message'
type='normal'/
item 
node='2003-02-27T22:53:13.925Z'
name='[EMAIL PROTECTED]/balcony'
category='message'/
  /query
/iq

Best wishes!
-- 
Sergei Golovan
___
jdev mailing list
jdev@jabber.org
http://mail.jabber.org/mailman/listinfo/jdev


Re: [jdev] Jabberd2 for Windows?

2005-03-02 Thread Sergei Golovan
On Thu, Mar 03, 2005 at 08:15:13AM +1100, Trejkaz wrote:
 On Wednesday 02 March 2005 11:04, [EMAIL PROTECTED] wrote:
  better use ejabberd
 
 Using ejabberd wouldn't really help the OP test code against jabberd2, would 
 it now?  Unless ejabberd is based on jabberd2 now...

As far as I understood, the point was to test client against modern (XMPP?)
protocol features. In this case testing against ejabberd is as good as against
jabberd2. On the other case installing ejabberd in Windows is much easier than
jabberd2.

-- 
Sergei Golovan
___
jdev mailing list
jdev@jabber.org
http://mail.jabber.org/mailman/listinfo/jdev


[jdev] Re: [jabber-users] tkabber crashes

2004-10-24 Thread Sergei Golovan
On Sun, Oct 24, 2004 at 12:58:24PM +0400, Oleg V. Motienko wrote:
 Hello!
 
 Tkabber crashes on viewing vcard with photo.
 
 --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
 X Error of failed request:  BadLength (poly request too large or 
 internal Xlib length error)
  Major opcode of failed request:  92 (X_LookupColor)
  Serial number of failed request:  49072
  Current serial number in output stream:  49072
 --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
 
 Any ideas ?

  Tk.  ,Img,  
 .

http://sourceforge.net/projects/tkimg/

-- 
Sergei Golovan
___
jdev mailing list
[EMAIL PROTECTED]
http://mail.jabber.org/mailman/listinfo/jdev


Re: [jdev] newer version of vcard

2004-10-21 Thread Sergei Golovan
On Thu, Oct 21, 2004 at 07:59:48AM +1000, Trejkaz Xaoza wrote:
 On Thu, 21 Oct 2004 02:11, Sergei Golovan wrote:
  On Wed, Oct 20, 2004 at 09:25:12AM +0100, Richard Dobson wrote:
   You should be able to work out the age from the date of birth shouldnt
   you?
 
  Many clients (Psi, Gaim etc.) treat birthday field as a text field. So it's
  not easy to parse the date, entered by user.
 
 Is that not then a bug in the client, for failing to validate that the string 
 which was entered is valid according to the JEP?  Hardly a good reason for 
 adding a redundant element to the vCard.  (Who stops someone entering 
 anything they want in this new age field, anyway?)

Yes, my point is that this is the bug (or probably misfeature) in clients.
But the problem is that the bug is present in very popular clients. But anyway
adding age field is not a good idea.

-- 
Sergei Golovan
___
jdev mailing list
[EMAIL PROTECTED]
http://mail.jabber.org/mailman/listinfo/jdev


Re: [jdev] newer version of vcard

2004-10-20 Thread Sergei Golovan
On Wed, Oct 20, 2004 at 09:25:12AM +0100, Richard Dobson wrote:
 You should be able to work out the age from the date of birth shouldnt you?

Many clients (Psi, Gaim etc.) treat birthday field as a text field. So it's
not easy to parse the date, entered by user.

-- 
Sergei Golovan
___
jdev mailing list
[EMAIL PROTECTED]
http://mail.jabber.org/mailman/listinfo/jdev