| OLD | NEW | 
|   1 // Copyright 2015 The LUCI Authors. All rights reserved. |   1 // Copyright 2015 The LUCI Authors. All rights reserved. | 
|   2 // Use of this source code is governed under the Apache License, Version 2.0 |   2 // Use of this source code is governed under the Apache License, Version 2.0 | 
|   3 // that can be found in the LICENSE file. |   3 // that can be found in the LICENSE file. | 
|   4  |   4  | 
|   5 package featureBreaker |   5 package featureBreaker | 
|   6  |   6  | 
|   7 import ( |   7 import ( | 
|   8         "github.com/luci/gae/service/mail" |   8         "github.com/luci/gae/service/mail" | 
|   9         "golang.org/x/net/context" |   9         "golang.org/x/net/context" | 
|  10 ) |  10 ) | 
|  11  |  11  | 
|  12 type mailState struct { |  12 type mailState struct { | 
|  13         *state |  13         *state | 
|  14  |  14  | 
|  15 »       mail.Interface |  15 »       mail.RawInterface | 
|  16 } |  16 } | 
|  17  |  17  | 
|  18 var _ mail.Interface = (*mailState)(nil) |  18 var _ mail.RawInterface = (*mailState)(nil) | 
|  19  |  19  | 
|  20 func (m *mailState) Send(msg *mail.Message) error { |  20 func (m *mailState) Send(msg *mail.Message) error { | 
|  21 »       return m.run(func() error { return m.Interface.Send(msg) }) |  21 »       return m.run(func() error { return m.RawInterface.Send(msg) }) | 
|  22 } |  22 } | 
|  23  |  23  | 
|  24 func (m *mailState) SendToAdmins(msg *mail.Message) error { |  24 func (m *mailState) SendToAdmins(msg *mail.Message) error { | 
|  25 »       return m.run(func() error { return m.Interface.SendToAdmins(msg) }) |  25 »       return m.run(func() error { return m.RawInterface.SendToAdmins(msg) }) | 
|  26 } |  26 } | 
|  27  |  27  | 
|  28 // FilterMail installs a featureBreaker mail filter in the context. |  28 // FilterMail installs a featureBreaker mail filter in the context. | 
|  29 func FilterMail(c context.Context, defaultError error) (context.Context, Feature
    Breaker) { |  29 func FilterMail(c context.Context, defaultError error) (context.Context, Feature
    Breaker) { | 
|  30         state := newState(defaultError) |  30         state := newState(defaultError) | 
|  31 »       return mail.AddFilters(c, func(ic context.Context, i mail.Interface) mai
    l.Interface { |  31 »       return mail.AddFilters(c, func(ic context.Context, i mail.RawInterface) 
    mail.RawInterface { | 
|  32                 return &mailState{state, i} |  32                 return &mailState{state, i} | 
|  33         }), state |  33         }), state | 
|  34 } |  34 } | 
| OLD | NEW |