diff options
Diffstat (limited to 'vendor/google.golang.org/grpc/internal/channelz/util_linux.go')
| -rw-r--r-- | vendor/google.golang.org/grpc/internal/channelz/util_linux.go | 37 | 
1 files changed, 37 insertions, 0 deletions
diff --git a/vendor/google.golang.org/grpc/internal/channelz/util_linux.go b/vendor/google.golang.org/grpc/internal/channelz/util_linux.go new file mode 100644 index 0000000..8d194e4 --- /dev/null +++ b/vendor/google.golang.org/grpc/internal/channelz/util_linux.go @@ -0,0 +1,37 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + *     http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package channelz + +import ( +	"syscall" +) + +// GetSocketOption gets the socket option info of the conn. +func GetSocketOption(socket interface{}) *SocketOptionData { +	c, ok := socket.(syscall.Conn) +	if !ok { +		return nil +	} +	data := &SocketOptionData{} +	if rawConn, err := c.SyscallConn(); err == nil { +		rawConn.Control(data.Getsockopt) +		return data +	} +	return nil +}  | 
