]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/field.go
Merge pull request #42 from jhalter/implement_user_ban
[rbdr/mobius] / hotline / field.go
index 26012afefcb6e61d17064e5d0d5d5a169c79f348..30760170b4710bacc734068319a2894a73568d5e 100644 (file)
@@ -19,16 +19,19 @@ const fieldUserAccess = 110
 
 // const fieldUserAlias = 111 TODO: implement
 const fieldUserFlags = 112
 
 // const fieldUserAlias = 111 TODO: implement
 const fieldUserFlags = 112
-const fieldOptions = 113
+const fieldOptions = 113 // Server message (1) or admin message (any other value)
 const fieldChatID = 114
 const fieldChatSubject = 115
 const fieldWaitingCount = 116
 const fieldChatID = 114
 const fieldChatSubject = 115
 const fieldWaitingCount = 116
+const fieldBannerType = 152
 const fieldVersion = 160
 const fieldCommunityBannerID = 161
 const fieldServerName = 162
 const fieldFileNameWithInfo = 200
 const fieldFileName = 201
 const fieldFilePath = 202
 const fieldVersion = 160
 const fieldCommunityBannerID = 161
 const fieldServerName = 162
 const fieldFileNameWithInfo = 200
 const fieldFileName = 201
 const fieldFilePath = 202
+const fieldFileResumeData = 203
+const fieldFileTransferOptions = 204
 const fieldFileTypeString = 205
 const fieldFileCreatorString = 206
 const fieldFileSize = 207
 const fieldFileTypeString = 205
 const fieldFileCreatorString = 206
 const fieldFileSize = 207
@@ -38,7 +41,7 @@ const fieldFileComment = 210
 const fieldFileNewName = 211
 const fieldFileNewPath = 212
 const fieldFileType = 213
 const fieldFileNewName = 211
 const fieldFileNewPath = 212
 const fieldFileType = 213
-const fieldQuotingMsg = 214 // Defined but unused in the Hotline Protocol spec
+const fieldQuotingMsg = 214
 const fieldAutomaticResponse = 215
 const fieldFolderItemCount = 220
 const fieldUsernameWithInfo = 300
 const fieldAutomaticResponse = 215
 const fieldFolderItemCount = 220
 const fieldUsernameWithInfo = 300
@@ -88,3 +91,12 @@ func NewField(id uint16, data []byte) Field {
 func (f Field) Payload() []byte {
        return concat.Slices(f.ID, f.FieldSize, f.Data)
 }
 func (f Field) Payload() []byte {
        return concat.Slices(f.ID, f.FieldSize, f.Data)
 }
+
+func getField(id int, fields *[]Field) *Field {
+       for _, field := range *fields {
+               if id == int(binary.BigEndian.Uint16(field.ID)) {
+                       return &field
+               }
+       }
+       return nil
+}