📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| 347行目: | 347行目: | ||
// 開放するポートを指定する。 | // 開放するポートを指定する。 | ||
bool addPort(const QString& zone, | bool addPort(QDBusInterface &interface, const QString &zone, QString &port, const QString &protocol) | ||
{ | { | ||
QDBusReply<void> reply = interface.call("addPort", zone, port, protocol); | QDBusReply<void> reply = interface.call("addPort", zone, port, protocol, 0); | ||
return reply.isValid(); | return reply.isValid(); | ||
} | } | ||
// 変更を永続化する | // 変更を永続化する | ||
bool makePermament() | bool makePermament(QDBusInterface &interface) | ||
{ | { | ||
QDBusReply<void> reply = interface.call("runtimeToPermanent"); | QDBusReply<void> reply = interface.call("runtimeToPermanent"); | ||
| 361行目: | 361行目: | ||
// Firewalldを再読み込みする | // Firewalldを再読み込みする | ||
bool reloadFirewall() | bool reloadFirewall(QDBusInterface &interface) | ||
{ | { | ||
QDBusReply<void> reply = interface.call("reload"); | QDBusReply<void> reply = interface.call("reload"); | ||
| 371行目: | 371行目: | ||
// ...略 | // ...略 | ||
// | // Firewalldの (ポート開放向け) D-Busインターフェースに接続する | ||
QDBusConnection bus = QDBusConnection::systemBus(); | QDBusConnection bus = QDBusConnection::systemBus(); | ||
QDBusInterface interface("org.fedoraproject.FirewallD1", | QDBusInterface interface("org.fedoraproject.FirewallD1", | ||
"/org/fedoraproject/FirewallD1", | "/org/fedoraproject/FirewallD1", | ||
"org.fedoraproject.FirewallD1", | "org.fedoraproject.FirewallD1.zone", | ||
bus); | bus); | ||
| 381行目: | 381行目: | ||
QStringList zones = {"public", "internal", "work"}; | QStringList zones = {"public", "internal", "work"}; | ||
for (const auto& zone : zones) { | for (const auto& zone : zones) { | ||
if (addPort(zone, 80, "tcp")) { | if (addPort(interface, zone, "80", "tcp")) { | ||
qDebug() << "Port 80 added to" << zone << "zone successfully"; | qDebug() << "Port 80 added to" << zone << "zone successfully"; | ||
} | } | ||
else { | else { | ||
qDebug() << "Failed to add port 80 to" << zone << "zone"; | qDebug() << "Failed to add port 80 to" << zone << "zone"; | ||
return -1; | |||
} | } | ||
} | } | ||
if (makePermament()) { | // 変更を恒久的に設定する | ||
QDBusInterface ifReload("org.fedoraproject.FirewallD1", | |||
"/org/fedoraproject/FirewallD1", | |||
"org.fedoraproject.FirewallD1", | |||
bus); | |||
if (makePermament(ifReload)) { | |||
qDebug() << "Changes made permanent"; | qDebug() << "Changes made permanent"; | ||
return -1; | |||
} | } | ||
if (reloadFirewall()) { | if (reloadFirewall(ifReload)) { | ||
qDebug() << "Firewall reloaded"; | qDebug() << "Firewall reloaded"; | ||
return -1; | |||
} | } | ||