-func (cc *ClientConn) handleTransaction(transaction Transaction) error {
- requestNum := binary.BigEndian.Uint16(transaction.Type)
- if handler, ok := TransactionHandlers[requestNum]; ok {
- for _, reqField := range handler.RequiredFields {
- field := transaction.GetField(reqField.ID)
-
- // Validate that required field is present
- if field.ID == nil {
- cc.logger.Error(
- "Missing required field",
- "RequestType", handler.Name, "FieldID", reqField.ID,
- )
- return nil
- }
-
- if len(field.Data) < reqField.minLen {
- cc.logger.Info(
- "Field does not meet minLen",
- "RequestType", handler.Name, "FieldID", reqField.ID,
- )
- return nil
- }
- }
+func (cftm *ClientFileTransferMgr) Add(ftType FileTransferType, ft *FileTransfer) {
+ cftm.mu.Lock()
+ defer cftm.mu.Unlock()
+
+ cftm.transfers[ftType][ft.refNum] = ft
+}
+
+func (cftm *ClientFileTransferMgr) Get(ftType FileTransferType) []FileTransfer {
+ cftm.mu.Lock()
+ defer cftm.mu.Unlock()
+
+ fts := cftm.transfers[ftType]
+
+ var transfers []FileTransfer
+ for _, ft := range fts {
+ transfers = append(transfers, *ft)
+ }
+
+ return transfers
+}
+
+func (cftm *ClientFileTransferMgr) Delete(ftType FileTransferType, id FileTransferID) {
+ cftm.mu.Lock()
+ defer cftm.mu.Unlock()
+
+ delete(cftm.transfers[ftType], id)
+}