void eMountMgr::init() { t_mount mp; mountPoints.clear(); CConfigFile *config = new CConfigFile(','); if (config->loadConfig(MOUNTCONFIGFILE)) { for (int i = 0; true; i++) { if (config->getString(eString().sprintf("localdir_%d", i)) != "") { mp.localDir = config->getString(eString().sprintf("localdir_%d", i)); mp.fstype = config->getInt32(eString().sprintf("fstype_%d", i)); mp.password = config->getString(eString().sprintf("password_%d", i)); mp.userName = config->getString(eString().sprintf("username_%d", i)); mp.mountDir = config->getString(eString().sprintf("mountdir_%d", i)); mp.automount = config->getInt32(eString().sprintf("automount_%d", i)); mp.options = config->getString(eString().sprintf("options_%d", i)); mp.description = config->getString(eString().sprintf("description_%d", i)); eString sip = config->getString(eString().sprintf("ip_%d", i)); sscanf(sip.c_str(), "%d.%d.%d.%d", &mp.ip[0], &mp.ip[1], &mp.ip[2], &mp.ip[3]); mp.id = i; eMountPoint m = eMountPoint(mp); m.mp.mounted = m.isMounted(); mountPoints.push_back(m); } else break; } } delete config; addMountedFileSystems(); }
//============================================================================= // y-func : Functions for Neutrino //============================================================================= //------------------------------------------------------------------------- // y-func : mount_get_list //------------------------------------------------------------------------- std::string CNeutrinoYParser::func_mount_get_list(CyhookHandler *, std::string) { CConfigFile *Config = new CConfigFile(','); std::string ysel, ytype, yip, ylocal_dir, ydir, ynr, yresult; int yitype; Config->loadConfig(NEUTRINO_CONFIGFILE); for(unsigned int i=0; i <= 7; i++) { ynr=itoa(i); ysel = ((i==0) ? "checked=\"checked\"" : ""); yitype = Config->getInt32("network_nfs_type_"+ynr,0); ytype = ( (yitype==0) ? "NFS" :((yitype==1) ? "CIFS" : "FTPFS") ); yip = Config->getString("network_nfs_ip_"+ynr,""); ydir = Config->getString("network_nfs_dir_"+ynr,""); ylocal_dir = Config->getString("network_nfs_local_dir_"+ynr,""); if(ydir != "") ydir="("+ydir+")"; yresult += string_printf("<input type='radio' name='R1' value='%d' %s />%d %s - %s %s %s<br/>", i,ysel.c_str(),i,ytype.c_str(),yip.c_str(),ylocal_dir.c_str(), ydir.c_str()); } delete Config; return yresult; }
void CFBCallMonitor::ReadSettings() { CConfigFile *bpfbconfig = new CConfigFile(','); bpfbconfig->clear(); bpfbconfig->loadConfig(CONFIG_FILE); FB_IP_STRG = bpfbconfig->getString("FRITZBOXIP", "fritz.box"); FB_PORT_STRG = bpfbconfig->getString("TELDPORT", "1012"); FB_ZIEL1_STRG = bpfbconfig->getString("Ziel_1", "01234567890"); FB_ZIEL1N_STRG = bpfbconfig->getString("Ziel_1_name", "Nummer_1"); FB_ZIEL2_STRG = bpfbconfig->getString("Ziel_2", "01234567890"); FB_ZIEL2N_STRG = bpfbconfig->getString("Ziel_2_name", "Nummer_2"); FB_ZIEL3_STRG = bpfbconfig->getString("Ziel_3", "01234567890"); FB_ZIEL3N_STRG = bpfbconfig->getString("Ziel_3_name", "Nummer_3"); FB_BOXIP_STRG = bpfbconfig->getString("ip", "127.0.0.1"); FB_BOXUSERNAME_STRG = bpfbconfig->getString("loginname", "root"); FB_BOXPASSWORD_STRG = bpfbconfig->getString("passwort", "root"); FB_DEBUG = bpfbconfig->getInt32("debug", 0); FB_ALLE = bpfbconfig->getInt32("Alle", 0); FB_MONRING = bpfbconfig->getInt32("monRing", 1); FB_MONDISCONNECT = bpfbconfig->getInt32("monDisconnect", 1); FB_MUTERING = bpfbconfig->getInt32("muteRing", 1); FB_POPUP = bpfbconfig->getInt32("popup", 0); FB_INVERS = bpfbconfig->getInt32("invers", 1); }
//------------------------------------------------------------------------- // y-func : get_header_data //------------------------------------------------------------------------- std::string CyParser::func_set_language(CyhookHandler *, std::string para) { if (para != "") { CConfigFile *Config = new CConfigFile(','); Config->loadConfig(HTTPD_CONFIGFILE); Config->setString("Language.selected", para); Config->saveConfig(HTTPD_CONFIGFILE); yhttpd_reload_config(); } return ""; }
void eNetworkMountMgr::init() { eDebug("[MOUNT] init"); eMountPoint mp; mountPoints.clear(); CConfigFile *config = new CConfigFile(','); if (config->loadConfig(MOUNTCONFIGFILE)) { unsigned int i = 0; eString extra_options; while (config->getString(eString().sprintf("localdir_%d", i)) != "") { mp.localDir = config->getString(eString().sprintf("localdir_%d", i)); mp.localDir = fixNonRecommendedMountpoint(mp.localDir); mp.fstype = (enum eMountPoint::mountType)config->getInt32(eString().sprintf("fstype_%d", i)); mp.password = config->getString(eString().sprintf("password_%d", i)); mp.userName = config->getString(eString().sprintf("username_%d", i)); mp.mountDir = config->getString(eString().sprintf("mountdir_%d", i)); mp.automount = config->getInt32(eString().sprintf("automount_%d", i)); mp.options = config->getString(eString().sprintf("options_%d", i)); mp.linuxExtensions = config->getInt32(eString().sprintf("linuxextensions_%d", i), 1); // Compatibility for extra_options in mount.conf extra_options = config->getString(eString().sprintf("extra_options_%d", i)); if(extra_options.length() > 0) { mp.options = mp.options + "," + extra_options; } mp.description = config->getString(eString().sprintf("description_%d", i)); mp.remoteHost = config->getString(eString().sprintf("ip_%d", i)); mp.id = i; eDebug("[MOUNT] adding %d - %s", i, mp.localDir.c_str()); eMountPoint m = eMountPoint(mp); eDebug("[MOUNT] checkmounted"); m.setMounted(m.isReallyMounted()); #ifndef ENABLE_DEVMOUNTS // Keep this if. Although it's "impossible" to read dev mounts from the // config file, somebody could have an old file and we don't want to add them. if (mp.fstype != eMountPoint::deviceMount) #endif mountPoints.push_back(m); i++; } } delete config; //addMountedFileSystems(); save(); }
bool CBuildInfo::HasData() { v_info.clear(); #ifdef USED_COMPILER build_info_t compiler = {BI_TYPE_ID_USED_COMPILER, LOCALE_BUILDINFO_COMPILED_WITH, USED_COMPILER}; v_info.push_back(compiler); #endif #ifdef USED_CXXFLAGS string cxxflags = USED_CXXFLAGS; cxxflags = trim(cxxflags); // Remove double spaces size_t pos = cxxflags.find(" "); while (pos != string::npos) { cxxflags.erase(pos, 1); pos = cxxflags.find(" ", pos); } build_info_t flags = {BI_TYPE_ID_USED_CXXFLAGS, LOCALE_BUILDINFO_COMPILER_FLAGS, cxxflags}; v_info.push_back(flags); #endif #ifdef USED_BUILD build_info_t build = {BI_TYPE_ID_USED_BUILD , LOCALE_BUILDINFO_COMPILED_ON, USED_BUILD}; v_info.push_back(build); #endif CComponentsText utext; build_info_t kernel = {BI_TYPE_ID_USED_KERNEL, LOCALE_BUILDINFO_KERNEL, utext.getTextFromFile("/proc/version")}; v_info.push_back(kernel); #if 0 CConfigFile data ('\t'); data.loadConfig("/.version"); build_info_t creator = {BI_TYPE_ID_CREATOR, LOCALE_BUILDINFO_CREATOR, data.getString("creator", "n/a")}; v_info.push_back(creator); #endif if (v_info.empty()){ DisplayInfoMessage("No Informations available. Please report!"); return false; } return true; }
//------------------------------------------------------------------------- // y-func : mount_set_values //------------------------------------------------------------------------- std::string CNeutrinoYParser::func_mount_set_values(CyhookHandler *hh, std::string) { CConfigFile *Config = new CConfigFile(','); std::string ynr, yresult; Config->loadConfig(NEUTRINO_CONFIGFILE); ynr = hh->ParamList["nr"]; Config->setString("network_nfs_type_"+ynr,hh->ParamList["type"]); Config->setString("network_nfs_ip_"+ynr,hh->ParamList["ip"]); Config->setString("network_nfs_dir_"+ynr,hh->ParamList["dir"]); Config->setString("network_nfs_local_dir_"+ynr,hh->ParamList["localdir"]); Config->setString("network_nfs_mac_"+ynr,hh->ParamList["mac"]); Config->setString("network_nfs_mount_options1_"+ynr,hh->ParamList["opt1"]); Config->setString("network_nfs_mount_options2_"+ynr,hh->ParamList["opt2"]); Config->setString("network_nfs_automount_"+ynr,hh->ParamList["automount"]); Config->setString("network_nfs_username_"+ynr,hh->ParamList["username"]); Config->setString("network_nfs_password_"+ynr,hh->ParamList["password"]); Config->saveConfig(NEUTRINO_CONFIGFILE); delete Config; return yresult; }
// para ::= <type=new|modify> [timerid] std::string CNeutrinoYParser::func_set_timer_form(CyhookHandler *hh, std::string para) { unsigned timerId=0; std::string cmd, stimerid; CTimerd::responseGetTimer timer; // Timer time_t now_t = time(NULL); ySplitString(para, " ", cmd, stimerid); if(cmd != "new") { // init timerid if(stimerid != "") timerId = (unsigned)atoi(stimerid.c_str()); NeutrinoAPI->Timerd->getTimer(timer, timerId); std::string zType = NeutrinoAPI->timerEventType2Str(timer.eventType); hh->ParamList["timerId"] = itoa(timerId); hh->ParamList["zType"] = zType; } // Alarm/StopTime struct tm *alarmTime = (cmd == "new") ? localtime(&now_t) : localtime(&(timer.alarmTime)); hh->ParamList["alarm_mday"] = string_printf("%02d", alarmTime->tm_mday); hh->ParamList["alarm_mon"] = string_printf("%02d", alarmTime->tm_mon +1); hh->ParamList["alarm_year"] = string_printf("%04d", alarmTime->tm_year + 1900); hh->ParamList["alarm_hour"] = string_printf("%02d", alarmTime->tm_hour); hh->ParamList["alarm_min"] = string_printf("%02d", alarmTime->tm_min); struct tm *stopTime = (cmd == "new") ? alarmTime : ( (timer.stopTime > 0) ? localtime(&(timer.stopTime)) : NULL ); if(stopTime != NULL) { hh->ParamList["stop_mday"] = string_printf("%02d", stopTime->tm_mday); hh->ParamList["stop_mon"] = string_printf("%02d", stopTime->tm_mon +1); hh->ParamList["stop_year"] = string_printf("%04d", stopTime->tm_year + 1900); hh->ParamList["stop_hour"] = string_printf("%02d", stopTime->tm_hour); hh->ParamList["stop_min"] = string_printf("%02d", stopTime->tm_min); // APid settings for Record if(timer.apids == TIMERD_APIDS_CONF) hh->ParamList["TIMERD_APIDS_CONF"] = "y"; if(timer.apids & TIMERD_APIDS_STD) hh->ParamList["TIMERD_APIDS_STD"] = "y"; if(timer.apids & TIMERD_APIDS_ALT) hh->ParamList["TIMERD_APIDS_ALT"] = "y"; if(timer.apids & TIMERD_APIDS_AC3) hh->ParamList["TIMERD_APIDS_AC3"] = "y"; } else hh->ParamList["stop_mday"] = "0"; // event type std::string sel; for(int i=1; i<=8;i++) { if (i != (int)CTimerd::__TIMER_NEXTPROGRAM) { std::string zType = NeutrinoAPI->timerEventType2Str((CTimerd::CTimerEventTypes) i); if(cmd != "new") sel = (i==(int)timer.eventType) ? "selected=\"selected\"" : ""; else sel = (i==(int)CTimerd::TIMER_RECORD) ? "selected=\"selected\"" : ""; hh->ParamList["timertype"] += string_printf("<option value=\"%d\" %s>%s\n",i,sel.c_str(),zType.c_str()); } } // Repeat types std::string zRep; sel = ""; for(int i=0; i<=6;i++) { if(i!=(int)CTimerd::TIMERREPEAT_BYEVENTDESCRIPTION) { zRep = NeutrinoAPI->timerEventRepeat2Str((CTimerd::CTimerEventRepeat) i); if(cmd != "new") sel = (((int)timer.eventRepeat) == i) ? "selected=\"selected\"" : ""; hh->ParamList["repeat"] += string_printf("<option value=\"%d\" %s>%s</option>\n",i,sel.c_str(),zRep.c_str()); } } // Repeat Weekdays zRep = NeutrinoAPI->timerEventRepeat2Str(CTimerd::TIMERREPEAT_WEEKDAYS); if(timer.eventRepeat >= CTimerd::TIMERREPEAT_WEEKDAYS && cmd != "new") sel = "selected=\"selected\""; else sel = ""; hh->ParamList["repeat"] += string_printf("<option value=\"%d\" %s>%s</option>\n",(int)CTimerd::TIMERREPEAT_WEEKDAYS, sel.c_str(), zRep.c_str()); // Weekdays std::string weekdays; NeutrinoAPI->Timerd->setWeekdaysToStr(timer.eventRepeat, weekdays); hh->ParamList["weekdays"]= weekdays; // timer repeats if (timer.eventRepeat == CTimerd::TIMERREPEAT_ONCE) hh->ParamList["TIMERREPEAT_ONCE"] = "y"; hh->ParamList["timer_repeatCount"] = itoa(timer.repeatCount); // program row t_channel_id current_channel = (cmd == "new") ? CZapit::getInstance()->GetCurrentChannelID() : timer.channel_id; CBouquetManager::ChannelIterator cit = g_bouquetManager->tvChannelsBegin(); for (; !(cit.EndOfChannels()); cit++) { if (((*cit)->flags & CZapitChannel::REMOVED) || (*cit)->flags & CZapitChannel::NOT_FOUND) continue; sel = ((*cit)->channel_id == current_channel) ? "selected=\"selected\"" : ""; hh->ParamList["program_row"] += string_printf("<option value=\"" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS "\" %s>%s</option>\n", (*cit)->channel_id, sel.c_str(), (*cit)->getName().c_str()); } cit = g_bouquetManager->radioChannelsBegin(); for (; !(cit.EndOfChannels()); cit++) { if (((*cit)->flags & CZapitChannel::REMOVED) || (*cit)->flags & CZapitChannel::NOT_FOUND) continue; sel = ((*cit)->channel_id == current_channel) ? "selected=\"selected\"" : ""; hh->ParamList["program_row"] += string_printf("<option value=\"" PRINTF_CHANNEL_ID_TYPE_NO_LEADING_ZEROS "\" %s>%s</option>\n", (*cit)->channel_id, sel.c_str(), (*cit)->getName().c_str()); } // recordingDir hh->ParamList["RECORD_DIR_MAXLEN"] = itoa(RECORD_DIR_MAXLEN-1); if(cmd != "new") { if(timer.eventType == CTimerd::TIMER_RECORD) hh->ParamList["timer_recordingDir"] = timer.recordingDir; } else { // get Default Recordingdir CConfigFile *Config = new CConfigFile(','); Config->loadConfig(NEUTRINO_CONFIGFILE); hh->ParamList["timer_recordingDir"] = Config->getString("network_nfs_recordingdir", "/mnt/filme"); delete Config; } hh->ParamList["standby"] = (cmd == "new")? "0" : ((timer.standby_on)?"1":"0"); hh->ParamList["message"] = (cmd == "new")? "" : timer.message; hh->ParamList["pluginname"] = (cmd == "new")? "" : timer.pluginName; return ""; }
void loadTimersFromConfig() { CConfigFile *config = new CConfigFile(','); if(!config->loadConfig(CONFIGFILE)) { /* set defaults if no configuration file exists */ dprintf("%s not found\n", CONFIGFILE); } else { vector<int> savedIDs; savedIDs = config->getInt32Vector ("IDS"); dprintf("%d timer(s) in config\n",savedIDs.size()); for(unsigned int i=0; i < savedIDs.size(); i++) { stringstream ostr; ostr << savedIDs[i]; string id=ostr.str(); CTimerd::CTimerEventTypes type=(CTimerd::CTimerEventTypes)config->getInt32 ("EVENT_TYPE_"+id,0); time_t now = time(NULL); switch(type) { case CTimerd::TIMER_SHUTDOWN : { CTimerEvent_Shutdown *event= new CTimerEvent_Shutdown(config, savedIDs[i]); if((event->alarmTime >= now) || (event->stopTime > now)) { CTimerManager::getInstance()->addEvent(event,false); } else if(event->eventRepeat != CTimerd::TIMERREPEAT_ONCE) { // old periodic timers need to be rescheduled event->eventState = CTimerd::TIMERSTATE_HASFINISHED; CTimerManager::getInstance()->addEvent(event,false); } else { dprintf("Timer too old %d/%d\n",(int)now,(int) event->alarmTime); delete event; } break; } case CTimerd::TIMER_NEXTPROGRAM : { CTimerEvent_NextProgram *event= new CTimerEvent_NextProgram(config, savedIDs[i]); if((event->alarmTime >= now) || (event->stopTime > now)) { CTimerManager::getInstance()->addEvent(event,false); } else if(event->eventRepeat != CTimerd::TIMERREPEAT_ONCE) { // old periodic timers need to be rescheduled event->eventState = CTimerd::TIMERSTATE_HASFINISHED; CTimerManager::getInstance()->addEvent(event,false); } else { dprintf("Timer too old %d/%d\n",(int)now,(int) event->alarmTime); delete event; } break; } case CTimerd::TIMER_ZAPTO : { CTimerEvent_Zapto *event= new CTimerEvent_Zapto(config, savedIDs[i]); if((event->alarmTime >= now) || (event->stopTime > now)) { CTimerManager::getInstance()->addEvent(event,false); } else if(event->eventRepeat != CTimerd::TIMERREPEAT_ONCE) { // old periodic timers need to be rescheduled event->eventState = CTimerd::TIMERSTATE_HASFINISHED; CTimerManager::getInstance()->addEvent(event,false); } else { dprintf("Timer too old %d/%d\n",(int)now,(int) event->alarmTime); delete event; } break; } case CTimerd::TIMER_STANDBY : { CTimerEvent_Standby *event= new CTimerEvent_Standby(config, savedIDs[i]); if((event->alarmTime >= now) || (event->stopTime > now)) { CTimerManager::getInstance()->addEvent(event,false); } else if(event->eventRepeat != CTimerd::TIMERREPEAT_ONCE) { // old periodic timers need to be rescheduled event->eventState = CTimerd::TIMERSTATE_HASFINISHED; CTimerManager::getInstance()->addEvent(event,false); } else { dprintf("Timer too old %d/%d\n",(int)now,(int) event->alarmTime); delete event; } break; } case CTimerd::TIMER_RECORD : { CTimerEvent_Record *event= new CTimerEvent_Record(config, savedIDs[i]); if((event->alarmTime >= now) || (event->stopTime > now)) { CTimerManager::getInstance()->addEvent(event,false); } else if(event->eventRepeat != CTimerd::TIMERREPEAT_ONCE) { // old periodic timers need to be rescheduled event->eventState = CTimerd::TIMERSTATE_HASFINISHED; CTimerManager::getInstance()->addEvent(event,false); } else { dprintf("Timer too old %d/%d\n",(int)now,(int) event->alarmTime); delete event; } break; } case CTimerd::TIMER_SLEEPTIMER : { CTimerEvent_Sleeptimer *event= new CTimerEvent_Sleeptimer(config, savedIDs[i]); if((event->alarmTime >= now) || (event->stopTime > now)) { CTimerManager::getInstance()->addEvent(event,false); } else if(event->eventRepeat != CTimerd::TIMERREPEAT_ONCE) { // old periodic timers need to be rescheduled event->eventState = CTimerd::TIMERSTATE_HASFINISHED; CTimerManager::getInstance()->addEvent(event,false); } else { dprintf("Timer too old %d/%d\n",(int)now,(int) event->alarmTime); delete event; } break; } case CTimerd::TIMER_REMIND : { CTimerEvent_Remind *event= new CTimerEvent_Remind(config, savedIDs[i]); if((event->alarmTime >= now) || (event->stopTime > now)) { CTimerManager::getInstance()->addEvent(event,false); } else if(event->eventRepeat != CTimerd::TIMERREPEAT_ONCE) { // old periodic timers need to be rescheduled event->eventState = CTimerd::TIMERSTATE_HASFINISHED; CTimerManager::getInstance()->addEvent(event,false); } else { dprintf("Timer too old %d/%d\n",(int)now,(int) event->alarmTime); delete event; } break; } default: dprintf("Unknown timer on load %d\n",type); } } } delete config; CTimerManager::getInstance()->saveEventsToConfig(); }
//----------------------------------------------------------------------------- // Read Webserver Configurationfile // Call "Hooks_ReadConfig" so Hooks can read/write own Configuration Values //----------------------------------------------------------------------------- void Cyhttpd::ReadConfig(void) { log_level_printf(3, "ReadConfig Start\n"); CConfigFile *Config = new CConfigFile(','); bool have_config = false; if (access(HTTPD_CONFIGFILE, R_OK) == 0) have_config = true; Config->loadConfig(HTTPD_CONFIGFILE); // convert old config files if (have_config) { if (Config->getInt32("configfile.version", 0) == 0) { CConfigFile OrgConfig = *Config; Config->clear(); Config->setInt32("server.log.loglevel", OrgConfig.getInt32( "LogLevel", 0)); Config->setInt32("configfile.version", CONF_VERSION); Config->setString("webserver.websites", "WebsiteMain"); Config->setBool("webserver.threading", OrgConfig.getBool("THREADS", true)); Config->setInt32("WebsiteMain.port", OrgConfig.getInt32("Port", HTTPD_STANDARD_PORT)); Config->setString("WebsiteMain.directory", OrgConfig.getString( "PrivatDocRoot", PRIVATEDOCUMENTROOT)); if (!OrgConfig.getString("PublicDocRoot", "").empty()) Config->setString("WebsiteMain.override_directory", OrgConfig.getString("PublicDocRoot", PRIVATEDOCUMENTROOT)); // mod_auth Config->setString("mod_auth.username", OrgConfig.getString( "AuthUser", AUTHUSER)); Config->setString("mod_auth.password", OrgConfig.getString( "AuthPassword", AUTHPASSWORD)); Config->setString("mod_auth.no_auth_client", OrgConfig.getString( "NoAuthClient", "")); Config->setString("mod_auth.authenticate", OrgConfig.getString( "Authenticate", "false")); Config->setString("mod_sendfile.mime_types", HTTPD_SENDFILE_EXT); Config->saveConfig(HTTPD_CONFIGFILE); } // Add Defaults for Version 2 if (Config->getInt32("configfile.version") < 2) { Config->setString("mod_sendfile.mime_types", HTTPD_SENDFILE_EXT); Config->setInt32("configfile.version", CONF_VERSION); Config->setString("mod_sendfile.sendAll", "false"); Config->saveConfig(HTTPD_CONFIGFILE); } // Add Defaults for Version 4 if (Config->getInt32("configfile.version") < 4) { Config->setInt32("configfile.version", CONF_VERSION); Config->setString("Language.selected", HTTPD_DEFAULT_LANGUAGE); Config->setString("Language.directory", HTTPD_LANGUAGEDIR); if (Config->getString("WebsiteMain.hosted_directory", "").empty()) Config->setString("WebsiteMain.hosted_directory", HOSTEDDOCUMENTROOT); Config->saveConfig(HTTPD_CONFIGFILE); } } // configure debugging & logging if (CLogging::getInstance()->LogLevel == 0) CLogging::getInstance()->LogLevel = Config->getInt32("server.log.loglevel", 0); if (CLogging::getInstance()->LogLevel > 0) CLogging::getInstance()->setDebug(true); // get variables webserver->init(Config->getInt32("WebsiteMain.port", HTTPD_STANDARD_PORT), Config->getBool("webserver.threading", true)); // informational use ConfigList["WebsiteMain.port"] = itoa(Config->getInt32("WebsiteMain.port", HTTPD_STANDARD_PORT)); ConfigList["webserver.threading"] = Config->getString( "webserver.threading", "true"); ConfigList["configfile.version"] = Config->getInt32("configfile.version", CONF_VERSION); ConfigList["server.log.loglevel"] = itoa(Config->getInt32( "server.log.loglevel", 0)); ConfigList["server.no_keep-alive_ips"] = Config->getString( "server.no_keep-alive_ips", ""); webserver->conf_no_keep_alive_ips = Config->getStringVector( "server.no_keep-alive_ips"); // MainSite ConfigList["WebsiteMain.directory"] = Config->getString( "WebsiteMain.directory", PRIVATEDOCUMENTROOT); ConfigList["WebsiteMain.override_directory"] = Config->getString( "WebsiteMain.override_directory", PUBLICDOCUMENTROOT); ConfigList["WebsiteMain.hosted_directory"] = Config->getString( "WebsiteMain.hosted_directory", HOSTEDDOCUMENTROOT); ConfigList["Tuxbox.DisplayLogos"] = Config->getString("Tuxbox.DisplayLogos", "true"); // Check location of logos if (Config->getString("Tuxbox.LogosURL", "").empty()) { if (access(ConfigList["WebsiteMain.override_directory"] + "/logos", R_OK) == 0) { Config->setString("Tuxbox.LogosURL", ConfigList["WebsiteMain.override_directory"] + "/logos"); have_config = false; //save config } else if (access(ConfigList["WebsiteMain.directory"] + "/logos", R_OK) == 0){ Config->setString("Tuxbox.LogosURL", ConfigList["WebsiteMain.directory"] + "/logos"); have_config = false; //save config } #ifdef Y_CONFIG_USE_HOSTEDWEB else if (access(ConfigList["WebsiteMain.hosted_directory"] + "/logos", R_OK) == 0){ Config->setString("Tuxbox.LogosURL", ConfigList["WebsiteMain.hosted_directory"] + "/logos"); have_config = false; //save config } #endif //Y_CONFIG_USE_HOSTEDWEB } ConfigList["Tuxbox.LogosURL"] = Config->getString("Tuxbox.LogosURL", ""); #ifdef Y_CONFIG_USE_OPEN_SSL ConfigList["SSL"] = Config->getString("WebsiteMain.ssl", "false"); ConfigList["SSL_pemfile"] = Config->getString("WebsiteMain.ssl_pemfile", SSL_PEMFILE); ConfigList["SSL_CA_file"] = Config->getString("WebsiteMain.ssl_ca_file", SSL_CA_FILE); CySocket::SSL_pemfile = ConfigList["SSL_pemfile"]; CySocket::SSL_CA_file = ConfigList["SSL_CA_file"]; if(ConfigList["SSL"] == "true") CySocket::initSSL(); #endif ConfigList["server.user_name"] = Config->getString("server.user_name", ""); ConfigList["server.group_name"] = Config->getString("server.group_name", ""); ConfigList["server.chroot"] = Config->getString("server.chroot", ""); // language ConfigList["Language.directory"] = Config->getString("Language.directory", HTTPD_LANGUAGEDIR); ConfigList["Language.selected"] = Config->getString("Language.selected", HTTPD_DEFAULT_LANGUAGE); yhttpd->ReadLanguage(); // Read App specifig settings by Hook CyhookHandler::Hooks_ReadConfig(Config, ConfigList); // Save if new defaults are set if (!have_config) Config->saveConfig(HTTPD_CONFIGFILE); log_level_printf(3, "ReadConfig End\n"); delete Config; }
//----------------------------------------------------------------------------- // Read Webserver Configurationfile // Call "Hooks_ReadConfig" so Hooks can read/write own Configuration Values //----------------------------------------------------------------------------- void Cyhttpd::ReadConfig(void) { log_level_printf(3,"ReadConfig Start\n"); CConfigFile *Config = new CConfigFile(','); bool have_config = false; if(access(HTTPD_CONFIGFILE,4) == 0) have_config = true; Config->loadConfig(HTTPD_CONFIGFILE); // convert old config files if(have_config) if(Config->getInt32("Port", 0) != 0) { CConfigFile OrgConfig = *Config; Config->clear(); Config->setInt32("server.log.loglevel", OrgConfig.getInt32("LogLevel", 0)); Config->setString("configfile.version", "1"); Config->setString("webserver.websites", "WebsiteMain"); Config->setBool("webserver.threading", OrgConfig.getBool("THREADS", true)); Config->setInt32("WebsiteMain.port",OrgConfig.getInt32("Port", HTTPD_STANDARD_PORT)); Config->setString("WebsiteMain.directory", OrgConfig.getString("PrivatDocRoot", PRIVATEDOCUMENTROOT)); if(OrgConfig.getString("PublicDocRoot", "") != "") Config->setString("WebsiteMain.override_directory", OrgConfig.getString("PublicDocRoot", PRIVATEDOCUMENTROOT)); if(OrgConfig.getString("HostedDocRoot", "") != "") Config->setString("WebsiteMain.special_locations", "/hosted/="+OrgConfig.getString("HostedDocRoot", PRIVATEDOCUMENTROOT)); if(OrgConfig.getString("HostedDocRoot", "") != "") Config->setString("Tuxbox.HostedDocumentRoot", OrgConfig.getString("HostedDocRoot", PRIVATEDOCUMENTROOT)); // mod_auth Config->setString("mod_auth.username", OrgConfig.getString("AuthUser", AUTHUSER)); Config->setString("mod_auth.password", OrgConfig.getString("AuthPassword", AUTHPASSWORD)); Config->setString("mod_auth.no_auth_client", OrgConfig.getString("NoAuthClient", "")); Config->setString("mod_auth.authenticate", OrgConfig.getString("Authenticate", "false")); Config->setString("mod_sendfile.mime_types", HTTPD_SENDFILE_EXT); Config->saveConfig(HTTPD_CONFIGFILE); } // configure debugging & logging if(CLogging::getInstance()->LogLevel == 0) CLogging::getInstance()->LogLevel = Config->getInt32("server.log.loglevel", 0); // get variables webserver->init(Config->getInt32("WebsiteMain.port", HTTPD_STANDARD_PORT), Config->getBool("webserver.threading", true)); // informational use ConfigList["WebsiteMain.port"]= itoa(Config->getInt32("WebsiteMain.port", HTTPD_STANDARD_PORT)); ConfigList["webserver.threading"]= Config->getString("webserver.threading", "true"); ConfigList["configfile.version"]= Config->getString("configfile.version", "1"); ConfigList["server.log.loglevel"]= itoa(Config->getInt32("server.log.loglevel", 0)); ConfigList["server.no_keep-alive_ips"]= Config->getString("server.no_keep-alive_ips", ""); webserver->conf_no_keep_alive_ips = Config->getStringVector("server.no_keep-alive_ips"); // MainSite ConfigList["PrivatDocumentRoot"]= Config->getString("WebsiteMain.directory", PRIVATEDOCUMENTROOT); ConfigList["PublicDocumentRoot"]= Config->getString("WebsiteMain.override_directory", PUBLICDOCUMENTROOT); ConfigList["HostedDocumentRoot"]= Config->getString("Tuxbox.HostedDocumentRoot", HOSTEDDOCUMENTROOT); #ifdef Y_CONFIG_USE_OPEN_SSL ConfigList["SSL"] = Config->getString("WebsiteMain.ssl", "false"); ConfigList["SSL_pemfile"] = Config->getString("WebsiteMain.ssl_pemfile", SSL_PEMFILE); ConfigList["SSL_CA_file"] = Config->getString("WebsiteMain.ssl_ca_file", SSL_CA_FILE); CySocket::SSL_pemfile = ConfigList["SSL_pemfile"]; CySocket::SSL_CA_file = ConfigList["SSL_CA_file"]; if(ConfigList["SSL"] == "true") CySocket::initSSL(); #endif ConfigList["server.user_name"]= Config->getString("server.user_name", ""); ConfigList["server.group_name"]= Config->getString("server.group_name", ""); ConfigList["server.chroot"]= Config->getString("server.chroot", ""); // Read App specifig settings by Hook CyhookHandler::Hooks_ReadConfig(Config, ConfigList); // Save if new defaults are set if (!have_config) Config->saveConfig(HTTPD_CONFIGFILE); log_level_printf(3,"ReadConfig End\n"); delete Config; }