Beispiel #1
0
  public void readConfFileAndFillParameters() {

    try {

      BufferedReader br = new BufferedReader(new FileReader(conf_file));
      String line = br.readLine();
      String sub_line = null;
      String sub_line_1 = null;
      ifaces = new ArrayList<String>();

      while (line != null) {
        if (line.startsWith("#")) {
          line = br.readLine();
          continue;
        }
        line = line.toLowerCase();
        line = line.replaceAll("\\s", "");

        if (line.contains("database-mapping")) {
          do {
            sub_line = br.readLine();
            if (sub_line.startsWith("#")) {
              sub_line = br.readLine();
              continue;
            }
            sub_line = sub_line.toLowerCase();
            sub_line = sub_line.replaceAll("\\s", "");

            if (sub_line.contains("eid-prefix")) {
              String[] tmp = sub_line.split("=");
              if (tmp.length < 2) continue;
              String[] tmp_1 = tmp[1].split("/");
              if (tmp_1.length < 2) continue;
              if (tmp_1[0].contains(":")) {
                eidIPv6 = tmp_1[0];
                EditText e = (EditText) findViewById(R.id.updateConfeid6Text);
                e.setText(eidIPv6);
              } else if (tmp_1[0].contains(".")) {
                eidIPv4 = tmp_1[0];
                EditText e = (EditText) findViewById(R.id.updateConfeid4Text);
                e.setText(eidIPv4);
              }
            }
            if (sub_line.contains("rloc-iface")) {
              sub_line = br.readLine();
              if (sub_line.startsWith("#")) {
                sub_line = br.readLine();
                continue;
              }
              sub_line = sub_line.toLowerCase();
              sub_line = sub_line.replaceAll("\\s", "");

              if (sub_line.contains("interface")) {
                String[] tmp = sub_line.split("=");
                if (tmp.length < 2) continue;
                String iface_name = tmp[1];

                Iterator<String> iface_it = iface_list.iterator();
                while (iface_it.hasNext()) {
                  if (iface_it.next().equals(iface_name)) {
                    if (!ifaces.contains(iface_name)) {
                      ifaces.add(iface_name);
                    }
                    break;
                  }
                }
              }
            }
          } while (!sub_line.contains("}"));
        } else if (line.contains("map-resolver")) {
          sub_line = br.readLine();
          if (sub_line.startsWith("#")) {
            sub_line = br.readLine();
            continue;
          }
          sub_line = sub_line.replaceAll("\\s", "");

          if (sub_line.contains(",")) {
            String[] tmp = sub_line.split(",");
            if (tmp.length != 0) {
              MR = tmp[0];
            }
          } else {
            MR = sub_line;
          }

          EditText e = (EditText) findViewById(R.id.updateConfMRText);
          e.setText(MR);
        } else if (line.contains("nat-traversal") && !line.startsWith("#")) {
          do {
            sub_line = br.readLine();
            if (sub_line.startsWith("#")) {
              sub_line = br.readLine();
              continue;
            }
            sub_line = sub_line.toLowerCase();
            sub_line = sub_line.replaceAll("\\s", "");

            if (sub_line.contains("nat_aware")) {
              String[] tmp = sub_line.split("=");
              if (tmp.length < 2) continue;
              String nat_aware_aux = tmp[1];
              if (nat_aware_aux.equals("on") || nat_aware_aux.equals("true")) {
                nat_aware = true;
              } else {
                nat_aware = false;
              }
            }
          } while (!sub_line.contains("}"));
          CheckBox c = (CheckBox) findViewById(R.id.updateConf_NAT_aware);
          c.setChecked(nat_aware);
        } else if (line.contains("map-server")) {
          do {
            sub_line = br.readLine();
            if (sub_line.startsWith("#")) {
              sub_line = br.readLine();
              continue;
            }
            sub_line_1 = sub_line; // Not lose uppercase in password
            sub_line = sub_line.toLowerCase();
            sub_line = sub_line.replaceAll("\\s", "");

            if (sub_line.contains("address")) {
              String[] tmp = sub_line.split("=");
              if (tmp.length > 1) {
                MS = tmp[1];
              }
            } else if (sub_line.contains("key")) {
              String[] tmp = sub_line_1.split("=");
              if (tmp.length > 1) {
                MSKey = tmp[1];
              }
            }
          } while (!sub_line.contains("}"));

          EditText e = (EditText) findViewById(R.id.updateConfMSText);
          e.setText(MS);

          EditText et = (EditText) findViewById(R.id.updateConfMSKeyText);
          et.setText(MSKey);
        } else if (line.contains("proxy-etr")) {
          do {
            sub_line = br.readLine();
            if (sub_line.startsWith("#")) {
              sub_line = br.readLine();
              continue;
            }
            sub_line = sub_line.toLowerCase();
            sub_line = sub_line.replaceAll("\\s", "");

            if (sub_line.contains("address")) {
              String[] tmp = sub_line.split("=");
              if (tmp.length > 1) {
                proxyETR = tmp[1];
              }
            }
          } while (!sub_line.contains("}"));

          EditText e = (EditText) findViewById(R.id.updateConf_proxy_etr);
          e.setText(proxyETR);

        } else if (line.contains("override-dns=")) {
          String[] tmp = line.split("=");
          if (tmp.length > 1) {
            String overrideDNS_aux = tmp[1];
            if (overrideDNS_aux.equals("on") || overrideDNS_aux.equals("true")) {
              overrideDNS = true;
            } else {
              overrideDNS = false;
            }
          }

          CheckBox c = (CheckBox) findViewById(R.id.updateConfDNSCheck);
          c.setChecked(overrideDNS);
        } else if (line.contains("override-dns-primary=")) {
          String[] tmp = line.split("=");
          if (tmp.length > 1) {
            if (ConfigTools.validate_IP_Address(tmp[1])) {
              DNS1 = tmp[1];
            }
          }
          EditText e = (EditText) findViewById(R.id.updateConfDNS1Text);
          e.setText(DNS1);
        } else if (line.contains("override-dns-secondary=")) {
          String[] tmp = line.split("=");
          if (tmp.length > 1) {
            if (ConfigTools.validate_IP_Address(tmp[1])) {
              DNS2 = tmp[1];
            }
          }
          EditText e = (EditText) findViewById(R.id.updateConfDNS2Text);
          e.setText(DNS2);
        } else if (line.contains("debug=")) {
          String[] tmp = line.split("=");
          if (tmp.length > 1) {
            logLevel = tmp[1];
          }
          Spinner log_spinner = (Spinner) findViewById(R.id.LogSpinner);
          log_spinner.setSelection(new Integer(logLevel).intValue());
        }

        line = br.readLine();
      }
      MultiSelectionSpinner spinner = (MultiSelectionSpinner) findViewById(R.id.IfaceNameSpinner);
      spinner.setSelection(ifaces);

      EditText e = (EditText) findViewById(R.id.updateConfDNS1Text);
      e.setEnabled(overrideDNS);
      e = (EditText) findViewById(R.id.updateConfDNS2Text);
      e.setEnabled(overrideDNS);

    } catch (IOException e) {;
    }
  }