Closed Bug 953548 Opened 10 years ago Closed 10 years ago

DNS SRV queries broken (timeout add and threading issues)

Categories

(Chat Core :: General, defect)

0.1.2
x86
Windows XP
defect
Not set
major

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: florian, Assigned: florian)

References

()

Details

(Whiteboard: [0.2-blocking])

Attachments

(1 file)

*** Original post on bio 97 at 2008-08-12 14:26:00 UTC ***

DNS SRV queries are broken on Windows because libpurple uses (in Windows-only portions of the code) purple_timeout_add as a way to get a callback on the main thread.

This is not supported by our current implementation of purpleTimer.
Attached patch fixSplinter Review
*** Original post on bio 97 as attmnt 58 at 2008-08-14 02:53:00 UTC ***

On Windows the timeout_add ui op of libpurple is overloaded.
It is used both for real timeouts and as a thread synchronization method.

In the case of the thread synchronization (which I just implemented with this patch), I assume that:
 - The return value will not be used (the timeout won't be cancelable)
 - The interval is always 0.

These assumptions are corrects for the 4 uses cases in the current libpurple code base, and a developer in #pidgin told me that it is not likely to change before at least libpurple 3.0.

The current 4 use cases are: dnsquery.c, dnssrv.c bonjour.c and network.c
For Instantbird we can ignore the dnsquery.c case because we don't use libpurple's builtin DNS resolution but implemented the DNS ui ops.
*** Original post on bio 97 at 2008-08-14 03:07:01 UTC ***

Sending        purple/purplexpcom/src/purpleTimer.cpp
Sending        purple/purplexpcom/src/purpleTimer.h
Transmitting file data ..
Committed revision 278.

Fixed.
Severity: normal → major
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → 0.1.3
Whiteboard: [0.2-blocking]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: