Example #1
0
void run_dms(int force_rescan)
{
	int db_rescan_mode;
	unsigned char mac_bin[ETHER_ADDR_LEN] = {0};
	char mac_str[16];
	char *apps_name = "Media Server";
	char *link_path = "/mnt/minidlna";
	char *conf_path = "/etc/minidlna.conf";
	char *dest_dir = ".dms";
	char *minidlna_argv[] = {
		"/usr/bin/minidlnad",
		"-f", conf_path,
		"-s", NULL,
		NULL,	/* -U */
		NULL
	};

	if (!nvram_match("apps_dms", "1"))
		return;

	if (!is_dms_support())
		return;

	if (is_dms_run())
		return;

	unlink(link_path);
	if (!create_mp_link(dest_dir, link_path, 0))
	{
		if (!create_mp_link(dest_dir, link_path, 1))
		{
			logmessage(apps_name, "Cannot start: unable to create DB dir (/%s) on any volumes!", dest_dir);
			return;
		}
	}

	update_minidlna_conf(link_path, conf_path);

	ether_atoe(nvram_safe_get("il0macaddr"), mac_bin);
	minidlna_argv[4] = ether_etoa3(mac_bin, mac_str);

	db_rescan_mode = nvram_get_int("dlna_rescan");
	if (force_rescan || db_rescan_mode == 2)
		minidlna_argv[5] = "-R";
	else if (db_rescan_mode == 1)
		minidlna_argv[5] = "-U";

	_eval(minidlna_argv, NULL, 0, NULL);

	if (is_dms_run())
		logmessage(apps_name, "daemon is started");
}
Example #2
0
void run_itunes(void)
{
	char *apps_name = "iTunes Server";
	char *link_path = "/mnt/firefly";
	char *conf_path = "/etc/storage/firefly";
	char *conf_file = "mt-daapd.conf";
	char *dest_dir = ".itunes";
	char conf_new[64], conf_old[64];

	if (!nvram_match("apps_itunes", "1"))
		return;

	if (!is_itunes_support())
		return;

	if (is_itunes_run())
		return;

	unlink(link_path);
	if (!create_mp_link(dest_dir, link_path, 0))
	{
		if (!create_mp_link(dest_dir, link_path, 1))
		{
			logmessage(apps_name, "Cannot start: unable to create DB dir (/%s) on any volumes!", dest_dir);
			return;
		}
	}

	mkdir(conf_path, 0755);

	snprintf(conf_old, sizeof(conf_old), "%s/%s", "/etc/storage", conf_file);
	snprintf(conf_new, sizeof(conf_new), "%s/%s", conf_path, conf_file);
	if (!check_if_file_exist(conf_new) && check_if_file_exist(conf_old))
		rename(conf_old, conf_new);

	update_firefly_conf(link_path, conf_path, conf_file);

	eval("/usr/bin/mt-daapd", "-c", conf_new);

	if (is_itunes_run())
		logmessage(apps_name, "daemon is started");
}
Example #3
0
void run_aria(void)
{
	char *apps_name = "Aria";
	char *link_path = "/mnt/aria";
	char *dest_dir = "aria";

	if (!nvram_match("aria_enable", "1"))
		return;

	if (!is_aria_support())
		return;

	if (is_aria_run())
		return;

	unlink(link_path);
	if (!create_mp_link(dest_dir, link_path, 0)) {
		logmessage(apps_name, "Cannot start: please create dir \"%s\" on target volume!", dest_dir);
		return;
	}

	eval("/usr/bin/aria.sh", "start");
}
Example #4
0
void run_torrent(void)
{
	char *apps_name = "Transmission";
	char *link_path = "/mnt/transmission";
	char *dest_dir = "transmission";

	if (!nvram_match("trmd_enable", "1"))
		return;

	if (!is_torrent_support())
		return;

	if (is_torrent_run())
		return;

	unlink(link_path);
	if (!create_mp_link(dest_dir, link_path, 0)) {
		logmessage(apps_name, "Cannot start: please create dir \"%s\" on target volume!", dest_dir);
		return;
	}

	eval("/usr/bin/transmission.sh", "start");
}