protected function _defaults($config)
	{
		$url = '?';
		if (isset($_SERVER['REQUEST_URI']))
		{
			$url = $_SERVER['REQUEST_URI'];
		}

		$defaults = array(
			'qb_company_file' => null,					// To force a specific company file to be used
			'qbwc_min_version' => null, 				// Minimum version of the QBWC that must be used to connect
			'qbwc_wait_before_next_update' => null, 	// Tell the QBWC to wait this number of seconds before doing another update
			'qbwc_min_run_every_n_seconds' => null,		// Tell the QBWC to run every n seconds (overrides whatever was in the .QWC web connector configuration file)
			'qbwc_version_warning_message' => null,		// Not implemented...
			'qbwc_version_error_message' => null,  		// Not implemented...
			'qbwc_interactive_url' => null, 			// Provide the URL for an interactive session to the QuickBooks Web Connector
			'autoadd_missing_requestid' => true,
			'check_valid_requestid' => true,
			'server_version' => 'PHP QuickBooks SOAP Server v' . QUICKBOOKS_PACKAGE_VERSION . ' at ' . $url,	// Server version string
			'authenticate' => null, 					// If you want to use some custom authentication scheme (and not the quickbooks_user MySQL table) you can specify your own function here
			'authenticate_dsn' => null, 				//		(backward compat. for 'authenticate')
			'map_application_identifiers' => true, 		// Try to map web application IDs to QuickBooks ListIDs/TxnIDs
			'allow_remote_addr' => array(),
			'deny_remote_addr' => array(),
			'convert_unix_newlines' => true,

			'deny_concurrent_logins' => true,
			'deny_concurrent_timeout' => 60,

			'deny_reallyfast_logins' => true,
			'deny_reallyfast_timeout' => 600,

			'masking' => true,
			);

		$config = array_merge($defaults, $config);

		// Make sure this is an *array* of addresses to allow
		if (!is_array($config['allow_remote_addr']))
		{
			$config['allow_remote_addr'] = array( $config['allow_remote_addr'] );
		}

		// Make sure this is an *array* of addresses to deny
		if (!is_array($config['deny_remote_addr']))
		{
			$config['deny_remote_addr'] = array( $config['deny_remote_addr'] );
		}

		$config['autoadd_missing_requestid'] = (boolean) $config['autoadd_missing_requestid'];
		$config['check_valid_requestid'] = (boolean) $config['check_valid_requestid'];
		$config['map_application_identifiers'] = (boolean) $config['map_application_identifiers'];
		$config['convert_unix_newlines'] = (boolean) $config['convert_unix_newlines'];

		$config['deny_concurrent_logins'] = (boolean) $config['deny_concurrent_logins'];
		$config['deny_concurrent_timeout'] = (int) max(1, $config['deny_concurrent_timeout']);

		$config['deny_reallyfast_logins'] = (boolean) $config['deny_reallyfast_logins'];
		$config['deny_reallyfast_timeout'] = (int) max(1, $config['deny_reallyfast_timeout']);

		return $config;
	}
protected function _defaults($config)
	{
		$url = '?';
		if (isset($_SERVER['REQUEST_URI']))
		{
			$url = $_SERVER['REQUEST_URI'];
		}

		$defaults = array(
			'qb_company_file' => null,					// To force a specific company file to be used
			'qbwc_min_version' => null, 				// Minimum version of the QBWC that must be used to connect
			'qbwc_wait_before_next_update' => null, 	// Tell the QBWC to wait this number of seconds before doing another update
			'qbwc_min_run_every_n_seconds' => null,		// Tell the QBWC to run every n seconds (overrides whatever was in the .QWC web connector configuration file)
			'qbwc_version_warning_message' => null,		// Not implemented...
			'qbwc_version_error_message' => null,  		// Not implemented...
			'qbwc_interactive_url' => null, 			// Provide the URL for an interactive session to the QuickBooks Web Connector
			'autoadd_missing_requestid' => true,
			'check_valid_requestid' => true,
			'server_version' => 'PHP QuickBooks SOAP Server v' . QUICKBOOKS_PACKAGE_VERSION . ' at ' . $url,	// Server version string
			'authenticate' => null, 					// If you want to use some custom authentication scheme (and not the quickbooks_user MySQL table) you can specify your own function here
			'authenticate_dsn' => null, 				//		(backward compat. for 'authenticate')
			'map_application_identifiers' => true, 		// Try to map web application IDs to QuickBooks ListIDs/TxnIDs
			'allow_remote_addr' => array(),
			'deny_remote_addr' => array(),
			'convert_unix_newlines' => true,

			'deny_concurrent_logins' => true,
			'deny_concurrent_timeout' => 60,

			'deny_reallyfast_logins' => true,
			'deny_reallyfast_timeout' => 600,

			'masking' => true,
			);

		$config = array_merge($defaults, $config);

		// Make sure this is an *array* of addresses to allow
		if (!is_array($config['allow_remote_addr']))
		{
			$config['allow_remote_addr'] = array( $config['allow_remote_addr'] );
		}

		// Make sure this is an *array* of addresses to deny
		if (!is_array($config['deny_remote_addr']))
		{
			$config['deny_remote_addr'] = array( $config['deny_remote_addr'] );
		}

		$config['autoadd_missing_requestid'] = (boolean) $config['autoadd_missing_requestid'];
		$config['check_valid_requestid'] = (boolean) $config['check_valid_requestid'];
		$config['map_application_identifiers'] = (boolean) $config['map_application_identifiers'];
		$config['convert_unix_newlines'] = (boolean) $config['convert_unix_newlines'];

		$config['deny_concurrent_logins'] = (boolean) $config['deny_concurrent_logins'];
		$config['deny_concurrent_timeout'] = (int) max(1, $config['deny_concurrent_timeout']);

		$config['deny_reallyfast_logins'] = (boolean) $config['deny_reallyfast_logins'];
		$config['deny_reallyfast_timeout'] = (int) max(1, $config['deny_reallyfast_timeout']);

		return $config;
	}
protected function _defaults ( $ config ) { $ url = '?' ; if ( isset ( $ _SERVER [ 'REQUEST_URI' ] ) ) { $ url = $ _SERVER [ 'REQUEST_URI' ] ; } $ defaults = array ( 'qb_company_file' => null , // To force a specific company file to be used 'qbwc_min_version' => null , // Minimum version of the QBWC that must be used to connect 'qbwc_wait_before_next_update' => null , // Tell the QBWC to wait this number of seconds before doing another update 'qbwc_min_run_every_n_seconds' => null , // Tell the QBWC to run every n seconds (overrides whatever was in the .QWC web connector configuration file) 'qbwc_version_warning_message' => null , // Not implemented... 'qbwc_version_error_message' => null , // Not implemented... 'qbwc_interactive_url' => null , // Provide the URL for an interactive session to the QuickBooks Web Connector 'autoadd_missing_requestid' => true , 'check_valid_requestid' => true , 'server_version' => 'PHP QuickBooks SOAP Server v' . QUICKBOOKS_PACKAGE_VERSION . ' at ' . $ url , // Server version string 'authenticate' => null , // If you want to use some custom authentication scheme (and not the quickbooks_user MySQL table) you can specify your own function here 'authenticate_dsn' => null , //		(backward compat. for 'authenticate') 'map_application_identifiers' => true , // Try to map web application IDs to QuickBooks ListIDs/TxnIDs 'allow_remote_addr' => array ( ) , 'deny_remote_addr' => array ( ) , 'convert_unix_newlines' => true , 'deny_concurrent_logins' => true , 'deny_concurrent_timeout' => 60 , 'deny_reallyfast_logins' => true , 'deny_reallyfast_timeout' => 600 , 'masking' => true , ) ; $ config = array_merge ( $ defaults , $ config ) ; // Make sure this is an *array* of addresses to allow if ( ! is_array ( $ config [ 'allow_remote_addr' ] ) ) { $ config [ 'allow_remote_addr' ] = array ( $ config [ 'allow_remote_addr' ] ) ; } // Make sure this is an *array* of addresses to deny if ( ! is_array ( $ config [ 'deny_remote_addr' ] ) ) { $ config [ 'deny_remote_addr' ] = array ( $ config [ 'deny_remote_addr' ] ) ; } $ config [ 'autoadd_missing_requestid' ] = ( boolean ) $ config [ 'autoadd_missing_requestid' ] ; $ config [ 'check_valid_requestid' ] = ( boolean ) $ config [ 'check_valid_requestid' ] ; $ config [ 'map_application_identifiers' ] = ( boolean ) $ config [ 'map_application_identifiers' ] ; $ config [ 'convert_unix_newlines' ] = ( boolean ) $ config [ 'convert_unix_newlines' ] ; $ config [ 'deny_concurrent_logins' ] = ( boolean ) $ config [ 'deny_concurrent_logins' ] ; $ config [ 'deny_concurrent_timeout' ] = ( int ) max ( 1 , $ config [ 'deny_concurrent_timeout' ] ) ; $ config [ 'deny_reallyfast_logins' ] = ( boolean ) $ config [ 'deny_reallyfast_logins' ] ; $ config [ 'deny_reallyfast_timeout' ] = ( int ) max ( 1 , $ config [ 'deny_reallyfast_timeout' ] ) ; return $ config ; }
Massage any optional configuration flags

@param array $config
@return array
Massage any optional configuration flags