Ticket #570 (closed defect: fixed)

Opened 5 months ago

Last modified 8 weeks ago

BitlBee fails to connect to QQ (problems with protocol version setting)

Reported by: anonymous Owned by: wilmer
Priority: normal Milestone:
Component: Purple Version:
Keywords: Cc:
IRC client+version: Client-independent Operating System: Public server
OS version/distro:

Description

reproduce:

account add qq ID passwd account on

BAM

Attachments

Change History

Changed 5 months ago by anonymous

you dont need an account to reproduce this just use random data, same thing happens

Changed 5 months ago by wilmer

Yeah, I just noticed that and have a backtrace already. I see exactly what the problem is and will just have to cook up a solution.

It's late here already so I have to sleep, but will hopefully be able to fix this pretty soon.

Changed 5 months ago by anonymous

gettimeofday({1268256920, 96974}, NULL) = 0 read(6, "PRIVMSG &bitlbee :account add qq"..., 512) = 42 write(2, "Setting with unknown type: serve"..., 38) = 38 write(2, "Setting with unknown type: clien"..., 46) = 46 gettimeofday({1268256920, 98506}, NULL) = 0 gettimeofday({1268256920, 98722}, NULL) = 0 writev(4, [{"l\4\1\1\4\0\0\0\201\0\0\0w\0\0\0\1\1o\0\36\0\0\0/im/pidg"..., 136}, {"e\1\0\0", 4}], 2) = 140 writev(4, [{"l\4\1\1\4\0\0\0\202\0\0\0w\0\0\0\1\1o\0\36\0\0\0/im/pidg"..., 136}, {"e\1\0\0", 4}], 2) = 140 fstat64(6, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 fcntl64(6, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) gettimeofday({1268256920, 102893}, NULL) = 0 poll([{fd=4, events=POLLIN}, {fd=10, events=POLLIN}, {fd=8, events=POLLIN}, {fd=6, events=POLLOUT}, {fd=6, events=POLLIN}], 5, 4996) = 1 ([{fd=6, revents=POLLOUT}]) gettimeofday({1268256920, 103445}, NULL) = 0 write(6, ":rootroot@localhost.localdomain"..., 79) = 79 gettimeofday({1268256920, 103987}, NULL) = 0 poll([{fd=4, events=POLLIN}, {fd=10, events=POLLIN}, {fd=8, events=POLLIN}, {fd=6, events=POLLIN}], 4, 4995) = 1 ([{fd=6, revents=POLLIN}]) gettimeofday({1268256923, 663073}, NULL) = 0 read(6, "PRIVMSG &bitlbee :account on\r\n", 512) = 30 fstat64(6, {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0 fcntl64(6, F_GETFL) = 0x802 (flags O_RDWR|O_NONBLOCK) writev(4, [{"l\4\1\1\4\0\0\0\203\0\0\0w\0\0\0\1\1o\0\36\0\0\0/im/pidg"..., 136}, {"s\1\0\0", 4}], 2) = 140 --- SIGSEGV (Segmentation fault) @ 0 (0) --- time(NULL) = 1268256923 send(5, "<27>Mar 10 22:35:23 bitlbee[5467"..., 85, MSG_NOSIGNAL) = 85 tgkill(5467, 5467, SIGSEGV) = 0 sigreturn() = ? (mask now []) --- SIGSEGV (Segmentation fault) @ 0 (0) --- Process 5467 detached

Changed 5 months ago by wilmer

Yeah, I know what the problem is already. There's some settings field reported by libpurple that BitlBee can't deal with yet (a list, which is non-obvious to squeeze into an IRC UI).

I have ideas on how to fix this, will have something ready in a few days hopefully.

Changed 5 months ago by wilmer

changeset:wilmer-libpurple,507

That should work now. I can get it to show me an error message. Can you see how it works for you?

Changed 5 months ago by anonymous

looks fine so far, but when i connect i get an error message about the version being too old, i guess they changed the protocol. i probably related to this:  http://developer.pidgin.im/ticket/11530

Changed 5 months ago by wilmer

  • status changed from new to closed
  • resolution set to fixed

BitlBee bug here's fixed, it's up to the libpurple folks to fix th new problem.. :-/

Changed 4 months ago by anonymous

  • status changed from closed to reopened
  • resolution fixed deleted

hey, its me again

it works in pidgin when i go to the client config advanced tab and set the client version to qq 2008

in the accounts.xml it looks like this:

<setting name='client_version' type='string'>qq2008</setting>

so i guess this can be set somewhere api-wise would be a good idea to set it to qq2008 by default

Changed 4 months ago by wilmer

The libpurple people should do that.. :-/

Did you have to change that setting in Pidgin to make it work?

BTW you can also use "account set qq/client_version qq2008" in BitlBee to fix this. Have you tried?

Changed 3 months ago by maci@…

gonna try that

Changed 3 months ago by maci@…

it somehow refuses to set it. all it does is reply to my request with client_version = 'qq2005'

i tried account set 0/client_version qq2008

Changed 3 months ago by Wilmer van der Gaast <wilmer@…>

I'm not sure, but I think "help purple qq" should give you a list of possible values.

Changed 3 months ago by maci@…

LOL, ok found it... it accepts "QQ2008" but not "qq2008"

Changed 3 months ago by maci@…

still cant connect tho.

it looks like client_version has to be lowercase,

but you can not set it lowercase. cant even set it back to the default value "qq2005" after setting it to "QQ2008"

Changed 3 months ago by wilmer

  • priority changed from major to normal
  • summary changed from bitlbee crashes when connecting to QQ network to BitlBee fails to connect to QQ (problems with protocol version setting)

Hmm, I may have confused the internal and external option names here or something like that. :-/ I'll take a look.

Also, I'll change the description since this bug's not about crashing anymore.

Changed 3 months ago by wilmer

Hello,

Sorry for the delay: I may have this fixed now, but as I don't have a qq account I can't test this myself. See changeset:wilmer-libpurple,525. Can you see if it works?

Changed 2 months ago by wilmer

  • status changed from reopened to closed
  • resolution set to fixed

I'll close this one. If you at some point have a chance to test this, please let me know how it goes (feel free to reopen if it's still broken).

Changed 8 weeks ago by maci@…

Ok.

It works!

ill i have to do is

account set 0/client_version qq2008

then i can connect just fine. :)

thanks man.

now i hope that otr will make it into bitlbee so i can finally ditch pidgin or dont need to run 2 bitlbee instances

Changed 8 weeks ago by Wilmer van der Gaast <wilmer@…>

OTR is also getting closer. :-)

Thanks for the report, I'm glad it works now!

Changed 8 weeks ago by Wilmer van der Gaast <wilmer@…>

BTW if you use irssi or XChat you can do OTR from inside your IRC client in the meantime. IT doesn't work great for some people but it's definitely worth trying.

Changed 8 weeks ago by maci@…

yeah i did that before but it was really bad (as i already wrote in the otr ticket)

anyhow.. theres still one issue with this.

when i send a new msg to someone it does not open a query window. but instead all the messages are displayed in the control channel.

Changed 8 weeks ago by Wilmer van der Gaast <wilmer@…>

Is that really an issue with the QQ/purple module?

How do you send your own message? Remember that you get your responses in BitlBee the same way you sent your last msg to that person. So if you msg'ed him/her inside &bitlbee that's how you get the responses.

Changed 8 weeks ago by maci@…

from inside the control channel i used /msg ID blahblah

in this particular case i sent myself a message.

Changed 8 weeks ago by wilmer

Using /msg as well? And the response comes from exactly the same nick, or a slightly different one?

Add/Change #570 (BitlBee fails to connect to QQ (problems with protocol version setting))

Author


E-mail address and user name can be saved in the Preferences.


Action
as closed
The resolution will be deleted. Next status will be 'reopened'
 
Note: See TracTickets for help on using tickets.