(msg *ClientComMessage)
| 485 | } |
| 486 | |
| 487 | func (s *Session) set(msg *ClientComMessage) { |
| 488 | log.Println("s.set: processing 'set." + msg.Set.What + "'") |
| 489 | |
| 490 | // Validate topic name |
| 491 | original, expanded, err := s.validateTopicName(msg.Set.Id, msg.Set.Topic, msg.timestamp) |
| 492 | if err != nil { |
| 493 | s.QueueOut(err) |
| 494 | return |
| 495 | } |
| 496 | |
| 497 | sub, ok := s.subs[expanded] |
| 498 | meta := &metaReq{ |
| 499 | topic: expanded, |
| 500 | pkt: msg, |
| 501 | sess: s, |
| 502 | what: parseMsgClientMeta(msg.Set.What)} |
| 503 | |
| 504 | if meta.what == 0 { |
| 505 | s.QueueOut(ErrMalformed(msg.Set.Id, original, msg.timestamp)) |
| 506 | log.Println("s.set: invalid Set message action '" + msg.Set.What + "'") |
| 507 | } |
| 508 | |
| 509 | if ok { |
| 510 | if (meta.what&constMsgMetaInfo != 0 && msg.Set.Info == nil) || |
| 511 | (meta.what&constMsgMetaSub != 0 && msg.Set.Sub == nil) { |
| 512 | |
| 513 | s.QueueOut(ErrMalformed(msg.Set.Id, original, msg.timestamp)) |
| 514 | log.Println("s.set: payload missing for Set action '" + msg.Set.What + "'") |
| 515 | } else { |
| 516 | log.Println("s.set: sending to topic") |
| 517 | sub.meta <- meta |
| 518 | } |
| 519 | } else { |
| 520 | log.Println("s.set: can Set for subscribed topics only") |
| 521 | s.QueueOut(ErrPermissionDenied(msg.Set.Id, original, msg.timestamp)) |
| 522 | } |
| 523 | } |
| 524 | |
| 525 | func (s *Session) del(msg *ClientComMessage) { |
| 526 | log.Println("s.del: processing 'set." + msg.Del.What + "'") |
no test coverage detected