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