DNS Files

"; $post = ""; } else { $pre = ""; $post = ""; } switch( $row["f_type"] ) { case 1: $type = "Forward DNS"; break; case 2: $type = "Reverse DNS"; break; case 3: $type = "DHCP"; break; case 4: $type = "FIdent Daemon"; break; default: break; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } ?>
ID Name Type  
" . $pre . $id . $post . "" . $pre . $row["f_name"] . $post . "" . $pre . $type . $post . "edit

Add New File (1/2)

File Type 
 
illegal parameter name '$name'

\n"; return false; } $value = $_POST[$name]; if( $value == "" ) { echo "

parameter '$name' is empty

\n"; return false; } switch( $name ) { case "dfllease": case "maxlease": case "domain": if( !checkInt( $value ) ) { echo "

illegal parameter '$name'

\n"; return false; } break; case "router": case "ns": if( !checkDomainName( $value ) ) { echo "

illegal parameter '$name'

\n"; return false; } break; case "mailuser": if( !ereg( "^[a-z][a-z0-9-]*(\\.[a-z][a-z0-9-]*)*$", $value ) ) { echo "

illegal parameter '$name'

\n"; return false; } break; case "ttl": case "refresh": case "retry": case "expiry": case "minimum": if( !ereg( "^[1-9][0-9]*[DW]$", $value ) ) { echo "

illegal parameter '$name'

\n"; return false; } break; case "minip": case "maxip": case "netmask": case "broadcast": if( ipToInt( $value ) == -1 ) { echo "

illegal parameter '$name'

\n"; return false; } break; case "defaultreply": if( $value != "none" ) { echo "

illegal parameter '$name'

\n"; return false; } break; default: echo "

illegal parameter name '$name'

\n"; return false; } $parameters[$name] = $value; $i++; } return true; } function edit( $conn, $id, $fromdb ) { $parameters = array(); if( $fromdb ) { $sql = "select f_name, f_type " . "from file where f_id = $id"; $rs = pg_exec( $conn, $sql ); if( !$rs ) { echo "SQL: error selecting file
\n"; return; } $row = pg_fetch_array( $rs ); if( !$row ) { echo "SQL: file not found
\n"; return; } $name = $row["f_name"]; $type = $row["f_type"]; $sql = "select fp_name, fp_value from fileparam where f_id = $id"; $rs = pg_exec( $conn, $sql ); if( !$rs ) { echo "SQL: error selecting file params
\n"; return; } $row = pg_fetch_array( $rs ); while( $row ) { $parameters[$row["fp_name"]] = $row["fp_value"]; $row = pg_fetch_array( $rs ); } echo "

Update File

\n"; } else { $name = getPostVar( "name", "" ); $type = getPostVar( "type", "" ); setDefaultParameters( $parameters, $type ); echo "

Add New File (2/2)

\n"; } echo "
\n"; echo "\n"; echo "\n"; echo "\n"; if( $id != 0 ) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } else { echo "\n"; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $params = getParamNames( $type ); $n = count($params); $i = 0; while( $i < $n ) { $paramname = $params[$i]; $paramvalue = $parameters[$paramname]; echo "\n"; echo "\n"; switch( $paramname ) { case "domain": echo "\n"; break; default: echo "\n"; break; } echo "\n"; $i++; } // ip ranges (reverse DNS only ) if( $type == 2 ) { echo "\n"; echo "\n"; echo "\n"; $sql = "select r.ipr_id, r.ipr_min_addr, r.ipr_max_addr, r.ipr_descr, f.f_id " . "from iprange r left join fileiprange f " . "on r.ipr_id = f.ipr_id and f.f_id = $id " . "order by ipr_min_addr"; $rs = pg_exec( $conn, $sql ); if( !$rs ) { echo "SQL: error selecting ip ranges
\n"; return; } while( $row = pg_fetch_array( $rs ) ) { $iprid = $row["ipr_id"]; $var = "iprid_" . $iprid; $val = intToIP($row["ipr_min_addr"]) . " - " . intToIP($row["ipr_max_addr"]); $checked = ""; if( !$fromdb ) { if( getPostVar( $var, "" ) == "checked" ) { $checked = " checked"; } } else { if( $row["f_id"] != "" ) { $checked = " checked"; } } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } } echo "
ID$id
Type" . getTypeName($type) . "
Name
$paramname"; db_domain_list( $conn, $paramvalue, false, 0, $paramname ); echo "

IP Ranges
$val " . htmlentities($row["ipr_descr"]) . "

\n"; if( $id != 0 ) { echo "\n"; } else { echo "\n"; } echo "
\n"; } function update( $conn, $id ) { $dnsuid = $_SESSION["dnsuid"]; $type = getPostVar( "type", "" ); if( !checkInt( $id ) ) { echo "illegal type
\n"; return 0; } $type = (int)$type; if( $type < 1 || $type > 4 ) { echo "illegal type $type
\n"; return 0; } $name = getPostVar( "name", "" ); if( !ereg( "^[a-z0-9.]*$", $name ) ) { echo "illegal name
\n"; return 0; } $parameters = array(); if( !getPostParameters( $parameters, $type ) ) { return 0; } //$pass = stripslashes( getPostVar( "pass", "" ) ); $xid = $id; if( $id == 0 ) { $id = db_get_next_id( $conn, "file", "f_id" ); if( $id == 0 ) { return 0; } } else { if( !checkInt( $id ) ) { echo "illegal id
\n"; return 0; } } if( !db_begin_work($conn ) ) { return 0; } if( $xid == 0 ) { $sql = "insert into file (" . "f_id, f_type, f_name" . ") values (" . "$id, $type, '$name'" . ")"; } else { $sql = "update file set " . "f_type = $type, " . "f_name = '$name' " . "where f_id = $id"; } showVar( "sql", $sql ); if( !pg_exec( $conn, $sql ) ) { db_rollback_work($conn); return 0; } reset( $parameters ); while( list( $name, $value ) = each( $parameters ) ) { if( $xid == 0 ) { $sql = "insert into fileparam ( " . "f_id, fp_name, fp_value " . ") values ( " . "$id, '$name', '$value' " . ")"; } else { $sql = "update fileparam set fp_value = '$value' " . "where f_id = $id and fp_name = '$name'"; } showVar( "sql", $sql ); if( !pg_exec( $conn, $sql ) ) { db_rollback_work($conn); return 0; } } // ip range priv if( $type == 2 ) { $sql = "select ipr_id from iprange"; $sql = "select r.ipr_id, f.f_id " . "from iprange r left join fileiprange f " . "on r.ipr_id = f.ipr_id and f.f_id = $id " . "order by ipr_min_addr"; $rs = pg_exec( $conn, $sql ); if( !$rs ) { echo "SQL: error selecting ip ranges
\n"; db_rollback_work($conn); return 0; } while( $row = pg_fetch_array( $rs ) ) { $iprid = $row["ipr_id"]; $var = "iprid_" . $iprid; if( getPostVar( $var, "" ) == "checked" ) { $sql = "insert into fileiprange ( f_id, ipr_id ) " . "values ( $id, $iprid )"; if( $row["f_id"] != "" ) { $sql = ""; } //showVar( "f_id", $row["f_id"] ); } else { $sql = "delete from fileiprange " . "where f_id = $id and ipr_id = $iprid"; if( $row["f_id"] == "" ) { $sql = ""; } } if( $sql != "" ) { showVar( "sql", $sql ); pg_exec( $conn, $sql ); } } } db_commit_work($conn); return $id; } function delete( $conn, $id ) { $dnsuid = $_SESSION["dnsuid"]; if( !checkInt( $id ) ) { echo "illegal ID
\n"; return false; } if( !db_begin_work($conn ) ) { return false; } $sql = "delete file where f_id = $id"; pg_exec( $conn, $sql ); if( !pg_exec( $conn, $sql ) ) { db_rollback_work($conn); return false; } $sql = "delete fileparam where f_id = $id"; pg_exec( $conn, $sql ); $sql = "delete fileiprange where f_id = $id"; pg_exec( $conn, $sql ); db_commit_work($conn); return true; } switch( $subcmd ) { case "edit": edit( $conn, $_REQUEST["id"], true ); break; case "add": add(); break; case "add2": edit( $conn, 0, false ); break; case "insert": $id = update( $conn, 0 ); if( $id > 0 ) { show( $conn, $id ); $subcmd = "show"; } else { edit( $conn, $id, false ); } break; case "update": if( update( $conn, $_REQUEST["id"] ) != 0 ) { show( $conn, $_REQUEST["id"] ); $subcmd = "show"; } else { edit( $conn, $_REQUEST["id"], false ); } break; case "delete": if( update( $conn, $_REQUEST["id"] ) ) { show( $conn, 0 ); $subcmd = "show"; } else { edit( $conn, $_REQUEST["id"], false ); } break; default: show( $conn, 0 ); $subcmd = "show"; break; } if( $subcmd != "show" ) { addToMenu( "show files", "file", "" ); } if( $subcmd != "add" ) { addToMenu( "add file", "file", "add" ); } ?>