Author: juhliarik
Date: Thu Aug 23 13:34:40 2007
New Revision: 40427
URL: http://svn.opensuse.org/viewcvs/yast?rev=40427&view=rev
Log:
patch for starting daemons
Modified:
trunk/ftp-server/src/FtpServer.ycp
trunk/ftp-server/src/dialogs.ycp
trunk/ftp-server/src/wid_functions.ycp
trunk/ftp-server/src/write_load.ycp
Modified: trunk/ftp-server/src/FtpServer.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ftp-server/src/FtpServer.ycp?rev=40427&r1=40426&r2=40427&view=diff
==============================================================================
--- trunk/ftp-server/src/FtpServer.ycp (original)
+++ trunk/ftp-server/src/FtpServer.ycp Thu Aug 23 13:34:40 2007
@@ -101,6 +101,23 @@
global boolean start_xinetd = false;
/**
+ * variable signifies if daemon is running via xinetd
+ *
+ * global boolean variable
+ */
+
+global boolean pure_ftp_xinetd_running = false;
+
+
+/**
+ * variable signifies if daemon is running via xinetd
+ *
+ * global boolean variable
+ */
+
+global boolean vsftp_xinetd_running = false;
+
+/**
* variable signifies if daemon will be stoped in xinetd
*
* global boolean variable
@@ -211,7 +228,7 @@
"SSLv3" : "NO", //enable/disable SSL version 3 (vsftpd only)
"TLS" : "YES",
"AntiWarez" : "YES",
- "SSL" : "1",
+ "SSL" : "0", //0 - disable SSL, 1-accept SSL, 2 - refuse connection withou SSL (pure-ftpd only)
"StartXinetd" : "NO",
"StartDaemon" : "0", //0 = start manually, 1 = start when booting, 2 = start via xinetd
"PassiveMode" : "YES",
@@ -257,6 +274,7 @@
//string val = (string) select((list <string>) SCR::Read(add(.pure-ftpd, key)), 0, "");
if (val != nil) PURE_SETTINGS[key] = val;
});
+
y2milestone("-------------PURE_SETTINGS-------------------");
y2milestone("pure-ftpd configuration has been read: %1", PURE_SETTINGS);
y2milestone("---------------------------------------------");
@@ -592,7 +610,7 @@
global boolean WriteXinetd () {
boolean result = false;
if (vsftpd_xined_id != -1) {
- result = WriteStartViaXinetd (start_xinetd);
+ result = WriteStartViaXinetd (start_xinetd, false);
}
return result;
}
@@ -605,7 +623,8 @@
global boolean WriteUpload () {
boolean result = true;
string command ="";
- string upload ="";
+ string upload ="";
+ map options = $[];
integer authentication = tointeger(EDIT_SETTINGS["AnonAuthen"]:nil);
if ((vsftpd_edit) && (authentication == 0) && (create_upload_dir) && (upload_good_permission)) {
boolean write_enable = ((EDIT_SETTINGS["EnableUpload"]:nil == "YES") ? true:false);
@@ -633,7 +652,7 @@
chown ftp:ftp /srv/ftp/upload/; chmod 755 /srv/ftp/upload; else chmod 766 /srv/ftp/upload/; fi"
*/
y2milestone("[ftp-server] (WriteUpload) bash command for creating upload dir : %1", command);
- map options = (map)SCR::Execute (.target.bash_output, command);
+ options = (map)SCR::Execute (.target.bash_output, command);
if (options["exit"]:nil == 0)
result = true;
else
@@ -644,6 +663,15 @@
} else {
result = true;
}
+ //restart/reaload daemons...
+ if (vsftpd_edit) {
+ if (Service::Status("vsftpd") == 0)
+ options = (map)SCR::Execute (.target.bash_output, "rcvsftpd restart");
+ } else {
+
+ if (Service::Status("pure-ftpd") == 0)
+ options = (map)SCR::Execute (.target.bash_output, "rcpure-ftpd restart");
+ }
return result;
}
/**
Modified: trunk/ftp-server/src/dialogs.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ftp-server/src/dialogs.ycp?rev=40427&r1=40426&r2=40427&view=diff
==============================================================================
--- trunk/ftp-server/src/dialogs.ycp (original)
+++ trunk/ftp-server/src/dialogs.ycp Thu Aug 23 13:34:40 2007
@@ -196,6 +196,26 @@
return result;
}
+/**
+ * Init function where are added UI hadle functions
+ * special hack widget where is handlig Start/Stop button
+ *
+ * @return map map for start-stop widget
+ */
+
+map StartStopRestart () {
+ map result = $[];
+
+ result["widget"] = `custom;
+ result["custom_widget"] =`Empty();
+ result["init"] = InitStartStopRestart;
+ result["help"] = " ";
+
+
+
+ return result;
+}
+
/**
*-----------================= GENERAL SCREEN =============----------
@@ -854,7 +874,7 @@
map SSLv3 () {
map result = $[];
- result["label"] = _("Enable SSL &v2");
+ result["label"] = _("Enable SSL &v3");
result["widget"] = `checkbox;
result["init"] = InitSSLv3;
result["store"] = StoreSSLv3;
@@ -1035,7 +1055,7 @@
result["caption"] = _("FTP Start-Up");
// TRANSLATORS: tree menu item
result["tree_item_label"] = _("Start-Up");
- result["widget_names"] = [ "DisBackButton", "StartMode", "StartStop", "RBVsPureFTPd"];
+ result["widget_names"] = [ "DisBackButton", "StartMode", "StartStop", "RBVsPureFTPd", "StartStopRestart"];
return result;
}
@@ -1126,7 +1146,7 @@
// TRANSLATORS: tree menu item
result["tree_item_label"] = _("General");
result["widget_names"] = [ "DisBackButton", "ChrootEnable", "VerboseLogging",
- "Umask", "FtpDirAnon", "BrowseAnon",];
+ "Umask", "FtpDirAnon", "BrowseAnon"];
return result;
}
@@ -1381,6 +1401,7 @@
"StartStop" : CWMServiceStart::CreateStartStopWidget (StartStop ()),
"DisBackButton" : DisBackButton (),
"RBVsPureFTPd" : RBVsftpdPureftpd (),
+ "StartStopRestart": StartStopRestart (),
"Banner" : Banner(),
"ChrootEnable" : ChrootEnable (),
@@ -1479,6 +1500,7 @@
map > wid_handling_pureftpd = $[
"DisBackButton" : DisBackButton (),
+ "StartStopRestart": StartStopRestart (),
"StartMode" : CWMServiceStart::CreateAutoStartWidget (StartMode ()),
"StartStop" : CWMServiceStart::CreateStartStopWidget (StartStopPure ()),
Modified: trunk/ftp-server/src/wid_functions.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ftp-server/src/wid_functions.ycp?rev=40427&r1=40426&r2=40427&view=diff
==============================================================================
--- trunk/ftp-server/src/wid_functions.ycp (original)
+++ trunk/ftp-server/src/wid_functions.ycp Thu Aug 23 13:34:40 2007
@@ -21,6 +21,7 @@
import "Users";
import "Mode";
import "FileUtils";
+import "Label";
@@ -71,11 +72,43 @@
if (FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2")
result = true;
else
- result = false;
+ result = false;
+
+
return result;
}
+boolean AskStartXinetd () {
+ boolean result = false;
+
+ if ((Service::Status("xinetd") != 0) && (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "NO")) {
+ if (Mode::normal()) {
+ UI::OpenDialog( `VBox(
+ `Label(_("Xinetd is not running.")),
+ `Label(_("Start it now?")),
+ `HBox(
+ `PushButton(`id(`accept), Label::YesButton()),
+ `PushButton(`id(`cancel), Label::NoButton())
+ )
+ )); // end of UI::OpenDialog(
+ while (true) {
+ any ret = UI::UserInput();
+ if ( ret == `accept ) {
+ result = true;
+ break;
+ } else if (ret == `cancel) {
+ result = false;
+ break;
+ }
+ };
+ UI::CloseDialog();
+ } // end of if (Mode::normal()) {
+ } // end of if ((Service::Status("xinetd") != 0)...
+
+ return result;
+}
+
/**
* CWMServiceStart function with one boolean parameter
* returning boolean value that says if the service will be started at boot.
@@ -84,34 +117,11 @@
boolean result = true;
if (enable_service) {
FtpServer::EDIT_SETTINGS["StartDaemon"] = "2";
- if ((Service::Status("xinetd") != 0) &&
- (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "NO")) {
- if (Mode::normal()) {
- UI::OpenDialog(
- `VBox(
- `Label("Xinetd is not started!"),
- `Label("Do you want to start it?"),
- `HBox(
- `PushButton(`id(`accept), "&Start"),
- `PushButton(`id(`cancel), "Canc&el")
- )
- ) // end of `VBox(
- ); // end of UI::OpenDialog(
- while (true) {
- any ret = UI::UserInput();
- if ( ret == `accept ) {
- //FtpServer::EDIT_SETTINGS["StartXinetd"] = "YES";
- result = true;
- break;
- } else if (ret == `cancel) {
- //FtpServer::EDIT_SETTINGS["StartXinetd"] = "NO";
- result = false;
- break;
- }
- };
- UI::CloseDialog();
- } // end of if (Mode::normal()) {
- } // end of if ((Service::Status("xinetd") != 0)...
+ result = AskStartXinetd ();
+ if (!result) {
+ if (Service::Status("xinetd") == 0)
+ result = true;
+ }
if (result)
FtpServer::EDIT_SETTINGS["StartXinetd"] = "YES";
else
@@ -123,19 +133,57 @@
}
+
+void UpdateInfoAboutStartingFTP () {
+
+ //which radiobutton is selected for starting "when booting", "via xinetd" or "manually"
+ any value = UI::QueryWidget (`id ("_cwm_service_startup"),`Value);
+
+ if (tostring(value) == "_cwm_startup_manual")
+ FtpServer::EDIT_SETTINGS["StartDaemon"] = "0";
+
+ else if (tostring(value) == "_cwm_startup_auto")
+ FtpServer::EDIT_SETTINGS["StartDaemon"] = "1";
+
+ else
+ FtpServer::EDIT_SETTINGS["StartDaemon"] = "2";
+
+}
+
+
/**
* Function start vsftpd
*/
boolean StartNowVsftpd () {
boolean result = false;
- if (FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") {
- if (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "YES")
- //FtpServer::start_xinetd = true;
- Popup::Message(_("This is not supported via xinetd now."));
- else {
- Popup::Message(_("This is not supported via xinetd now."));
- }
- } else {
+
+ UpdateInfoAboutStartingFTP ();
+
+ if ((FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") && (Service::Status("pure-ftpd") != 0)) {
+
+ SCR::Write(add(.vsftpd, "listen"), nil);
+ SCR::Write(.vsftpd, nil);
+ FtpServer::stop_daemon_xinetd = false;
+ result = AskStartXinetd ();
+
+ if (!result) {
+ if ((Service::Status("xinetd") == 0) || (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "YES"))
+ result = true;
+ }
+
+ if (FtpServer::WriteStartViaXinetd(true,true) && result) {
+ FtpServer::vsftp_xinetd_running = true;
+ FtpServer::pure_ftp_xinetd_running = false;
+ UI::ReplaceWidget (`id ("_cwm_service_status_rp"), `Label(_("FTP is running")));
+ UI::ChangeWidget (`id ("_cwm_start_service_now"), `Enabled, false);
+ UI::ChangeWidget (`id ("_cwm_stop_service_now"), `Enabled, true);
+ result = true;
+ }
+
+
+ } else {
+ SCR::Write(add(.vsftpd, "listen"), "YES");
+ SCR::Write(.vsftpd, nil);
string command = "rcvsftpd start";
map options = (map)SCR::Execute (.target.bash_output, command);
y2milestone("[ftp-server] (StartNowVsftpd) command for starting vsftpd: %1 output: %2",command, options);
@@ -153,13 +201,19 @@
*/
boolean StopNowVsftpd () {
boolean result = false;
-if (FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") {
- if (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "YES")
- //FtpServer::start_xinetd = true;
- Popup::Message(_("This is not supported via xinetd now."));
- else {
- Popup::Message(_("This is not supported via xinetd now."));
- }
+
+ //UpdateInfoAboutStartingFTP ();
+
+ if (FtpServer::vsftp_xinetd_running) {
+ FtpServer::stop_daemon_xinetd = true;
+ if (FtpServer::WriteStartViaXinetd(true,true)) {
+ FtpServer::vsftp_xinetd_running = false;
+ UI::ReplaceWidget (`id ("_cwm_service_status_rp"), `Label(_("FTP is not running")));
+ UI::ChangeWidget (`id ("_cwm_start_service_now"), `Enabled, true);
+ UI::ChangeWidget (`id ("_cwm_stop_service_now"), `Enabled, false);
+ result = true;
+ }
+
} else {
string command = "rcvsftpd stop";
@@ -176,21 +230,34 @@
/**
* Function saves configuration and restarts vsftpd
*/
-boolean SaveAndRestartVsftpd () {
+boolean SaveAndRestartVsftpd () {
+ boolean result = false;
- boolean result = false;
- if (FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") {
- if (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "YES")
- //FtpServer::start_xinetd = true;
- Popup::Message(_("This is not supported via xinetd now."));
- else {
- Popup::Message(_("This is not supported via xinetd now."));
+ result = StopNowVsftpd ();
+ UpdateInfoAboutStartingFTP ();
+
+ if ((FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") && (Service::Status("pure-ftpd") != 0)) {
+ result = AskStartXinetd ();
+ //write settings to disk...
+ FtpServer::WriteSettings ();
+
+ if (!result) {
+ if ((Service::Status("xinetd") == 0) || (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "YES"))
+ result = true;
+ }
+ FtpServer::stop_daemon_xinetd = false;
+ if (FtpServer::WriteStartViaXinetd(true,false) && result) {
+ FtpServer::vsftp_xinetd_running = true;
+ UI::ReplaceWidget (`id ("_cwm_service_status_rp"), `Label(_("FTP is running")));
+ UI::ChangeWidget (`id ("_cwm_start_service_now"), `Enabled, false);
+ UI::ChangeWidget (`id ("_cwm_stop_service_now"), `Enabled, true);
+ result = true;
+ }
+
- }
} else {
- FtpServer::WriteSettings ();
- FtpServer::WriteUpload ();
- string command = "rcvsftpd restart";
+ FtpServer::WriteSettings ();
+ string command = "rcvsftpd start";
map options = (map)SCR::Execute (.target.bash_output, command);
y2milestone("[ftp-server] (SaveAndRestartVsftpd) command for save and restart vsftpd: %1 output: %2",command, options);
if (options["exit"]:nil == 0)
@@ -198,31 +265,54 @@
else
result = false;
}
+ FtpServer::WriteUpload ();
return result;
}
+
+
/**
* Function start pure-ftpd
*/
boolean StartNowPure () {
boolean result = false;
- if (FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") {
- if (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "YES")
- //FtpServer::start_xinetd = true;
- Popup::Message(_("This is not supported via xinetd now."));
- else {
- Popup::Message(_("This is not supported via xinetd now."));
- }
+
+ UpdateInfoAboutStartingFTP ();
+
+ if ((FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") && (Service::Status("vsftpd") != 0)) {
+ FtpServer::stop_daemon_xinetd = false;
+ result = AskStartXinetd ();
+
+ if (!result) {
+ if ((Service::Status("xinetd") == 0) || (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "YES"))
+ result = true;
+ }
+
+ if (FtpServer::WriteStartViaXinetd(true,true) && result) {
+ FtpServer::pure_ftp_xinetd_running = true;
+ FtpServer::vsftp_xinetd_running = false;
+ UI::ReplaceWidget (`id ("_cwm_service_status_rp"), `Label(_("FTP is running")));
+ UI::ChangeWidget (`id ("_cwm_start_service_now"), `Enabled, false);
+ UI::ChangeWidget (`id ("_cwm_stop_service_now"), `Enabled, true);
+ result = true;
+ }
} else {
+
+ SCR::Write(add(.pure-ftpd, "Daemonize"), "YES");
+ SCR::Write(.pure-ftpd, nil);
string command = "rcpure-ftpd start";
+
map options = (map)SCR::Execute (.target.bash_output, command);
- y2milestone("[ftp-server] (StartNowPure) command for start pure-ftpd: %1 output: %2",command, options);
+
+ y2milestone("[ftp-server] (StartNowPure) command for start pure-ftpd: %1 output: %2",command, options);
+
if (options["exit"]:nil == 0)
result = true;
else
result = false;
+
}
return result;
}
@@ -232,13 +322,19 @@
*/
boolean StopNowPure () {
- boolean result = false;
- if ((FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") && (Service::Status("xinetd") != 0)) {
- Popup::Message(_("This is not supported via xinetd now."));
- /*
+ boolean result = false;
+
+ if (FtpServer::pure_ftp_xinetd_running) {
+ //Popup::Message(_("This is not supported via xinetd now."));
+
FtpServer::stop_daemon_xinetd = true;
- result = FtpServer::WriteXinetd ();
- */
+ if (FtpServer::WriteStartViaXinetd(true,true)) {
+ FtpServer::pure_ftp_xinetd_running = false;
+ UI::ReplaceWidget (`id ("_cwm_service_status_rp"), `Label(_("FTP is not running")));
+ UI::ChangeWidget (`id ("_cwm_start_service_now"), `Enabled, true);
+ UI::ChangeWidget (`id ("_cwm_stop_service_now"), `Enabled, false);
+ result = true;
+ }
} else {
string command = "rcpure-ftpd stop";
map options = (map)SCR::Execute (.target.bash_output, command);
@@ -256,17 +352,32 @@
*/
boolean SaveAndRestartPure () {
boolean result = false;
- if (FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") {
- if (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "YES")
- //FtpServer::start_xinetd = true;
- Popup::Message(_("This is not supported via xinetd now."));
- else {
- Popup::Message(_("This is not supported via xinetd now."));
-
- }
+
+ result = StopNowPure ();
+ UpdateInfoAboutStartingFTP ();
+
+ if ((FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") && (Service::Status("vsftpd") != 0)) {
+ result = AskStartXinetd ();
+ //write settings to disk...
+ FtpServer::WriteSettings ();
+
+ if (!result) {
+ if ((Service::Status("xinetd") == 0) || (FtpServer::EDIT_SETTINGS["StartXinetd"]:nil == "YES"))
+ result = true;
+ }
+ FtpServer::stop_daemon_xinetd = false;
+ if (FtpServer::WriteStartViaXinetd(true,false) && result) {
+ FtpServer::pure_ftp_xinetd_running = true;
+ UI::ReplaceWidget (`id ("_cwm_service_status_rp"), `Label(_("FTP is running")));
+ UI::ChangeWidget (`id ("_cwm_start_service_now"), `Enabled, false);
+ UI::ChangeWidget (`id ("_cwm_stop_service_now"), `Enabled, true);
+ result = true;
+ }
+
} else {
+ //write settings to disk...
FtpServer::WriteSettings ();
- string command = "rcpure-ftpd restart";
+ string command = "rcpure-ftpd start";
map options = (map)SCR::Execute (.target.bash_output, command);
y2milestone("[ftp-server] (StopNowPure) command for save and restart pure-ftpd: %1 output: %2",command, options);
if (options["exit"]:nil == 0)
@@ -274,6 +385,7 @@
else
result = false;
}
+ result = FtpServer::WriteUpload ();
return result;
}
@@ -327,6 +439,31 @@
}
+/**
+ * Init function for start-up
+ *
+ * init starting via xinetd and update status
+ */
+
+void InitStartStopRestart (string key) {
+
+ if ((FtpServer::pure_ftp_xinetd_running) && (!FtpServer::vsftpd_edit)) {
+ UI::ReplaceWidget (`id ("_cwm_service_status_rp"), `Label(_("FTP is running")));
+ UI::ChangeWidget (`id ("_cwm_start_service_now"), `Enabled, false);
+ UI::ChangeWidget (`id ("_cwm_stop_service_now"), `Enabled, true);
+
+ }
+
+ if ((FtpServer::vsftp_xinetd_running) && (FtpServer::vsftpd_edit)) {
+ UI::ReplaceWidget (`id ("_cwm_service_status_rp"), `Label(_("FTP is running")));
+ UI::ChangeWidget (`id ("_cwm_start_service_now"), `Enabled, false);
+ UI::ChangeWidget (`id ("_cwm_stop_service_now"), `Enabled, true);
+ }
+}
+
+
+
+
/**
*-----------================= GENERAL SCREEN =============----------
Modified: trunk/ftp-server/src/write_load.ycp
URL: http://svn.opensuse.org/viewcvs/yast/trunk/ftp-server/src/write_load.ycp?rev=40427&r1=40426&r2=40427&view=diff
==============================================================================
--- trunk/ftp-server/src/write_load.ycp (original)
+++ trunk/ftp-server/src/write_load.ycp Thu Aug 23 13:34:40 2007
@@ -190,19 +190,91 @@
}
+global string PureSettingsForXinetd () {
+ string result = "";
+
+ if (FtpServer::EDIT_SETTINGS["ChrootEnable"]:nil == "YES")
+ result = "-A ";
+
+ if (FtpServer::EDIT_SETTINGS["VerboseLogging"]:nil == "YES")
+ result = result + "-d ";
+
+ if (FtpServer::EDIT_SETTINGS["AnonReadOnly"]:nil == "YES")
+ result = result + "-i ";
+
+ if (FtpServer::EDIT_SETTINGS["AnonCreatDirs"]:nil == "YES")
+ result = result + "-M ";
+
+ if (FtpServer::EDIT_SETTINGS["AntiWarez"]:nil == "YES")
+ result = result + "-s ";
+
+ //anonymous only
+ if (FtpServer::EDIT_SETTINGS["AnonAuthen"]:nil == "0")
+ result = result + "-e ";
+
+ //local only
+ if (FtpServer::EDIT_SETTINGS["AnonAuthen"]:nil == "1")
+ result = result + "-E ";
+
+ //both
+ if (FtpServer::EDIT_SETTINGS["AnonAuthen"]:nil == "2")
+ result = result + "-e -E ";
+
+ if (FtpServer::EDIT_SETTINGS["Umask"]:nil != "")
+ result = result + "-U "+ FtpServer::EDIT_SETTINGS["Umask"]:nil;
+
+ //SSL
+ if (FtpServer::EDIT_SETTINGS["SSL"]:nil != "")
+ result = result +"-Y"+ FtpServer::EDIT_SETTINGS["SSL"]:nil +" ";
+
+ //anonymous rate
+ if (FtpServer::EDIT_SETTINGS["AnonMaxRate"]:nil != "0")
+ result = result +"-t" + FtpServer::EDIT_SETTINGS["AnonMaxRate"]:nil +" ";
+
+ //local rate
+ if (FtpServer::EDIT_SETTINGS["LocalMaxRate"]:nil != "0")
+ result = result +"-T" + FtpServer::EDIT_SETTINGS["LocalMaxRate"]:nil +" ";
+
+ //max clients
+ if (FtpServer::EDIT_SETTINGS["MaxClientsNumber"]:nil != "")
+ result = result +"-c" + FtpServer::EDIT_SETTINGS["MaxClientsNumber"]:nil +" ";
+
+ //max clients per IP
+ if (FtpServer::EDIT_SETTINGS["MaxClientsPerIP"]:nil != "")
+ result = result +"-C" + FtpServer::EDIT_SETTINGS["MaxClientsPerIP"]:nil +" ";
+
+ //max idle time
+ if (FtpServer::EDIT_SETTINGS["MaxIdleTime"]:nil != "")
+ result = result +"-I" + FtpServer::EDIT_SETTINGS["MaxIdleTime"]:nil +" ";
+
+ //port range for passive connections
+ result = result + "-p"+FtpServer::EDIT_SETTINGS["PasMinPort"]:nil+":"+FtpServer::EDIT_SETTINGS["PasMaxPort"]:nil;
+ y2milestone("[ftp-server] (PureSettingsForXinetd) options for xinetd from pure-ftpd settings: %1", result);
+ return result;
+}
boolean InitStartViaXinetd () {
+ boolean xinetd_running = false;
if (IdFTPXinetd ()) {
+
+ if (Service::Status("xinetd") == 0) {
+ xinetd_running = true;
+ FtpServer::EDIT_SETTINGS["StartXinetd"] = "YES";
+ }
if (FtpServer::vsftpd_edit) {
if (Inetd::netd_conf[FtpServer::vsftpd_xined_id,"enabled"]:nil == true) {
FtpServer::EDIT_SETTINGS["StartDaemon"] = "2";
+ if (xinetd_running)
+ FtpServer::vsftp_xinetd_running = true;
return true;
}
} else {
if (Inetd::netd_conf[FtpServer::pureftpd_xined_id,"enabled"]:nil == true) {
FtpServer::EDIT_SETTINGS["StartDaemon"] = "2";
+ if (xinetd_running)
+ FtpServer::pure_ftp_xinetd_running = true;
return true;
}
}
@@ -212,31 +284,43 @@
}
-boolean WriteStartViaXinetd (boolean startxinetd) {
+global boolean WriteStartViaXinetd (boolean startxinetd, boolean push_star_now) {
string pure_options = "";
boolean result = false;
+
if ((FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") && (!FtpServer::stop_daemon_xinetd)) {
+
if (FtpServer::vsftpd_edit) {
Inetd::netd_conf[FtpServer::vsftpd_xined_id,"enabled"] = true;
Inetd::netd_conf[FtpServer::pureftpd_xined_id,"enabled"] = false;
+ FtpServer::pure_ftp_xinetd_running = false;
} else {
Inetd::netd_conf[FtpServer::pureftpd_xined_id,"enabled"] = true;
Inetd::netd_conf[FtpServer::vsftpd_xined_id,"enabled"] = false;
- map options = (map)SCR::Execute (.target.bash_output,
+ FtpServer::vsftp_xinetd_running = false;
+ if (push_star_now) {
+ pure_options = PureSettingsForXinetd ();
+ } else {
+ map options = (map)SCR::Execute (.target.bash_output,
"/usr/sbin/pure-config-args /etc/pure-ftpd/pure-ftpd.conf");
- if (options["exit"]:nil == 0)
- pure_options = (string) options["stdout"]:nil;
- else
- return false;
+ if (options["exit"]:nil == 0)
+ pure_options = (string) options["stdout"]:nil;
+ else
+ return false;
+ }
Inetd::netd_conf[FtpServer::pureftpd_xined_id,"server"] = "/usr/sbin/pure-ftpd";
Inetd::netd_conf[FtpServer::pureftpd_xined_id,"server_args"] = pure_options;
}
+
if (startxinetd)
Inetd::netd_status = 0; //start xinetd if not running else reload
+
} else {
Inetd::netd_status = 0;
Inetd::netd_conf[FtpServer::pureftpd_xined_id,"enabled"] = false;
Inetd::netd_conf[FtpServer::vsftpd_xined_id,"enabled"] = false;
+ FtpServer::vsftp_xinetd_running = false;
+ FtpServer::pure_ftp_xinetd_running = false;
} //end of else [ if (FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2")]
Inetd::netd_conf[FtpServer::pureftpd_xined_id,"changed"] = true;
@@ -245,6 +329,7 @@
boolean status_progress = Progress::set(false);
result = Inetd::Write();
Progress::set(status_progress);
+
return result;
}
@@ -994,16 +1079,19 @@
case("StartXinetd"):
boolean result = false;
if (write) {
- if (EDIT_SETTINGS["StartXinetd"]:nil == "YES") {
- FtpServer::start_xinetd = true;
- if (Service::Enabled("vsftpd"))
- Service::Disable("vsftpd");
- if (Service::Enabled("pure-ftpd"))
- Service::Disable("pure-ftpd");
- if (FtpServer::vsftpd_edit) {
+
+ if (FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "2") {
+ if (EDIT_SETTINGS["StartXinetd"]:nil == "YES") {
+ FtpServer::start_xinetd = true;
+ if (Service::Enabled("vsftpd"))
+ Service::Disable("vsftpd");
+ if (Service::Enabled("pure-ftpd"))
+ Service::Disable("pure-ftpd");
+ if (FtpServer::vsftpd_edit) {
FtpServer::VS_SETTINGS["listen"]=nil;
- } else {
+ } else {
FtpServer::PURE_SETTINGS["Daemonize"]="NO";
+ }
}
} else {
if (FtpServer::EDIT_SETTINGS["StartDaemon"]:nil == "1") {
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org