code: func (s *Server) Close(p *Packet) (interface{}, error) {
  	req := new(RequestClose)
  	err := UnmarshalBinary(p.Payload, req)
  	if err != nil {
  		return nil, err
  	}
  
  	session, err := s.getSession(p)
  	if err != nil {
  		return nil, err
  	}
  
  	session.mu.Lock()
  	file, ok := session.files[req.Handle]
  	if ok {
  		delete(session.files, req.Handle)
  	}
  	session.mu.Unlock()
  
  	if ok {
  		err = file.Close()
  	} else {
  		return nil, &Status{Code: StatusInvalidHandle}
  	}
  
  	return &ReplyClose{}, err
  }
docs: // Close handles OpClose requests