mirror of https://github.com/XTLS/Xray-core
				
				
				
			Reapply optimized log
							parent
							
								
									99f45a2d7f
								
							
						
					
					
						commit
						4fb4dacae7
					
				| 
						 | 
				
			
			@ -399,9 +399,13 @@ func (d *DefaultDispatcher) routedDispatch(ctx context.Context, link *transport.
 | 
			
		|||
 | 
			
		||||
	var handler outbound.Handler
 | 
			
		||||
 | 
			
		||||
	routingLink := routing_session.AsRoutingContext(ctx)
 | 
			
		||||
	inTag := routingLink.GetInboundTag()
 | 
			
		||||
	isPickRoute := 0
 | 
			
		||||
	if forcedOutboundTag := session.GetForcedOutboundTagFromContext(ctx); forcedOutboundTag != "" {
 | 
			
		||||
		ctx = session.SetForcedOutboundTagToContext(ctx, "")
 | 
			
		||||
		if h := d.ohm.GetHandler(forcedOutboundTag); h != nil {
 | 
			
		||||
			isPickRoute = 1
 | 
			
		||||
			newError("taking platform initialized detour [", forcedOutboundTag, "] for [", destination, "]").WriteToLog(session.ExportIDToError(ctx))
 | 
			
		||||
			handler = h
 | 
			
		||||
		} else {
 | 
			
		||||
| 
						 | 
				
			
			@ -411,13 +415,14 @@ func (d *DefaultDispatcher) routedDispatch(ctx context.Context, link *transport.
 | 
			
		|||
			return
 | 
			
		||||
		}
 | 
			
		||||
	} else if d.router != nil {
 | 
			
		||||
		if route, err := d.router.PickRoute(routing_session.AsRoutingContext(ctx)); err == nil {
 | 
			
		||||
			tag := route.GetOutboundTag()
 | 
			
		||||
			if h := d.ohm.GetHandler(tag); h != nil {
 | 
			
		||||
				newError("taking detour [", tag, "] for [", destination, "]").WriteToLog(session.ExportIDToError(ctx))
 | 
			
		||||
		if route, err := d.router.PickRoute(routingLink); err == nil {
 | 
			
		||||
			outTag := route.GetOutboundTag()
 | 
			
		||||
			if h := d.ohm.GetHandler(outTag); h != nil {
 | 
			
		||||
				isPickRoute = 2
 | 
			
		||||
				newError("taking detour [", outTag, "] for [", destination, "]").WriteToLog(session.ExportIDToError(ctx))
 | 
			
		||||
				handler = h
 | 
			
		||||
			} else {
 | 
			
		||||
				newError("non existing outTag: ", tag).AtWarning().WriteToLog(session.ExportIDToError(ctx))
 | 
			
		||||
				newError("non existing outTag: ", outTag).AtWarning().WriteToLog(session.ExportIDToError(ctx))
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			newError("default route for ", destination).WriteToLog(session.ExportIDToError(ctx))
 | 
			
		||||
| 
						 | 
				
			
			@ -437,7 +442,15 @@ func (d *DefaultDispatcher) routedDispatch(ctx context.Context, link *transport.
 | 
			
		|||
 | 
			
		||||
	if accessMessage := log.AccessMessageFromContext(ctx); accessMessage != nil {
 | 
			
		||||
		if tag := handler.Tag(); tag != "" {
 | 
			
		||||
			accessMessage.Detour = tag
 | 
			
		||||
			if inTag == "" {
 | 
			
		||||
				accessMessage.Detour = tag
 | 
			
		||||
			} else if isPickRoute == 1 {
 | 
			
		||||
				accessMessage.Detour = inTag + " ==> " + tag
 | 
			
		||||
			} else if isPickRoute == 2 {
 | 
			
		||||
				accessMessage.Detour = inTag + " -> " + tag
 | 
			
		||||
			} else {
 | 
			
		||||
				accessMessage.Detour = inTag + " >> " + tag
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		log.Record(accessMessage)
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue