/* FILE tDUL source code of mysqlSendmail.cgi (built by mysqlRAD2.cgi (c) Gary Wallis 2001,2002 GPL Licensed) $Id: tdul.c 6 2005-11-24 00:02:59Z ggw $ (tAuthorize.cPasswd template set member) PURPOSE */ #include "mysqlrad.h" //Table Variables //uDUL: Primary Key static unsigned uDUL=0; //cLabel: Short label static char cLabel[33]={""}; //uProviderID: POP Provider ID if known static unsigned uProviderID=0; //cRangeList: List of class c, class c, supernet CIDR blocks static char *cRangeList={""}; //uServer: Server account is on static unsigned uServer=0; static char cuServerPullDown[256]={""}; //uStatus: Status of DUL static unsigned uStatus=0; static char cuStatusPullDown[256]={""}; //uOwner: Record owner static unsigned uOwner=0; //uCreatedBy: uClient for last insert static unsigned uCreatedBy=0; #define ISM3FIELDS //uCreatedDate: Unix seconds date last insert static long unsigned uCreatedDate=0; //uModBy: uClient for last update static unsigned uModBy=0; //uModDate: Unix seconds date last update static long unsigned uModDate=0; #define VAR_LIST_tDUL "tDUL.uDUL,tDUL.cLabel,tDUL.uProviderID,tDUL.cRangeList,tDUL.uServer,tDUL.uStatus,tDUL.uOwner,tDUL.uCreatedBy,tDUL.uCreatedDate,tDUL.uModBy,tDUL.uModDate" //Local only void Insert_tDUL(void); void Update_tDUL(char *rowid); int InsertUpdate_tDUL(char *cKey); void ProcesstDULListVars(pentry entries[], int x); //In tDULfunc.h file included below void ExtProcesstDULVars(pentry entries[], int x); void ExttDULCommands(pentry entries[], int x); void ExttDULButtons(void); void ExttDULNavBar(void); void ExttDULGetHook(entry gentries[], int x); void ExttDULSelect(void); void ExttDULSelectRow(void); void ExttDULListSelect(void); void ExttDULListFilter(void); void ExttDULAuxTable(void); #include "tdulfunc.h" //Table Variables Assignment Function void ProcesstDULVars(pentry entries[], int x) { register int i; for(i=0;i\n"); printf("\n"); printf(""); printf("
"); ExttDULNavBar(); printf(""); printf("",rowid); if(i) { printf(" "); if(mode==6) //printf(" Found"); printf(LANG_NBR_FOUND); else if(mode==5) //printf(" Modified"); printf(LANG_NBR_MODIFIED); else if(mode==4) //printf(" New"); printf(LANG_NBR_NEW); printf(LANG_NBRF_SHOWING,rowid,i); } else { if(!result[0]) //printf(" No records found"); printf(LANG_NBR_NORECS); } if(result[0]) printf(" %s",result); printf("
"); ExttDULButtons(); printf(""); printf("\n"); if(mode==2000 || mode==2002) tDULInputContent(); else tDULContent(); printf("
\n"); printf("
\n"); //Bottom table ExttDULAuxTable(); printf("\n"); Footer_ism3(); }//end of tDUL(); void tDULContent(void) { OpenRow(LANG_FL_tDUL_uDUL,"white"); printf("%u\n",uDUL,uDUL); printf("  "); OpenRow(LANG_FL_tDUL_cLabel,EmptyString(cLabel)); printf("%s",cLabel,EncodeDoubleQuotes(cLabel)); printf("  "); OpenRow(LANG_FL_tDUL_uProviderID,"white"); printf("%u\n",uProviderID,uProviderID); printf("  "); OpenRow(LANG_FL_tDUL_cRangeList,EmptyString(cRangeList)); printf("
%s
\n\n", TransformAngleBrackets(cRangeList)); printf("", EncodeDoubleQuotes(cRangeList)); printf("  "); OpenRow(LANG_FL_tDUL_uServer,IsZero(uServer)); tTablePullDownReadOnly("tServer;cuServerPullDown","cLabel","cLabel",uServer); printf("  "); OpenRow(LANG_FL_tDUL_uStatus,IsZero(uStatus)); tTablePullDownReadOnly("tStatus;cuStatusPullDown","cLabel","cLabel",uStatus); printf("  "); OpenRow(LANG_FL_tDUL_uOwner,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uOwner),uOwner); printf("  "); OpenRow(LANG_FL_tDUL_uCreatedBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); printf("  "); OpenRow(LANG_FL_tDUL_uCreatedDate,"white"); if(uCreatedDate) printf("%s\n\n",ctime((time_t *)&uCreatedDate)); else printf("---\n\n"); printf("\n",uCreatedDate); printf("  "); OpenRow(LANG_FL_tDUL_uModBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uModBy),uModBy); printf("  "); OpenRow(LANG_FL_tDUL_uModDate,"white"); if(uModDate) printf("%s\n\n",ctime((time_t *)&uModDate)); else printf("---\n\n"); printf("\n",uModDate); printf("  "); printf("\n"); }//tDULContent() void tDULInputContent(void) { OpenRow(LANG_FL_tDUL_uDUL,"white"); if(uPermLevel>=20) printf("\n",LANG_FT_tDUL_uDUL,uDUL); else printf("%u\n",uDUL,uDUL); OpenRow(LANG_FL_tDUL_cLabel,EmptyString(cLabel)); if(uPermLevel>=8) printf("\n",LANG_FT_tDUL_cLabel,EncodeDoubleQuotes(cLabel)); else printf("%s",cLabel,EncodeDoubleQuotes(cLabel)); OpenRow(LANG_FL_tDUL_uProviderID,"white"); if(uPermLevel>=8) printf("\n",LANG_FT_tDUL_uProviderID,uProviderID); else printf("%u\n",uProviderID,uProviderID); OpenRow(LANG_FL_tDUL_cRangeList,EmptyString(cRangeList)); if(uPermLevel>=8) printf("\n\n",LANG_FT_tDUL_cRangeList,cRangeList); else { printf("
%s
\n\n", TransformAngleBrackets(cRangeList)); printf("", EncodeDoubleQuotes(cRangeList)); } OpenRow(LANG_FL_tDUL_uServer,IsZero(uServer)); if(uPermLevel>=8) tTablePullDown("tServer;cuServerPullDown","cLabel","cLabel",uServer); else { tTablePullDownReadOnly("tServer;cuServerPullDown","cLabel","cLabel",uServer); } OpenRow(LANG_FL_tDUL_uStatus,IsZero(uStatus)); if(uPermLevel>=8) tTablePullDown("tStatus;cuStatusPullDown","cLabel","cLabel",uStatus); else { tTablePullDownReadOnly("tStatus;cuStatusPullDown","cLabel","cLabel",uStatus); } OpenRow(LANG_FL_tDUL_uOwner,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uOwner),uOwner); OpenRow(LANG_FL_tDUL_uCreatedBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uCreatedBy),uCreatedBy); OpenRow(LANG_FL_tDUL_uCreatedDate,"white"); if(uCreatedDate) printf("%s\n\n",ctime((time_t *)&uCreatedDate)); else printf("---\n\n"); printf("\n",uCreatedDate); OpenRow(LANG_FL_tDUL_uModBy,"white"); printf("%s\n",ForeignKey("tClient","cLabel",uModBy),uModBy); OpenRow(LANG_FL_tDUL_uModDate,"white"); if(uModDate) printf("%s\n\n",ctime((time_t *)&uModDate)); else printf("---\n\n"); printf("\n",uModDate); printf("\n"); }//void tDULInputContent(void) void NewtDUL(unsigned uMode) { register int i=0; MYSQL_RES *res; //New select sprintf(query,"SELECT uDUL FROM tDUL\ WHERE uDUL=%u" ,uDUL); mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); if(i) //tDUL("Record already exists"); tDUL(LANG_NBR_RECEXISTS); //insert query Insert_tDUL(); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //sprintf(query,"New record %u added"); uDUL=mysql_insert_id(&mysql); if(!uMode) { sprintf(query,LANG_NBR_NEWRECADDED,uDUL); tDUL(query); } }//NewtDUL(unsigned uMode) void DeletetDUL(void) { #ifdef ISM3FIELDS sprintf(query,"DELETE FROM tDUL WHERE uDUL=%u AND ( uOwner=%u OR %u>9 )" ,uDUL,uLoginClient,uPermLevel); #else sprintf(query,"DELETE FROM tDUL WHERE uDUL=%u" ,uDUL); #endif mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //tDUL("Record Deleted"); if(mysql_affected_rows(&mysql)>0) tDUL(LANG_NBR_RECDELETED); else tDUL(LANG_NBR_RECNOTDELETED); }//void DeletetDUL(void) void Insert_tDUL(void) { #ifdef ISM3FIELDS time_t clock; time(&clock); #endif //insert query //insert query sprintf(query,"INSERT INTO tDUL SET uDUL=%u, cLabel='%s', uProviderID=%u, cRangeList='%s', uServer=%u, uStatus=%u, uOwner=%u, uCreatedBy=%u, uCreatedDate=%lu, uModBy=%u, uModDate=0", uDUL ,TextAreaSave(cLabel) ,uProviderID ,TextAreaSave(cRangeList) ,uServer ,uStatus ,uOwner ,uCreatedBy ,(long unsigned)clock ,uModBy ); mysql_query(&mysql,query); #ifdef ISM3FIELDS uCreatedDate=clock; #endif }//void Insert_tDUL(void) void Update_tDUL(char *rowid) { #ifdef ISM3FIELDS time_t clock; time(&clock); #endif //update query //update query sprintf(query,"UPDATE tDUL SET uDUL=%u,cLabel='%s',uProviderID=%u,cRangeList='%s',uServer=%u,uStatus=%u,uModBy=%u,uModDate=%lu WHERE _rowid=%s", uDUL ,TextAreaSave(cLabel) ,uProviderID ,TextAreaSave(cRangeList) ,uServer ,uStatus ,uModBy ,(long unsigned)clock ,rowid); mysql_query(&mysql,query); #ifdef ISM3FIELDS uModDate=clock; #endif }//void Update_tDUL(void) void ModtDUL(void) { register int i=0; MYSQL_RES *res; MYSQL_ROW field; #ifdef ISM3FIELDS unsigned uPreModDate=0; //Mod select query if(uPermLevel<10) sprintf(query,"SELECT tDUL.uDUL,\ tDUL.uModDate\ FROM tDUL,tClient\ WHERE tDUL.uDUL=%u\ AND tDUL.uOwner=tClient.uClient\ AND (tClient.uOwner=%u OR tClient.uClient=%u)" ,uDUL,uLoginClient,uLoginClient); else sprintf(query,"SELECT uDUL,uModDate FROM tDUL\ WHERE uDUL=%u" ,uDUL); #else sprintf(query,"SELECT uDUL FROM tDUL\ WHERE uDUL=%u" ,uDUL); #endif mysql_query(&mysql,query); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); //if(i<1) tDUL("Record does not exist"); if(i<1) tDUL(LANG_NBR_RECNOTEXIST); //if(i>1) tDUL("Multiple rows!"); if(i>1) tDUL(LANG_NBR_MULTRECS); field=mysql_fetch_row(res); #ifdef ISM3FIELDS sscanf(field[1],"%u",&uPreModDate); if(uPreModDate!=uModDate) tDUL(LANG_NBR_EXTMOD); #endif Update_tDUL(field[0]); if(mysql_errno(&mysql)) mysqlSendmail(mysql_error(&mysql)); //sprintf(query,"record %s modified",field[0]); sprintf(query,LANG_NBRF_REC_MODIFIED,field[0]); tDUL(query); }//ModtDUL(void) void tDULList(void) { MYSQL_RES *res; MYSQL_ROW field; ExttDULListSelect(); mysql_query(&mysql,query); if(mysql_error(&mysql)[0]) mysqlSendmail(mysql_error(&mysql)); res=mysql_store_result(&mysql); i=mysql_num_rows(res); PageMachine("tDULList",1,"");//1 is auto header list mode. Opens table! //Filter select drop down ExttDULListFilter(); printf("",command); printf("\n"); printf("\n"); printf(""); mysql_data_seek(res,start-1); for(n=0;n<(end-start+1);n++) { field=mysql_fetch_row(res); if(!field) { printf("
uDULcLabeluProviderIDcRangeListuServeruStatusuOwneruCreatedByuCreatedDateuModByuModDate
End of data
"); Footer_ism3(); } if(n % 2) printf(""); else printf(""); printf(" %s%s%s
%s%s%s%s%s%s%s%s"
			,field[0]
			,field[0]
			,field[1]
			,field[2]
			,field[3]
			,field[4]
			,field[5]
			,field[6]
			,field[7]
			,field[8]
			,field[9]
			,field[10]
				);

	}

	printf("\n");
	Footer_ism3();

}//tDULList()


void CreatetDUL(void)
{
	sprintf(query,"CREATE TABLE tDUL ( uDUL int unsigned PRIMARY KEY AUTO_INCREMENT, cLabel varchar(32) NOT NULL DEFAULT '', uOwner int unsigned NOT NULL DEFAULT 0,index (uOwner), uCreatedBy int unsigned NOT NULL DEFAULT 0, uCreatedDate int unsigned NOT NULL DEFAULT 0, uModBy int unsigned NOT NULL DEFAULT 0, uModDate int unsigned NOT NULL DEFAULT 0, uServer int unsigned NOT NULL DEFAULT 0,index (uServer), cRangeList text NOT NULL DEFAULT '', uProviderID int unsigned NOT NULL DEFAULT 0, uStatus int unsigned NOT NULL DEFAULT 0 )");
	mysql_query(&mysql,qstr);
	if(mysql_errno(&mysql))
		mysqlSendmail(mysql_error(&mysql));
}//CreatetDUL()

//sedall patch1