Beispiel #1
0
/* directory_delete */
void directory_delete(Directory * directory)
{
	if(directory->config != NULL)
		config_delete(directory->config);
	if(directory->appserver != NULL)
		appserver_delete(directory->appserver);
	object_delete(directory);
}
Beispiel #2
0
/* vpn */
int vpn(AppServerOptions options)
{
	if((_appserver = appserver_new("VPN", options)) == NULL)
	{
		error_print(PACKAGE);
		return 1;
	}
	_client_init();
	appserver_loop(_appserver);
	_client_destroy();
	appserver_delete(_appserver);
	return 0;
}
Beispiel #3
0
/* probe */
static int _probe(AppServerOptions options)
{
	Probe probe;
	AppServer * appserver;
	Event * event;
	struct timeval tv;

	memset(&probe, 0, sizeof(Probe));
	if(_probe_timeout(&probe) != 0)
	{
		free(probe.ifinfo);
		free(probe.volinfo);
		return 1;
	}
	if((event = event_new()) == NULL)
	{
		free(probe.ifinfo);
		free(probe.volinfo);
		return _probe_error(1);
	}
	if((appserver = appserver_new_event(&probe, options, "Probe", NULL,
					event)) == NULL)
	{
		free(probe.ifinfo);
		free(probe.volinfo);
		event_delete(event);
		return _probe_error(1);
	}
	tv.tv_sec = PROBE_REFRESH;
	tv.tv_usec = 0;
	if(event_register_timeout(event, &tv, (EventTimeoutFunc)_probe_timeout,
			&probe) != 0)
		_probe_error(0);
	else
		event_loop(event);
	appserver_delete(appserver);
	event_delete(event);
	free(probe.ifinfo);
	free(probe.volinfo);
	return 1;
}