parent
568e6f41a5
commit
b7dbcd2b42
|
@ -27,6 +27,7 @@ SYMBOL: login-key
|
||||||
SYMBOL: aim-chat-ip
|
SYMBOL: aim-chat-ip
|
||||||
SYMBOL: aim-chat-port
|
SYMBOL: aim-chat-port
|
||||||
SYMBOL: auth-code
|
SYMBOL: auth-code
|
||||||
|
SYMBOL: charset
|
||||||
|
|
||||||
SYMBOL: family
|
SYMBOL: family
|
||||||
SYMBOL: opcode
|
SYMBOL: opcode
|
||||||
|
@ -50,12 +51,12 @@ SYMBOL: message
|
||||||
"en" client-language set
|
"en" client-language set
|
||||||
"us" client-country set
|
"us" client-country set
|
||||||
1 client-ssi-flag set
|
1 client-ssi-flag set
|
||||||
|
"text/aolrtf; charset=\"us-ascii\"" charset set
|
||||||
|
|
||||||
0 65535 random-int seq-num set
|
0 65535 random-int seq-num set
|
||||||
1 stage-num set
|
1 stage-num set
|
||||||
password set
|
password set
|
||||||
username set
|
username set ;
|
||||||
aim-login-server get login-port get <client> conn set ;
|
|
||||||
|
|
||||||
: get-seq-num ( -- int )
|
: get-seq-num ( -- int )
|
||||||
seq-num get seq-num [ 1 + ] change ;
|
seq-num get seq-num [ 1 + ] change ;
|
||||||
|
@ -71,12 +72,17 @@ SYMBOL: message
|
||||||
] make-packet
|
] make-packet
|
||||||
swap dup >r length >short r> append append ;
|
swap dup >r length >short r> append append ;
|
||||||
|
|
||||||
: send-aim ( data -- )
|
: send-aim-print ( data -- )
|
||||||
make-packet
|
make-packet
|
||||||
(prepend-aim-protocol)
|
(prepend-aim-protocol)
|
||||||
"Sending: " write dup hexdump
|
"Sending: " write dup hexdump
|
||||||
(send-aim) ;
|
(send-aim) ;
|
||||||
|
|
||||||
|
: send-aim ( data -- )
|
||||||
|
make-packet
|
||||||
|
(prepend-aim-protocol)
|
||||||
|
(send-aim) ;
|
||||||
|
|
||||||
: with-aim ( quot -- )
|
: with-aim ( quot -- )
|
||||||
conn get swap with-unscoped-stream ;
|
conn get swap with-unscoped-stream ;
|
||||||
|
|
||||||
|
@ -90,7 +96,7 @@ SYMBOL: message
|
||||||
! "Received: " write dup hexdump ;
|
! "Received: " write dup hexdump ;
|
||||||
|
|
||||||
: make-snac ( fam subtype flags req-id -- )
|
: make-snac ( fam subtype flags req-id -- )
|
||||||
4 >nvector { >short >short >short >int } papply ;
|
4vector { >short >short >short >int } papply ;
|
||||||
|
|
||||||
: parse-snac ( stream -- )
|
: parse-snac ( stream -- )
|
||||||
head-short family set
|
head-short family set
|
||||||
|
@ -127,6 +133,18 @@ SYMBOL: message
|
||||||
}} ; add-family
|
}} ; add-family
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
! : handle-2h-6h
|
||||||
|
! head-byte head-string name set
|
||||||
|
! name get write "'s away message" writeln ;
|
||||||
|
|
||||||
|
|
||||||
|
! : FAMILY-2h
|
||||||
|
! {{
|
||||||
|
! [[ 6 handle-2h-6h ]]
|
||||||
|
! }} ; add-family
|
||||||
|
|
||||||
|
|
||||||
: handle-3h-bh ( -- )
|
: handle-3h-bh ( -- )
|
||||||
head-byte head-string name set
|
head-byte head-string name set
|
||||||
head-short drop
|
head-short drop
|
||||||
|
@ -283,11 +301,12 @@ SYMBOL: message
|
||||||
head-short
|
head-short
|
||||||
swap
|
swap
|
||||||
{
|
{
|
||||||
{ [ dup 1 = ] [ (print-op) head-string . ] }
|
! { [ dup 1 = ] [ (print-op) head-string . ] }
|
||||||
{ [ dup 5 = ] [ (print-op) head-string dup . (parse-server) ] }
|
{ [ dup 5 = ] [ drop head-string (parse-server) ] }
|
||||||
{ [ dup 6 = ] [ (print-op) head-string dup . auth-code set ] }
|
{ [ dup 6 = ] [ drop head-string auth-code set ] }
|
||||||
{ [ dup 8 = ] [ (print-op) head-string . ] }
|
! { [ dup 8 = ] [ (print-op) head-string . ] }
|
||||||
{ [ t ] [ (print-op) head-string . ] }
|
! { [ t ] [ (print-op) head-string . ] }
|
||||||
|
{ [ t ] [ drop head-string drop ] }
|
||||||
} cond
|
} cond
|
||||||
(process-login-chunks)
|
(process-login-chunks)
|
||||||
] unless ;
|
] unless ;
|
||||||
|
@ -380,6 +399,102 @@ SYMBOL: message
|
||||||
3 >short 0 >short 6 >short 0 >short
|
3 >short 0 >short 6 >short 0 >short
|
||||||
] send-aim ;
|
] send-aim ;
|
||||||
|
|
||||||
|
: query-info ( name -- )
|
||||||
|
name set
|
||||||
|
[
|
||||||
|
2 HEX: 15 0 HEX: 29cb0015 make-snac
|
||||||
|
1 >int
|
||||||
|
name get length >byte
|
||||||
|
name get
|
||||||
|
] send-aim ;
|
||||||
|
|
||||||
|
: query-away ( name -- )
|
||||||
|
name set
|
||||||
|
[
|
||||||
|
2 HEX: 15 0 HEX: 29cb0015 make-snac
|
||||||
|
2 >int
|
||||||
|
name get length >byte
|
||||||
|
name get
|
||||||
|
] send-aim ;
|
||||||
|
|
||||||
|
: set-away ( message -- )
|
||||||
|
message set
|
||||||
|
[
|
||||||
|
2 4 0 4 make-snac
|
||||||
|
3 >short
|
||||||
|
charset get length >short
|
||||||
|
charset get
|
||||||
|
4 >short
|
||||||
|
message get length >short
|
||||||
|
message get
|
||||||
|
] send-aim ;
|
||||||
|
|
||||||
|
: return-from-away ( -- )
|
||||||
|
[
|
||||||
|
2 4 0 4 make-snac
|
||||||
|
4 >short
|
||||||
|
0 >short
|
||||||
|
] send-aim ;
|
||||||
|
|
||||||
|
: set-info ( message -- )
|
||||||
|
message set
|
||||||
|
! [ 2 9 0 HEX: 63e40000 ] send-aim
|
||||||
|
[
|
||||||
|
2 4 0 4 make-snac
|
||||||
|
1 >short
|
||||||
|
charset get length >short
|
||||||
|
charset get
|
||||||
|
2 >short
|
||||||
|
message get length >short
|
||||||
|
message get
|
||||||
|
] send-aim ;
|
||||||
|
|
||||||
|
: (buddy-list-edit-start)
|
||||||
|
[ HEX: 13 HEX: 11 0 HEX: 11 ] send-aim ;
|
||||||
|
|
||||||
|
: (buddy-list-edit-stop)
|
||||||
|
[ HEX: 13 HEX: 12 0 HEX: 12 ] send-aim ;
|
||||||
|
|
||||||
|
|
||||||
|
! add, delete groups, move buddies from group to group
|
||||||
|
! parse buddy list
|
||||||
|
|
||||||
|
: add-buddy ( name group -- )
|
||||||
|
name set
|
||||||
|
(buddy-list-edit-start)
|
||||||
|
[
|
||||||
|
HEX: 13 8 0 HEX: 57e60008
|
||||||
|
name get length >short
|
||||||
|
name get
|
||||||
|
! BUDDY GROUP ID HEX: 1a4c
|
||||||
|
! BUDDY ID HEX: 1812
|
||||||
|
0 >short
|
||||||
|
0 >short
|
||||||
|
] send-aim
|
||||||
|
(buddy-list-edit-stop) ;
|
||||||
|
|
||||||
|
! : (modify-buddy)
|
||||||
|
! [
|
||||||
|
! HEX: 13 9 0 HEX: 56ef0009
|
||||||
|
! group length
|
||||||
|
! group name
|
||||||
|
! ] send-aim ;
|
||||||
|
|
||||||
|
: delete-buddy ( name group -- )
|
||||||
|
name set
|
||||||
|
(buddy-list-edit-start)
|
||||||
|
[
|
||||||
|
HEX: 13 HEX: a 0 HEX: 60c0000a
|
||||||
|
name get length >short
|
||||||
|
name get
|
||||||
|
! BUDDY GROUP ID HEX: 1a4c
|
||||||
|
! BUDDY ID HEX: 1812
|
||||||
|
0 >short
|
||||||
|
0 >short
|
||||||
|
] send-aim
|
||||||
|
! (modify-buddy)
|
||||||
|
(buddy-list-edit-stop) ;
|
||||||
|
|
||||||
: send-first-login ( -- )
|
: send-first-login ( -- )
|
||||||
[ 1 >int ] send-aim ;
|
[ 1 >int ] send-aim ;
|
||||||
|
|
||||||
|
@ -483,6 +598,8 @@ SYMBOL: message
|
||||||
: first-server
|
: first-server
|
||||||
! first server
|
! first server
|
||||||
1 stage-num set
|
1 stage-num set
|
||||||
|
aim-login-server get login-port get <client> conn set
|
||||||
|
|
||||||
send-first-login read-aim drop
|
send-first-login read-aim drop
|
||||||
|
|
||||||
! normal transmission stage
|
! normal transmission stage
|
||||||
|
|
Loading…
Reference in New Issue