-
Notifications
You must be signed in to change notification settings - Fork 1
/
TODO
32 lines (21 loc) · 1.87 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
- More ICQ testing and incorporation of ICQ-specific features
- Use setTimeout to send a keepalive packet on FLAP channel 0x05 -- time == 1 min? Digsby & Pidgin use a 30 sec timeout)
Note: Pidgin only seems to send keepalive on the main connection, unlike Digsby which sends keepalive on every connection
Also: the timer should be (re)started after each write to the socket and thus should not be sent if the connection isn't idle
- Pay attention to rate warnings and limits -- automatically do this at the _send() level and queue up commands before we hit
the limit and SNACs start dropping, or let the user handle throttling by emitting rate-related events?
- Secure connection support
- Automatically use a secure connection (to slogin.oscar.aol.com for AOL) if options.connection.host
is one of the defaults (login.oscar.aol.com for AOL).
Port 5190 or 443 can be used for secure connections. Also, there is an alternate non-secure address for AOL: login.messaging.aol.com
- If requesting a new service and our main connection is SSL, add empty TLV 0x8C to the service request.
Similarly, if the requested service redirect response (0x05) contains TLV 0x8E, use SSL if val > 0, else no SSL
- Queue any requests for paused services and replay them after migration is complete or a resume response is sent by the server
OR emit 'paused' and 'resume' events?
- Handle server-initiated BOS migrations
- Actually reply every x hours (given by the server-initiated USAGE_STATS SNAC) with service 0x0B subtype 0x03
- File transfer support
- DirectIM support
- Set up an interval to periodically clean out any answered requests or requests that have gone unanswered for some
fixed length of time (will require tagging each request with a (UNIX) timestamp). Although, calling delete can send
V8 into a slow case, maybe we should instead just set anything not already undefined to undefined?