prepare_v4 #199
							
								
								
									
										20
									
								
								util.go
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								util.go
									
									
									
									
									
								
							@@ -15,23 +15,30 @@ func FillRequest(ctx context.Context, req interface{}, opts ...FillRequestOption
 | 
				
			|||||||
	for _, o := range opts {
 | 
						for _, o := range opts {
 | 
				
			||||||
		o(&options)
 | 
							o(&options)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	md, ok := metadata.FromIncomingContext(ctx)
 | 
						md, ok := metadata.FromIncomingContext(ctx)
 | 
				
			||||||
	if !ok {
 | 
						if !ok {
 | 
				
			||||||
		return nil
 | 
							return nil
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for idx := 0; idx < len(options.headers)/2; idx += 2 {
 | 
						for idx := 0; idx < len(options.headers)/2; idx += 2 {
 | 
				
			||||||
		k := http.CanonicalHeaderKey(options.headers[idx])
 | 
							k := options.headers[idx]
 | 
				
			||||||
		v, ok := md[k]
 | 
							v, ok := md.Get(k)
 | 
				
			||||||
		if !ok {
 | 
							if !ok {
 | 
				
			||||||
			continue
 | 
								continue
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if err = rutil.SetFieldByPath(req, v, k); err != nil {
 | 
					
 | 
				
			||||||
 | 
							if len(v) == 1 {
 | 
				
			||||||
 | 
								err = rutil.SetFieldByPath(req, v[0], k)
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								err = rutil.SetFieldByPath(req, v, k)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
			return err
 | 
								return err
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	cookieVals, _ := md["Cookie"]
 | 
						cookieVals, _ := md.Get("Cookie")
 | 
				
			||||||
	for i := range cookieVals {
 | 
						for i := range cookieVals {
 | 
				
			||||||
		cookies := strings.Split(cookieVals[i], ";")
 | 
							cookies := strings.Split(cookieVals[i], ";")
 | 
				
			||||||
		cmd := make(map[string]string, len(cookies))
 | 
							cmd := make(map[string]string, len(cookies))
 | 
				
			||||||
@@ -45,10 +52,13 @@ func FillRequest(ctx context.Context, req interface{}, opts ...FillRequestOption
 | 
				
			|||||||
		for idx := 0; idx < len(options.cookies)/2; idx += 2 {
 | 
							for idx := 0; idx < len(options.cookies)/2; idx += 2 {
 | 
				
			||||||
			k := http.CanonicalHeaderKey(options.cookies[idx])
 | 
								k := http.CanonicalHeaderKey(options.cookies[idx])
 | 
				
			||||||
			v, ok := cmd[k]
 | 
								v, ok := cmd[k]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if !ok {
 | 
								if !ok {
 | 
				
			||||||
				continue
 | 
									continue
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			if err = rutil.SetFieldByPath(req, v, k); err != nil {
 | 
					
 | 
				
			||||||
 | 
								err = rutil.SetFieldByPath(req, v, k)
 | 
				
			||||||
 | 
								if err != nil {
 | 
				
			||||||
				return err
 | 
									return err
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user