/* FILE $Id: tdomainfunc.h 6 2005-11-24 00:02:59Z ggw $ (tAuthorize.cPasswd template set member) PURPOSE AUTHOR Template and mysqlRAD2 author: (c) 2001,2002 Gary Wallis. GPL License applies, see www.fsf.org for details */ static char cSearch[100]={""}; static unsigned uAddAccess=0; static unsigned uAddLocal=0; static unsigned uAddVUT=0; static unsigned uServer=0; static char cuServerPullDown[256]={""}; void tDomainNavList(void); void tDomainLocalList(void); void tDomainAccessList(void); void tDomainVUTList(void); void CheckDomain(const char *cDomain,void (*funcTableDialog) (const char *cMsg), unsigned uRequire); void NewAccess(char *cDomain,unsigned uServer); void NewLocal(char *cDomain, unsigned uServer); void NewVUT(char *cDomain, unsigned uServer); //Misc Ext void ScheduleJob(unsigned uUser, unsigned uServer, const char *cJobName, const char *cJobData); //Library candidate function void ExpandcSearchURL(char *cSearch); void ExtProcesstDomainVars(pentry entries[], int x) { register int i; for(i=0;i=8) { ProcesstDomainVars(entries,x); mode=2000; tDomain(LANG_NB_CONFIRMNEW); } } else if(!strcmp(command,LANG_NB_CONFIRMNEW)) { if(uPermLevel>=8) { ProcesstDomainVars(entries,x); mode=2000; CheckDomain(cDomain,tDomain,1); mode=0; if(uAddAccess && uServer) NewAccess(cDomain,uServer); if(uAddLocal && uServer) NewLocal(cDomain,uServer); if(uAddVUT && uServer) NewVUT(cDomain,uServer); uDomain=0; uCreatedBy=uLoginClient; uOwner=uLoginClient; uModBy=0;//Never modified uModDate=0; NewtDomain(0); } } else if(!strcmp(command,LANG_NB_DELETE)) { ProcesstDomainVars(entries,x); if(uOwner) GetClientOwner(uOwner,&uReseller); if( (uPermLevel>=8 && uOwner==uLoginClient) || (uPermLevel>9 && uOwner!=1) || (uPermLevel>7 && uReseller==uLoginClient) ) { mode=2001; tDomain(LANG_NB_CONFIRMDEL); } } else if(!strcmp(command,LANG_NB_CONFIRMDEL)) { ProcesstDomainVars(entries,x); if(uOwner) GetClientOwner(uOwner,&uReseller); if( (uPermLevel>=8 && uOwner==uLoginClient) || (uPermLevel>9 && uOwner!=1) || (uPermLevel>7 && uReseller==uLoginClient) ) { CheckDependency(); mode=5; DeletetDomain(); } } else if(!strcmp(command,LANG_NB_MODIFY)) { ProcesstDomainVars(entries,x); if(uOwner) GetClientOwner(uOwner,&uReseller); if( (uPermLevel>=8 && uOwner==uLoginClient) || (uPermLevel>9 && uOwner!=1) || (uPermLevel>7 && uReseller==uLoginClient) ) { mode=2002; tDomain(LANG_NB_CONFIRMMOD); } } else if(!strcmp(command,LANG_NB_CONFIRMMOD)) { ProcesstDomainVars(entries,x); if(uOwner) GetClientOwner(uOwner,&uReseller); if( (uPermLevel>=8 && uOwner==uLoginClient) || (uPermLevel>9 && uOwner!=1) || (uPermLevel>7 && uReseller==uLoginClient) ) { MYSQL_RES *res; mode=2002; CheckDomain(cDomain,tDomain,1); CheckDependency(); //Did Something actually change? sprintf(query,"SELECT uDomain FROM tDomain WHERE cDomain='%s' AND uDomain=%u",cDomain,uDomain); mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); if(mysql_num_rows(res)) tDomain("Nothing changed no modification done"); mode=0; uModBy=uLoginClient; ModtDomain(); } } } }//void ExttDomainCommands(pentry entries[], int x) void ExttDomainButtons(void) { printf("\n"); printf("\n"); printf("
"); printf(""); printf(""); printf("Search Tools
\n"); printf("\n",cSearch); switch(mode) { case 2000: printf("

Enter required data
"); printf(""); printf(LANG_NBB_CONFIRMNEW); printf("

Optional domain add for server:
"); tTablePullDown("tServer;cuServerPullDown","cLabel","cLabel",uServer); printf("
and tables: tAccess  tLocal  tVUT\n"); break; case 2001: printf("

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

Review record data
"); printf(""); printf(LANG_NBB_CONFIRMMOD); break; } tDomainVUTList(); tDomainLocalList(); tDomainAccessList(); printf(""); printf("

tDomainNavList
\n"); tDomainNavList(); printf("

\n"); }//void ExttDomainButtons(void) void ExttDomainAuxTable(void) { }//void ExttDomainAuxTable(void) void ExttDomainGetHook(entry gentries[], int x) { register int i; for(i=0;i=9) { if(cSearch[0]) sprintf(query,"SELECT %s FROM tDomain WHERE cDomain LIKE '%s%%' ORDER BY uDomain",VAR_LIST_tDomain,cSearch); else sprintf(query,"SELECT %s FROM tDomain ORDER BY uDomain",VAR_LIST_tDomain); } else { if(cSearch[0]) sprintf(query,"SELECT %s FROM tDomain WHERE uOwner=%u AND cDomain LIKE '%s%%' ORDER BY uDomain",VAR_LIST_tDomain,uLoginClient,cSearch); else sprintf(query,"SELECT %s FROM tDomain WHERE uOwner=%u ORDER BY uDomain", VAR_LIST_tDomain,uLoginClient); } }//void ExttDomainSelect(void) void ExttDomainSelectRow(void) { if(uPermLevel<10) sprintf(query,"SELECT %s FROM tDomain,tClient \ WHERE tDomain.uOwner=tClient.uClient\ AND (tClient.uOwner=%u OR tClient.uClient=%u)\ AND tDomain.uDomain=%u", VAR_LIST_tDomain, uLoginClient,uLoginClient,uDomain); else sprintf(query,"SELECT %s FROM tDomain WHERE uDomain=%u", VAR_LIST_tDomain,uDomain); }//void ExttDomainSelectRow(void) void ExttDomainListSelect(void) { char cCat[512]; if(uPermLevel<10) sprintf(query,"SELECT %s FROM tDomain,tClient \ WHERE tDomain.uOwner=tClient.uClient \ AND (tClient.uOwner=%u OR tClient.uClient=%u)", VAR_LIST_tDomain, uLoginClient, uLoginClient); else sprintf(query,"SELECT %s FROM tDomain", VAR_LIST_tDomain); //Changes here must be reflected below in ExttDomainListFilter() if(!strcmp(filter,"uDomain")) { sscanf(command,"%u",&uDomain); if(uPermLevel<10) strcat(query," AND "); else strcat(query," WHERE "); sprintf(cCat,"tDomain.uDomain=%u \ ORDER BY uDomain", uDomain); strcat(query,cCat); } else if(1) { //None NO FILTER strcpy(filter,"None"); strcat(query," ORDER BY uDomain"); } }//void ExttDomainListSelect(void) void ExttDomainListFilter(void) { //Filter printf("Select "); printf(""); }//void ExttDomainListFilter(void) void ExttDomainNavBar(void) { if(uOwner) GetClientOwner(uOwner,&uReseller); printf(LANG_NBB_SKIPFIRST); printf(LANG_NBB_SKIPBACK); printf(LANG_NBB_SEARCH); if(uPermLevel>=8) printf(LANG_NBB_NEW); if( (uPermLevel>=8 && uOwner==uLoginClient) || (uPermLevel>9 && uOwner!=1) || (uPermLevel>7 && uReseller==uLoginClient) ) printf(LANG_NBB_MODIFY); if( (uPermLevel>=8 && uOwner==uLoginClient) || (uPermLevel>9 && uOwner!=1) || (uPermLevel>7 && uReseller==uLoginClient) ) printf(LANG_NBB_DELETE); printf(LANG_NBB_LIST); printf(LANG_NBB_SKIPNEXT); printf(LANG_NBB_SKIPLAST); }//void ExttDomainNavBar(void) void tDomainNavList(void) { MYSQL_RES *res; MYSQL_ROW field; if(!cSearch[0]) { printf("(No search pattern provided)\n"); return; } if(uPermLevel<10) { sprintf(query,"SELECT tDomain.uDomain\ ,tDomain.cDomain\ FROM tDomain,tClient\ WHERE tDomain.uOwner=tClient.uClient\ AND tDomain.cDomain LIKE '%s%%'\ AND (tClient.uOwner=%u OR tClient.uClient=%u) ORDER BY cDomain", cSearch,uLoginClient,uLoginClient); } else { sprintf(query,"SELECT uDomain,cDomain FROM tDomain WHERE cDomain LIKE '%s%%' ORDER BY cDomain",cSearch); } mysql_query(&mysql,query); if(mysql_errno(&mysql)) { printf("%s",mysql_error(&mysql)); return; } res=mysql_store_result(&mysql); if(mysql_num_rows(res)) { if(strchr(cSearch,'%')) ExpandcSearchURL(cSearch); while((field=mysql_fetch_row(res))) printf("%s
\n",field[0],cSearch,field[1]); } else { printf("(No results for search pattern (%s) provided)\n",cSearch); } mysql_free_result(res); }//void tDomainNavList(void) void tDomainAccessList(void) { MYSQL_RES *res; MYSQL_ROW field; sprintf(query,"SELECT uAccess,cDomainIP FROM tAccess WHERE cDomainIP='%s'" ,cDomain); mysql_query(&mysql,query); if(mysql_errno(&mysql)) { printf("%s",mysql_error(&mysql)); return; } res=mysql_store_result(&mysql); if(mysql_num_rows(res)) { printf(""); printf("

tDomainAccessList
\n"); while((field=mysql_fetch_row(res))) { printf("%s
\n",field[0],field[1]); } } mysql_free_result(res); }//void tDomainAccessList(void) void tDomainLocalList(void) { MYSQL_RES *res; MYSQL_ROW field; sprintf(query,"SELECT uLocal,cDomain FROM tLocal WHERE cDomain='%s'" ,cDomain); mysql_query(&mysql,query); if(mysql_errno(&mysql)) { printf("%s",mysql_error(&mysql)); return; } res=mysql_store_result(&mysql); if(mysql_num_rows(res)) { printf(""); printf("

tDomainLocalList
\n"); while((field=mysql_fetch_row(res))) { printf("%s
\n",field[0],field[1]); } } mysql_free_result(res); }//void tDomainLocalList(void) void tDomainVUTList(void) { MYSQL_RES *res; MYSQL_ROW field; sprintf(query,"SELECT uVUT,cDomain FROM tVUT WHERE cDomain='%s'" ,cDomain); mysql_query(&mysql,query); if(mysql_errno(&mysql)) { printf("%s",mysql_error(&mysql)); return; } res=mysql_store_result(&mysql); if(mysql_num_rows(res)) { printf(""); printf("

tDomainVUTList
\n"); while((field=mysql_fetch_row(res))) { printf("%s
\n",field[0],field[1]); } } mysql_free_result(res); }//void tDomainVUTList(void) //Designed for speed and gcc optimization. Not for cleverness or obfuscation factor...lol //Try that in perl..you perl weenies you :) void ExpandcSearchURL(char *cSearch) { register unsigned i=0,j=0; char cCopy[300]={""}; while(cSearch[j]) { if(cSearch[j]=='%') { cCopy[i]='%'; cCopy[i+1]='2'; cCopy[i+2]='5'; i+=3; } else { cCopy[i++]=cSearch[j]; } j++; } cCopy[i]=0; strncpy(cSearch,cCopy,99); cSearch[99]=0; }//void ExpandcSearchURL(char *cSearch) //sedall patch1 //sedall patch2 void NewAccess(char *cDomain, unsigned uServer) { MYSQL_RES *res; sprintf(query,"SELECT uAccess FROM tAccess WHERE cDomainIP='%s'",cDomain); mysql_query(&mysql,query); if(mysql_errno(&mysql)) tDomain(mysql_error(&mysql)); res=mysql_store_result(&mysql); if(!mysql_num_rows(res)) { sprintf(query,"INSERT INTO tAccess SET cDomainIP='%s',cRelayAttr='RELAY',uServer=%u,uSource=%u,uOwner=%u,uCreatedBy=%u,uCreatedDate=UNIX_TIMESTAMP(NOW())",TextAreaSave(cDomain),uServer ,ACCESS_SOURCE_WEBCONSOLE ,uLoginClient ,uLoginClient); mysql_query(&mysql,query); if(mysql_errno(&mysql)) tDomain(mysql_error(&mysql)); ScheduleJob(1,uServer,"NewAccess",cDomain); } mysql_free_result(res); }//void NewAccess(char *cDomain, unsigned uServer) void NewLocal(char *cDomain, unsigned uServer) { MYSQL_RES *res; sprintf(query,"SELECT uLocal FROM tLocal WHERE cDomain='%s'",cDomain); mysql_query(&mysql,query); if(mysql_errno(&mysql)) tDomain(mysql_error(&mysql)); res=mysql_store_result(&mysql); if(!mysql_num_rows(res)) { sprintf(query,"INSERT INTO tLocal SET cDomain='%s',uOwner=%u,uCreatedBy=%u,uCreatedDate=UNIX_TIMESTAMP(NOW()),uServer=%u",TextAreaSave(cDomain),uLoginClient,uLoginClient,uServer); mysql_query(&mysql,query); if(mysql_errno(&mysql)) tDomain(mysql_error(&mysql)); ScheduleJob(1,uServer,"NewLocal",cDomain); } mysql_free_result(res); }//void NewLocal(char *cDomain, unsigned uServer) void NewVUT(char *cDomain, unsigned uServer) { MYSQL_RES *res; sprintf(query,"SELECT uVUT FROM tVUT WHERE cDomain='%s'",cDomain); mysql_query(&mysql,query); if(mysql_errno(&mysql)) tDomain(mysql_error(&mysql)); res=mysql_store_result(&mysql); if(!mysql_num_rows(res)) { sprintf(query,"INSERT INTO tVUT SET cDomain='%s',uOwner=%u,uCreatedBy=%u,uCreatedDate=UNIX_TIMESTAMP(NOW()),uServer=%u",TextAreaSave(cDomain),uLoginClient,uLoginClient,uServer); mysql_query(&mysql,query); if(mysql_errno(&mysql)) tDomain(mysql_error(&mysql)); } mysql_free_result(res); }//void NewVUT(char *cDomain, unsigned uServer)