diff options
Diffstat (limited to 'src/nginext/response.go')
-rw-r--r-- | src/nginext/response.go | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/src/nginext/response.go b/src/nginext/response.go deleted file mode 100644 index dc864f6e..00000000 --- a/src/nginext/response.go +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) Max Romanov - * Copyright (C) NGINX, Inc. - */ - -package nginext - -/* -#include "nxt_go_lib.h" -*/ -import "C" - -import ( - "fmt" - "net/http" - "os" -) - -type response struct { - header http.Header - headerSent bool - req *http.Request - c_req C.nxt_go_request_t -} - -func new_response(c_req C.nxt_go_request_t, req *http.Request) *response { - resp := &response{ - header: http.Header{}, - req: req, - c_req: c_req, - } - - return resp -} - -func (r *response) Header() http.Header { - return r.header -} - -func (r *response) Write(p []byte) (n int, err error) { - if !r.headerSent { - r.WriteHeader(http.StatusOK) - } - - l := C.size_t(len(p)) - b := getCBytes(p) - res := C.nxt_go_response_write(r.c_req, b, l) - C.free(b) - return int(res), nil -} - -func (r *response) WriteHeader(code int) { - if r.headerSent { - // Note: explicitly using Stderr, as Stdout is our HTTP output. - fmt.Fprintf(os.Stderr, "CGI attempted to write header twice") - return - } - r.headerSent = true - fmt.Fprintf(r, "%s %d %s\r\n", r.req.Proto, code, http.StatusText(code)) - - // Set a default Content-Type - if _, hasType := r.header["Content-Type"]; !hasType { - r.header.Add("Content-Type", "text/html; charset=utf-8") - } - - r.header.Write(r) - - r.Write([]byte("\r\n")) -} |