+func startMCDTx(ctx *nncp.Ctx, port int, zeroInterval bool) error {
+ ifis, err := net.Interfaces()
+ if err != nil {
+ return err
+ }
+ for ifiReString, secs := range ctx.MCDTxIfis {
+ ifiRe, err := regexp.CompilePOSIX(ifiReString)
+ if err != nil {
+ return err
+ }
+ var interval time.Duration
+ if !zeroInterval {
+ interval = time.Duration(secs) * time.Second
+ }
+ for _, ifi := range ifis {
+ if ifiRe.MatchString(ifi.Name) {
+ if err = ctx.MCDTx(ifi.Name, port, interval); err != nil {
+ return err
+ }
+ }
+ }
+ }
+ return nil
+}
+