github.com/hxx258456/ccgo@v0.0.5-0.20230213014102-48b35f46f66f/grpc/internal/channelz/types_nonlinux.go (about) 1 //go:build !linux 2 // +build !linux 3 4 /* 5 * 6 * Copyright 2018 gRPC authors. 7 * 8 * Licensed under the Apache License, Version 2.0 (the "License"); 9 * you may not use this file except in compliance with the License. 10 * You may obtain a copy of the License at 11 * 12 * http://www.apache.org/licenses/LICENSE-2.0 13 * 14 * Unless required by applicable law or agreed to in writing, software 15 * distributed under the License is distributed on an "AS IS" BASIS, 16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 17 * See the License for the specific language governing permissions and 18 * limitations under the License. 19 * 20 */ 21 22 package channelz 23 24 import ( 25 "sync" 26 ) 27 28 var once sync.Once 29 30 // SocketOptionData defines the struct to hold socket option data, and related 31 // getter function to obtain info from fd. 32 // Windows OS doesn't support Socket Option 33 type SocketOptionData struct { 34 } 35 36 // Getsockopt defines the function to get socket options requested by channelz. 37 // It is to be passed to syscall.RawConn.Control(). 38 // Windows OS doesn't support Socket Option 39 func (s *SocketOptionData) Getsockopt(fd uintptr) { 40 once.Do(func() { 41 logger.Warning("Channelz: socket options are not supported on non-linux environments") 42 }) 43 }