diff --git a/serverconn.go b/serverconn.go index 41e28e28..5c551a0c 100644 --- a/serverconn.go +++ b/serverconn.go @@ -86,6 +86,9 @@ type ServerConnReadHandlers struct { // called after receiving a RECORD request. OnRecord func(req *base.Request) (*base.Response, error) + // called after receiving a PAUSE request. + OnPause func(req *base.Request) (*base.Response, error) + // called after receiving a GET_PARAMETER request. // if nil, it is generated automatically. OnGetParameter func(req *base.Request) (*base.Response, error) @@ -129,6 +132,9 @@ func (sc *ServerConn) backgroundRead(handlers ServerConnReadHandlers, done chan if handlers.OnRecord != nil { methods = append(methods, string(base.Record)) } + if handlers.OnPause != nil { + methods = append(methods, string(base.Pause)) + } methods = append(methods, string(base.GetParameter)) if handlers.OnSetParameter != nil { methods = append(methods, string(base.SetParameter)) @@ -200,6 +206,11 @@ func (sc *ServerConn) backgroundRead(handlers ServerConnReadHandlers, done chan return handlers.OnRecord(req) } + case base.Pause: + if handlers.OnPause != nil { + return handlers.OnPause(req) + } + case base.GetParameter: if handlers.OnGetParameter != nil { return handlers.OnGetParameter(req)