#570 closed defect (fixed)

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:



account add qq ID passwd account on


Attachments (0)

Change History (24)

comment:1 Changed at 2010-03-10T00:19:27Z by anonymous

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

comment:2 Changed at 2010-03-10T00:26:01Z 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.

comment:3 Changed at 2010-03-10T21:38:15Z 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

comment:4 Changed at 2010-03-11T01:09:29Z 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.

comment:5 Changed at 2010-03-12T01:08:37Z by wilmer


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

comment:6 Changed at 2010-03-12T22:04:58Z 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:

comment:7 Changed at 2010-03-14T01:45:46Z by wilmer

Resolution: fixed
Status: newclosed

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

comment:8 Changed at 2010-04-12T06:38:37Z by anonymous

Resolution: fixed
Status: closedreopened

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

comment:9 Changed at 2010-04-13T19:15:21Z 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?

comment:10 Changed at 2010-04-22T13:49:40Z by maci@…

gonna try that

comment:11 Changed at 2010-04-22T13:58:55Z 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

comment:12 Changed at 2010-04-22T14:05:11Z by Wilmer van der Gaast <wilmer@…>

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

comment:13 Changed at 2010-04-22T15:33:21Z by maci@…

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

comment:14 Changed at 2010-04-22T15:36:42Z 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"

comment:15 Changed at 2010-04-29T08:31:49Z by wilmer

Priority: majornormal
Summary: bitlbee crashes when connecting to QQ networkBitlBee 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.

comment:16 Changed at 2010-05-09T23:25:37Z by wilmer


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?

comment:17 Changed at 2010-05-23T14:05:44Z by wilmer

Resolution: fixed
Status: reopenedclosed

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).

comment:18 Changed at 2010-06-04T16:35:28Z by maci@…


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

comment:19 Changed at 2010-06-04T16:39:28Z by Wilmer van der Gaast <wilmer@…>

OTR is also getting closer. :-)

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

comment:20 Changed at 2010-06-04T16:40:06Z 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.

comment:21 Changed at 2010-06-04T16:51:39Z 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.

comment:22 Changed at 2010-06-04T16:57:16Z 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.

comment:23 Changed at 2010-06-04T17:09:09Z by maci@…

from inside the control channel i used /msg ID blahblah

in this particular case i sent myself a message.

comment:24 Changed at 2010-06-04T22:57:52Z by wilmer

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

Modify Ticket

as closed The owner will remain wilmer.
The resolution will be deleted.

Add Comment

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

Note: See TracTickets for help on using tickets.