Add address bind config option

This commit is contained in:
Essem 2023-08-15 03:44:06 +00:00 committed by Kainoa Kanter
parent a1284d0591
commit 7d49af822a
3 changed files with 8 additions and 0 deletions

View file

@ -161,6 +161,9 @@ reservedUsernames: [
# deliverJobMaxAttempts: 12 # deliverJobMaxAttempts: 12
# inboxJobMaxAttempts: 8 # inboxJobMaxAttempts: 8
# Local address used for outgoing requests
#outgoingAddress: 127.0.0.1
# IP address family used for outgoing request (ipv4, ipv6 or dual) # IP address family used for outgoing request (ipv4, ipv6 or dual)
#outgoingAddressFamily: ipv4 #outgoingAddressFamily: ipv4

View file

@ -78,6 +78,7 @@ export type Source = {
fingerprint?: string; fingerprint?: string;
}; };
outgoingAddress?: string;
outgoingAddressFamily?: "ipv4" | "ipv6" | "dual"; outgoingAddressFamily?: "ipv4" | "ipv6" | "dual";
deliverJobConcurrency?: number; deliverJobConcurrency?: number;

View file

@ -99,6 +99,7 @@ const _http = new http.Agent({
keepAlive: true, keepAlive: true,
keepAliveMsecs: 30 * 1000, keepAliveMsecs: 30 * 1000,
lookup: cache.lookup, lookup: cache.lookup,
localAddress: config.outgoingAddress,
} as http.AgentOptions); } as http.AgentOptions);
/** /**
@ -108,6 +109,7 @@ const _https = new https.Agent({
keepAlive: true, keepAlive: true,
keepAliveMsecs: 30 * 1000, keepAliveMsecs: 30 * 1000,
lookup: cache.lookup, lookup: cache.lookup,
localAddress: config.outgoingAddress,
} as https.AgentOptions); } as https.AgentOptions);
const maxSockets = Math.max(256, config.deliverJobConcurrency || 128); const maxSockets = Math.max(256, config.deliverJobConcurrency || 128);
@ -123,6 +125,7 @@ export const httpAgent = config.proxy
maxFreeSockets: 256, maxFreeSockets: 256,
scheduling: "lifo", scheduling: "lifo",
proxy: config.proxy, proxy: config.proxy,
localAddress: config.outgoingAddress,
}) })
: _http; : _http;
@ -137,6 +140,7 @@ export const httpsAgent = config.proxy
maxFreeSockets: 256, maxFreeSockets: 256,
scheduling: "lifo", scheduling: "lifo",
proxy: config.proxy, proxy: config.proxy,
localAddress: config.outgoingAddress,
}) })
: _https; : _https;