github.com/cellofellow/gopkg@v0.0.0-20140722061823-eec0544a62ad/web/fcgi.go (about)

     1  // Copyright 2013 <chaishushan{AT}gmail.com>. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package web
     6  
     7  import (
     8  	"net"
     9  	"net/http/fcgi"
    10  )
    11  
    12  func (s *Server) listenAndServeFcgi(addr string) error {
    13  	var l net.Listener
    14  	var err error
    15  
    16  	//if the path begins with a "/", assume it's a unix address
    17  	if addr[0] == '/' {
    18  		l, err = net.Listen("unix", addr)
    19  	} else {
    20  		l, err = net.Listen("tcp", addr)
    21  	}
    22  
    23  	//save the listener so it can be closed
    24  	s.l = l
    25  
    26  	if err != nil {
    27  		s.Logger.Println("FCGI listen error", err.Error())
    28  		return err
    29  	}
    30  	return fcgi.Serve(s.l, s)
    31  }