DNS SRV queries broken (timeout add and threading issues)

RESOLVED FIXED in 0.1.3

Status

Chat Core
General
--
major
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: florian, Assigned: florian)

Tracking

0.1.2
0.1.3
x86
Windows XP

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [0.2-blocking], URL)

Attachments

(1 attachment)

(Assignee)

Description

5 years ago
*** 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.
(Assignee)

Comment 1

5 years ago
Created attachment 8351802 [details] [diff] [review]
fix

*** 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.
(Assignee)

Comment 2

5 years ago
*** 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
Last Resolved: 5 years ago
Resolution: --- → FIXED
(Assignee)

Updated

5 years ago
Target Milestone: --- → 0.1.3

Updated

5 years ago
Whiteboard: [0.2-blocking]
You need to log in before you can comment on or make changes to this bug.