/* FILE $Id$ (Built initially by unixservice.com mysqlRAD2) PURPOSE Non schema-dependent table and application table related functions. AUTHOR (C) 2001-2009 Gary Wallis and Hugo Urquiza. */ //ModuleFunctionProtos() //from tdeletedresource.c #define VAR_LIST_tDeletedResource "tDeletedResource.uDeletedResource,tDeletedResource.uZone,tDeletedResource.cName,tDeletedResource.uTTL,tDeletedResource.uRRType,tDeletedResource.cParam1,tDeletedResource.cParam2,tDeletedResource.cComment,tDeletedResource.uOwner" static char cSearch[100]={""}; static unsigned uRestoreRR=0; void tDeletedZoneNavList(void); void ExtProcesstDeletedZoneVars(pentry entries[], int x) { register int i; for(i=0;i=7) { ProcesstDeletedZoneVars(entries,x); guMode=2000; tDeletedZone(LANG_NB_CONFIRMNEW); } else tDeletedZone("Error: Denied by permissions settings"); } else if(!strcmp(gcCommand,LANG_NB_CONFIRMNEW)) { if(guPermLevel>=7) { ProcesstDeletedZoneVars(entries,x); guMode=2000; //Check entries here guMode=0; uDeletedZone=0; uCreatedBy=guLoginClient; uOwner=guCompany; uModBy=0;//Never modified uModDate=0;//Never modified NewtDeletedZone(0); } else tDeletedZone("Error: Denied by permissions settings"); } */ if(!strcmp(gcCommand,LANG_NB_DELETE)) { ProcesstDeletedZoneVars(entries,x); if(uAllowDel(uOwner,uCreatedBy)) { guMode=2001; tDeletedZone(LANG_NB_CONFIRMDEL); } else tDeletedZone("Error: Denied by permissions settings"); } else if(!strcmp(gcCommand,LANG_NB_CONFIRMDEL)) { ProcesstDeletedZoneVars(entries,x); if(uAllowDel(uOwner,uCreatedBy)) { guMode=5; DeletetDeletedZone(); } else tDeletedZone("Error: Denied by permissions settings"); } /* NOTE: we should not allow modyfing records else if(!strcmp(gcCommand,LANG_NB_MODIFY)) { ProcesstDeletedZoneVars(entries,x); if(uAllowMod(uOwner,uCreatedBy)) { guMode=2002; tDeletedZone(LANG_NB_CONFIRMMOD); } else tDeletedZone("Error: Denied by permissions settings"); } else if(!strcmp(gcCommand,LANG_NB_CONFIRMMOD)) { ProcesstDeletedZoneVars(entries,x); if(uAllowMod(uOwner,uCreatedBy)) { guMode=2002; //Check entries here guMode=0; uModBy=guLoginClient; ModtDeletedZone(); } else tDeletedZone("Error: Denied by permissions settings"); } */ else if(!strcmp(gcCommand,"Restore Zone")) { ProcesstDeletedZoneVars(entries,x); if(uAllowMod(uOwner,uCreatedBy)) { guMode=4000; tDeletedZone("Double check that you want to restore the selected zone and confirm."); } else tDeletedZone("Error: Denied by permissions settings"); } else if(!strcmp(gcCommand,"Confirm Zone Restore")) { MYSQL_RES *res; MYSQL_ROW field; unsigned uResource=0; ProcesstDeletedZoneVars(entries,x); if(!uAllowMod(uOwner,uCreatedBy)) tDeletedZone("Error: Denied by permissions settings"); // //Restore tZone record sprintf(gcQuery,"INSERT INTO tZone SET uZone=%u,cZone='%s',uNSSet=%u,cHostmaster='%s'," "uSerial=%u,uExpire=%u,uRefresh=%u,uTTL=%u,uRetry=%u,uZoneTTL=%u,uMailServers=%u," "uView=%u,cMainAddress='%s',uRegistrar=%u,uSecondaryOnly=%u,cOptions='%s',uOwner=%u," "uCreatedBy=1,uCreatedDate=UNIX_TIMESTAMP(NOW())", uDeletedZone ,cZone ,uNSSet ,cHostmaster ,uSerial ,uExpire ,uRefresh ,uTTL ,uRetry ,uZoneTTL ,uMailServers ,uView ,cMainAddress ,uRegistrar ,uSecondaryOnly ,cOptions ,uOwner ); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); iDNSLog(uDeletedZone,"tZone","New (Restore Zone)"); // //Restore tResource record(s) if available sprintf(gcQuery,"SELECT %s FROM tDeletedResource WHERE uZone=%u",VAR_LIST_tDeletedResource,uDeletedZone); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); res=mysql_store_result(&gMysql); while((field=mysql_fetch_row(res))) { sprintf(gcQuery,"INSERT INTO tResource SET uResource='%s',uZone='%s',cName='%s'," "uTTL='%s',uRRType='%s',cParam1='%s',cParam2='%s',cComment='%s'," "uOwner='%s',uCreatedBy=1,uCreatedDate=UNIX_TIMESTAMP(NOW())", field[0], field[1], field[2], field[3], field[4], field[5], field[6], field[7], field[8]); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); sscanf(field[0],"%u",&uResource); iDNSLog(uResource,"tResource","New (Restore RR)"); } mysql_free_result(res); // //Now remove tDeletedZone and tDeletedResource records sprintf(gcQuery,"DELETE FROM tDeletedZone WHERE uDeletedZone=%u",uDeletedZone); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); sprintf(gcQuery,"DELETE FROM tDeletedResource WHERE uZone=%u",uDeletedZone); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); // //Submit job to restore zone all across the cluster if(SubmitJob("New",uNSSet,cZone,0,0)) htmlPlainTextError(mysql_error(&gMysql)); tDeletedZone("Zone restored"); } } }//void ExttDeletedZoneCommands(pentry entries[], int x) void ExttDeletedZoneButtons(void) { unsigned uDefault=0; OpenFieldSet("tDeletedZone Aux Panel",100); switch(guMode) { case 2000: printf("

Enter/mod data
"); printf(LANG_NBB_CONFIRMNEW); break; case 2001: printf("

Think twice
"); printf(LANG_NBB_CONFIRMDEL); break; case 2002: printf("

Review changes
"); printf(LANG_NBB_CONFIRMMOD); break; case 4000: printf("

Restore Zone Confirm

"); printf("\n"); break; default: uDefault=1; printf("Search Tools
"); printf("",cSearch); tDeletedZoneNavList(); if(guLoginClient==uOwner || guReseller==guLoginClient || guPermLevel>9) { printf("

Deleted Zone Management Tools

"); if(uDeletedZone) printf("\n"); } } if(!uDefault && cSearch[0]) printf("",cSearch); CloseFieldSet(); }//void ExttDeletedZoneButtons(void) void ExttDeletedZoneAuxTable(void) { }//void ExttDeletedZoneAuxTable(void) void ExttDeletedZoneGetHook(entry gentries[], int x) { register int i; for(i=0;i"); if(strcmp(gcFilter,"uDeletedZone")) printf(""); else printf(""); if(strcmp(gcFilter,"None")) printf(""); else printf(""); printf(""); }//void ExttDeletedZoneListFilter(void) void ExttDeletedZoneNavBar(void) { printf(LANG_NBB_SKIPFIRST); printf(LANG_NBB_SKIPBACK); printf(LANG_NBB_SEARCH); // if(guPermLevel>=10 && !guListMode) // printf(LANG_NBB_NEW); // if(uAllowMod(uOwner,uCreatedBy)) // printf(LANG_NBB_MODIFY); if(uAllowDel(uOwner,uCreatedBy)) printf(LANG_NBB_DELETE); if(uOwner) printf(LANG_NBB_LIST); printf(LANG_NBB_SKIPNEXT); printf(LANG_NBB_SKIPLAST); printf("   \n"); }//void ExttDeletedZoneNavBar(void) void tDeletedZoneNavList(void) { MYSQL_RES *res; MYSQL_ROW field; printf("
tDeletedZoneNavList
\n"); if(!cSearch[0]) { printf("Must restrict via cSearch\n"); return; } ExtSelectSearch("tDeletedZone","tDeletedZone.uDeletedZone,tDeletedZone.cZone,(SELECT tView.cLabel FROM tView WHERE tView.uView=tDeletedZone.uView)", "cZone",cSearch,NULL,20); mysql_query(&gMysql,gcQuery); if(mysql_errno(&gMysql)) htmlPlainTextError(mysql_error(&gMysql)); res=mysql_store_result(&gMysql); if(!mysql_num_rows(res)) printf("No records found
\n"); while((field=mysql_fetch_row(res))) printf("%s [%s]
",field[0],field[1],field[2]); mysql_free_result(res); }//void tDeletedZoneNavList(void)