Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Receiving an OTR request from pidgin-otr results in the "you don't have OTR" string #28

Closed
koolfy opened this issue Jul 19, 2013 · 2 comments
Assignees
Labels
Milestone

Comments

@koolfy
Copy link
Collaborator

koolfy commented Jul 19, 2013

When a pidgin-otr client attemps to start an OTR session, this is received :

NICNKAME@SERVER has requested an Off-the-Record private conversation http://otr.cypherpunks.ca/. However, you do not have a plugin to support that.

Despite that, the session is correctly initiated.

This also happenned between pidgin-otr and the "old" irssi-otr. Which makes me think it may either be a pidgin-otr issue (bad formating ?) or an incompatibility with the way OTRv3 sends this string and the current pure-python-otr library

Whatever it is, I must investigate this further and fix this before the next release as it is confusing for the user.

@ghost ghost assigned koolfy Jul 19, 2013
@koolfy
Copy link
Collaborator Author

koolfy commented Jul 20, 2013

Ok, this is not our fault.

Turns out pidgin, when initiating an OTR session, first sends an OTR tag :

?OTRv23?

THEN, sends this as a regular message:

NICK@SERVER has requested an Off-the-Record private conversation http://otr.cypherpunks.ca/. However, you do not have a plugin to support that.
See http://otr.cypherpunks.ca/ for more information.

There is no OTR tag on this message, thus there is no reason for us to not display it to the user. Nothing indicates that an OTR-capable client should discard this message.
I don't see anything mentioning this in the protocol specification : http://www.cypherpunks.ca/otr/Protocol-v3-4.0.0.html

From there, it is implied the correct way of doing so is to include the to-hide message AFTER the otr tag in the SAME message.
If the client supports OTR, it will interpret the tag and ignore the rest, if not, the tag and the message are obviously displayed to the user as a regular message.

I'm not creating a workaround only to support pidgin's special way of doing things.

Won't fix. Waiting for Pidgin-OTR to adopt a more interoperable behavior

@koolfy koolfy closed this as completed Jul 20, 2013
@tribut
Copy link
Collaborator

tribut commented Nov 21, 2013

This is actually not true. Pidgin sends a single multi-line message:

<message type="chat" [...]>[...]<body>?OTRv23?
[user] has requested an Off-the-Record private conversation
&lt;http://otr.cypherpunks.ca/&gt;.  However, you do not have a plugin to support that.
See http://otr.cypherpunks.ca/ for more information.</body><html [...]>
[...]</html></message>

Unfortunately, I have no idea how to properly deal with this. When bitlbee or minbif is used, there is no way to group those messages (apart from their arrival time). If jabber.py is used, one could think of several workarounds but I believe weechat-otr and jabber.py can't be used together currently anyway.
I could patch bitlbee to always return html-encoded messages and then use a plugin I have yet to write to remove the html in weechat. Thinking about it, I will have to write that plugin anyway, as pidgin will put html inside the encrypted message once any styling is applied to the message. However, maximum message length in IRC could still cause problems.

Other ideas?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants