github.com/adacta-ru/mattermost-server/v6@v6.0.0/app/plugin_api_tests/manual.test_http_hijack_plugin/main.go (about)

     1  // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
     2  // See LICENSE.txt for license information.
     3  
     4  package main
     5  
     6  import (
     7  	"net/http"
     8  
     9  	"github.com/adacta-ru/mattermost-server/v6/plugin"
    10  )
    11  
    12  type Plugin struct {
    13  	plugin.MattermostPlugin
    14  }
    15  
    16  func (p *Plugin) ServeHTTP(c *plugin.Context, w http.ResponseWriter, r *http.Request) {
    17  	hj, ok := w.(http.Hijacker)
    18  	if !ok {
    19  		w.WriteHeader(http.StatusInternalServerError)
    20  		return
    21  	}
    22  
    23  	conn, brw, err := hj.Hijack()
    24  	if conn == nil || brw == nil || err != nil {
    25  		w.WriteHeader(http.StatusInternalServerError)
    26  		return
    27  	}
    28  
    29  	conn.Write([]byte("HTTP/1.1 200\n\nOK"))
    30  	conn.Close()
    31  }
    32  
    33  func main() {
    34  	plugin.ClientMain(&Plugin{})
    35  }