999
999
RecSetRecordInt("proxy.node.restarts.proxy.start_time", proxy_started_at);
1000
1000
RecSetRecordInt("proxy.node.restarts.proxy.restart_count", proxy_launch_count);
1003
char real_proxy_options[TS_ARG_MAX], *options[32], *last, *tok;
1003
char *options[32], *last, *tok;
1004
1004
bool open_ports_p = false;
1006
snprintf(real_proxy_options, sizeof(real_proxy_options), "%s", proxy_options);
1007
n = strlen(real_proxy_options);
1006
Vec<char> real_proxy_options;
1008
real_proxy_options.append(proxy_options, strlen(proxy_options));
1009
1010
// Check if we need to pass down port/fd information to
1010
1011
// traffic_server by seeing if there are any open ports.
1011
for ( int i = 0, limit = m_proxy_ports.length()
1012
; !open_ports_p && i < limit
1015
if (ts::NO_FD != m_proxy_ports[i].m_fd) open_ports_p = true;
1012
for ( int i = 0, limit = m_proxy_ports.length() ; !open_ports_p && i < limit ; ++i) {
1013
if (ts::NO_FD != m_proxy_ports[i].m_fd) {
1014
open_ports_p = true;
1017
1018
if (open_ports_p) {
1018
1020
bool need_comma_p = false;
1019
snprintf(&real_proxy_options[n], sizeof(real_proxy_options) - n, " --httpport ");
1020
n = strlen(real_proxy_options);
1021
real_proxy_options.append(" --httpport ", strlen(" --httpport "));
1021
1022
for ( int i = 0, limit = m_proxy_ports.length() ; i < limit ; ++i ) {
1022
1023
HttpProxyPort& p = m_proxy_ports[i];
1023
1024
if (ts::NO_FD != p.m_fd) {
1024
if (need_comma_p) real_proxy_options[n++] = ',';
1026
real_proxy_options.append(',');
1025
1028
need_comma_p = true;
1026
p.print(real_proxy_options+n, sizeof(real_proxy_options)-n);
1027
n = strlen(real_proxy_options);
1029
p.print(portbuf, sizeof(portbuf));
1030
real_proxy_options.append((const char *)portbuf, strlen(portbuf));
1035
// NUL-terminate for the benefit of strtok and printf.
1036
real_proxy_options.append('\0');
1032
1038
Debug("lm", "[LocalManager::startProxy] Launching %s with options '%s'\n",
1033
absolute_proxy_binary, real_proxy_options);
1039
absolute_proxy_binary, &real_proxy_options[0]);
1035
1041
ink_zero(options);
1036
1042
options[0] = absolute_proxy_binary;
1038
tok = ink_strtok_r(real_proxy_options, " ", &last);
1044
tok = ink_strtok_r(&real_proxy_options[0], " ", &last);
1039
1045
options[i++] = tok;
1040
1046
while (i < 32 && (tok = ink_strtok_r(NULL, " ", &last))) {
1041
1047
Debug("lm", "opt %d = '%s'\n", i, tok);