syntax = "proto3";

package v2ray.core.transport.internet.domainsocket;
option csharp_namespace = "V2Ray.Core.Transport.Internet.DomainSocket";
option go_package = "github.com/v2fly/v2ray-core/v5/transport/internet/domainsocket";
option java_package = "com.v2ray.core.transport.internet.domainsocket";
option java_multiple_files = true;

import "common/protoext/extensions.proto";

message Config {
  option (v2ray.core.common.protoext.message_opt).type = "transport";
  option (v2ray.core.common.protoext.message_opt).short_name = "domainsocket";

  // Path of the domain socket. This overrides the IP/Port parameter from
  // upstream caller.
  string path = 1;
  // Abstract specifies whether to use abstract namespace or not.
  // Traditionally Unix domain socket is file system based. Abstract domain
  // socket can be used without acquiring file lock.
  bool abstract = 2;
  // Some apps, eg. haproxy, use the full length of sockaddr_un.sun_path to
  // connect(2) or bind(2) when using abstract UDS.
  bool padding = 3;
}
