Skip to content
Snippets Groups Projects
db-backends.php 1.42 KiB
Newer Older
  • Learn to ignore specific revisions
  • function noblogs_load_backends($db_config_file, $hashptr) {
    
      global $wpdb;
    
      $backend_map = array();
    
      $fp = @fopen($db_config_file, "r");
      if (!$fp) {
        die("Database backends not configured!");
      }
      while (($line = fgets($fp, 1024)) !== false) {
    
        $wline = rtrim($line);
        if ($wline == "" || $wline[0] == '#') {
    
        $line_parts = explode(" ", $wline);
    
        $server_id = $line_parts[0];
        $dataset = "backend_" . $server_id;
        $backend_url = $line_parts[2];
        $backend_url_data = parse_url($backend_url);
        $backend = array(
            "host" => $backend_url_data["host"] . ":" . $backend_url_data["port"],
            "user" => $backend_url_data["user"],
            "password" => $backend_url_data["pass"],
            "name" => substr($backend_url_data["path"], 1),
            "dataset" => $dataset,
    
            "read" => 1, "write" => 1, "timeout" => 10
    
            );
        $wpdb->add_database($backend);
        $hashptr->addTarget($dataset);
        $backend_map[$dataset] = $backend;
      }
      fclose($fp);
      return $backend_map;
    }
    
    
    function noblogs_load_master($master_file) {
      $master_url = trim(file_get_contents($master_file));
      $mdata = parse_url($master_url);
      return array(
          "host" => $mdata["host"] . ":" . $mdata["port"],
          "user" => $mdata["user"],
          "password" => $mdata["pass"],
          "name" => substr($mdata["path"], 1),
          "dataset" => "global",
          "read" => 0, "write" => 1, "timeout" => 10
          );
    }