wintun: query for NetCfgInstanceId several times
This commit is contained in:
		
							parent
							
								
									52ec440d79
								
							
						
					
					
						commit
						2fa80c0cb7
					
				@ -45,14 +45,25 @@ func MakeWintun(deviceInfoSet setupapi.DevInfo, deviceInfoData *setupapi.DevInfo
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	defer key.Close()
 | 
						defer key.Close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Read the NetCfgInstanceId value.
 | 
						var valueStr string
 | 
				
			||||||
	valueStr, valueType, err := key.GetStringValue("NetCfgInstanceId")
 | 
						var valueType uint32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						//TODO: Figure out a way to not need to loop like this.
 | 
				
			||||||
 | 
						for i := 0; i < 30; i++ {
 | 
				
			||||||
 | 
							// Read the NetCfgInstanceId value.
 | 
				
			||||||
 | 
							valueStr, valueType, err = key.GetStringValue("NetCfgInstanceId")
 | 
				
			||||||
 | 
							if err != nil {
 | 
				
			||||||
 | 
								time.Sleep(time.Millisecond * 100)
 | 
				
			||||||
 | 
								continue
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if valueType != registry.SZ {
 | 
				
			||||||
 | 
								return nil, fmt.Errorf("NetCfgInstanceId registry value is not REG_SZ (expected: %v, provided: %v)", registry.SZ, valueType)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							break
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, errors.New("RegQueryStringValue(\"NetCfgInstanceId\") failed: " + err.Error())
 | 
							return nil, errors.New("RegQueryStringValue(\"NetCfgInstanceId\") failed: " + err.Error())
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if valueType != registry.SZ {
 | 
					 | 
				
			||||||
		return nil, fmt.Errorf("NetCfgInstanceId registry value is not REG_SZ (expected: %v, provided: %v)", registry.SZ, valueType)
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Convert to windows.GUID.
 | 
						// Convert to windows.GUID.
 | 
				
			||||||
	ifid, err := guid.FromString(valueStr)
 | 
						ifid, err := guid.FromString(valueStr)
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user