()
| 168 | } |
| 169 | |
| 170 | func main() { |
| 171 | flag.Parse() |
| 172 | logger.Infof("Client running with test case %q", *testCase) |
| 173 | var useGDC bool // use google default creds |
| 174 | var useCEC bool // use compute engine creds |
| 175 | if *customCredentialsType != "" { |
| 176 | switch *customCredentialsType { |
| 177 | case googleDefaultCredsName: |
| 178 | useGDC = true |
| 179 | case computeEngineCredsName: |
| 180 | useCEC = true |
| 181 | default: |
| 182 | logger.Fatalf("If set, custom_credentials_type can only be set to one of %v or %v", |
| 183 | googleDefaultCredsName, computeEngineCredsName) |
| 184 | } |
| 185 | } |
| 186 | if (*useTLS && *useALTS) || (*useTLS && useGDC) || (*useALTS && useGDC) || (*useTLS && useCEC) || (*useALTS && useCEC) { |
| 187 | logger.Fatalf("only one of TLS, ALTS, google default creds, or compute engine creds can be used") |
| 188 | } |
| 189 | |
| 190 | ctx := context.Background() |
| 191 | |
| 192 | var credsChosen credsMode |
| 193 | switch { |
| 194 | case *useTLS: |
| 195 | credsChosen = credsTLS |
| 196 | case *useALTS: |
| 197 | credsChosen = credsALTS |
| 198 | case useGDC: |
| 199 | credsChosen = credsGoogleDefaultCreds |
| 200 | case useCEC: |
| 201 | credsChosen = credsComputeEngineCreds |
| 202 | } |
| 203 | |
| 204 | resolver.SetDefaultScheme("dns") |
| 205 | if len(*googleC2PUniverseDomain) > 0 { |
| 206 | if err := googledirectpath.SetUniverseDomain(*googleC2PUniverseDomain); err != nil { |
| 207 | log.Fatalf("googlec2p.SetUniverseDomain(%s) failed: %v", *googleC2PUniverseDomain, err) |
| 208 | } |
| 209 | } |
| 210 | serverAddr := *serverHost |
| 211 | if *serverPort != 0 { |
| 212 | serverAddr = net.JoinHostPort(*serverHost, strconv.Itoa(*serverPort)) |
| 213 | } |
| 214 | var opts []grpc.DialOption |
| 215 | switch credsChosen { |
| 216 | case credsTLS: |
| 217 | var roots *x509.CertPool |
| 218 | if *testCA { |
| 219 | if *caFile == "" { |
| 220 | *caFile = testdata.Path("ca.pem") |
| 221 | } |
| 222 | b, err := os.ReadFile(*caFile) |
| 223 | if err != nil { |
| 224 | logger.Fatalf("Failed to read root certificate file %q: %v", *caFile, err) |
| 225 | } |
| 226 | roots = x509.NewCertPool() |
| 227 | if !roots.AppendCertsFromPEM(b) { |
nothing calls this directly
no test coverage detected