Commit Graph

687 Commits

Author SHA1 Message Date
Yann Leboulanger c7d33bb68e register Disconnect handler soon enough 2008-08-06 21:37:56 +00:00
tomk cbfa9d97df - TLS classes refactored - NonBlockingTLS is now plugged to NonBlockingTCP and
derived (was plugged to NonBlockingClient which made it unusable for BOSH)
- Fixed HTTP CONNECT proxy socket
- Implemented workaround for the bug with insecure-connection warning dialog
  (unfortunately, this is not over - I just forbid the transport to send
  BOSH empty bodies until auth module is plugged, which is wrong and will
  break if user will wait more than "inactivity" (usualy thirty) seconds
  before clicking the dialog.
  This workaround works with ejb and opf, and also breaks connection with
  both of them if delay is too long.
- Implemented basic TLS over BOSH. It works only with OPF and poorly.
2008-08-05 23:52:35 +00:00
Yann Leboulanger 2b896152a2 make back strings translatable 2008-08-04 08:07:07 +00:00
js 9bb8f8c5e6 Make "This message is encrypted" bodies consistent. 2008-08-03 23:01:43 +00:00
Yann Leboulanger fa2d983354 better transltion strings. see #4166 2008-08-01 09:30:36 +00:00
Yann Leboulanger 673052f1b8 handle disconnection while insecure connetion dialog is opened. fixes #4138 2008-07-30 15:43:53 +00:00
js 8605cd3f38 For historical reasons, we have a tab width of 3. This is strange, but
we have that in all files. To at least lesser the confusion a bit, add
vim tags for that.
Additionally, fix wrong #! in a few files.
2008-07-29 19:49:31 +00:00
tomk 56e0ad7a96 basic proxy authentication for BOSH connections implemented 2008-07-28 18:53:00 +00:00
tomk af3f1a9dd4 - implemented BOSH key sequencing, acknowledgements
- improved HTTP persistent connections
- added alarm-unregister method to idlequeue
- extended proxy managing dialog for BOSH proxy
2008-07-26 22:42:40 +00:00
Brendan Taylor abbdf8d5c9 attach resource to sessions so that only the relevant sessions are terminated when a contact goes offline 2008-07-26 05:28:15 +00:00
tomk a58618c843 persistent HTTP connections in BOSH roughly implemented, added hack for openfire incapability of after-SASL-stream-restart-response in BOSH, changed doubles quotes to single 2008-07-18 00:34:49 +00:00
js 92e9a51fc5 D'oh! 2008-07-15 14:39:54 +00:00
js 151e7af63e Proper checking for XEP-0085, with workaround for the caps missing
problem. Same here, remove check to notexistant once we have fallback
to disco.
2008-07-15 13:51:20 +00:00
tomk 3d860f40a6 BOSHClient transformed to NonBlockingBOSH transport - it's easier to maintain more connections from below, implemented handling of non-persistent HTTP connections - it runs with ejabberd, improved NonBlockingTransport interface, minor changes in BOSHDispatcher 2008-07-13 22:22:58 +00:00
Yann Leboulanger 3ad1f9afed remove useless print 2008-07-05 18:25:39 +00:00
Yann Leboulanger 32bb251381 typo 2008-07-05 18:25:09 +00:00
Yann Leboulanger 1e636e7824 warn before connecting without PyOpenSSL. fixes #4065 2008-07-05 18:07:32 +00:00
tomk 952e4a1569 moved bosh code from client_nb.py to bosh.py, replaced debug logging with debug.py by logging in whole xmpppy (debug.py is now unused) 2008-07-02 23:29:10 +00:00
js 9ce8e28c0a Fix missing ). 2008-07-02 12:27:12 +00:00
js 46913c541b XEP-0184 uses the new caps-checking way now. 2008-07-02 10:48:15 +00:00
tomk f3820706fb - Refactored non-blocking transport and client classes - getaddrinfo is called
in Client now
- Added NonBlockingHttpBOSH transport (to tranports_nb) and BOSHClient
(to client_nb)
- Extended possible proxy types in configuration by "BOSH" proxy
- Rewrote NonBlockingTLS to invoke success callback only after successful TLS handshake is over (formerly, the TLS Plugin returned right after sending <starttls>)
2008-06-30 00:02:32 +00:00
Yann Leboulanger 371a38c91c increase xmpppy verbosity when we use -l gajim=DEBUG 2008-06-26 10:01:12 +00:00
Yann Leboulanger 9457c28a63 don't try the old (XEP-018) way to go invisible. It's not XMPP complient. That prevent to show the we are invisible but we are not. Fixes #4012 2008-06-25 09:25:43 +00:00
Yann Leboulanger d4c8cb8b15 don't think connection to server failed when only first connection attempt failed when creating a new account 2008-06-25 06:56:03 +00:00
Yann Leboulanger 3d2e97d251 when we are disconnected from server, we then try to reconnect only with the type (tls, ssl, plain) that worked first time. Fixes #3896 2008-06-19 18:05:15 +00:00
js 9634f98250 * Implemented XEP-0184 section 5.
* Added NS_RECEIPTS to protocol namespace list.
* Show our support of XEP-0184 in caps.
* Added a big, fat warning to get_contact as this does not work as
  expected.
* There was some strangeness in our XEP-0022, it added an id tag to
  the x tag, which isn't mentioned anywhere in the XEP. And for some
  strange reason, that id even was the same all the time.
* Fixed a typo.
2008-06-17 16:03:21 +00:00
tomk 6a15c9b9c9 initial cleanup of xmpppy perfomed, see #3260 2008-06-09 00:32:02 +00:00
js 593ed0c6d8 * Fix passing of message ID.
* Don't asnwer to receipt requests from users not in roster.
2008-06-08 15:51:55 +00:00
js c2eb4b5a9f Completely remove OTR.
Sorry, it just wasn't maintainable. The problem is the current libotr
API. I'm sick of working around the strange libotr API, sick of getting
HTML messages, sick of losing messages. The final argument for
completely removing it was that we can't get the message ID of a sent
msg anymore - which we need. I tried to work around this as well, but
there seems to be no way to wait for a signal in glib the way I would
need it for the workaround (I wanted to emit a signal in inject_message
and then wait for it after the call to otr_message_fragment_and_send
so the signal can pass us the message id). And the last reason is that
we're heading towards a new release and thus want to stabilize the code,
thus don't have time to work around even more libotr API strangeness.
I will give feedback to the libotr developers, who are currently
planning a new API, so that we can hopefully see OTR support once again
as soon as libotr4 is released.

Kjell already announced that he will continue his branch:
https://code.launchpad.net/~afflux/gajim/otr

I really hope the libotr devs will provide a sane API with libotr4 so
we can integrate OTR support again.

Oh, and I added one more try/except block for OS X.
2008-06-08 15:27:05 +00:00
js a495d090c3 Initial XEP-0184 support.
TODO:
 * Implement section 5.
 * Think of a way to show in GUI
    Possible way: Grey out the sent msg until we receive a <received/>,
    but only if we know the other end supports XEP-0184.
 * Maybe implement section 6?
2008-06-07 19:47:19 +00:00
Jean-Marie Traissard e487aa7802 Change the way to remember last message time in groupchat again. Save the time on
disconnection or exit. Previous version seemed perfect, but if server don't have the
same exact time than us (always), lots of messages can be logged twice. Here we will
lost log for messages that were sent beetween we lost connection and we see it. But that
seems better for me. For previous version, see [9516].
2008-06-05 11:18:33 +00:00
Brendan Taylor f7874d29c7 reuse chat controls after session termination
fixes #3950
2008-05-23 23:27:08 +00:00
Brendan Taylor 368dd9fe66 missed part of that last patch 2008-05-19 18:30:04 +00:00
js 1cbe5678da * When we receive a plaintext, non-tagged message, don't append OTR
tag to outgoing messages anymore. Messages are not even passed to
  libotr anymore then.
* If we don't support OTR, strip OTR tags from the message before
  displaying it.
2008-05-19 17:41:51 +00:00
Brendan Taylor fad6d2ef7e pass session when dispatching MSGNOTSENT 2008-05-19 00:17:39 +00:00
js 75ad801f62 Fix music_track_info for multiple accounts. 2008-05-16 16:04:51 +00:00
js 96a5b497a8 * Remove old code to update status to current track.
* Don't bind the track listener when not enabled anymore.
* Remove the signal / add the signal when changed in preferences.
2008-05-15 19:52:04 +00:00
js 4c3dc0b092 That still was the wrong place, it was initialized too early. Fixed. 2008-05-10 23:42:29 +00:00
js e335055709 Fix broken exception handling for OTR in connection.py. 2008-05-10 22:22:09 +00:00
js 4eeb96368b Store otr_userstates at the right place and create it the right way.
This fixes the crash when creating a new account, which made Gajim
unusable on systems where it never ran before.
2008-05-10 21:29:47 +00:00
js 435042968e Added OTR support.
Work done by Kjell Braden <fnord@pentabarf.de>.
Some fixes done by me.
2008-05-09 12:35:25 +00:00
Jean-Marie Traissard 75ffe12157 Change very bad var names 2008-05-05 03:18:09 +00:00
Jean-Marie Traissard 94580b3019 Change the way last_history_time for room is saved. Save time in mem at each message logged. When closing
control, save the value in rooms_last_message_time table. Previous version could introduce duplicate logs or
messages not logged.
2008-04-21 15:48:06 +00:00
Jean-Marie Traissard 8f84ff29f5 fix indent 2008-04-15 01:54:31 +00:00
Jean-Marie Traissard f32901d243 Create a new small table in DB to remember rooms last_history_line at next
launch. This is necessary because with a big history get_last_date_that_has_logs
can take about 5 seconds on first launch.
Created new gajim subversion.
2008-04-15 01:52:11 +00:00
Stephan Erb b991b32886 Add missing tooltip and markup in vcard window. See #1069. Make string a doc string. 2008-04-04 15:10:50 +00:00
Jean-Marie Traissard 75983ff571 Some "jep" -> "xep" 2008-03-30 20:35:02 +00:00
Yann Leboulanger 95bf9c4f74 send xml:lang in groupchat presences and configuration request. fixes #3743 2008-03-03 23:00:01 +00:00
Yann Leboulanger 494ae444b6 ability to ignore SSL errors until certificate changes. Fixes #3710 2008-02-15 10:11:17 +00:00
Yann Leboulanger 597096ce81 don't show us online automatically when we are in error state and we try to go online 2008-02-08 22:04:42 +00:00
Yann Leboulanger 436c75a244 show in GUI that we are offline when we don't get XMPP ping in time 2008-02-08 21:48:20 +00:00
Yann Leboulanger 0727ebd940 wrong syntax, missing ) 2008-02-08 07:53:09 +00:00
Yann Leboulanger a9e0ce5a0e add advanced option to configure the time we wait XMPP Ping answer 2008-02-08 07:47:35 +00:00
Yann Leboulanger 85cc4889ec use XMPP ping (XEP-0199) to detect connection lost at applicatin level. fixes #2767 2008-02-07 23:53:02 +00:00
Yann Leboulanger e8b7778521 detect jabber:iq:last and jabber:iq:version errors by IDs. fixes #3711 2008-02-05 14:50:21 +00:00
Yann Leboulanger 594313ed94 fix creation of new accounts 2008-02-04 22:17:35 +00:00
Yann Leboulanger 853d06bcaa fix args retured by on_connect_failure 2008-02-04 22:15:00 +00:00
Yann Leboulanger 848c492926 add checkbutton to YesNoDialog. Ability to fall back from tls to ssl and then plain. Warn user when using insecure connection. fixes #1923 2008-02-04 21:38:36 +00:00
Yann Leboulanger 68324dd104 fix XEP-0126 (invisibility) support. see #3666 2008-01-09 19:32:09 +00:00
Stephan Erb 30ad68a26c Backport some fixes to zeroconf: don't fail on special characters, don't allow gpg usage when it is not secure or even possible
Be more verbose when there is a key missmatch.

Mind that presence in zeroconf are not signed, gpg keys have to be assigned manually therefore.
2007-12-31 01:19:08 +00:00
Stephan Erb d621eb9405 SSL errors got mixed up. Fixed 2007-12-30 00:10:22 +00:00
Stephan Erb 6fdd7c0f88 Rework GPG behaviour:
Only encrypt when the receiver is trusted. You have to sign its key or it has to be signed by someone you trust. Fixes #109

Make checkbox insensitive when GPG is disabled on an account (or no passphrase given).

Auto assign trusted keys on received presence. Deny encryption on missmatch of assigned key and signing key. Fixes #3376

Do not disable encrypted when receiving an unencrypted message. Print whether a received message was encrypted or not.

TODO: Remove togglebutton, its useless now
2007-12-29 23:28:27 +00:00
Stephan Erb fef742c863 Refactor the way we decide whether GPG is usable or not: Ability to change keys when no valid passphrase could be entered.
See #1210. Workaround for unavailable keys.

Remove useless except block: import of GnuPGInterface is the same on Debian and non Debian systems.
2007-12-28 18:49:28 +00:00
Yann Leboulanger f95df09441 how SSL error message in bold. fixes #720 2007-12-27 23:33:05 +00:00
Jean-Marie Traissard 14bf5ed62c pyflakes checks, remove unused imports, mainly 2007-12-27 21:52:45 +00:00
Yann Leboulanger 6247de33da don't propose to add certificate to cacerts.pem file if it's useless, and don't add it if it is already in. fixes #720 2007-12-26 23:59:54 +00:00
Yann Leboulanger 3bc22371cc [ruiabreuferreira and I] ability to use http_proxy environment variable. fixes #2977 2007-12-19 14:42:04 +00:00
Yann Leboulanger a2e53ccc5c fix creation of account on server that supports dataforms 2007-12-15 12:41:39 +00:00
Yann Leboulanger 19761f081f [js & I] show pep info in account tooltip, fix a bug in create_contact() 2007-12-13 20:26:13 +00:00
Yann Leboulanger a645006bf8 merge diff from trunk 2007-12-12 08:44:46 +00:00
Piotr Gaczkowski 55a7061ea3 Better Tune support 2007-08-10 20:18:32 +00:00
Piotr Gaczkowski 947ec8e933 PEP prefs added 2007-08-09 23:05:43 +00:00
Yann Leboulanger ea24ee82e5 merge diff from trunk to pep branch 2007-08-09 15:39:18 +00:00
Piotr Gaczkowski e3ef0821b3 Merge with trunk 2007-06-03 10:04:20 +00:00
Yann Leboulanger c02eb73bd0 add pep_supported var to pep branch too 2007-03-30 19:16:44 +00:00
Yann Leboulanger 5920d03aee ability to destroy a room when we are owner, give a reason and alternative room
jid. fixes #3031
2007-03-11 20:14:53 +00:00
Yann Leboulanger 5b63c41c41 use new dataform widget in register agent window. Remove no more used old DataFormWindow. 2007-02-15 09:18:24 +00:00
Yann Leboulanger 3534bb30cd use new dataform widget in groupchat config window 2007-02-14 16:48:25 +00:00
Yann Leboulanger a5b0e51dcb since 2006-11-29 we don't require a status message to sign a presence. 2007-02-12 19:37:09 +00:00
Jean-Marie Traissard 05f306115e Delete change_nick() func, use join_gc() instead. Fixes #2903. 2007-02-11 03:22:40 +00:00
Yann Leboulanger cba44a43a1 handle proxy errors. fixes #799 (socks5 proxies should now be supported. tests needed) 2007-02-07 22:05:52 +00:00
Yann Leboulanger b02cdd378d when we are disconnected while autoaway, don't loose previous status. fixes #2934 2007-01-31 20:38:49 +00:00
Jean-Marie Traissard f4d43979ed Verify avatars'sha on hdd in muc too, don't send sha when disconnecting from muc 2007-01-29 22:04:22 +00:00
Yann Leboulanger 9a6b090506 begining of socks5 proxy support. error handling is missing. see #799 2007-01-24 21:50:59 +00:00
Yann Leboulanger 605924b2b8 [Jeff] fix some strings. 2007-01-21 14:13:39 +00:00
Yann Leboulanger ba2b1a0f58 change function name. see #2898 2007-01-17 11:40:59 +00:00
Yann Leboulanger abcb9a35f1 handle correltly SRV and registration on IDN servers. fixes #2898 2007-01-16 22:36:41 +00:00
Yann Leboulanger 3567a8c20f remove privacy list from dialog only when server return the result, else show an error dialog. fixes #2853 2007-01-11 20:21:53 +00:00
Jean-Marie Traissard 86fbcece1f use the GOOD syntax for the get_last_date_that_has_logs() SQL request :)
(Open gc win three times faster, and even more when time cached !
Also opens history wins two times faster)
2007-01-09 17:30:03 +00:00
Yann Leboulanger 8ede60ebb0 add --use-agent to GPG so that we work with gnupg-agent 2007-01-06 20:19:47 +00:00
junglecow 5529852ded - Fix TB on fingerprint mismatch
- Add debug message on import failure of PyOpenSSL
 - Update gajim.org digest after migration to new server
2006-12-29 01:46:46 +00:00
junglecow e1ad5b15d0 - Removed unnecessary import
- Fixed name of transport_nb's logger
2006-12-28 11:15:44 +00:00
junglecow 8707d511c1 - More accurate description of None outcome of _check_fingerprint
- Check for presence of PyOpenSSL in fingerprint check. Fixes #2841.
2006-12-27 23:28:47 +00:00
junglecow cf291c3c2f Move fingerprint check into its own function. 2006-12-27 23:25:32 +00:00
junglecow 847d9fe6e9 - Enhanced parsing of -l/--loglevel option
- Demote one message w/exception to debug
 - Hopefully improved user error message when fingerprint is bad
2006-12-27 18:38:50 +00:00
junglecow 9deb76a8ad - Started new way of logging, with configurable level for each subsystem
- Added -q, --quiet (speaks for itself)
   - Added -l, --loglevel subsystem=LEVEL,subsystem2=LEVEL2,...
 - Quell winsock 10035 error. (Equivalent of EINPROGRESS, but winsock likes to have its own error numbers.)
 - Hide SSL certificate debug stuff unless gajim.c.x.transports loglevel is DEBUG or lower
 - Avoid unicode problems if we set a profile
 - Move fingerprint checks from _register_handlers to _connect_success
 - Some enhancements to fpr checking code
2006-12-23 21:18:07 +00:00
junglecow 44674f7e75 - Implement matching of fingerprints against servers.xml
- Add support for fingerprints to servers.xml parser.
 - Add support for 'hidden' servers to servers.xml parser.
 - Add some fingerprints to servers.xml, for testing and as example for the new format.
 - Force asynchronous (nonblocking) SSL handshake in all case
 - Add logging to c/connection.py

Known issues:
 - Checking of fingerprints doesn't work on in-band SSL (Typically port 5222) because of stuff happening out of sequence. Workaround: use immediate SSL mode ("Legacy SSL" option in server config). Because there is as of yet no other way to /force/ SSL, this is also the most secure setting.
 - A lot of code is still looking for a better place to live.
2006-12-22 23:30:23 +00:00
junglecow a4655276fe [Trunk]
- In verbose mode, print encodings. (Especially for Windows users who don't have Python) (gajim.py)
 - Attempt at fixing traceback when getting user's home directory in Windows. See #2812. (c/configpaths.py)
 - Show 'error' icon next to account while waiting for reconnect. Fixes #2786. (c/connection_handlers.py, c/gajim.py, c/connection.py)
[PyOpenSSL]
 - Fix 100% CPU usage and hanging connection when server closes connection on us. (c/x/transports_nb.py)
 - Fix 'hanging' connection when server closes the connection on us before we can open the XML stream. (Disconnect handler didn't get called.) (c/x/client_nb.py)
 - Change prints to logger calls, various enhancements to debug printing, reduce spam (c/x/transports_nb.py)
 - this → self (c/x/transports_nb.py)
 - Call _do_receive() once to collect error message from socket, when error flag is raised in scheduler. (c/x/transports_nb.py)
2006-12-20 20:40:08 +00:00
junglecow 7fbb4279ac - Reset retrycount if we auth successfully, so we can start retrying at 10 seconds instead of 15 minutes. This is an old bug, but wasn't noticable with 10 vs 20 seconds. 2006-12-10 20:22:02 +00:00
junglecow 9353c13d65 - Trying to connect to server every 20 seconds forever is extremely rude to its owner. Let's be polite and do exponential back-off. (See #2411)
- [PyOpenSSL] Ported [7443] to pyopenssl branch.
2006-12-08 21:19:01 +00:00