Skip to content

Commit b80cb6c

Browse files
chore: cleanup duplication in sapi_cli_register_variables() (#1716)
1 parent 23c493d commit b80cb6c

1 file changed

Lines changed: 22 additions & 25 deletions

File tree

frankenphp.c

Lines changed: 22 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -748,6 +748,15 @@ void frankenphp_register_variable_safe(char *key, char *val, size_t val_len,
748748
}
749749
}
750750

751+
static inline void register_server_variable_filtered(const char *key,
752+
char **val,
753+
size_t *val_len,
754+
zval *track_vars_array) {
755+
if (sapi_module.input_filter(PARSE_SERVER, key, val, *val_len, val_len)) {
756+
php_register_variable_safe(key, *val, *val_len, track_vars_array);
757+
}
758+
}
759+
751760
static void frankenphp_register_variables(zval *track_vars_array) {
752761
/* https://www.php.net/manual/en/reserved.variables.server.php */
753762

@@ -1067,7 +1076,7 @@ static void cli_register_file_handles(bool no_close) /* {{{ */
10671076

10681077
static void sapi_cli_register_variables(zval *track_vars_array) /* {{{ */
10691078
{
1070-
size_t len;
1079+
size_t len = strlen(cli_script);
10711080
char *docroot = "";
10721081

10731082
/*
@@ -1077,33 +1086,21 @@ static void sapi_cli_register_variables(zval *track_vars_array) /* {{{ */
10771086
php_import_environment_variables(track_vars_array);
10781087

10791088
/* Build the special-case PHP_SELF variable for the CLI version */
1080-
len = strlen(cli_script);
1081-
if (sapi_module.input_filter(PARSE_SERVER, "PHP_SELF", &cli_script, len,
1082-
&len)) {
1083-
php_register_variable_safe("PHP_SELF", cli_script, len, track_vars_array);
1084-
}
1085-
if (sapi_module.input_filter(PARSE_SERVER, "SCRIPT_NAME", &cli_script, len,
1086-
&len)) {
1087-
php_register_variable_safe("SCRIPT_NAME", cli_script, len,
1088-
track_vars_array);
1089-
}
1089+
register_server_variable_filtered("PHP_SELF", &cli_script, &len,
1090+
track_vars_array);
1091+
register_server_variable_filtered("SCRIPT_NAME", &cli_script, &len,
1092+
track_vars_array);
1093+
10901094
/* filenames are empty for stdin */
1091-
if (sapi_module.input_filter(PARSE_SERVER, "SCRIPT_FILENAME", &cli_script,
1092-
len, &len)) {
1093-
php_register_variable_safe("SCRIPT_FILENAME", cli_script, len,
1094-
track_vars_array);
1095-
}
1096-
if (sapi_module.input_filter(PARSE_SERVER, "PATH_TRANSLATED", &cli_script,
1097-
len, &len)) {
1098-
php_register_variable_safe("PATH_TRANSLATED", cli_script, len,
1099-
track_vars_array);
1100-
}
1095+
register_server_variable_filtered("SCRIPT_FILENAME", &cli_script, &len,
1096+
track_vars_array);
1097+
register_server_variable_filtered("PATH_TRANSLATED", &cli_script, &len,
1098+
track_vars_array);
1099+
11011100
/* just make it available */
11021101
len = 0U;
1103-
if (sapi_module.input_filter(PARSE_SERVER, "DOCUMENT_ROOT", &docroot, len,
1104-
&len)) {
1105-
php_register_variable_safe("DOCUMENT_ROOT", docroot, len, track_vars_array);
1106-
}
1102+
register_server_variable_filtered("DOCUMENT_ROOT", &docroot, &len,
1103+
track_vars_array);
11071104
}
11081105
/* }}} */
11091106

0 commit comments

Comments
 (0)