mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-10-31 10:37:24 -04:00 
			
		
		
		
	Merge pull request #1048 from miekg/missingbits
Implement missing bits for an external servertype
This commit is contained in:
		
						commit
						8cdc65edd2
					
				
							
								
								
									
										11
									
								
								caddy.go
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								caddy.go
									
									
									
									
									
								
							| @ -76,7 +76,7 @@ type Instance struct { | |||||||
| 	context Context | 	context Context | ||||||
| 
 | 
 | ||||||
| 	// servers is the list of servers with their listeners. | 	// servers is the list of servers with their listeners. | ||||||
| 	servers []serverListener | 	servers []ServerListener | ||||||
| 
 | 
 | ||||||
| 	// these callbacks execute when certain events occur | 	// these callbacks execute when certain events occur | ||||||
| 	onFirstStartup  []func() error // starting, not as part of a restart | 	onFirstStartup  []func() error // starting, not as part of a restart | ||||||
| @ -86,6 +86,9 @@ type Instance struct { | |||||||
| 	onFinalShutdown []func() error // stopping, not as part of a restart | 	onFinalShutdown []func() error // stopping, not as part of a restart | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // Servers returns the ServerListeners in i. | ||||||
|  | func (i *Instance) Servers() []ServerListener { return i.servers } | ||||||
|  | 
 | ||||||
| // Stop stops all servers contained in i. It does NOT | // Stop stops all servers contained in i. It does NOT | ||||||
| // execute shutdown callbacks. | // execute shutdown callbacks. | ||||||
| func (i *Instance) Stop() error { | func (i *Instance) Stop() error { | ||||||
| @ -202,7 +205,7 @@ func (i *Instance) Restart(newCaddyfile Input) (*Instance, error) { | |||||||
| // internally-kept list of servers that is running. For | // internally-kept list of servers that is running. For | ||||||
| // saved servers, graceful restarts will be provided. | // saved servers, graceful restarts will be provided. | ||||||
| func (i *Instance) SaveServer(s Server, ln net.Listener) { | func (i *Instance) SaveServer(s Server, ln net.Listener) { | ||||||
| 	i.servers = append(i.servers, serverListener{server: s, listener: ln}) | 	i.servers = append(i.servers, ServerListener{server: s, listener: ln}) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // HasListenerWithAddress returns whether this package is | // HasListenerWithAddress returns whether this package is | ||||||
| @ -644,7 +647,7 @@ func startServers(serverList []Server, inst *Instance, restartFds map[string]res | |||||||
| 			errChan <- s.ServePacket(pc) | 			errChan <- s.ServePacket(pc) | ||||||
| 		}(s, ln, pc, inst) | 		}(s, ln, pc, inst) | ||||||
| 
 | 
 | ||||||
| 		inst.servers = append(inst.servers, serverListener{server: s, listener: ln, packet: pc}) | 		inst.servers = append(inst.servers, ServerListener{server: s, listener: ln, packet: pc}) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Log errors that may be returned from Serve() calls, | 	// Log errors that may be returned from Serve() calls, | ||||||
| @ -836,7 +839,7 @@ var ( | |||||||
| 	instancesMu sync.Mutex | 	instancesMu sync.Mutex | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| const ( | var ( | ||||||
| 	// DefaultConfigFile is the name of the configuration file that is loaded | 	// DefaultConfigFile is the name of the configuration file that is loaded | ||||||
| 	// by default if no other file is specified. | 	// by default if no other file is specified. | ||||||
| 	DefaultConfigFile = "Caddyfile" | 	DefaultConfigFile = "Caddyfile" | ||||||
|  | |||||||
							
								
								
									
										22
									
								
								plugins.go
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								plugins.go
									
									
									
									
									
								
							| @ -82,13 +82,31 @@ func ValidDirectives(serverType string) []string { | |||||||
| 	return stype.Directives | 	return stype.Directives | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // serverListener pairs a server to its listener and/or packetconn. | // ServerListener pairs a server to its listener and/or packetconn. | ||||||
| type serverListener struct { | type ServerListener struct { | ||||||
| 	server   Server | 	server   Server | ||||||
| 	listener net.Listener | 	listener net.Listener | ||||||
| 	packet   net.PacketConn | 	packet   net.PacketConn | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | // LocalAddr returns the local network address of the packetconn. It returns | ||||||
|  | // nil when it is not set. | ||||||
|  | func (s ServerListener) LocalAddr() net.Addr { | ||||||
|  | 	if s.packet == nil { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	return s.packet.LocalAddr() | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Addr returns the listener's network address. It returns nil when it is | ||||||
|  | // not set. | ||||||
|  | func (s ServerListener) Addr() net.Addr { | ||||||
|  | 	if s.listener == nil { | ||||||
|  | 		return nil | ||||||
|  | 	} | ||||||
|  | 	return s.listener.Addr() | ||||||
|  | } | ||||||
|  | 
 | ||||||
| // Context is a type which carries a server type through | // Context is a type which carries a server type through | ||||||
| // the load and setup phase; it maintains the state | // the load and setup phase; it maintains the state | ||||||
| // between loading the Caddyfile, then executing its | // between loading the Caddyfile, then executing its | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user