@remnawave/xtls-sdk
Version:
A Typescript SDK for XRAY (XTLS) Core GRPC Api
1,028 lines (1,027 loc) • 39.3 kB
JavaScript
"use strict";
// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
// protoc-gen-ts_proto v2.2.7
// protoc v5.28.3
// source: transport/internet/config.proto
Object.defineProperty(exports, "__esModule", { value: true });
exports.SocketConfig = exports.CustomSockopt = exports.ProxyConfig = exports.StreamConfig = exports.TransportConfig = exports.SocketConfig_TProxyMode = exports.AddressPortStrategy = exports.DomainStrategy = exports.protobufPackage = void 0;
exports.domainStrategyFromJSON = domainStrategyFromJSON;
exports.domainStrategyToJSON = domainStrategyToJSON;
exports.addressPortStrategyFromJSON = addressPortStrategyFromJSON;
exports.addressPortStrategyToJSON = addressPortStrategyToJSON;
exports.socketConfig_TProxyModeFromJSON = socketConfig_TProxyModeFromJSON;
exports.socketConfig_TProxyModeToJSON = socketConfig_TProxyModeToJSON;
/* eslint-disable */
const wire_1 = require("@bufbuild/protobuf/wire");
const address_1 = require("../../common/net/address");
const typed_message_1 = require("../../common/serial/typed_message");
const typeRegistry_1 = require("../../typeRegistry");
exports.protobufPackage = "xray.transport.internet";
var DomainStrategy;
(function (DomainStrategy) {
DomainStrategy[DomainStrategy["AS_IS"] = 0] = "AS_IS";
DomainStrategy[DomainStrategy["USE_IP"] = 1] = "USE_IP";
DomainStrategy[DomainStrategy["USE_IP4"] = 2] = "USE_IP4";
DomainStrategy[DomainStrategy["USE_IP6"] = 3] = "USE_IP6";
DomainStrategy[DomainStrategy["USE_IP46"] = 4] = "USE_IP46";
DomainStrategy[DomainStrategy["USE_IP64"] = 5] = "USE_IP64";
DomainStrategy[DomainStrategy["FORCE_IP"] = 6] = "FORCE_IP";
DomainStrategy[DomainStrategy["FORCE_IP4"] = 7] = "FORCE_IP4";
DomainStrategy[DomainStrategy["FORCE_IP6"] = 8] = "FORCE_IP6";
DomainStrategy[DomainStrategy["FORCE_IP46"] = 9] = "FORCE_IP46";
DomainStrategy[DomainStrategy["FORCE_IP64"] = 10] = "FORCE_IP64";
DomainStrategy[DomainStrategy["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(DomainStrategy || (exports.DomainStrategy = DomainStrategy = {}));
function domainStrategyFromJSON(object) {
switch (object) {
case 0:
case "AS_IS":
return DomainStrategy.AS_IS;
case 1:
case "USE_IP":
return DomainStrategy.USE_IP;
case 2:
case "USE_IP4":
return DomainStrategy.USE_IP4;
case 3:
case "USE_IP6":
return DomainStrategy.USE_IP6;
case 4:
case "USE_IP46":
return DomainStrategy.USE_IP46;
case 5:
case "USE_IP64":
return DomainStrategy.USE_IP64;
case 6:
case "FORCE_IP":
return DomainStrategy.FORCE_IP;
case 7:
case "FORCE_IP4":
return DomainStrategy.FORCE_IP4;
case 8:
case "FORCE_IP6":
return DomainStrategy.FORCE_IP6;
case 9:
case "FORCE_IP46":
return DomainStrategy.FORCE_IP46;
case 10:
case "FORCE_IP64":
return DomainStrategy.FORCE_IP64;
case -1:
case "UNRECOGNIZED":
default:
return DomainStrategy.UNRECOGNIZED;
}
}
function domainStrategyToJSON(object) {
switch (object) {
case DomainStrategy.AS_IS:
return "AS_IS";
case DomainStrategy.USE_IP:
return "USE_IP";
case DomainStrategy.USE_IP4:
return "USE_IP4";
case DomainStrategy.USE_IP6:
return "USE_IP6";
case DomainStrategy.USE_IP46:
return "USE_IP46";
case DomainStrategy.USE_IP64:
return "USE_IP64";
case DomainStrategy.FORCE_IP:
return "FORCE_IP";
case DomainStrategy.FORCE_IP4:
return "FORCE_IP4";
case DomainStrategy.FORCE_IP6:
return "FORCE_IP6";
case DomainStrategy.FORCE_IP46:
return "FORCE_IP46";
case DomainStrategy.FORCE_IP64:
return "FORCE_IP64";
case DomainStrategy.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
var AddressPortStrategy;
(function (AddressPortStrategy) {
AddressPortStrategy[AddressPortStrategy["None"] = 0] = "None";
AddressPortStrategy[AddressPortStrategy["SrvPortOnly"] = 1] = "SrvPortOnly";
AddressPortStrategy[AddressPortStrategy["SrvAddressOnly"] = 2] = "SrvAddressOnly";
AddressPortStrategy[AddressPortStrategy["SrvPortAndAddress"] = 3] = "SrvPortAndAddress";
AddressPortStrategy[AddressPortStrategy["TxtPortOnly"] = 4] = "TxtPortOnly";
AddressPortStrategy[AddressPortStrategy["TxtAddressOnly"] = 5] = "TxtAddressOnly";
AddressPortStrategy[AddressPortStrategy["TxtPortAndAddress"] = 6] = "TxtPortAndAddress";
AddressPortStrategy[AddressPortStrategy["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(AddressPortStrategy || (exports.AddressPortStrategy = AddressPortStrategy = {}));
function addressPortStrategyFromJSON(object) {
switch (object) {
case 0:
case "None":
return AddressPortStrategy.None;
case 1:
case "SrvPortOnly":
return AddressPortStrategy.SrvPortOnly;
case 2:
case "SrvAddressOnly":
return AddressPortStrategy.SrvAddressOnly;
case 3:
case "SrvPortAndAddress":
return AddressPortStrategy.SrvPortAndAddress;
case 4:
case "TxtPortOnly":
return AddressPortStrategy.TxtPortOnly;
case 5:
case "TxtAddressOnly":
return AddressPortStrategy.TxtAddressOnly;
case 6:
case "TxtPortAndAddress":
return AddressPortStrategy.TxtPortAndAddress;
case -1:
case "UNRECOGNIZED":
default:
return AddressPortStrategy.UNRECOGNIZED;
}
}
function addressPortStrategyToJSON(object) {
switch (object) {
case AddressPortStrategy.None:
return "None";
case AddressPortStrategy.SrvPortOnly:
return "SrvPortOnly";
case AddressPortStrategy.SrvAddressOnly:
return "SrvAddressOnly";
case AddressPortStrategy.SrvPortAndAddress:
return "SrvPortAndAddress";
case AddressPortStrategy.TxtPortOnly:
return "TxtPortOnly";
case AddressPortStrategy.TxtAddressOnly:
return "TxtAddressOnly";
case AddressPortStrategy.TxtPortAndAddress:
return "TxtPortAndAddress";
case AddressPortStrategy.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
var SocketConfig_TProxyMode;
(function (SocketConfig_TProxyMode) {
/** Off - TProxy is off. */
SocketConfig_TProxyMode[SocketConfig_TProxyMode["Off"] = 0] = "Off";
/** TProxy - TProxy mode. */
SocketConfig_TProxyMode[SocketConfig_TProxyMode["TProxy"] = 1] = "TProxy";
/** Redirect - Redirect mode. */
SocketConfig_TProxyMode[SocketConfig_TProxyMode["Redirect"] = 2] = "Redirect";
SocketConfig_TProxyMode[SocketConfig_TProxyMode["UNRECOGNIZED"] = -1] = "UNRECOGNIZED";
})(SocketConfig_TProxyMode || (exports.SocketConfig_TProxyMode = SocketConfig_TProxyMode = {}));
function socketConfig_TProxyModeFromJSON(object) {
switch (object) {
case 0:
case "Off":
return SocketConfig_TProxyMode.Off;
case 1:
case "TProxy":
return SocketConfig_TProxyMode.TProxy;
case 2:
case "Redirect":
return SocketConfig_TProxyMode.Redirect;
case -1:
case "UNRECOGNIZED":
default:
return SocketConfig_TProxyMode.UNRECOGNIZED;
}
}
function socketConfig_TProxyModeToJSON(object) {
switch (object) {
case SocketConfig_TProxyMode.Off:
return "Off";
case SocketConfig_TProxyMode.TProxy:
return "TProxy";
case SocketConfig_TProxyMode.Redirect:
return "Redirect";
case SocketConfig_TProxyMode.UNRECOGNIZED:
default:
return "UNRECOGNIZED";
}
}
function createBaseTransportConfig() {
return { $type: "xray.transport.internet.TransportConfig", protocolName: "", settings: undefined };
}
exports.TransportConfig = {
$type: "xray.transport.internet.TransportConfig",
encode(message, writer = new wire_1.BinaryWriter()) {
if (message.protocolName !== "") {
writer.uint32(26).string(message.protocolName);
}
if (message.settings !== undefined) {
typed_message_1.TypedMessage.encode(message.settings, writer.uint32(18).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTransportConfig();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 3: {
if (tag !== 26) {
break;
}
message.protocolName = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.settings = typed_message_1.TypedMessage.decode(reader, reader.uint32());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
$type: exports.TransportConfig.$type,
protocolName: isSet(object.protocolName) ? globalThis.String(object.protocolName) : "",
settings: isSet(object.settings) ? typed_message_1.TypedMessage.fromJSON(object.settings) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.protocolName !== "") {
obj.protocolName = message.protocolName;
}
if (message.settings !== undefined) {
obj.settings = typed_message_1.TypedMessage.toJSON(message.settings);
}
return obj;
},
create(base) {
return exports.TransportConfig.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseTransportConfig();
message.protocolName = object.protocolName ?? "";
message.settings = (object.settings !== undefined && object.settings !== null)
? typed_message_1.TypedMessage.fromPartial(object.settings)
: undefined;
return message;
},
};
typeRegistry_1.messageTypeRegistry.set(exports.TransportConfig.$type, exports.TransportConfig);
function createBaseStreamConfig() {
return {
$type: "xray.transport.internet.StreamConfig",
address: undefined,
port: 0,
protocolName: "",
transportSettings: [],
securityType: "",
securitySettings: [],
socketSettings: undefined,
};
}
exports.StreamConfig = {
$type: "xray.transport.internet.StreamConfig",
encode(message, writer = new wire_1.BinaryWriter()) {
if (message.address !== undefined) {
address_1.IPOrDomain.encode(message.address, writer.uint32(66).fork()).join();
}
if (message.port !== 0) {
writer.uint32(72).uint32(message.port);
}
if (message.protocolName !== "") {
writer.uint32(42).string(message.protocolName);
}
for (const v of message.transportSettings) {
exports.TransportConfig.encode(v, writer.uint32(18).fork()).join();
}
if (message.securityType !== "") {
writer.uint32(26).string(message.securityType);
}
for (const v of message.securitySettings) {
typed_message_1.TypedMessage.encode(v, writer.uint32(34).fork()).join();
}
if (message.socketSettings !== undefined) {
exports.SocketConfig.encode(message.socketSettings, writer.uint32(50).fork()).join();
}
return writer;
},
decode(input, length) {
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseStreamConfig();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 8: {
if (tag !== 66) {
break;
}
message.address = address_1.IPOrDomain.decode(reader, reader.uint32());
continue;
}
case 9: {
if (tag !== 72) {
break;
}
message.port = reader.uint32();
continue;
}
case 5: {
if (tag !== 42) {
break;
}
message.protocolName = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.transportSettings.push(exports.TransportConfig.decode(reader, reader.uint32()));
continue;
}
case 3: {
if (tag !== 26) {
break;
}
message.securityType = reader.string();
continue;
}
case 4: {
if (tag !== 34) {
break;
}
message.securitySettings.push(typed_message_1.TypedMessage.decode(reader, reader.uint32()));
continue;
}
case 6: {
if (tag !== 50) {
break;
}
message.socketSettings = exports.SocketConfig.decode(reader, reader.uint32());
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
$type: exports.StreamConfig.$type,
address: isSet(object.address) ? address_1.IPOrDomain.fromJSON(object.address) : undefined,
port: isSet(object.port) ? globalThis.Number(object.port) : 0,
protocolName: isSet(object.protocolName) ? globalThis.String(object.protocolName) : "",
transportSettings: globalThis.Array.isArray(object?.transportSettings)
? object.transportSettings.map((e) => exports.TransportConfig.fromJSON(e))
: [],
securityType: isSet(object.securityType) ? globalThis.String(object.securityType) : "",
securitySettings: globalThis.Array.isArray(object?.securitySettings)
? object.securitySettings.map((e) => typed_message_1.TypedMessage.fromJSON(e))
: [],
socketSettings: isSet(object.socketSettings) ? exports.SocketConfig.fromJSON(object.socketSettings) : undefined,
};
},
toJSON(message) {
const obj = {};
if (message.address !== undefined) {
obj.address = address_1.IPOrDomain.toJSON(message.address);
}
if (message.port !== 0) {
obj.port = Math.round(message.port);
}
if (message.protocolName !== "") {
obj.protocolName = message.protocolName;
}
if (message.transportSettings?.length) {
obj.transportSettings = message.transportSettings.map((e) => exports.TransportConfig.toJSON(e));
}
if (message.securityType !== "") {
obj.securityType = message.securityType;
}
if (message.securitySettings?.length) {
obj.securitySettings = message.securitySettings.map((e) => typed_message_1.TypedMessage.toJSON(e));
}
if (message.socketSettings !== undefined) {
obj.socketSettings = exports.SocketConfig.toJSON(message.socketSettings);
}
return obj;
},
create(base) {
return exports.StreamConfig.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseStreamConfig();
message.address = (object.address !== undefined && object.address !== null)
? address_1.IPOrDomain.fromPartial(object.address)
: undefined;
message.port = object.port ?? 0;
message.protocolName = object.protocolName ?? "";
message.transportSettings = object.transportSettings?.map((e) => exports.TransportConfig.fromPartial(e)) || [];
message.securityType = object.securityType ?? "";
message.securitySettings = object.securitySettings?.map((e) => typed_message_1.TypedMessage.fromPartial(e)) || [];
message.socketSettings = (object.socketSettings !== undefined && object.socketSettings !== null)
? exports.SocketConfig.fromPartial(object.socketSettings)
: undefined;
return message;
},
};
typeRegistry_1.messageTypeRegistry.set(exports.StreamConfig.$type, exports.StreamConfig);
function createBaseProxyConfig() {
return { $type: "xray.transport.internet.ProxyConfig", tag: "", transportLayerProxy: false };
}
exports.ProxyConfig = {
$type: "xray.transport.internet.ProxyConfig",
encode(message, writer = new wire_1.BinaryWriter()) {
if (message.tag !== "") {
writer.uint32(10).string(message.tag);
}
if (message.transportLayerProxy !== false) {
writer.uint32(16).bool(message.transportLayerProxy);
}
return writer;
},
decode(input, length) {
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseProxyConfig();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.tag = reader.string();
continue;
}
case 2: {
if (tag !== 16) {
break;
}
message.transportLayerProxy = reader.bool();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
$type: exports.ProxyConfig.$type,
tag: isSet(object.tag) ? globalThis.String(object.tag) : "",
transportLayerProxy: isSet(object.transportLayerProxy) ? globalThis.Boolean(object.transportLayerProxy) : false,
};
},
toJSON(message) {
const obj = {};
if (message.tag !== "") {
obj.tag = message.tag;
}
if (message.transportLayerProxy !== false) {
obj.transportLayerProxy = message.transportLayerProxy;
}
return obj;
},
create(base) {
return exports.ProxyConfig.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseProxyConfig();
message.tag = object.tag ?? "";
message.transportLayerProxy = object.transportLayerProxy ?? false;
return message;
},
};
typeRegistry_1.messageTypeRegistry.set(exports.ProxyConfig.$type, exports.ProxyConfig);
function createBaseCustomSockopt() {
return { $type: "xray.transport.internet.CustomSockopt", level: "", opt: "", value: "", type: "" };
}
exports.CustomSockopt = {
$type: "xray.transport.internet.CustomSockopt",
encode(message, writer = new wire_1.BinaryWriter()) {
if (message.level !== "") {
writer.uint32(10).string(message.level);
}
if (message.opt !== "") {
writer.uint32(18).string(message.opt);
}
if (message.value !== "") {
writer.uint32(26).string(message.value);
}
if (message.type !== "") {
writer.uint32(34).string(message.type);
}
return writer;
},
decode(input, length) {
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCustomSockopt();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
break;
}
message.level = reader.string();
continue;
}
case 2: {
if (tag !== 18) {
break;
}
message.opt = reader.string();
continue;
}
case 3: {
if (tag !== 26) {
break;
}
message.value = reader.string();
continue;
}
case 4: {
if (tag !== 34) {
break;
}
message.type = reader.string();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
$type: exports.CustomSockopt.$type,
level: isSet(object.level) ? globalThis.String(object.level) : "",
opt: isSet(object.opt) ? globalThis.String(object.opt) : "",
value: isSet(object.value) ? globalThis.String(object.value) : "",
type: isSet(object.type) ? globalThis.String(object.type) : "",
};
},
toJSON(message) {
const obj = {};
if (message.level !== "") {
obj.level = message.level;
}
if (message.opt !== "") {
obj.opt = message.opt;
}
if (message.value !== "") {
obj.value = message.value;
}
if (message.type !== "") {
obj.type = message.type;
}
return obj;
},
create(base) {
return exports.CustomSockopt.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseCustomSockopt();
message.level = object.level ?? "";
message.opt = object.opt ?? "";
message.value = object.value ?? "";
message.type = object.type ?? "";
return message;
},
};
typeRegistry_1.messageTypeRegistry.set(exports.CustomSockopt.$type, exports.CustomSockopt);
function createBaseSocketConfig() {
return {
$type: "xray.transport.internet.SocketConfig",
mark: 0,
tfo: 0,
tproxy: 0,
receiveOriginalDestAddress: false,
bindAddress: new Uint8Array(0),
bindPort: 0,
acceptProxyProtocol: false,
domainStrategy: 0,
dialerProxy: "",
tcpKeepAliveInterval: 0,
tcpKeepAliveIdle: 0,
tcpCongestion: "",
interface: "",
v6only: false,
tcpWindowClamp: 0,
tcpUserTimeout: 0,
tcpMaxSeg: 0,
penetrate: false,
tcpMptcp: false,
customSockopt: [],
addressPortStrategy: 0,
};
}
exports.SocketConfig = {
$type: "xray.transport.internet.SocketConfig",
encode(message, writer = new wire_1.BinaryWriter()) {
if (message.mark !== 0) {
writer.uint32(8).int32(message.mark);
}
if (message.tfo !== 0) {
writer.uint32(16).int32(message.tfo);
}
if (message.tproxy !== 0) {
writer.uint32(24).int32(message.tproxy);
}
if (message.receiveOriginalDestAddress !== false) {
writer.uint32(32).bool(message.receiveOriginalDestAddress);
}
if (message.bindAddress.length !== 0) {
writer.uint32(42).bytes(message.bindAddress);
}
if (message.bindPort !== 0) {
writer.uint32(48).uint32(message.bindPort);
}
if (message.acceptProxyProtocol !== false) {
writer.uint32(56).bool(message.acceptProxyProtocol);
}
if (message.domainStrategy !== 0) {
writer.uint32(64).int32(message.domainStrategy);
}
if (message.dialerProxy !== "") {
writer.uint32(74).string(message.dialerProxy);
}
if (message.tcpKeepAliveInterval !== 0) {
writer.uint32(80).int32(message.tcpKeepAliveInterval);
}
if (message.tcpKeepAliveIdle !== 0) {
writer.uint32(88).int32(message.tcpKeepAliveIdle);
}
if (message.tcpCongestion !== "") {
writer.uint32(98).string(message.tcpCongestion);
}
if (message.interface !== "") {
writer.uint32(106).string(message.interface);
}
if (message.v6only !== false) {
writer.uint32(112).bool(message.v6only);
}
if (message.tcpWindowClamp !== 0) {
writer.uint32(120).int32(message.tcpWindowClamp);
}
if (message.tcpUserTimeout !== 0) {
writer.uint32(128).int32(message.tcpUserTimeout);
}
if (message.tcpMaxSeg !== 0) {
writer.uint32(136).int32(message.tcpMaxSeg);
}
if (message.penetrate !== false) {
writer.uint32(144).bool(message.penetrate);
}
if (message.tcpMptcp !== false) {
writer.uint32(152).bool(message.tcpMptcp);
}
for (const v of message.customSockopt) {
exports.CustomSockopt.encode(v, writer.uint32(162).fork()).join();
}
if (message.addressPortStrategy !== 0) {
writer.uint32(168).int32(message.addressPortStrategy);
}
return writer;
},
decode(input, length) {
const reader = input instanceof wire_1.BinaryReader ? input : new wire_1.BinaryReader(input);
let end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSocketConfig();
while (reader.pos < end) {
const tag = reader.uint32();
switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
break;
}
message.mark = reader.int32();
continue;
}
case 2: {
if (tag !== 16) {
break;
}
message.tfo = reader.int32();
continue;
}
case 3: {
if (tag !== 24) {
break;
}
message.tproxy = reader.int32();
continue;
}
case 4: {
if (tag !== 32) {
break;
}
message.receiveOriginalDestAddress = reader.bool();
continue;
}
case 5: {
if (tag !== 42) {
break;
}
message.bindAddress = reader.bytes();
continue;
}
case 6: {
if (tag !== 48) {
break;
}
message.bindPort = reader.uint32();
continue;
}
case 7: {
if (tag !== 56) {
break;
}
message.acceptProxyProtocol = reader.bool();
continue;
}
case 8: {
if (tag !== 64) {
break;
}
message.domainStrategy = reader.int32();
continue;
}
case 9: {
if (tag !== 74) {
break;
}
message.dialerProxy = reader.string();
continue;
}
case 10: {
if (tag !== 80) {
break;
}
message.tcpKeepAliveInterval = reader.int32();
continue;
}
case 11: {
if (tag !== 88) {
break;
}
message.tcpKeepAliveIdle = reader.int32();
continue;
}
case 12: {
if (tag !== 98) {
break;
}
message.tcpCongestion = reader.string();
continue;
}
case 13: {
if (tag !== 106) {
break;
}
message.interface = reader.string();
continue;
}
case 14: {
if (tag !== 112) {
break;
}
message.v6only = reader.bool();
continue;
}
case 15: {
if (tag !== 120) {
break;
}
message.tcpWindowClamp = reader.int32();
continue;
}
case 16: {
if (tag !== 128) {
break;
}
message.tcpUserTimeout = reader.int32();
continue;
}
case 17: {
if (tag !== 136) {
break;
}
message.tcpMaxSeg = reader.int32();
continue;
}
case 18: {
if (tag !== 144) {
break;
}
message.penetrate = reader.bool();
continue;
}
case 19: {
if (tag !== 152) {
break;
}
message.tcpMptcp = reader.bool();
continue;
}
case 20: {
if (tag !== 162) {
break;
}
message.customSockopt.push(exports.CustomSockopt.decode(reader, reader.uint32()));
continue;
}
case 21: {
if (tag !== 168) {
break;
}
message.addressPortStrategy = reader.int32();
continue;
}
}
if ((tag & 7) === 4 || tag === 0) {
break;
}
reader.skip(tag & 7);
}
return message;
},
fromJSON(object) {
return {
$type: exports.SocketConfig.$type,
mark: isSet(object.mark) ? globalThis.Number(object.mark) : 0,
tfo: isSet(object.tfo) ? globalThis.Number(object.tfo) : 0,
tproxy: isSet(object.tproxy) ? socketConfig_TProxyModeFromJSON(object.tproxy) : 0,
receiveOriginalDestAddress: isSet(object.receiveOriginalDestAddress)
? globalThis.Boolean(object.receiveOriginalDestAddress)
: false,
bindAddress: isSet(object.bindAddress) ? bytesFromBase64(object.bindAddress) : new Uint8Array(0),
bindPort: isSet(object.bindPort) ? globalThis.Number(object.bindPort) : 0,
acceptProxyProtocol: isSet(object.acceptProxyProtocol) ? globalThis.Boolean(object.acceptProxyProtocol) : false,
domainStrategy: isSet(object.domainStrategy) ? domainStrategyFromJSON(object.domainStrategy) : 0,
dialerProxy: isSet(object.dialerProxy) ? globalThis.String(object.dialerProxy) : "",
tcpKeepAliveInterval: isSet(object.tcpKeepAliveInterval) ? globalThis.Number(object.tcpKeepAliveInterval) : 0,
tcpKeepAliveIdle: isSet(object.tcpKeepAliveIdle) ? globalThis.Number(object.tcpKeepAliveIdle) : 0,
tcpCongestion: isSet(object.tcpCongestion) ? globalThis.String(object.tcpCongestion) : "",
interface: isSet(object.interface) ? globalThis.String(object.interface) : "",
v6only: isSet(object.v6only) ? globalThis.Boolean(object.v6only) : false,
tcpWindowClamp: isSet(object.tcpWindowClamp) ? globalThis.Number(object.tcpWindowClamp) : 0,
tcpUserTimeout: isSet(object.tcpUserTimeout) ? globalThis.Number(object.tcpUserTimeout) : 0,
tcpMaxSeg: isSet(object.tcpMaxSeg) ? globalThis.Number(object.tcpMaxSeg) : 0,
penetrate: isSet(object.penetrate) ? globalThis.Boolean(object.penetrate) : false,
tcpMptcp: isSet(object.tcpMptcp) ? globalThis.Boolean(object.tcpMptcp) : false,
customSockopt: globalThis.Array.isArray(object?.customSockopt)
? object.customSockopt.map((e) => exports.CustomSockopt.fromJSON(e))
: [],
addressPortStrategy: isSet(object.addressPortStrategy)
? addressPortStrategyFromJSON(object.addressPortStrategy)
: 0,
};
},
toJSON(message) {
const obj = {};
if (message.mark !== 0) {
obj.mark = Math.round(message.mark);
}
if (message.tfo !== 0) {
obj.tfo = Math.round(message.tfo);
}
if (message.tproxy !== 0) {
obj.tproxy = socketConfig_TProxyModeToJSON(message.tproxy);
}
if (message.receiveOriginalDestAddress !== false) {
obj.receiveOriginalDestAddress = message.receiveOriginalDestAddress;
}
if (message.bindAddress.length !== 0) {
obj.bindAddress = base64FromBytes(message.bindAddress);
}
if (message.bindPort !== 0) {
obj.bindPort = Math.round(message.bindPort);
}
if (message.acceptProxyProtocol !== false) {
obj.acceptProxyProtocol = message.acceptProxyProtocol;
}
if (message.domainStrategy !== 0) {
obj.domainStrategy = domainStrategyToJSON(message.domainStrategy);
}
if (message.dialerProxy !== "") {
obj.dialerProxy = message.dialerProxy;
}
if (message.tcpKeepAliveInterval !== 0) {
obj.tcpKeepAliveInterval = Math.round(message.tcpKeepAliveInterval);
}
if (message.tcpKeepAliveIdle !== 0) {
obj.tcpKeepAliveIdle = Math.round(message.tcpKeepAliveIdle);
}
if (message.tcpCongestion !== "") {
obj.tcpCongestion = message.tcpCongestion;
}
if (message.interface !== "") {
obj.interface = message.interface;
}
if (message.v6only !== false) {
obj.v6only = message.v6only;
}
if (message.tcpWindowClamp !== 0) {
obj.tcpWindowClamp = Math.round(message.tcpWindowClamp);
}
if (message.tcpUserTimeout !== 0) {
obj.tcpUserTimeout = Math.round(message.tcpUserTimeout);
}
if (message.tcpMaxSeg !== 0) {
obj.tcpMaxSeg = Math.round(message.tcpMaxSeg);
}
if (message.penetrate !== false) {
obj.penetrate = message.penetrate;
}
if (message.tcpMptcp !== false) {
obj.tcpMptcp = message.tcpMptcp;
}
if (message.customSockopt?.length) {
obj.customSockopt = message.customSockopt.map((e) => exports.CustomSockopt.toJSON(e));
}
if (message.addressPortStrategy !== 0) {
obj.addressPortStrategy = addressPortStrategyToJSON(message.addressPortStrategy);
}
return obj;
},
create(base) {
return exports.SocketConfig.fromPartial(base ?? {});
},
fromPartial(object) {
const message = createBaseSocketConfig();
message.mark = object.mark ?? 0;
message.tfo = object.tfo ?? 0;
message.tproxy = object.tproxy ?? 0;
message.receiveOriginalDestAddress = object.receiveOriginalDestAddress ?? false;
message.bindAddress = object.bindAddress ?? new Uint8Array(0);
message.bindPort = object.bindPort ?? 0;
message.acceptProxyProtocol = object.acceptProxyProtocol ?? false;
message.domainStrategy = object.domainStrategy ?? 0;
message.dialerProxy = object.dialerProxy ?? "";
message.tcpKeepAliveInterval = object.tcpKeepAliveInterval ?? 0;
message.tcpKeepAliveIdle = object.tcpKeepAliveIdle ?? 0;
message.tcpCongestion = object.tcpCongestion ?? "";
message.interface = object.interface ?? "";
message.v6only = object.v6only ?? false;
message.tcpWindowClamp = object.tcpWindowClamp ?? 0;
message.tcpUserTimeout = object.tcpUserTimeout ?? 0;
message.tcpMaxSeg = object.tcpMaxSeg ?? 0;
message.penetrate = object.penetrate ?? false;
message.tcpMptcp = object.tcpMptcp ?? false;
message.customSockopt = object.customSockopt?.map((e) => exports.CustomSockopt.fromPartial(e)) || [];
message.addressPortStrategy = object.addressPortStrategy ?? 0;
return message;
},
};
typeRegistry_1.messageTypeRegistry.set(exports.SocketConfig.$type, exports.SocketConfig);
function bytesFromBase64(b64) {
if (globalThis.Buffer) {
return Uint8Array.from(globalThis.Buffer.from(b64, "base64"));
}
else {
const bin = globalThis.atob(b64);
const arr = new Uint8Array(bin.length);
for (let i = 0; i < bin.length; ++i) {
arr[i] = bin.charCodeAt(i);
}
return arr;
}
}
function base64FromBytes(arr) {
if (globalThis.Buffer) {
return globalThis.Buffer.from(arr).toString("base64");
}
else {
const bin = [];
arr.forEach((byte) => {
bin.push(globalThis.String.fromCharCode(byte));
});
return globalThis.btoa(bin.join(""));
}
}
function isSet(value) {
return value !== null && value !== undefined;
}