Merge pull request 'fix nil ptr' (#184) from devstigneev/micro-server-http:issue_179_v3 into v3
Reviewed-on: #184
This commit was merged in pull request #184.
	This commit is contained in:
		
							
								
								
									
										23
									
								
								http.go
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								http.go
									
									
									
									
									
								
							| @@ -552,7 +552,6 @@ func (h *Server) Start() error { | |||||||
| 	fn := handler | 	fn := handler | ||||||
|  |  | ||||||
| 	var hs *http.Server | 	var hs *http.Server | ||||||
| 	var srvFunc func(net.Listener) error |  | ||||||
| 	if h.opts.Context != nil { | 	if h.opts.Context != nil { | ||||||
| 		if mwf, ok := h.opts.Context.Value(middlewareKey{}).([]func(http.Handler) http.Handler); ok && len(mwf) > 0 { | 		if mwf, ok := h.opts.Context.Value(middlewareKey{}).([]func(http.Handler) http.Handler); ok && len(mwf) > 0 { | ||||||
| 			// wrap the handler func | 			// wrap the handler func | ||||||
| @@ -563,24 +562,16 @@ func (h *Server) Start() error { | |||||||
| 		var ok bool | 		var ok bool | ||||||
| 		if hs, ok = h.opts.Context.Value(serverKey{}).(*http.Server); ok && hs != nil { | 		if hs, ok = h.opts.Context.Value(serverKey{}).(*http.Server); ok && hs != nil { | ||||||
| 			hs.Handler = fn | 			hs.Handler = fn | ||||||
| 			srvFunc = hs.Serve | 		} else { | ||||||
|  | 			hs = &http.Server{Handler: fn} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if srvFunc != nil { | 	go func() { | ||||||
| 		go func() { | 		if cerr := hs.Serve(ts); cerr != nil && !errors.Is(cerr, net.ErrClosed) { | ||||||
| 			if cerr := srvFunc(ts); cerr != nil && !errors.Is(cerr, net.ErrClosed) { | 			h.opts.Logger.Error(h.opts.Context, cerr) | ||||||
| 				h.opts.Logger.Error(h.opts.Context, cerr) | 		} | ||||||
| 			} | 	}() | ||||||
| 		}() |  | ||||||
| 	} else { |  | ||||||
| 		go func() { |  | ||||||
| 			hs = &http.Server{Handler: fn} |  | ||||||
| 			if cerr := hs.Serve(ts); cerr != nil && !errors.Is(cerr, net.ErrClosed) { |  | ||||||
| 				h.opts.Logger.Error(h.opts.Context, cerr) |  | ||||||
| 			} |  | ||||||
| 		}() |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	go func() { | 	go func() { | ||||||
| 		t := new(time.Ticker) | 		t := new(time.Ticker) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user