Преглед изворни кода

move food group constants to oscar package

Mike пре 2 година
родитељ
комит
beba1f3436

+ 31 - 0
oscar/snacs.go

@@ -1,5 +1,36 @@
 package oscar
 
+//
+// Food Group Codes
+//
+
+const (
+	OSERVICE      uint16 = 0x0001
+	LOCATE        uint16 = 0x0002
+	BUDDY         uint16 = 0x0003
+	ICBM          uint16 = 0x0004
+	ADVERT        uint16 = 0x0005
+	INVITE        uint16 = 0x0006
+	ADMIN         uint16 = 0x0007
+	POPUP         uint16 = 0x0008
+	PD            uint16 = 0x0009
+	USER_LOOKUP   uint16 = 0x000A
+	STATS         uint16 = 0x000B
+	TRANSLATE     uint16 = 0x000C
+	CHAT_NAV      uint16 = 0x000D
+	CHAT          uint16 = 0x000E
+	ODIR          uint16 = 0x000F
+	BART          uint16 = 0x0010
+	FEEDBAG       uint16 = 0x0013
+	ICQ           uint16 = 0x0015
+	BUCP          uint16 = 0x0017
+	ALERT         uint16 = 0x0018
+	PLUGIN        uint16 = 0x0022
+	UNNAMED_FG_24 uint16 = 0x0024
+	MDIR          uint16 = 0x0025
+	ARS           uint16 = 0x044A
+)
+
 //
 // 0x01: OService
 //

+ 3 - 3
server/bucp.go

@@ -64,7 +64,7 @@ func ReceiveAndSendAuthChallenge(cfg Config, fm *FeedbagStore, r io.Reader, w io
 	default:
 		// can't find user, return login error
 		snacFrameOut := oscar.SnacFrame{
-			FoodGroup: BUCP,
+			FoodGroup: oscar.BUCP,
 			SubGroup:  BUCPLoginResponse,
 		}
 		snacPayloadOut := oscar.SNAC_0x17_0x03_BUCPLoginResponse{}
@@ -76,7 +76,7 @@ func ReceiveAndSendAuthChallenge(cfg Config, fm *FeedbagStore, r io.Reader, w io
 	}
 
 	snacFrameOut := oscar.SnacFrame{
-		FoodGroup: BUCP,
+		FoodGroup: oscar.BUCP,
 		SubGroup:  BUCPChallengeResponse,
 	}
 	snacPayloadOut := oscar.SNAC_0x17_0x07_BUCPChallengeResponse{
@@ -162,7 +162,7 @@ func ReceiveAndSendBUCPLoginRequest(cfg Config, sm SessionManager, fm *FeedbagSt
 	}
 
 	snacFrameOut := oscar.SnacFrame{
-		FoodGroup: BUCP,
+		FoodGroup: oscar.BUCP,
 		SubGroup:  BUCPLoginResponse,
 	}
 	return writeOutSNAC(snac, snacFrameOut, snacPayloadOut, sequence, w)

+ 6 - 6
server/bucp_test.go

@@ -49,7 +49,7 @@ func TestReceiveAndSendBUCPLoginRequest(t *testing.T) {
 				},
 			},
 			expectSnacFrame: oscar.SnacFrame{
-				FoodGroup: BUCP,
+				FoodGroup: oscar.BUCP,
 				SubGroup:  BUCPLoginResponse,
 			},
 			expectSNACBody: oscar.SNAC_0x17_0x03_BUCPLoginResponse{
@@ -93,7 +93,7 @@ func TestReceiveAndSendBUCPLoginRequest(t *testing.T) {
 				},
 			},
 			expectSnacFrame: oscar.SnacFrame{
-				FoodGroup: BUCP,
+				FoodGroup: oscar.BUCP,
 				SubGroup:  BUCPLoginResponse,
 			},
 			expectSNACBody: oscar.SNAC_0x17_0x03_BUCPLoginResponse{
@@ -136,7 +136,7 @@ func TestReceiveAndSendBUCPLoginRequest(t *testing.T) {
 				},
 			},
 			expectSnacFrame: oscar.SnacFrame{
-				FoodGroup: BUCP,
+				FoodGroup: oscar.BUCP,
 				SubGroup:  BUCPLoginResponse,
 			},
 			expectSNACBody: oscar.SNAC_0x17_0x03_BUCPLoginResponse{
@@ -236,7 +236,7 @@ func TestReceiveAndSendAuthChallenge(t *testing.T) {
 				},
 			},
 			expectSnacFrame: oscar.SnacFrame{
-				FoodGroup: BUCP,
+				FoodGroup: oscar.BUCP,
 				SubGroup:  BUCPChallengeResponse,
 			},
 			expectSNACBody: oscar.SNAC_0x17_0x07_BUCPChallengeResponse{
@@ -265,7 +265,7 @@ func TestReceiveAndSendAuthChallenge(t *testing.T) {
 				},
 			},
 			expectSnacFrame: oscar.SnacFrame{
-				FoodGroup: BUCP,
+				FoodGroup: oscar.BUCP,
 				SubGroup:  BUCPChallengeResponse,
 			},
 			expectSNACBody: oscar.SNAC_0x17_0x07_BUCPChallengeResponse{
@@ -293,7 +293,7 @@ func TestReceiveAndSendAuthChallenge(t *testing.T) {
 				},
 			},
 			expectSnacFrame: oscar.SnacFrame{
-				FoodGroup: BUCP,
+				FoodGroup: oscar.BUCP,
 				SubGroup:  BUCPLoginResponse,
 			},
 			expectSNACBody: oscar.SNAC_0x17_0x03_BUCPLoginResponse{

+ 2 - 2
server/buddy.go

@@ -79,7 +79,7 @@ func NotifyArrival(sess *Session, sm SessionManager, fm FeedbagManager) error {
 
 	sm.BroadcastToScreenNames(screenNames, XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: BUDDY,
+			FoodGroup: oscar.BUDDY,
 			SubGroup:  BuddyArrived,
 		},
 		snacOut: oscar.SNAC_0x03_0x0A_BuddyArrived{
@@ -104,7 +104,7 @@ func NotifyDeparture(sess *Session, sm SessionManager, fm *FeedbagStore) error {
 
 	sm.BroadcastToScreenNames(screenNames, XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: BUDDY,
+			FoodGroup: oscar.BUDDY,
 			SubGroup:  BuddyDeparted,
 		},
 		snacOut: oscar.SNAC_0x03_0x0B_BuddyDeparted{

+ 5 - 5
server/chat.go

@@ -42,7 +42,7 @@ type ChatService struct {
 
 func (s ChatService) ChannelMsgToHostHandler(sess *Session, sm SessionManager, snacPayloadIn oscar.SNAC_0x0E_0x05_ChatChannelMsgToHost) (*XMessage, error) {
 	snacFrameOut := oscar.SnacFrame{
-		FoodGroup: CHAT,
+		FoodGroup: oscar.CHAT,
 		SubGroup:  oscar.ChatChannelMsgToClient,
 	}
 	snacPayloadOut := oscar.SNAC_0x0E_0x06_ChatChannelMsgToClient{
@@ -97,7 +97,7 @@ func SetOnlineChatUsers(sess *Session, sm SessionManager) {
 
 	sm.SendToScreenName(sess.ScreenName, XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: CHAT,
+			FoodGroup: oscar.CHAT,
 			SubGroup:  oscar.ChatUsersJoined,
 		},
 		snacOut: snacPayloadOut,
@@ -107,7 +107,7 @@ func SetOnlineChatUsers(sess *Session, sm SessionManager) {
 func AlertUserJoined(sess *Session, sm SessionManager) {
 	sm.BroadcastExcept(sess, XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: CHAT,
+			FoodGroup: oscar.CHAT,
 			SubGroup:  oscar.ChatUsersJoined,
 		},
 		snacOut: oscar.SNAC_0x0E_0x03_ChatUsersJoined{
@@ -127,7 +127,7 @@ func AlertUserJoined(sess *Session, sm SessionManager) {
 func AlertUserLeft(sess *Session, sm SessionManager) {
 	sm.BroadcastExcept(sess, XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: CHAT,
+			FoodGroup: oscar.CHAT,
 			SubGroup:  oscar.ChatUsersLeft,
 		},
 		snacOut: oscar.SNAC_0x0E_0x04_ChatUsersLeft{
@@ -147,7 +147,7 @@ func AlertUserLeft(sess *Session, sm SessionManager) {
 func SendChatRoomInfoUpdate(sess *Session, sm SessionManager, room ChatRoom) {
 	sm.SendToScreenName(sess.ScreenName, XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: CHAT,
+			FoodGroup: oscar.CHAT,
 			SubGroup:  oscar.ChatRoomInfoUpdate,
 		},
 		snacOut: oscar.SNAC_0x0E_0x02_ChatRoomInfoUpdate{

+ 3 - 3
server/chat_nav.go

@@ -65,7 +65,7 @@ type ChatCookie struct {
 func (s ChatNavService) RequestChatRightsHandler() XMessage {
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: CHAT_NAV,
+			FoodGroup: oscar.CHAT_NAV,
 			SubGroup:  oscar.ChatNavNavInfo,
 		},
 		snacOut: oscar.SNAC_0x0D_0x09_ChatNavNavInfo{
@@ -151,7 +151,7 @@ func (s ChatNavService) CreateRoomHandler(sess *Session, cr *ChatRegistry, newCh
 
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: CHAT_NAV,
+			FoodGroup: oscar.CHAT_NAV,
 			SubGroup:  oscar.ChatNavNavInfo,
 		},
 		snacOut: oscar.SNAC_0x0D_0x09_ChatNavNavInfo{
@@ -183,7 +183,7 @@ func (s ChatNavService) RequestRoomInfoHandler(cr *ChatRegistry, snacPayloadIn o
 
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: CHAT_NAV,
+			FoodGroup: oscar.CHAT_NAV,
 			SubGroup:  oscar.ChatNavNavInfo,
 		},
 		snacOut: oscar.SNAC_0x0D_0x09_ChatNavNavInfo{

+ 8 - 8
server/chat_nav_test.go

@@ -76,7 +76,7 @@ func TestSendAndReceiveCreateRoom(t *testing.T) {
 	//
 	expectSNAC := XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: CHAT_NAV,
+			FoodGroup: oscar.CHAT_NAV,
 			SubGroup:  oscar.ChatNavNavInfo,
 		},
 		snacOut: oscar.SNAC_0x0D_0x09_ChatNavNavInfo{
@@ -119,14 +119,14 @@ func TestChatNavRouter_RouteChatNavRouter(t *testing.T) {
 			name: "receive ChatNavRequestChatRights, return ChatNavNavInfo",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT_NAV,
+					FoodGroup: oscar.CHAT_NAV,
 					SubGroup:  oscar.ChatNavRequestChatRights,
 				},
 				snacOut: struct{}{},
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT_NAV,
+					FoodGroup: oscar.CHAT_NAV,
 					SubGroup:  oscar.ChatNavNavInfo,
 				},
 				snacOut: oscar.SNAC_0x0D_0x09_ChatNavNavInfo{
@@ -145,7 +145,7 @@ func TestChatNavRouter_RouteChatNavRouter(t *testing.T) {
 			name: "receive ChatNavRequestRoomInfo, return ChatNavNavInfo",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT_NAV,
+					FoodGroup: oscar.CHAT_NAV,
 					SubGroup:  oscar.ChatNavRequestRoomInfo,
 				},
 				snacOut: oscar.SNAC_0x0D_0x04_ChatNavRequestRoomInfo{
@@ -154,7 +154,7 @@ func TestChatNavRouter_RouteChatNavRouter(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT_NAV,
+					FoodGroup: oscar.CHAT_NAV,
 					SubGroup:  oscar.ChatNavNavInfo,
 				},
 				snacOut: oscar.SNAC_0x0D_0x09_ChatNavNavInfo{
@@ -173,7 +173,7 @@ func TestChatNavRouter_RouteChatNavRouter(t *testing.T) {
 			name: "receive ChatNavCreateRoom, return ChatNavNavInfo",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT_NAV,
+					FoodGroup: oscar.CHAT_NAV,
 					SubGroup:  oscar.ChatNavCreateRoom,
 				},
 				snacOut: oscar.SNAC_0x0E_0x02_ChatRoomInfoUpdate{
@@ -182,7 +182,7 @@ func TestChatNavRouter_RouteChatNavRouter(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT_NAV,
+					FoodGroup: oscar.CHAT_NAV,
 					SubGroup:  oscar.ChatNavNavInfo,
 				},
 				snacOut: oscar.SNAC_0x0D_0x09_ChatNavNavInfo{
@@ -201,7 +201,7 @@ func TestChatNavRouter_RouteChatNavRouter(t *testing.T) {
 			name: "receive ChatNavRequestOccupantList, return ErrUnsupportedSubGroup",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT_NAV,
+					FoodGroup: oscar.CHAT_NAV,
 					SubGroup:  oscar.ChatNavRequestOccupantList,
 				},
 				snacOut: struct{}{},

+ 7 - 7
server/chat_test.go

@@ -45,7 +45,7 @@ func TestSendAndReceiveChatChannelMsgToHost(t *testing.T) {
 			},
 			expectSNACToParticipants: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT,
+					FoodGroup: oscar.CHAT,
 					SubGroup:  oscar.ChatChannelMsgToClient,
 				},
 				snacOut: oscar.SNAC_0x0E_0x06_ChatChannelMsgToClient{
@@ -73,7 +73,7 @@ func TestSendAndReceiveChatChannelMsgToHost(t *testing.T) {
 			},
 			expectOutput: &XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT,
+					FoodGroup: oscar.CHAT,
 					SubGroup:  oscar.ChatChannelMsgToClient,
 				},
 				snacOut: oscar.SNAC_0x0E_0x06_ChatChannelMsgToClient{
@@ -119,7 +119,7 @@ func TestSendAndReceiveChatChannelMsgToHost(t *testing.T) {
 			},
 			expectSNACToParticipants: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT,
+					FoodGroup: oscar.CHAT,
 					SubGroup:  oscar.ChatChannelMsgToClient,
 				},
 				snacOut: oscar.SNAC_0x0E_0x06_ChatChannelMsgToClient{
@@ -186,7 +186,7 @@ func TestChatRouter_RouteChat(t *testing.T) {
 			name: "receive ChatChannelMsgToHost, return ChatChannelMsgToClient",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT,
+					FoodGroup: oscar.CHAT,
 					SubGroup:  oscar.ChatChannelMsgToHost,
 				},
 				snacOut: oscar.SNAC_0x0E_0x05_ChatChannelMsgToHost{
@@ -195,7 +195,7 @@ func TestChatRouter_RouteChat(t *testing.T) {
 			},
 			output: &XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT,
+					FoodGroup: oscar.CHAT,
 					SubGroup:  oscar.ChatChannelMsgToClient,
 				},
 				snacOut: oscar.SNAC_0x0E_0x06_ChatChannelMsgToClient{
@@ -207,7 +207,7 @@ func TestChatRouter_RouteChat(t *testing.T) {
 			name: "receive ChatChannelMsgToHost, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT,
+					FoodGroup: oscar.CHAT,
 					SubGroup:  oscar.ChatChannelMsgToHost,
 				},
 				snacOut: oscar.SNAC_0x0E_0x05_ChatChannelMsgToHost{
@@ -220,7 +220,7 @@ func TestChatRouter_RouteChat(t *testing.T) {
 			name: "receive ChatRowListInfo, return ErrUnsupportedSubGroup",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: CHAT,
+					FoodGroup: oscar.CHAT,
 					SubGroup:  oscar.ChatRowListInfo,
 				},
 				snacOut: struct{}{},

+ 10 - 10
server/feedbag.go

@@ -105,7 +105,7 @@ type FeedbagService struct {
 func (s FeedbagService) RightsQueryHandler() XMessage {
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: FEEDBAG,
+			FoodGroup: oscar.FEEDBAG,
 			SubGroup:  oscar.FeedbagRightsReply,
 		},
 		snacOut: oscar.SNAC_0x13_0x03_FeedbagRightsReply{
@@ -200,7 +200,7 @@ func (s FeedbagService) QueryHandler(sess *Session, fm FeedbagManager) (XMessage
 
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: FEEDBAG,
+			FoodGroup: oscar.FEEDBAG,
 			SubGroup:  oscar.FeedbagReply,
 		},
 		snacOut: oscar.SNAC_0x13_0x06_FeedbagReply{
@@ -227,7 +227,7 @@ func (s FeedbagService) QueryIfModifiedHandler(sess *Session, fm FeedbagManager,
 		if lm.Before(time.Unix(int64(snacPayloadIn.LastUpdate), 0)) {
 			return XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagReplyNotModified,
 				},
 				snacOut: oscar.SNAC_0x13_0x05_FeedbagQueryIfModified{
@@ -240,7 +240,7 @@ func (s FeedbagService) QueryIfModifiedHandler(sess *Session, fm FeedbagManager,
 
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: FEEDBAG,
+			FoodGroup: oscar.FEEDBAG,
 			SubGroup:  oscar.FeedbagReply,
 		},
 		snacOut: oscar.SNAC_0x13_0x06_FeedbagReply{
@@ -258,7 +258,7 @@ func (s FeedbagService) InsertItemHandler(sm SessionManager, sess *Session, fm F
 		if item.ClassID == 3 && item.Name == sess.ScreenName {
 			return XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagErr,
 				},
 				snacOut: oscar.SnacError{
@@ -305,7 +305,7 @@ func (s FeedbagService) InsertItemHandler(sm SessionManager, sess *Session, fm F
 
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: FEEDBAG,
+			FoodGroup: oscar.FEEDBAG,
 			SubGroup:  oscar.FeedbagStatus,
 		},
 		snacOut: snacPayloadOut,
@@ -337,7 +337,7 @@ func (s FeedbagService) UpdateItemHandler(sm SessionManager, sess *Session, fm F
 
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: FEEDBAG,
+			FoodGroup: oscar.FEEDBAG,
 			SubGroup:  oscar.FeedbagStatus,
 		},
 		snacOut: snacPayloadOut,
@@ -375,7 +375,7 @@ func (s FeedbagService) DeleteItemHandler(sm SessionManager, sess *Session, fm F
 
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: FEEDBAG,
+			FoodGroup: oscar.FEEDBAG,
 			SubGroup:  oscar.FeedbagStatus,
 		},
 		snacOut: snacPayloadOut,
@@ -397,7 +397,7 @@ func NotifyBuddyArrived(screenNameFrom, screenNameTo string, sm SessionManager)
 	}
 	sm.SendToScreenName(screenNameTo, XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: BUDDY,
+			FoodGroup: oscar.BUDDY,
 			SubGroup:  BuddyArrived,
 		},
 		snacOut: oscar.SNAC_0x03_0x0A_BuddyArrived{
@@ -419,7 +419,7 @@ func NotifyBuddyDeparted(screenNameFrom, screenNameTo string, sm SessionManager)
 
 	sm.SendToScreenName(screenNameTo, XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: BUDDY,
+			FoodGroup: oscar.BUDDY,
 			SubGroup:  BuddyDeparted,
 		},
 		snacOut: oscar.SNAC_0x03_0x0B_BuddyDeparted{

+ 31 - 31
server/feedbag_test.go

@@ -30,7 +30,7 @@ func TestQueryHandler(t *testing.T) {
 			lastModified: time.UnixMilli(0),
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagReply,
 				},
 				snacOut: oscar.SNAC_0x13_0x06_FeedbagReply{
@@ -52,7 +52,7 @@ func TestQueryHandler(t *testing.T) {
 			lastModified: time.UnixMilli(1696472198082),
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagReply,
 				},
 				snacOut: oscar.SNAC_0x13_0x06_FeedbagReply{
@@ -125,7 +125,7 @@ func TestQueryIfModifiedHandler(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagReply,
 				},
 				snacOut: oscar.SNAC_0x13_0x06_FeedbagReply{
@@ -150,7 +150,7 @@ func TestQueryIfModifiedHandler(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagReply,
 				},
 				snacOut: oscar.SNAC_0x13_0x06_FeedbagReply{
@@ -184,7 +184,7 @@ func TestQueryIfModifiedHandler(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagReplyNotModified,
 				},
 				snacOut: oscar.SNAC_0x13_0x05_FeedbagQueryIfModified{
@@ -283,7 +283,7 @@ func TestInsertItemHandler(t *testing.T) {
 			},
 			clientResponse: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagStatus,
 				},
 				snacOut: oscar.SNAC_0x13_0x0E_FeedbagStatus{
@@ -298,7 +298,7 @@ func TestInsertItemHandler(t *testing.T) {
 					user: "user_screen_name",
 					msg: XMessage{
 						snacFrame: oscar.SnacFrame{
-							FoodGroup: BUDDY,
+							FoodGroup: oscar.BUDDY,
 							SubGroup:  BuddyArrived,
 						},
 						snacOut: oscar.SNAC_0x03_0x0A_BuddyArrived{
@@ -315,7 +315,7 @@ func TestInsertItemHandler(t *testing.T) {
 					user: "user_screen_name",
 					msg: XMessage{
 						snacFrame: oscar.SnacFrame{
-							FoodGroup: BUDDY,
+							FoodGroup: oscar.BUDDY,
 							SubGroup:  BuddyArrived,
 						},
 						snacOut: oscar.SNAC_0x03_0x0A_BuddyArrived{
@@ -353,7 +353,7 @@ func TestInsertItemHandler(t *testing.T) {
 			},
 			clientResponse: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagStatus,
 				},
 				snacOut: oscar.SNAC_0x13_0x0E_FeedbagStatus{
@@ -387,7 +387,7 @@ func TestInsertItemHandler(t *testing.T) {
 			},
 			clientResponse: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagStatus,
 				},
 				snacOut: oscar.SNAC_0x13_0x0E_FeedbagStatus{
@@ -428,7 +428,7 @@ func TestInsertItemHandler(t *testing.T) {
 					user: "buddy_1",
 					msg: XMessage{
 						snacFrame: oscar.SnacFrame{
-							FoodGroup: BUDDY,
+							FoodGroup: oscar.BUDDY,
 							SubGroup:  BuddyDeparted,
 						},
 						snacOut: oscar.SNAC_0x03_0x0B_BuddyDeparted{
@@ -443,7 +443,7 @@ func TestInsertItemHandler(t *testing.T) {
 					user: "user_screen_name",
 					msg: XMessage{
 						snacFrame: oscar.SnacFrame{
-							FoodGroup: BUDDY,
+							FoodGroup: oscar.BUDDY,
 							SubGroup:  BuddyDeparted,
 						},
 						snacOut: oscar.SNAC_0x03_0x0B_BuddyDeparted{
@@ -457,7 +457,7 @@ func TestInsertItemHandler(t *testing.T) {
 			},
 			clientResponse: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagStatus,
 				},
 				snacOut: oscar.SNAC_0x13_0x0E_FeedbagStatus{
@@ -491,7 +491,7 @@ func TestInsertItemHandler(t *testing.T) {
 			},
 			clientResponse: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagStatus,
 				},
 				snacOut: oscar.SNAC_0x13_0x0E_FeedbagStatus{
@@ -514,7 +514,7 @@ func TestInsertItemHandler(t *testing.T) {
 			},
 			clientResponse: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagErr,
 				},
 				snacOut: oscar.SnacError{
@@ -581,7 +581,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			name: "receive FeedbagRightsQuery, return FeedbagRightsReply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagRightsQuery,
 				},
 				snacOut: oscar.SNAC_0x13_0x02_FeedbagRightsQuery{
@@ -597,7 +597,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagRightsReply,
 				},
 				snacOut: oscar.SNAC_0x13_0x03_FeedbagRightsReply{
@@ -616,7 +616,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			name: "receive FeedbagQuery, return FeedbagReply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagQuery,
 				},
 				snacOut: oscar.SNAC_0x13_0x02_FeedbagRightsQuery{
@@ -632,7 +632,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagReply,
 				},
 				snacOut: oscar.SNAC_0x13_0x06_FeedbagReply{
@@ -644,7 +644,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			name: "receive FeedbagQueryIfModified, return FeedbagRightsReply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagQueryIfModified,
 				},
 				snacOut: oscar.SNAC_0x13_0x05_FeedbagQueryIfModified{
@@ -653,7 +653,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagReply,
 				},
 				snacOut: oscar.SNAC_0x13_0x06_FeedbagReply{
@@ -665,7 +665,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			name: "receive FeedbagUse, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagUse,
 				},
 				snacOut: struct{}{},
@@ -676,7 +676,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			name: "receive FeedbagInsertItem, return BuddyArrived and FeedbagStatus",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagInsertItem,
 				},
 				snacOut: oscar.SNAC_0x13_0x08_FeedbagInsertItem{
@@ -689,7 +689,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagStatus,
 				},
 				snacOut: oscar.SNAC_0x13_0x0E_FeedbagStatus{
@@ -701,7 +701,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			name: "receive FeedbagUpdateItem, return BuddyArrived and FeedbagStatus",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagUpdateItem,
 				},
 				snacOut: oscar.SNAC_0x13_0x09_FeedbagUpdateItem{
@@ -714,7 +714,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagStatus,
 				},
 				snacOut: oscar.SNAC_0x13_0x0E_FeedbagStatus{
@@ -726,7 +726,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			name: "receive FeedbagDeleteItem, return FeedbagStatus",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagDeleteItem,
 				},
 				snacOut: oscar.SNAC_0x13_0x0A_FeedbagDeleteItem{
@@ -739,7 +739,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagStatus,
 				},
 				snacOut: oscar.SNAC_0x13_0x0E_FeedbagStatus{
@@ -751,7 +751,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			name: "receive FeedbagStartCluster, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagStartCluster,
 				},
 				snacOut: oscar.SNAC_0x13_0x11_FeedbagStartCluster{
@@ -771,7 +771,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			name: "receive FeedbagEndCluster, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagEndCluster,
 				},
 				snacOut: struct{}{},
@@ -782,7 +782,7 @@ func TestFeedbagRouter_RouteFeedbag(t *testing.T) {
 			name: "receive FeedbagDeleteUser, return ErrUnsupportedSubGroup",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: FEEDBAG,
+					FoodGroup: oscar.FEEDBAG,
 					SubGroup:  oscar.FeedbagDeleteUser,
 				},
 				snacOut: struct{}{},

+ 10 - 10
server/icbm.go

@@ -77,7 +77,7 @@ type ICBMService struct {
 func (s ICBMService) ParameterQueryHandler() XMessage {
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: ICBM,
+			FoodGroup: oscar.ICBM,
 			SubGroup:  oscar.ICBMParameterReply,
 		},
 		snacOut: oscar.SNAC_0x04_0x05_ICBMParameterReply{
@@ -104,7 +104,7 @@ func (s ICBMService) ChannelMsgToHostHandler(sm SessionManager, fm FeedbagManage
 		}
 		return &XMessage{
 			snacFrame: oscar.SnacFrame{
-				FoodGroup: ICBM,
+				FoodGroup: oscar.ICBM,
 				SubGroup:  oscar.ICBMErr,
 			},
 			snacOut: oscar.SnacError{
@@ -118,7 +118,7 @@ func (s ICBMService) ChannelMsgToHostHandler(sm SessionManager, fm FeedbagManage
 	case errors.Is(err, ErrSessNotFound):
 		return &XMessage{
 			snacFrame: oscar.SnacFrame{
-				FoodGroup: ICBM,
+				FoodGroup: oscar.ICBM,
 				SubGroup:  oscar.ICBMErr,
 			},
 			snacOut: oscar.SnacError{
@@ -152,7 +152,7 @@ func (s ICBMService) ChannelMsgToHostHandler(sm SessionManager, fm FeedbagManage
 
 	sm.SendToScreenName(recipSess.ScreenName, XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: ICBM,
+			FoodGroup: oscar.ICBM,
 			SubGroup:  oscar.ICBMChannelMsgToclient,
 		},
 		snacOut: clientIM,
@@ -166,7 +166,7 @@ func (s ICBMService) ChannelMsgToHostHandler(sm SessionManager, fm FeedbagManage
 	// ack message back to sender
 	return &XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: ICBM,
+			FoodGroup: oscar.ICBM,
 			SubGroup:  oscar.ICBMHostAck,
 		},
 		snacOut: oscar.SNAC_0x04_0x0C_ICBMHostAck{
@@ -188,7 +188,7 @@ func (s ICBMService) ClientEventHandler(sm SessionManager, fm FeedbagManager, se
 	default:
 		sm.SendToScreenName(snacPayloadIn.ScreenName, XMessage{
 			snacFrame: oscar.SnacFrame{
-				FoodGroup: ICBM,
+				FoodGroup: oscar.ICBM,
 				SubGroup:  oscar.ICBMClientEvent,
 			},
 			snacOut: oscar.SNAC_0x04_0x14_ICBMClientEvent{
@@ -208,7 +208,7 @@ func (s ICBMService) EvilRequestHandler(sm SessionManager, fm FeedbagManager, se
 	if snacPayloadIn.ScreenName == sess.ScreenName {
 		return XMessage{
 			snacFrame: oscar.SnacFrame{
-				FoodGroup: ICBM,
+				FoodGroup: oscar.ICBM,
 				SubGroup:  oscar.ICBMErr,
 			},
 			snacOut: oscar.SnacError{
@@ -224,7 +224,7 @@ func (s ICBMService) EvilRequestHandler(sm SessionManager, fm FeedbagManager, se
 	if blocked != BlockedNo {
 		return XMessage{
 			snacFrame: oscar.SnacFrame{
-				FoodGroup: ICBM,
+				FoodGroup: oscar.ICBM,
 				SubGroup:  oscar.ICBMErr,
 			},
 			snacOut: oscar.SnacError{
@@ -261,7 +261,7 @@ func (s ICBMService) EvilRequestHandler(sm SessionManager, fm FeedbagManager, se
 
 	sm.SendToScreenName(recipSess.ScreenName, XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: OSERVICE,
+			FoodGroup: oscar.OSERVICE,
 			SubGroup:  oscar.OServiceEvilNotification,
 		},
 		snacOut: notif,
@@ -273,7 +273,7 @@ func (s ICBMService) EvilRequestHandler(sm SessionManager, fm FeedbagManager, se
 
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: ICBM,
+			FoodGroup: oscar.ICBM,
 			SubGroup:  oscar.ICBMEvilReply,
 		},
 		snacOut: oscar.SNAC_0x04_0x09_ICBMEvilReply{

+ 27 - 27
server/icbm_test.go

@@ -52,7 +52,7 @@ func TestSendAndReceiveChannelMsgTohost(t *testing.T) {
 			},
 			expectSNACToClient: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMChannelMsgToclient,
 				},
 				snacOut: oscar.SNAC_0x04_0x07_ICBMChannelMsgToClient{
@@ -76,7 +76,7 @@ func TestSendAndReceiveChannelMsgTohost(t *testing.T) {
 			},
 			expectOutput: &XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMHostAck,
 				},
 				snacOut: oscar.SNAC_0x04_0x0C_ICBMHostAck{
@@ -103,7 +103,7 @@ func TestSendAndReceiveChannelMsgTohost(t *testing.T) {
 			},
 			expectSNACToClient: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMChannelMsgToclient,
 				},
 				snacOut: oscar.SNAC_0x04_0x07_ICBMChannelMsgToClient{
@@ -147,7 +147,7 @@ func TestSendAndReceiveChannelMsgTohost(t *testing.T) {
 			},
 			expectOutput: &XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMErr,
 				},
 				snacOut: oscar.SnacError{
@@ -179,7 +179,7 @@ func TestSendAndReceiveChannelMsgTohost(t *testing.T) {
 			},
 			expectOutput: &XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMErr,
 				},
 				snacOut: oscar.SnacError{
@@ -212,7 +212,7 @@ func TestSendAndReceiveChannelMsgTohost(t *testing.T) {
 			},
 			expectOutput: &XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMErr,
 				},
 				snacOut: oscar.SnacError{
@@ -280,7 +280,7 @@ func TestSendAndReceiveClientEvent(t *testing.T) {
 			},
 			expectSNACToClient: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMClientEvent,
 				},
 				snacOut: oscar.SNAC_0x04_0x14_ICBMClientEvent{
@@ -364,7 +364,7 @@ func TestSendAndReceiveEvilRequest(t *testing.T) {
 			recipientScreenName: "recipient-screen-name",
 			broadcastMessage: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: BUDDY,
+					FoodGroup: oscar.BUDDY,
 					SubGroup:  BuddyArrived,
 				},
 				snacOut: oscar.SNAC_0x03_0x0A_BuddyArrived{
@@ -384,7 +384,7 @@ func TestSendAndReceiveEvilRequest(t *testing.T) {
 			},
 			expectSNACToClient: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceEvilNotification,
 				},
 				snacOut: oscar.SNAC_0x01_0x10_OServiceEvilNotificationAnon{
@@ -393,7 +393,7 @@ func TestSendAndReceiveEvilRequest(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMEvilReply,
 				},
 				snacOut: oscar.SNAC_0x04_0x09_ICBMEvilReply{
@@ -412,7 +412,7 @@ func TestSendAndReceiveEvilRequest(t *testing.T) {
 			recipientBuddies:    []string{"buddy1", "buddy2"},
 			broadcastMessage: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: BUDDY,
+					FoodGroup: oscar.BUDDY,
 					SubGroup:  BuddyArrived,
 				},
 				snacOut: oscar.SNAC_0x03_0x0A_BuddyArrived{
@@ -431,7 +431,7 @@ func TestSendAndReceiveEvilRequest(t *testing.T) {
 			},
 			expectSNACToClient: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceEvilNotification,
 				},
 				snacOut: oscar.SNAC_0x01_0x10_OServiceEvilNotification{
@@ -444,7 +444,7 @@ func TestSendAndReceiveEvilRequest(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMEvilReply,
 				},
 				snacOut: oscar.SNAC_0x04_0x09_ICBMEvilReply{
@@ -467,7 +467,7 @@ func TestSendAndReceiveEvilRequest(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMErr,
 				},
 				snacOut: oscar.SnacError{
@@ -489,7 +489,7 @@ func TestSendAndReceiveEvilRequest(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMErr,
 				},
 				snacOut: oscar.SnacError{
@@ -509,7 +509,7 @@ func TestSendAndReceiveEvilRequest(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMErr,
 				},
 				snacOut: oscar.SnacError{
@@ -579,7 +579,7 @@ func TestICBMRouter_RouteICBM(t *testing.T) {
 			name: "receive ICBMAddParameters SNAC, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMAddParameters,
 				},
 				snacOut: oscar.SNAC_0x04_0x02_ICBMAddParameters{
@@ -592,14 +592,14 @@ func TestICBMRouter_RouteICBM(t *testing.T) {
 			name: "receive ICBMParameterQuery, return ICBMParameterReply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMParameterQuery,
 				},
 				snacOut: struct{}{}, // empty SNAC
 			},
 			output: &XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMParameterReply,
 				},
 				snacOut: oscar.SNAC_0x04_0x05_ICBMParameterReply{
@@ -611,7 +611,7 @@ func TestICBMRouter_RouteICBM(t *testing.T) {
 			name: "receive ICBMChannelMsgToHost, return ICBMHostAck",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMChannelMsgToHost,
 				},
 				snacOut: oscar.SNAC_0x04_0x06_ICBMChannelMsgToHost{
@@ -620,7 +620,7 @@ func TestICBMRouter_RouteICBM(t *testing.T) {
 			},
 			output: &XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMHostAck,
 				},
 				snacOut: oscar.SNAC_0x04_0x0C_ICBMHostAck{
@@ -632,7 +632,7 @@ func TestICBMRouter_RouteICBM(t *testing.T) {
 			name: "receive ICBMChannelMsgToHost, return no reply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMChannelMsgToHost,
 				},
 				snacOut: oscar.SNAC_0x04_0x06_ICBMChannelMsgToHost{
@@ -645,7 +645,7 @@ func TestICBMRouter_RouteICBM(t *testing.T) {
 			name: "receive ICBMEvilRequest, return ICBMEvilReply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMEvilRequest,
 				},
 				snacOut: oscar.SNAC_0x04_0x08_ICBMEvilRequest{
@@ -654,7 +654,7 @@ func TestICBMRouter_RouteICBM(t *testing.T) {
 			},
 			output: &XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMEvilReply,
 				},
 				snacOut: oscar.SNAC_0x04_0x09_ICBMEvilReply{
@@ -666,7 +666,7 @@ func TestICBMRouter_RouteICBM(t *testing.T) {
 			name: "receive ICBMClientErr, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMClientErr,
 				},
 				snacOut: oscar.SNAC_0x04_0x0B_ICBMClientErr{
@@ -679,7 +679,7 @@ func TestICBMRouter_RouteICBM(t *testing.T) {
 			name: "receive ICBMClientEvent, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMClientEvent,
 				},
 				snacOut: oscar.SNAC_0x04_0x14_ICBMClientEvent{
@@ -692,7 +692,7 @@ func TestICBMRouter_RouteICBM(t *testing.T) {
 			name: "receive ICBMMissedCalls, expect ErrUnsupportedSubGroup",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: ICBM,
+					FoodGroup: oscar.ICBM,
 					SubGroup:  oscar.ICBMMissedCalls,
 				},
 				snacOut: struct{}{}, // empty SNAC

+ 6 - 6
server/locate.go

@@ -74,7 +74,7 @@ type LocateService struct {
 func (s LocateService) RightsQueryHandler() XMessage {
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: LOCATE,
+			FoodGroup: oscar.LOCATE,
 			SubGroup:  oscar.LocateRightsReply,
 		},
 		snacOut: oscar.SNAC_0x02_0x03_LocateRightsReply{
@@ -132,7 +132,7 @@ func (s LocateService) UserInfoQuery2Handler(sess *Session, sm SessionManager, f
 	case blocked != BlockedNo:
 		return XMessage{
 			snacFrame: oscar.SnacFrame{
-				FoodGroup: LOCATE,
+				FoodGroup: oscar.LOCATE,
 				SubGroup:  oscar.LocateErr,
 			},
 			snacOut: oscar.SnacError{
@@ -146,7 +146,7 @@ func (s LocateService) UserInfoQuery2Handler(sess *Session, sm SessionManager, f
 	case errors.Is(err, ErrSessNotFound):
 		return XMessage{
 			snacFrame: oscar.SnacFrame{
-				FoodGroup: LOCATE,
+				FoodGroup: oscar.LOCATE,
 				SubGroup:  oscar.LocateErr,
 			},
 			snacOut: oscar.SnacError{
@@ -191,7 +191,7 @@ func (s LocateService) UserInfoQuery2Handler(sess *Session, sm SessionManager, f
 
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: LOCATE,
+			FoodGroup: oscar.LOCATE,
 			SubGroup:  oscar.LocateUserInfoReply,
 		},
 		snacOut: oscar.SNAC_0x02_0x06_LocateUserInfoReply{
@@ -206,7 +206,7 @@ func (s LocateService) UserInfoQuery2Handler(sess *Session, sm SessionManager, f
 func (s LocateService) SetDirInfoHandler() XMessage {
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: LOCATE,
+			FoodGroup: oscar.LOCATE,
 			SubGroup:  oscar.LocateSetDirReply,
 		},
 		snacOut: oscar.SNAC_0x02_0x0A_LocateSetDirReply{
@@ -218,7 +218,7 @@ func (s LocateService) SetDirInfoHandler() XMessage {
 func (s LocateService) SetKeywordInfoHandler() XMessage {
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: LOCATE,
+			FoodGroup: oscar.LOCATE,
 			SubGroup:  oscar.LocateSetKeywordReply,
 		},
 		snacOut: oscar.SNAC_0x02_0x10_LocateSetKeywordReply{

+ 17 - 17
server/locate_test.go

@@ -62,7 +62,7 @@ func TestSendAndReceiveUserInfoQuery2(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateUserInfoReply,
 				},
 				snacOut: oscar.SNAC_0x02_0x06_LocateUserInfoReply{
@@ -106,7 +106,7 @@ func TestSendAndReceiveUserInfoQuery2(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateUserInfoReply,
 				},
 				snacOut: oscar.SNAC_0x02_0x06_LocateUserInfoReply{
@@ -161,7 +161,7 @@ func TestSendAndReceiveUserInfoQuery2(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateUserInfoReply,
 				},
 				snacOut: oscar.SNAC_0x02_0x06_LocateUserInfoReply{
@@ -208,7 +208,7 @@ func TestSendAndReceiveUserInfoQuery2(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateUserInfoReply,
 				},
 				snacOut: oscar.SNAC_0x02_0x06_LocateUserInfoReply{
@@ -242,7 +242,7 @@ func TestSendAndReceiveUserInfoQuery2(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateErr,
 				},
 				snacOut: oscar.SnacError{
@@ -269,7 +269,7 @@ func TestSendAndReceiveUserInfoQuery2(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateErr,
 				},
 				snacOut: oscar.SnacError{
@@ -326,14 +326,14 @@ func TestLocateRouter_RouteLocate(t *testing.T) {
 			name: "receive LocateRightsQuery, return LocateRightsReply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateRightsQuery,
 				},
 				snacOut: struct{}{},
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateRightsReply,
 				},
 				snacOut: oscar.SNAC_0x02_0x03_LocateRightsReply{
@@ -352,7 +352,7 @@ func TestLocateRouter_RouteLocate(t *testing.T) {
 			name: "receive LocateSetInfo, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateSetInfo,
 				},
 				snacOut: oscar.SNAC_0x02_0x04_LocateSetInfo{
@@ -374,7 +374,7 @@ func TestLocateRouter_RouteLocate(t *testing.T) {
 			name: "receive LocateSetDirInfo, return LocateSetDirReply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateSetDirInfo,
 				},
 				snacOut: oscar.SNAC_0x02_0x09_LocateSetDirInfo{
@@ -390,7 +390,7 @@ func TestLocateRouter_RouteLocate(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateSetDirReply,
 				},
 				snacOut: oscar.SNAC_0x02_0x0A_LocateSetDirReply{
@@ -402,7 +402,7 @@ func TestLocateRouter_RouteLocate(t *testing.T) {
 			name: "receive LocateGetDirInfo, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateGetDirInfo,
 				},
 				snacOut: oscar.SNAC_0x02_0x0B_LocateGetDirInfo{
@@ -417,7 +417,7 @@ func TestLocateRouter_RouteLocate(t *testing.T) {
 			name: "receive LocateSetKeywordInfo, return LocateSetKeywordReply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateSetKeywordInfo,
 				},
 				snacOut: oscar.SNAC_0x02_0x0F_LocateSetKeywordInfo{
@@ -433,7 +433,7 @@ func TestLocateRouter_RouteLocate(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateSetKeywordReply,
 				},
 				snacOut: oscar.SNAC_0x02_0x10_LocateSetKeywordReply{
@@ -445,7 +445,7 @@ func TestLocateRouter_RouteLocate(t *testing.T) {
 			name: "receive LocateUserInfoQuery2, return LocateUserInfoReply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateUserInfoQuery2,
 				},
 				snacOut: oscar.SNAC_0x02_0x15_LocateUserInfoQuery2{
@@ -454,7 +454,7 @@ func TestLocateRouter_RouteLocate(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateUserInfoReply,
 				},
 				snacOut: oscar.SNAC_0x02_0x06_LocateUserInfoReply{
@@ -476,7 +476,7 @@ func TestLocateRouter_RouteLocate(t *testing.T) {
 			name: "receive LocateGetKeywordInfo, expect ErrUnsupportedSubGroup",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: LOCATE,
+					FoodGroup: oscar.LOCATE,
 					SubGroup:  oscar.LocateGetKeywordInfo,
 				},
 				snacOut: struct{}{}, // empty SNAC

+ 11 - 11
server/oservice.go

@@ -99,11 +99,11 @@ type OServiceService struct {
 func (s OServiceService) WriteOServiceHostOnline(w io.Writer, sequence *uint32) error {
 	fmt.Println("writeOServiceHostOnline...")
 	snacFrameOut := oscar.SnacFrame{
-		FoodGroup: OSERVICE,
+		FoodGroup: oscar.OSERVICE,
 		SubGroup:  oscar.OServiceHostOnline,
 	}
 	snacPayloadOut := oscar.SNAC_0x01_0x03_OServiceHostOnline{
-		FoodGroups: []uint16{OSERVICE, LOCATE, BUDDY, ICBM, FEEDBAG, CHAT_NAV},
+		FoodGroups: []uint16{oscar.OSERVICE, oscar.LOCATE, oscar.BUDDY, oscar.ICBM, oscar.FEEDBAG, oscar.CHAT_NAV},
 	}
 	return writeOutSNAC(oscar.SnacFrame{}, snacFrameOut, snacPayloadOut, sequence, w)
 }
@@ -111,7 +111,7 @@ func (s OServiceService) WriteOServiceHostOnline(w io.Writer, sequence *uint32)
 func (s OServiceService) ClientVersionsHandler(snacPayloadIn oscar.SNAC_0x01_0x17_OServiceClientVersions) XMessage {
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: OSERVICE,
+			FoodGroup: oscar.OSERVICE,
 			SubGroup:  oscar.OServiceHostVersions,
 		},
 		snacOut: oscar.SNAC_0x01_0x18_OServiceHostVersions{
@@ -122,7 +122,7 @@ func (s OServiceService) ClientVersionsHandler(snacPayloadIn oscar.SNAC_0x01_0x1
 
 func (s OServiceService) RateParamsQueryHandler() XMessage {
 	snacFrameOut := oscar.SnacFrame{
-		FoodGroup: OSERVICE,
+		FoodGroup: oscar.OSERVICE,
 		SubGroup:  oscar.OServiceRateParamsReply,
 	}
 	snacPayloadOut := oscar.SNAC_0x01_0x07_OServiceRateParamsReply{
@@ -190,7 +190,7 @@ func (s OServiceService) RateParamsQueryHandler() XMessage {
 func (s OServiceService) UserInfoQueryHandler(sess *Session) XMessage {
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: OSERVICE,
+			FoodGroup: oscar.OSERVICE,
 			SubGroup:  oscar.OServiceUserInfoUpdate,
 		},
 		snacOut: oscar.SNAC_0x01_0x0F_OServiceUserInfoUpdate{
@@ -241,7 +241,7 @@ func (s OServiceService) SetUserInfoFieldsHandler(sess *Session, sm SessionManag
 	}
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: OSERVICE,
+			FoodGroup: oscar.OSERVICE,
 			SubGroup:  oscar.OServiceUserInfoUpdate,
 		},
 		snacOut: oscar.SNAC_0x01_0x0F_OServiceUserInfoUpdate{
@@ -260,7 +260,7 @@ func (s OServiceService) IdleNotificationHandler(sess *Session, sm SessionManage
 }
 
 func (s OServiceService) ServiceRequestHandler(cfg Config, cr *ChatRegistry, sess *Session, snacPayloadIn oscar.SNAC_0x01_0x04_OServiceServiceRequest) (XMessage, error) {
-	if snacPayloadIn.FoodGroup != CHAT {
+	if snacPayloadIn.FoodGroup != oscar.CHAT {
 		return XMessage{}, ErrUnsupportedSubGroup
 	}
 
@@ -282,7 +282,7 @@ func (s OServiceService) ServiceRequestHandler(cfg Config, cr *ChatRegistry, ses
 
 	return XMessage{
 		snacFrame: oscar.SnacFrame{
-			FoodGroup: OSERVICE,
+			FoodGroup: oscar.OSERVICE,
 			SubGroup:  oscar.OServiceServiceResponse,
 		},
 		snacOut: oscar.SNAC_0x01_0x05_OServiceServiceResponse{
@@ -301,7 +301,7 @@ func (s OServiceService) ServiceRequestHandler(cfg Config, cr *ChatRegistry, ses
 					},
 					{
 						TType: oscar.OServiceTLVTagsGroupID,
-						Val:   CHAT,
+						Val:   oscar.CHAT,
 					},
 					{
 						TType: oscar.OServiceTLVTagsSSLCertName,
@@ -335,11 +335,11 @@ type OServiceServiceForChat struct {
 func (s OServiceServiceForChat) WriteOServiceHostOnline(w io.Writer, sequence *uint32) error {
 	fmt.Println("writeOServiceHostOnline...")
 	snacFrameOut := oscar.SnacFrame{
-		FoodGroup: OSERVICE,
+		FoodGroup: oscar.OSERVICE,
 		SubGroup:  oscar.OServiceHostOnline,
 	}
 	snacPayloadOut := oscar.SNAC_0x01_0x03_OServiceHostOnline{
-		FoodGroups: []uint16{OSERVICE, CHAT},
+		FoodGroups: []uint16{oscar.OSERVICE, oscar.CHAT},
 	}
 	return writeOutSNAC(oscar.SnacFrame{}, snacFrameOut, snacPayloadOut, sequence, w)
 }

+ 19 - 19
server/oservice_test.go

@@ -35,7 +35,7 @@ func TestReceiveAndSendServiceRequest(t *testing.T) {
 				ScreenName: "user_screen_name",
 			},
 			inputSNAC: oscar.SNAC_0x01_0x04_OServiceServiceRequest{
-				FoodGroup: ICBM,
+				FoodGroup: oscar.ICBM,
 			},
 			expectErr: ErrUnsupportedSubGroup,
 		},
@@ -58,7 +58,7 @@ func TestReceiveAndSendServiceRequest(t *testing.T) {
 				ScreenName: "user_screen_name",
 			},
 			inputSNAC: oscar.SNAC_0x01_0x04_OServiceServiceRequest{
-				FoodGroup: CHAT,
+				FoodGroup: oscar.CHAT,
 				TLVRestBlock: oscar.TLVRestBlock{
 					TLVList: oscar.TLVList{
 						{
@@ -74,7 +74,7 @@ func TestReceiveAndSendServiceRequest(t *testing.T) {
 			},
 			expectOutput: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceServiceResponse,
 				},
 				snacOut: oscar.SNAC_0x01_0x05_OServiceServiceResponse{
@@ -93,7 +93,7 @@ func TestReceiveAndSendServiceRequest(t *testing.T) {
 							},
 							{
 								TType: oscar.OServiceTLVTagsGroupID,
-								Val:   CHAT,
+								Val:   oscar.CHAT,
 							},
 							{
 								TType: oscar.OServiceTLVTagsSSLCertName,
@@ -120,7 +120,7 @@ func TestReceiveAndSendServiceRequest(t *testing.T) {
 				ScreenName: "user_screen_name",
 			},
 			inputSNAC: oscar.SNAC_0x01_0x04_OServiceServiceRequest{
-				FoodGroup: CHAT,
+				FoodGroup: oscar.CHAT,
 				TLVRestBlock: oscar.TLVRestBlock{
 					TLVList: oscar.TLVList{
 						{
@@ -188,7 +188,7 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			name: "receive OServiceClientOnline, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceClientOnline,
 				},
 				snacOut: oscar.SNAC_0x01_0x02_OServiceClientOnline{
@@ -210,7 +210,7 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			name: "receive OServiceServiceRequest, return OServiceServiceResponse",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceServiceRequest,
 				},
 				snacOut: oscar.SNAC_0x01_0x04_OServiceServiceRequest{
@@ -219,7 +219,7 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceServiceResponse,
 				},
 				snacOut: oscar.SNAC_0x01_0x05_OServiceServiceResponse{
@@ -238,14 +238,14 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			name: "receive OServiceRateParamsQuery, return OServiceRateParamsReply",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceRateParamsQuery,
 				},
 				snacOut: struct{}{},
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceRateParamsReply,
 				},
 				snacOut: oscar.SNAC_0x01_0x07_OServiceRateParamsReply{
@@ -267,7 +267,7 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			name: "receive OServiceRateParamsSubAdd, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceRateParamsSubAdd,
 				},
 				snacOut: oscar.SNAC_0x01_0x08_OServiceRateParamsSubAdd{
@@ -287,14 +287,14 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			name: "receive OServiceUserInfoQuery, return OServiceUserInfoUpdate",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceUserInfoQuery,
 				},
 				snacOut: struct{}{},
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceUserInfoUpdate,
 				},
 				snacOut: oscar.SNAC_0x01_0x0F_OServiceUserInfoUpdate{
@@ -308,7 +308,7 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			name: "receive OServiceIdleNotification, return no response",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceIdleNotification,
 				},
 				snacOut: oscar.SNAC_0x01_0x11_OServiceIdleNotification{
@@ -321,7 +321,7 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			name: "receive OServiceClientVersions, return OServiceHostVersions",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceClientVersions,
 				},
 				snacOut: oscar.SNAC_0x01_0x17_OServiceClientVersions{
@@ -332,7 +332,7 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceHostVersions,
 				},
 				snacOut: oscar.SNAC_0x01_0x18_OServiceHostVersions{
@@ -346,7 +346,7 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			name: "receive OServiceSetUserInfoFields, return OServiceUserInfoUpdate",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceSetUserInfoFields,
 				},
 				snacOut: oscar.SNAC_0x01_0x1E_OServiceSetUserInfoFields{
@@ -362,7 +362,7 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			},
 			output: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServiceUserInfoUpdate,
 				},
 				snacOut: oscar.SNAC_0x01_0x0F_OServiceUserInfoUpdate{
@@ -376,7 +376,7 @@ func TestOServiceRouter_RouteOService(t *testing.T) {
 			name: "receive OServicePauseReq, expect ErrUnsupportedSubGroup",
 			input: XMessage{
 				snacFrame: oscar.SnacFrame{
-					FoodGroup: OSERVICE,
+					FoodGroup: oscar.OSERVICE,
 					SubGroup:  oscar.OServicePauseReq,
 				},
 				snacOut: struct{}{}, // empty SNAC

+ 8 - 35
server/protocol.go

@@ -159,33 +159,6 @@ func VerifyChatLogin(rw io.ReadWriter) (*ChatCookie, uint32, error) {
 	return &cookie, seq, err
 }
 
-const (
-	OSERVICE      uint16 = 0x0001
-	LOCATE        uint16 = 0x0002
-	BUDDY         uint16 = 0x0003
-	ICBM          uint16 = 0x0004
-	ADVERT        uint16 = 0x0005
-	INVITE        uint16 = 0x0006
-	ADMIN         uint16 = 0x0007
-	POPUP         uint16 = 0x0008
-	PD            uint16 = 0x0009
-	USER_LOOKUP   uint16 = 0x000A
-	STATS         uint16 = 0x000B
-	TRANSLATE     uint16 = 0x000C
-	CHAT_NAV      uint16 = 0x000D
-	CHAT          uint16 = 0x000E
-	ODIR          uint16 = 0x000F
-	BART          uint16 = 0x0010
-	FEEDBAG       uint16 = 0x0013
-	ICQ           uint16 = 0x0015
-	BUCP          uint16 = 0x0017
-	ALERT         uint16 = 0x0018
-	PLUGIN        uint16 = 0x0022
-	UNNAMED_FG_24 uint16 = 0x0024
-	MDIR          uint16 = 0x0025
-	ARS           uint16 = 0x044A
-)
-
 type IncomingMessage struct {
 	flap oscar.FlapFrame
 	snac oscar.SnacFrame
@@ -338,21 +311,21 @@ type Router struct {
 
 func (rt *Router) routeIncomingRequests(cfg Config, sm SessionManager, sess *Session, fm *FeedbagStore, cr *ChatRegistry, rw io.ReadWriter, sequence *uint32, snac oscar.SnacFrame, buf io.Reader, room ChatRoom) error {
 	switch snac.FoodGroup {
-	case OSERVICE:
+	case oscar.OSERVICE:
 		return rt.RouteOService(cfg, cr, sm, fm, sess, room, snac, buf, rw, sequence)
-	case LOCATE:
+	case oscar.LOCATE:
 		return rt.RouteLocate(sess, sm, fm, snac, buf, rw, sequence)
-	case BUDDY:
+	case oscar.BUDDY:
 		return routeBuddy(snac, buf, rw, sequence)
-	case ICBM:
+	case oscar.ICBM:
 		return rt.RouteICBM(sm, fm, sess, snac, buf, rw, sequence)
-	case CHAT_NAV:
+	case oscar.CHAT_NAV:
 		return rt.RouteChatNav(sess, cr, snac, buf, rw, sequence)
-	case FEEDBAG:
+	case oscar.FEEDBAG:
 		return rt.RouteFeedbag(sm, sess, fm, snac, buf, rw, sequence)
-	case BUCP:
+	case oscar.BUCP:
 		return routeBUCP()
-	case CHAT:
+	case oscar.CHAT:
 		return rt.RouteChat(sess, sm, snac, buf, rw, sequence)
 	default:
 		return ErrUnsupportedFoodGroup