~ps-jenkins/ubuntu-push/ubuntu-vivid-proposed

« back to all changes in this revision

Viewing changes to server/listener/listener.go

  • Committer: Roberto Alsina
  • Date: 2014-10-24 14:05:51 UTC
  • mfrom: (91.179.41 automatic)
  • mto: This revision was merged to the branch mainline in revision 136.
  • Revision ID: roberto.alsina@canonical.com-20141024140551-tsdz3xggo2rbwlqj
MergeĀ fromĀ automatic

Show diffs side-by-side

added added

removed removed

Lines of Context:
67
67
        return false
68
68
}
69
69
 
 
70
// SessionResourceManager allows to limit resource usage tracking connections.
 
71
type SessionResourceManager interface {
 
72
        ConsumeConn()
 
73
}
 
74
 
 
75
// NOP SessionResourceManager.
 
76
type NopSessionResourceManager struct{}
 
77
 
 
78
func (r *NopSessionResourceManager) ConsumeConn() {}
 
79
 
70
80
// AcceptLoop accepts connections and starts sessions for them.
71
 
func (dl *DeviceListener) AcceptLoop(session func(net.Conn) error, logger logger.Logger) error {
 
81
func (dl *DeviceListener) AcceptLoop(session func(net.Conn) error, resource SessionResourceManager, logger logger.Logger) error {
72
82
        for {
73
 
                // xxx enforce a connection limit
 
83
                resource.ConsumeConn()
74
84
                conn, err := dl.Listener.Accept()
75
85
                if err != nil {
76
86
                        if handleTemporary(err) {