/** * accessor for singleton * * @return Fluxd */ function getInstance() { global $instanceFluxd; // initialize if needed if (!isset($instanceFluxd)) { Fluxd::initialize(); } return $instanceFluxd; }
if (@file_exists($cfg['bin_php']) !== true) { $failed++; $tmpl->setvar('phpMissing', 1); } // check for sockets $loadedExtensions = get_loaded_extensions(); if (!in_array("sockets", $loadedExtensions)) { $failed++; $tmpl->setvar('socketsMissing', 1); } // set supported-var $tmpl->setvar('fluxdSupported', $failed > 0 ? 0 : 1); // fluxd core if (Fluxd::isRunning()) { $tmpl->setvar('fluxdRunning', 1); $tmpl->setvar('fluxdPid', Fluxd::getPid()); } else { $tmpl->setvar('fluxdRunning', 0); } $tmpl->setvar('fluxd_dbmode', $cfg["fluxd_dbmode"]); $tmpl->setvar('fluxd_loglevel', $cfg["fluxd_loglevel"]); // Qmgr FluxdServiceMod::initializeServiceMod('Qmgr'); // would not be needed as its done in main $tmpl->setvar('fluxd_Qmgr_enabled', $cfg["fluxd_Qmgr_enabled"]); $tmpl->setvar('fluxd_Qmgr_state', FluxdQmgr::getModState()); $tmpl->setvar('fluxd_Qmgr_interval', $cfg["fluxd_Qmgr_interval"]); $tmpl->setvar('fluxd_Qmgr_maxTotalTransfers', $cfg["fluxd_Qmgr_maxTotalTransfers"]); $tmpl->setvar('fluxd_Qmgr_maxUserTransfers', $cfg["fluxd_Qmgr_maxUserTransfers"]); // Watch FluxdServiceMod::initializeServiceMod('Watch');
/** * builds page * * @param $action */ function buildPage($action) { global $cfg, $statusImage, $statusMessage, $htmlTitle, $htmlTop, $htmlMain; // navi $htmlTop .= '<a href="' . _FILE_THIS . '?t=0">Transfer Bulk-ops</a>'; $htmlTop .= ' | '; $htmlTop .= '<a href="' . _FILE_THIS . '?p=0">Processes</a>'; $htmlTop .= ' | '; $htmlTop .= '<a href="' . _FILE_THIS . '?m=0">Maintenance</a>'; $htmlTop .= ' | '; $htmlTop .= '<a href="' . _FILE_THIS . '?b=0">Backup</a>'; $htmlTop .= ' | '; $htmlTop .= '<a href="' . _FILE_THIS . '?l=0">Log</a>'; $htmlTop .= ' | '; $htmlTop .= '<a href="' . _FILE_THIS . '?y=0">Misc</a>'; $htmlTop .= ' | '; $htmlTop .= '<a href="' . _FILE_THIS . '?z=0">About</a>'; // body switch ($action) { case "b": // backup passthru // backup passthru case "-b": // backup-error passthru if ($action == "b") { $statusImage = "yellow.gif"; } else { $statusImage = "red.gif"; } // $htmlMain .= '<table width="100%" bgcolor="' . $cfg["table_data_bg"] . '" border="0" cellpadding="4" cellspacing="0"><tr><td width="100%">'; $htmlMain .= '<a href="' . _FILE_THIS . '?b=0">Create Backup</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?b=3">Backups currently on server</a>'; $htmlMain .= '</td><td align="right" nowrap><strong>Backup</strong></td>'; $htmlMain .= '</tr></table>'; break; case "-u": // update-error passthru $statusImage = "red.gif"; $htmlTitle = "Update"; $htmlMain = '<br><font color="red"><strong>Update from your version not possible.</strong></font>'; $htmlMain .= '<br><br>'; $htmlMain .= 'Please use the most recent tarball and perform a manual update.'; $htmlMain .= '<br>'; break; case "t": // transfers passthru $statusImage = "black.gif"; break; case "p": // processes passthru $statusImage = "black.gif"; $htmlMain .= '<table width="100%" bgcolor="' . $cfg["table_data_bg"] . '" border="0" cellpadding="4" cellspacing="0"><tr><td width="100%">'; $htmlMain .= '<a href="' . _FILE_THIS . '?p=1">All</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?p=2">Transfers</a>'; $htmlMain .= '</td><td align="right"><strong>Processes</strong></td>'; $htmlMain .= '</tr></table>'; break; case "m": // maintenance passthru $statusImage = "black.gif"; $htmlMain .= '<table width="100%" bgcolor="' . $cfg["table_data_bg"] . '" border="0" cellpadding="4" cellspacing="0"><tr><td width="100%">'; $htmlMain .= '<a href="' . _FILE_THIS . '?m=1">Main</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?m=2">Kill</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?m=3">Clean</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?m=4">Repair</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?m=5">Reset</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?m=6">Lock</a>'; $htmlMain .= '</td><td align="right"><strong>Maintenance</strong></td>'; $htmlMain .= '</tr></table>'; break; case "l": // log passthru $statusImage = "black.gif"; $htmlMain .= '<table width="100%" bgcolor="' . $cfg["table_data_bg"] . '" border="0" cellpadding="4" cellspacing="0"><tr><td width="100%">'; $htmlMain .= '<a href="' . _FILE_THIS . '?l=1">fluxd</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?l=2">fluxd-error</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?l=3">fluazu</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?l=5">mainline</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?l=8">transfers</a>'; $htmlMain .= '</td><td align="right"><strong>Log</strong></td>'; $htmlMain .= '</tr></table>'; break; case "y": // misc passthru $statusImage = "black.gif"; $htmlMain .= '<table width="100%" bgcolor="' . $cfg["table_data_bg"] . '" border="0" cellpadding="4" cellspacing="0"><tr><td width="100%">'; $htmlMain .= '<a href="' . _FILE_THIS . '?y=1">Lists</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?y=3">Checksum Validation</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?y=5">Check Requirements</a>'; $htmlMain .= '</td><td align="right" nowrap><strong>Misc</strong></td>'; $htmlMain .= '</tr></table>'; break; case "z": // about passthru $statusImage = "black.gif"; $htmlMain .= '<table width="100%" bgcolor="' . $cfg["table_data_bg"] . '" border="0" cellpadding="4" cellspacing="0"><tr><td width="100%">'; $htmlMain .= '<a href="' . _FILE_THIS . '?z=1">Version</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?z=2">News</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?z=3">Changelog</a>'; $htmlMain .= '</td><td align="right" nowrap><strong>About</strong></td>'; $htmlMain .= '</tr></table>'; break; case "f": // fluxd passthru $htmlTop = ""; $statusImage = ""; $htmlMain .= '<table width="100%" bgcolor="' . $cfg["table_data_bg"] . '" border="0" cellpadding="4" cellspacing="0"><tr><td width="100%">'; $htmlMain .= '<a href="' . _FILE_THIS . '?f=1">log</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?f=2">error-log</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?f=3">ps</a>'; if (Fluxd::isRunning()) { $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?f=4">status</a>'; } else { $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?f=5">check</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?f=6">db-debug</a>'; $htmlMain .= ' | '; $htmlMain .= '<a href="' . _FILE_THIS . '?f=9">version</a>'; } $htmlMain .= '</td><td align="right"><strong>fluxd</strong>'; $htmlMain .= '</tr></table>'; break; case "_": // default // default default: $htmlTitle = "SuperAdmin"; $statusImage = "black.gif"; $htmlMain = '<br><div align="left">'; $htmlMain .= '<p>Select the superadmin task you wish to perform below:<br><br>'; $htmlMain .= '<a href="' . _FILE_THIS . '?t=0"><img src="themes/' . $cfg["theme"] . '/images/arrow.gif" width="9" height="9" title="Transfer Bulk Ops" border="0"> Transfer Bulk Ops</a> - bulk start/stop/resume transfers'; $htmlMain .= '<p>'; $htmlMain .= '<a href="' . _FILE_THIS . '?p=0"><img src="themes/' . $cfg["theme"] . '/images/arrow.gif" width="9" height="9" title="Processes" border="0"> Processes</a> - view detailed process info; force stop transfer processes'; $htmlMain .= '<p>'; $htmlMain .= '<a href="' . _FILE_THIS . '?m=0"><img src="themes/' . $cfg["theme"] . '/images/arrow.gif" width="9" height="9" title="Maintenance" border="0"> Maintenance</a> - clean up and maintenance'; $htmlMain .= '<p>'; $htmlMain .= '<a href="' . _FILE_THIS . '?b=0"><img src="themes/' . $cfg["theme"] . '/images/arrow.gif" width="9" height="9" title="Backup" border="0"> Backup</a> - create backups; download saved backups'; $htmlMain .= '<p>'; $htmlMain .= '<a href="' . _FILE_THIS . '?l=0"><img src="themes/' . $cfg["theme"] . '/images/arrow.gif" width="9" height="9" title="Log" border="0"> Log</a> - view logs'; $htmlMain .= '<p>'; $htmlMain .= '<a href="' . _FILE_THIS . '?y=0"><img src="themes/' . $cfg["theme"] . '/images/arrow.gif" width="9" height="9" title="Misc" border="0"> Misc</a> - test for PHP and Perl requirements; view list of installed files'; $htmlMain .= '<p>'; $htmlMain .= '<a href="' . _FILE_THIS . '?z=0"><img src="themes/' . $cfg["theme"] . '/images/arrow.gif" width="9" height="9" title="About" border="0"> About</a> - version checking, updates, news, changelog; check installed file integrity'; $htmlMain .= '</div><br><br>'; break; } }
/** * instance_dequeue * * @param $transfer * @param $user */ function instance_dequeueTransfer($transfer, $user) { global $cfg; if ($this->modstate == FLUXDMOD_STATE_RUNNING) { if (isTransferRunning($transfer)) { // transfer has been started...log AuditAction($cfg["constants"]["unqueued_transfer"], $transfer . "has been already started."); } else { // send command $result = Fluxd::sendServiceCommand($this->moduleName, 'dequeue;' . $transfer . ';' . $user, 1); // flag the transfer as stopped (in db) stopTransferSettings($transfer); // update the stat file. $this->_updateStatFile($transfer); // log AuditAction($cfg["constants"]["fluxd"], $result); // log AuditAction($cfg["constants"]["unqueued_transfer"], $transfer); // just 2 sec... dont stress fluxd sleep(2); } } }
$cfg["theme"] = CheckandSetUserTheme(); } // Run internal maintenance regularly if (!empty($_SESSION['next_int_maintenance']) && $_SESSION['next_int_maintenance'] < time()) { require_once "inc/classes/MaintenanceAndRepair.php"; MaintenanceAndRepair::maintenance(MAINTENANCEANDREPAIR_TYPE_INT); $_SESSION['next_int_maintenance'] = null; } } // schedule next internal maintenance if needed if (empty($_SESSION['next_int_maintenance'])) { $_SESSION['next_int_maintenance'] = time() + 2 * 3600 + mt_rand(-1200, 1200); } // 2h (+/- 20m) // free space in MB var $cfg["free_space"] = @disk_free_space($cfg["path"]) / 1048576; // drive space var $cfg['driveSpace'] = getDriveSpace($cfg["path"]); // free space formatted var $cfg['freeSpaceFormatted'] = formatFreeSpace($cfg["free_space"]); // Fluxd Fluxd::initialize(); // Qmgr FluxdServiceMod::initializeServiceMod('Qmgr'); // xfer if ($cfg['enable_xfer'] == 1 && $cfg['xfer_realtime'] == 1) { // set xfer-newday Xfer::setNewday(); } // vlib require_once "inc/lib/vlib/vlibTemplate.php";
/** * initialize the FluxdServiceMod. */ function instance_initialize() { // modstate-init $this->modstate = Fluxd::modState($this->moduleName); }
/** * controlFluxd */ function admin_controlFluxd() { global $cfg; $message = ""; $action = tfb_getRequestVar('a'); switch ($action) { case "start": // start fluxd if (Fluxd::isReadyToStart()) { Fluxd::start(); if (Fluxd::isRunning()) { $message = 'fluxd started'; } else { $message = 'Error starting fluxd.'; $msgs = Fluxd::getMessages(); Fluxd::logError("Error starting fluxd." . (!empty($msgs) ? "\n" . implode("\n", $msgs) . "\n" : "\n"), true); array_push($msgs, "please check fluxd-logs"); @error($message, "admin.php?op=fluxdSettings", "fluxd-Settings", $msgs); } break; } $message = 'fluxd not ready to start'; break; case "stop": // kill fluxd if (Fluxd::isRunning()) { Fluxd::stop(); $message = Fluxd::isRunning() ? 'Stop-Command sent.' : 'fluxd stopped.'; } break; default: $message = 'Error : no control-operation.'; break; } if ($message != "") { @header("Location: admin.php?op=fluxdSettings&m=" . urlencode($message)); } else { @header("Location: admin.php?op=fluxdSettings"); } exit; }