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  }