[icq-devel] Migration sequence info...



Alexandr V. Shutko AVShutko at mail.khstu.ru
Mon Dec 9 03:15:30 CET 2002


Hello all,

About migration sequence. Yes. This is work for icq2k clients.
Yesterday I tried to migrate icq2k client (icq2000, icq2002)
via my ICQ server to another icq server running on same database.
And it works.

Server send: (AIM docs call this packet - "pause", but icq2k client
responds with SNAC(1,0C)and works after that packet as ussual, so I
call this packet srv_get_connection_families request)

2A          // FLAP id
02          // FLAP channel
E5 65       // FLAP sequence
00 0A       // FLAP data size
-----------------------------------
00 01       // SNAC family 0x01
00 0B       // SNAC subtype 0x0B
00 00       // SNAC flags
8E CC C4 DF // SNAC req-id

Client responds with SNAC(1,0c) which contain failies client use for
current BOS service connection.

2A          // FLAP id
02          // FLAP channel
1F BD       // FLAP sequence
00 18       // FLAP data size
-----------------------------------
00 01       // SNAC family 0x01
00 0C       // SNAC subtype 0x0C
00 00       // SNAC flags
00 00 00 0C // SNAC req-id
-----------------------------------
00 01       // FAMILY 0x01
00 02       // FAMILY 0x02
00 03       // FAMILY 0x03
00 15       // FAMILY 0x15
00 04       // FAMILY 0x04
00 09       // FAMILY 0x09
00 0A       // FAMILY 0x0A

Now server can send migration request....
It contain new server ip, cookie and families to migrate.

2A          // FLAP id
02          // FLAP channel
E5 66       // FLAP sequence
00 3A       // FLAP data size
-----------------------------------
00 01       // SNAC family 0x01
00 12       // SNAC subtype 0x12
00 00       // SNAC flags
8E CC C4 E0 // SNAC req-id
-----------------------------------
00 04       // families list counter
00 01       // family to migrate 1
00 02       // family to migrate 2
00 03       // family to migrate 3
00 15       // family to migrate 4

00 05       // TLV 0x05
00 0F       // TLV size
31 30 2E 31 // server addr
30 2E 31 30 // ("10.10.10.8:5100")
2E 38 3A 35
31 30 30

00 06       // TLV 0x06
01 00       // TLV size
31 .. 46    // auth cookie

Some words about faimlies list. If it is empty or contain all families
from SNAC(1,0c) client disconnects from server and connects to new server
via normal login sequence (icq flower stay green during this procedure
- so this is completely transparent). I believe they (AOL) use this to
migrate clients when they want to shutdown BOS server.

If it contain not all of the families that was in SNAC(1,0c) client
make connection to new server for families listed in SNAC(1,12)
but it also keep current connection for other snac families.

-- 
With respect,
Alexandr V. Shutko                           mailto:AVShutko at mail.khstu.ru




More information about the icq-devel mailing list