Skip to content

Commit f5202c9

Browse files
committed
integrate ICQ into session mangagement
1 parent 58f68d7 commit f5202c9

File tree

7 files changed

+401
-154
lines changed

7 files changed

+401
-154
lines changed

foodgroup/auth.go

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"errors"
77
"fmt"
88
"net"
9+
"strconv"
910
"strings"
1011

1112
"github.com/mk6i/retro-aim-server/config"
@@ -81,7 +82,7 @@ type bosCookie struct {
8182
ScreenName state.DisplayScreenName `oscar:"len_prefix=uint8"`
8283
}
8384

84-
// RegisterBOSSession creates and returns a user's session.
85+
// RegisterBOSSession adds a new session to the session registry.
8586
func (s AuthService) RegisterBOSSession(authCookie []byte) (*state.Session, error) {
8687
buf, err := s.cookieBaker.Crack(authCookie)
8788
if err != nil {
@@ -109,6 +110,16 @@ func (s AuthService) RegisterBOSSession(authCookie []byte) (*state.Session, erro
109110
sess.SetUserInfoFlag(wire.OServiceUserFlagUnconfirmed)
110111
}
111112

113+
if c.ICQ == 1 {
114+
sess.SetUserInfoFlag(wire.OServiceUserFlagICQ)
115+
116+
uin, err := strconv.Atoi(u.IdentScreenName.String())
117+
if err != nil {
118+
return nil, fmt.Errorf("error converting username to UIN: %w", err)
119+
}
120+
sess.SetUIN(uint32(uin))
121+
}
122+
112123
return sess, nil
113124
}
114125

@@ -322,7 +333,7 @@ func (s AuthService) loginSuccessResponse(screenName string, isICQ bool, err err
322333
}
323334
cookie, err := s.cookieBaker.Issue(buf.Bytes())
324335
if err != nil {
325-
return wire.TLVRestBlock{}, fmt.Errorf("failed to make auth cookie: %w", err)
336+
return wire.TLVRestBlock{}, fmt.Errorf("failed to issue auth cookie: %w", err)
326337
}
327338

328339
return wire.TLVRestBlock{

0 commit comments

Comments
 (0)