$this->getInputs($proxy, ['proxyid', 'host', 'status', 'description', 'tls_connect', 'tls_accept', 'tls_issuer',
class CControllerProxyUpdate extends CController {
protected function checkInput() {
'proxyid' => 'fatal|required|db hosts.hostid',
'host' => 'db hosts.host',
'status' => 'db hosts.status|in '.HOST_STATUS_PROXY_ACTIVE.','.HOST_STATUS_PROXY_PASSIVE,
'dns' => 'db interface.dns',
'ip' => 'db interface.ip',
'useip' => 'db interface.useip|in 0,1',
'port' => 'db interface.port',
'proxy_address' => 'db hosts.proxy_address',
'description' => 'db hosts.description',
'tls_connect' => 'db hosts.tls_connect|in '.HOST_ENCRYPTION_NONE.','.HOST_ENCRYPTION_PSK.','.
HOST_ENCRYPTION_CERTIFICATE,
'tls_accept' => 'db hosts.tls_accept|in 0,'.HOST_ENCRYPTION_NONE.','.HOST_ENCRYPTION_PSK.','.
(HOST_ENCRYPTION_NONE | HOST_ENCRYPTION_PSK).','.
HOST_ENCRYPTION_CERTIFICATE.','.
(HOST_ENCRYPTION_NONE | HOST_ENCRYPTION_CERTIFICATE).','.
(HOST_ENCRYPTION_PSK | HOST_ENCRYPTION_CERTIFICATE).','.
(HOST_ENCRYPTION_NONE | HOST_ENCRYPTION_PSK | HOST_ENCRYPTION_CERTIFICATE),
'tls_psk_identity' => 'db hosts.tls_psk_identity',
'tls_psk' => 'db hosts.tls_psk',
'psk_edit_mode' => 'in 0,1',
'tls_issuer' => 'db hosts.tls_issuer',
'tls_subject' => 'db hosts.tls_subject',
'form_refresh' => 'int32'
$ret = $this->validateInput($fields);
switch ($this->GetValidationError()) {
case self::VALIDATION_ERROR:
$response = new CControllerResponseRedirect('zabbix.php?action=proxy.edit');
$response->setFormData($this->getInputAll());
CMessageHelper::setErrorTitle(_('Cannot update proxy'));
$this->setResponse($response);
case self::VALIDATION_FATAL_ERROR:
$this->setResponse(new CControllerResponseFatal());