Changeset 277 for trunk/DNSDB.pm
- Timestamp:
- 03/15/12 18:04:02 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DNSDB.pm
r276 r277 43 43 &addGroup &delGroup &getChildren &groupName 44 44 &addUser &updateUser &delUser &userFullName &userStatus &getUserData 45 &getSOA & getRecLine &getDomRecs &getRecCount45 &getSOA &updateSOA &getRecLine &getDomRecs &getRecCount 46 46 &addRec &updateRec &delRec 47 47 &getTypelist … … 65 65 &addGroup &delGroup &getChildren &groupName 66 66 &addUser &updateUser &delUser &userFullName &userStatus &getUserData 67 &getSOA & getRecLine &getDomRecs &getRecCount67 &getSOA &updateSOA &getRecLine &getDomRecs &getRecCount 68 68 &addRec &updateRec &delRec 69 69 &getTypelist … … 2182 2182 # Update the specified SOA record 2183 2183 # Takes a database handle, default/live flag, forward/reverse flag, and SOA data hash 2184 # Returns a two-element list with a result code and message 2184 2185 sub updateSOA { 2185 2186 my $dbh = shift; … … 2189 2190 my %soa = @_; 2190 2191 2192 my %oldsoa = getSOA($dbh, $defrec, $revrec, $soa{recid}); 2193 2194 # Allow transactions, and raise an exception on errors so we can catch it later. 2195 # Use local to make sure these get "reset" properly on exiting this block 2196 local $dbh->{AutoCommit} = 0; 2197 local $dbh->{RaiseError} = 1; 2198 2199 my $msg; 2200 2201 eval { 2191 2202 ##fixme: data validation: make sure {recid} is really the SOA for {parent} 2192 my $sql = "UPDATE "._rectable($defrec, $revrec)." SET host=?, val=?, ttl=? WHERE record_id=? AND type=6"; 2193 $dbh->do($sql, undef, ("$soa{contact}:$soa{prins}", "$soa{refresh}:$soa{retry}:$soa{expire}:$soa{minttl}", 2194 $soa{ttl}, $soa{recid})); 2195 2203 my $sql = "UPDATE "._rectable($defrec, $revrec)." SET host=?, val=?, ttl=? WHERE record_id=? AND type=6"; 2204 $dbh->do($sql, undef, ("$soa{contact}:$soa{prins}", "$soa{refresh}:$soa{retry}:$soa{expire}:$soa{minttl}", 2205 $soa{ttl}, $soa{recid}) ); 2206 2207 $msg = "Updated ".($defrec eq 'y' ? 'default ' : '')."SOA for ". 2208 ($defrec eq 'y' ? groupName($dbh, $soa{recid}) : 2209 ($revrec eq 'n' ? domainName($dbh, $soa{recid}) : revName($dbh, $soa{recid}) ) ). 2210 ": (ns $oldsoa{prins}, contact $oldsoa{contact}, refresh $oldsoa{refresh},". 2211 " retry $oldsoa{retry}, expire $oldsoa{expire}, minTTL $oldsoa{minttl}, TTL $oldsoa{ttl}) to ". 2212 "(ns $soa{prins}, contact $soa{contact}, refresh $soa{refresh},". 2213 " retry $soa{retry}, expire $soa{expire}, minTTL $soa{minttl}, TTL $soa{ttl})"; 2214 2215 # _log($dbh, (rdns_id => $rdns_id, user_id => $userinfo{id}, group_id => $group, 2216 # username => $userinfo{name}, entry => $msg) ); 2217 2218 $dbh->commit; 2219 }; 2220 if ($@) { 2221 $msg = $@; 2222 eval { $dbh->rollback; }; 2223 return ('FAIL',$msg); 2224 } else { 2225 return ('OK', $msg); 2226 } 2196 2227 } # end updateSOA() 2197 2228
Note:
See TracChangeset
for help on using the changeset viewer.