Tkabber

View Ticket
Login
Ticket Hash: 81ea7518dc81f85f0af2a9b5bd738553792d1b92
Title: tkabber 0.10 no longer automaticly reconnects
Status: Fixed Type: Code_Defect
Severity: Important Priority: High
Subsystem: Resolution: Not_A_Bug
Last Modified: 2008-02-17 12:44:03
Version Found In: cvs
User Comments:
anonymous (claiming to be Arkadiusz Miskiewicz) added on 2007-11-11 19:21:12:
I'm using tkabber 0.10 beta 2 on a notebook, linux system, with software:
tcllib-1.9-2.noarch
tclsasl-1.0-3.i686
tcl-tdom-0.8.2-1.i686
tcl-8.5-0.b1.1.i686

and I suspend to ram. Unfortunately I often forget to log out from tkabber.

The bug is that after resume tkabber never notices that connection was dropped (by 
server) and it thinks that it's still logged.

tkabber 0.9 noticed that and displayed login window. tkabber 0.10 just thinks 
it's logged.

How to reproduce, login, suspend to ram/disk (so tkabber is frozen) and wait until 
server timeouts the client. Then resume.

ps. jabber.ru bugzilla doesn't allow to change emails :-( My currently registered 
email no longer works so please reply manually to arekm/maven.pl. Thanks. Changing 
bugzilla to allow changing emails would be nice.

khomoutov (claiming to be Konstantin Khomoutov) added on 2008-02-11 18:53:45:
This problem is two-fold.

Firstly, the "feature" disappeared for you in the new release was probably just
a by-product of the Tkabber mechanism for "keep alive" which was implemented in
the form of periodical sending of the space character to the output stream.

In 0.10.1 it was dropped in the favor of implemented "IQ ping" facility (see the
ChangeLog entry of 2007-10-05). IQ pinging provides for both keep-alive and dead
link detection. You can enable it via the "IQ" group of Customize settings
("::plugins::ping::options" group of settings). If
::plugins::ping::options(ping) flag is on, and the server didn't respond with
either its reply or an error condition in ::plugins::ping::options(timeout)
seconds, the link is considered dead and a series of reconnection attempts is
committed.

Secondly, the whole idea of relying on this feature appears to be rather clunky.
 Tkabber now possesses a special plugin named "green" which allows to properly
track suspend/resume on Windows systems. Now it's Windows-only, but it's not
hard to implement a simpl Tcl/Tk script that will broadcast some special
"message" to all running instances of Tkabber on a particular display in cases
of suspend and resume. Such script could be called by some appropriate script
from the suite implementing software suspend on your system.

The problem is that no one of the active Tkabber devs uses power management
under Linux so this functionality can only be created if someone (you, for
instance) will collaborate with them (explaining the setup, requirements for
such reporting script, etc).

anonymous (claiming to be Arkadiusz Miskiewicz) added on 2008-02-11 19:37:40:
Where is that "green" plugin? Don't see it in svn trunk.

On Linux there is a need for some script that will be run by external application 
(like hal daemon, hibernate script, acpi/power management daemon) like:

./tell_tkabber_that_system <is_going_to_sleep|woke_up|suspending_canceled(?)>

That's all. Then you plug execution of this script into hal/acpid and it should 
work.

Can someone prepare such script for tkabber?

khomoutov (claiming to be Konstantin Khomoutov) added on 2008-02-12 02:08:02:
(In reply to comment #2)
> Where is that "green" plugin? Don't see it in svn trunk.
> 
> On Linux there is a need for some script that will be run by external application 
> (like hal daemon, hibernate script, acpi/power management daemon) like:
> 
> ./tell_tkabber_that_system <is_going_to_sleep|woke_up|suspending_canceled(?)>
> 
> That's all. Then you plug execution of this script into hal/acpid and it should 
> work.
> 
> Can someone prepare such script for tkabber?

Implemented. Please grab the HEAD of
http://svn.xmpp.ru/repos/tkabber-3rd-party/trunk/plugins/green
and study the README file on how to set it up.

BTW I can be reached via XMPP kostix at 007spb dot ru or in the Tkabber chatroom
(nicknamed kostix).

anonymous (claiming to be Arkadiusz Miskiewicz) added on 2008-02-12 07:23:54:
/usr/bin/wish /usr/share/tkabber/plugins/green/tkabber-swsusp.tcl suspend
Error in startup script: invalid command name "::plugins::green::on_suspend"
    while executing
"::plugins::green::on_suspend"
    invoked from within
"send -async tkabber-swsusp.tcl ::plugins::green::on_suspend"
    ("eval" body line 1)
    invoked from within
"eval [list send -async $app ::plugins::green::on_$event]"
    ("foreach" body line 2)
    invoked from within
"foreach app [lsearch -all -inline [winfo interps] tkabber*] {
        eval [list send -async $app ::plugins::green::on_$event]
}"
    (file "/usr/share/tkabber/plugins/green/tkabber-swsusp.tcl" line 36)

khomoutov (claiming to be Konstantin Khomoutov) added on 2008-02-17 12:44:03:
Fixed in revision 98 of
http://svn.xmpp.ru/repos/tkabber-3rd-party/trunk/plugins/green so I'm closing
this bug as invalid.

It would be cool if Arkadiusz write some simplistic note on inclusion this
script in his particular Linux distro power management package scripts.
Something like HOWTO-PLD-Linux.txt or so.