-type HandlerFunc func(*ClientConn, *Transaction) ([]Transaction, error)
-
-type TransactionType struct {
- Handler HandlerFunc // function for handling the transaction type
- Name string // Name of transaction as it will appear in logging
- RequiredFields []requiredField
-}
-
-var TransactionHandlers = map[uint16]TransactionType{
- // Server initiated
- TranChatMsg: {
- Name: "TranChatMsg",
- },
- // Server initiated
- TranNotifyChangeUser: {
- Name: "TranNotifyChangeUser",
- },
- TranError: {
- Name: "TranError",
- },
- TranShowAgreement: {
- Name: "TranShowAgreement",
- },
- TranUserAccess: {
- Name: "TranUserAccess",
- },
- TranNotifyDeleteUser: {
- Name: "TranNotifyDeleteUser",
- },
- TranAgreed: {
- Name: "TranAgreed",
- Handler: HandleTranAgreed,
- },
- TranChatSend: {
- Name: "TranChatSend",
- Handler: HandleChatSend,
- RequiredFields: []requiredField{
- {
- ID: FieldData,
- minLen: 0,
- },
- },
- },
- TranDelNewsArt: {
- Name: "TranDelNewsArt",
- Handler: HandleDelNewsArt,
- },
- TranDelNewsItem: {
- Name: "TranDelNewsItem",
- Handler: HandleDelNewsItem,
- },
- TranDeleteFile: {
- Name: "TranDeleteFile",
- Handler: HandleDeleteFile,
- },
- TranDeleteUser: {
- Name: "TranDeleteUser",
- Handler: HandleDeleteUser,
- },
- TranDisconnectUser: {
- Name: "TranDisconnectUser",
- Handler: HandleDisconnectUser,
- },
- TranDownloadFile: {
- Name: "TranDownloadFile",
- Handler: HandleDownloadFile,
- },
- TranDownloadFldr: {
- Name: "TranDownloadFldr",
- Handler: HandleDownloadFolder,
- },
- TranGetClientInfoText: {
- Name: "TranGetClientInfoText",
- Handler: HandleGetClientInfoText,
- },
- TranGetFileInfo: {
- Name: "TranGetFileInfo",
- Handler: HandleGetFileInfo,
- },
- TranGetFileNameList: {
- Name: "TranGetFileNameList",
- Handler: HandleGetFileNameList,
- },
- TranGetMsgs: {
- Name: "TranGetMsgs",
- Handler: HandleGetMsgs,
- },
- TranGetNewsArtData: {
- Name: "TranGetNewsArtData",
- Handler: HandleGetNewsArtData,
- },
- TranGetNewsArtNameList: {
- Name: "TranGetNewsArtNameList",
- Handler: HandleGetNewsArtNameList,
- },
- TranGetNewsCatNameList: {
- Name: "TranGetNewsCatNameList",
- Handler: HandleGetNewsCatNameList,
- },
- TranGetUser: {
- Name: "TranGetUser",
- Handler: HandleGetUser,
- },
- TranGetUserNameList: {
- Name: "tranHandleGetUserNameList",
- Handler: HandleGetUserNameList,
- },
- TranInviteNewChat: {
- Name: "TranInviteNewChat",
- Handler: HandleInviteNewChat,
- },
- TranInviteToChat: {
- Name: "TranInviteToChat",
- Handler: HandleInviteToChat,
- },
- TranJoinChat: {
- Name: "TranJoinChat",
- Handler: HandleJoinChat,
- },
- TranKeepAlive: {
- Name: "TranKeepAlive",
- Handler: HandleKeepAlive,
- },
- TranLeaveChat: {
- Name: "TranJoinChat",
- Handler: HandleLeaveChat,
- },
- TranListUsers: {
- Name: "TranListUsers",
- Handler: HandleListUsers,
- },
- TranMoveFile: {
- Name: "TranMoveFile",
- Handler: HandleMoveFile,
- },
- TranNewFolder: {
- Name: "TranNewFolder",
- Handler: HandleNewFolder,
- },
- TranNewNewsCat: {
- Name: "TranNewNewsCat",
- Handler: HandleNewNewsCat,
- },
- TranNewNewsFldr: {
- Name: "TranNewNewsFldr",
- Handler: HandleNewNewsFldr,
- },
- TranNewUser: {
- Name: "TranNewUser",
- Handler: HandleNewUser,
- },
- TranUpdateUser: {
- Name: "TranUpdateUser",
- Handler: HandleUpdateUser,
- },
- TranOldPostNews: {
- Name: "TranOldPostNews",
- Handler: HandleTranOldPostNews,
- },
- TranPostNewsArt: {
- Name: "TranPostNewsArt",
- Handler: HandlePostNewsArt,
- },
- TranRejectChatInvite: {
- Name: "TranRejectChatInvite",
- Handler: HandleRejectChatInvite,
- },
- TranSendInstantMsg: {
- Name: "TranSendInstantMsg",
- Handler: HandleSendInstantMsg,
- RequiredFields: []requiredField{
- {
- ID: FieldData,
- minLen: 0,
- },
- {
- ID: FieldUserID,
- },
- },
- },
- TranSetChatSubject: {
- Name: "TranSetChatSubject",
- Handler: HandleSetChatSubject,
- },
- TranMakeFileAlias: {
- Name: "TranMakeFileAlias",
- Handler: HandleMakeAlias,
- RequiredFields: []requiredField{
- {ID: FieldFileName, minLen: 1},
- {ID: FieldFilePath, minLen: 1},
- {ID: FieldFileNewPath, minLen: 1},
- },
- },
- TranSetClientUserInfo: {
- Name: "TranSetClientUserInfo",
- Handler: HandleSetClientUserInfo,
- },
- TranSetFileInfo: {
- Name: "TranSetFileInfo",
- Handler: HandleSetFileInfo,
- },
- TranSetUser: {
- Name: "TranSetUser",
- Handler: HandleSetUser,
- },
- TranUploadFile: {
- Name: "TranUploadFile",
- Handler: HandleUploadFile,
- },
- TranUploadFldr: {
- Name: "TranUploadFldr",
- Handler: HandleUploadFolder,
- },
- TranUserBroadcast: {
- Name: "TranUserBroadcast",
- Handler: HandleUserBroadcast,
- },
- TranDownloadBanner: {
- Name: "TranDownloadBanner",
- Handler: HandleDownloadBanner,
- },
+// HandlerFunc is the signature of a func to handle a Hotline transaction.
+type HandlerFunc func(*ClientConn, *Transaction) []Transaction
+
+// TransactionHandlers maps a transaction type to a handler function.
+var TransactionHandlers = map[TranType]HandlerFunc{
+ TranAgreed: HandleTranAgreed,
+ TranChatSend: HandleChatSend,
+ TranDelNewsArt: HandleDelNewsArt,
+ TranDelNewsItem: HandleDelNewsItem,
+ TranDeleteFile: HandleDeleteFile,
+ TranDeleteUser: HandleDeleteUser,
+ TranDisconnectUser: HandleDisconnectUser,
+ TranDownloadFile: HandleDownloadFile,
+ TranDownloadFldr: HandleDownloadFolder,
+ TranGetClientInfoText: HandleGetClientInfoText,
+ TranGetFileInfo: HandleGetFileInfo,
+ TranGetFileNameList: HandleGetFileNameList,
+ TranGetMsgs: HandleGetMsgs,
+ TranGetNewsArtData: HandleGetNewsArtData,
+ TranGetNewsArtNameList: HandleGetNewsArtNameList,
+ TranGetNewsCatNameList: HandleGetNewsCatNameList,
+ TranGetUser: HandleGetUser,
+ TranGetUserNameList: HandleGetUserNameList,
+ TranInviteNewChat: HandleInviteNewChat,
+ TranInviteToChat: HandleInviteToChat,
+ TranJoinChat: HandleJoinChat,
+ TranKeepAlive: HandleKeepAlive,
+ TranLeaveChat: HandleLeaveChat,
+ TranListUsers: HandleListUsers,
+ TranMoveFile: HandleMoveFile,
+ TranNewFolder: HandleNewFolder,
+ TranNewNewsCat: HandleNewNewsCat,
+ TranNewNewsFldr: HandleNewNewsFldr,
+ TranNewUser: HandleNewUser,
+ TranUpdateUser: HandleUpdateUser,
+ TranOldPostNews: HandleTranOldPostNews,
+ TranPostNewsArt: HandlePostNewsArt,
+ TranRejectChatInvite: HandleRejectChatInvite,
+ TranSendInstantMsg: HandleSendInstantMsg,
+ TranSetChatSubject: HandleSetChatSubject,
+ TranMakeFileAlias: HandleMakeAlias,
+ TranSetClientUserInfo: HandleSetClientUserInfo,
+ TranSetFileInfo: HandleSetFileInfo,
+ TranSetUser: HandleSetUser,
+ TranUploadFile: HandleUploadFile,
+ TranUploadFldr: HandleUploadFolder,
+ TranUserBroadcast: HandleUserBroadcast,
+ TranDownloadBanner: HandleDownloadBanner,