📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

347行目: 347行目:
   
   
  // 開放するポートを指定する。
  // 開放するポートを指定する。
  bool addPort(const QString& zone, int port, const QString &protocol)
  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インターフェースに接続する
     // 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;
     }
     }