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"); }
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"); }
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"); }
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"); }