648 lines
21 KiB
Plaintext
648 lines
21 KiB
Plaintext
#include "ui.h"
|
|
|
|
void sgm_class_list(sscErrorHandle hError, mySession *session,ssdb_Connection_Handle connection,
|
|
ssdb_Error_Handle error_handle,CMDPAIR *cmdp)
|
|
{
|
|
ssdb_Request_Handle req_handle;
|
|
int number_of_records,rec_sequence,common_int;
|
|
const char **vector;
|
|
int key;
|
|
char sys_id[32];
|
|
if(!get_variable(hError,cmdp,CHARTYPE,"sys_id",sys_id,&common_int,802))
|
|
return;
|
|
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
|
|
"select distinct class_id,class_desc from event_class where sys_id = '%s' order by class_desc",sys_id)))
|
|
{
|
|
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
|
|
return;
|
|
}
|
|
|
|
if ((number_of_records = getnumrecords(hError,error_handle,req_handle)) == 0)
|
|
{
|
|
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
|
|
"select hostname from system where sys_id = '%s'",sys_id)))
|
|
{
|
|
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
|
|
return;
|
|
}
|
|
vector = ssdbGetRow(error_handle,req_handle);
|
|
if(vector)
|
|
{
|
|
@format "There are no events in the database for system <b>%s</b>." vector[0]
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
}
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
return ;
|
|
}
|
|
else
|
|
{
|
|
@ <select name=ev_class size=5>
|
|
for (rec_sequence = 0; rec_sequence < number_of_records; rec_sequence++)
|
|
{
|
|
vector = ssdbGetRow(error_handle,req_handle);
|
|
if(vector)
|
|
@format "<option value = %d > %s" atoi(vector[0]) vector[1]
|
|
}
|
|
@ </select>
|
|
@ <p><input type="submit" value=" Accept ">
|
|
}
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
}
|
|
|
|
void sgm_action_list(sscErrorHandle hError, mySession *session,ssdb_Connection_Handle connection,
|
|
ssdb_Error_Handle error_handle,CMDPAIR *cmdp)
|
|
{
|
|
ssdb_Request_Handle req_handle;
|
|
int number_of_records,rec_sequence;
|
|
const char **vector;
|
|
int action_id,key,multiselect;
|
|
char common_string[2];
|
|
if(!get_variable(hError,cmdp,INTTYPE,"multiselect",common_string,&multiselect,800))
|
|
return;
|
|
|
|
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
|
|
"select action_id,action_desc from event_action where private = 0 order by action_desc")))
|
|
{
|
|
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
|
|
return;
|
|
}
|
|
|
|
if ((number_of_records = getnumrecords(hError,error_handle,req_handle)) == 0)
|
|
{
|
|
@ <b>There are no actions in the database.</b>
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
return ;
|
|
}
|
|
else
|
|
{
|
|
if (multiselect)
|
|
@ <select name=actionid multiple size=5>
|
|
else
|
|
@ <select name=actionid size=5>
|
|
for (rec_sequence = 0; rec_sequence < number_of_records; rec_sequence++)
|
|
{
|
|
vector = ssdbGetRow(error_handle,req_handle);
|
|
if(vector)
|
|
@format "<option value = %d > %s" atoi(vector[0]) vector[1]
|
|
}
|
|
@ </select>
|
|
}
|
|
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
}
|
|
|
|
void sgm_type_list(sscErrorHandle hError, mySession *session,ssdb_Connection_Handle connection,
|
|
ssdb_Error_Handle error_handle,CMDPAIR *cmdp)
|
|
{
|
|
ssdb_Request_Handle req_handle;
|
|
int number_of_records,rec_sequence;
|
|
const char **vector;
|
|
int action_id,key,multiselect,selectvar,classidtype,common_int;
|
|
char class_desc[80],sys_id[32],common_string[2];
|
|
classidtype = 0;
|
|
|
|
if(!get_variable(hError,cmdp,INTTYPE,"multiselect",common_string,&multiselect,801))
|
|
return;
|
|
if(!get_variable(hError,cmdp,CHARTYPE,"sys_id",sys_id,&common_int,802))
|
|
return;
|
|
|
|
if ((key = sscFindPairByKey(cmdp,0,"ev_class")) < 0)
|
|
{
|
|
if ((key = sscFindPairByKey(cmdp,0,"actionid")) < 0)
|
|
{
|
|
sscError(hError,"Invalid Request Parameter1\n");
|
|
return;
|
|
}
|
|
if (sscanf(cmdp[key].value,"%d",&selectvar) != 1)
|
|
{
|
|
sscError(hError,"Invalid Request Parameter2\n");
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (sscanf(cmdp[key].value,"%d",&selectvar) != 1)
|
|
{
|
|
sscError(hError,"Invalid Request Parameter\n");
|
|
return;
|
|
}
|
|
classidtype = 1;
|
|
}
|
|
|
|
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
|
|
"select class_desc from event_class where class_id = %d and sys_id='%s'",selectvar,sys_id)))
|
|
{
|
|
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
|
|
return;
|
|
}
|
|
|
|
if ((number_of_records = getnumrecords(hError,error_handle,req_handle)) == 0)
|
|
{
|
|
@ <b>The event class description could not be read</b>
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
return ;
|
|
}
|
|
vector = ssdbGetRow(error_handle,req_handle);
|
|
if(vector)
|
|
strcpy(class_desc,vector[0]);
|
|
else
|
|
strcpy(class_desc,"Unknown");
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
if (classidtype)
|
|
{
|
|
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
|
|
"select type_id,type_desc from event_type where class_id = %d and sys_id='%s' order by type_desc",selectvar,sys_id)))
|
|
{
|
|
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if(!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
|
|
"select DISTINCT event_class.class_id, event_class.class_desc,"
|
|
"event_type.type_id, event_type.type_desc "
|
|
"from event_class,event_type,event_actionref "
|
|
"where event_actionref.action_id = %d "
|
|
"and event_type.type_id = event_actionref.type_id "
|
|
"and event_class.class_id = event_type.class_id "
|
|
"and event_class.sys_id = '%s' "
|
|
"order by event_class.class_id, event_type.type_id",selectvar,sys_id)))
|
|
{
|
|
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
|
|
return;
|
|
}
|
|
|
|
}
|
|
|
|
if ((number_of_records = getnumrecords(hError,error_handle,req_handle)) == 0)
|
|
{
|
|
@ <b>There are no events in the database.</b>
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
return ;
|
|
}
|
|
else
|
|
{
|
|
@format "Choose an event from class <b>%s</b>:<p>" class_desc
|
|
if (classidtype)
|
|
{
|
|
if (multiselect)
|
|
@ <select name=event_type multiple size=10>
|
|
else
|
|
@ <select name=event_type size=10>
|
|
for (rec_sequence = 0; rec_sequence < number_of_records; rec_sequence++)
|
|
{
|
|
vector = ssdbGetRow(error_handle,req_handle);
|
|
if(vector)
|
|
@format "<option value = %d > %s" atoi(vector[0]) vector[1]
|
|
}
|
|
@ </select>
|
|
}
|
|
else
|
|
{
|
|
if (multiselect)
|
|
@ <select name=event_type multiple size=10>
|
|
else
|
|
@ <select name=event_type size=10>
|
|
for (rec_sequence = 0; rec_sequence < number_of_records; rec_sequence++)
|
|
{
|
|
vector = ssdbGetRow(error_handle,req_handle);
|
|
if(vector)
|
|
@format "<option value = %d > %s %s" atoi(vector[2]) vector[1] vector[3]
|
|
}
|
|
@ </select>
|
|
}
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
@ <p> <input type = "submit" value = " Accept ">
|
|
}
|
|
}
|
|
|
|
|
|
int read_java_scritps(const char *screen_name,const char *screen_end)
|
|
{
|
|
FILE *fp;
|
|
char buffer[256];
|
|
fp = fopen("/var/esp/ssc/javascripts","r");
|
|
if ( fp == NULL )
|
|
return 0;
|
|
|
|
memset(buffer,0,256);
|
|
while (strcasecmp(buffer,screen_name) && !feof(fp))
|
|
{
|
|
fgets(buffer,256,fp);
|
|
buffer[strlen(buffer)-1] = '\0';
|
|
}
|
|
if (feof(fp))
|
|
return 0;
|
|
fgets(buffer,256,fp);
|
|
buffer[strlen(buffer)-1] = '\0';
|
|
while (strcasecmp(buffer,screen_end))
|
|
{
|
|
@format "%s\n" buffer
|
|
fgets(buffer,256,fp);
|
|
buffer[strlen(buffer)-1] = '\0';
|
|
}
|
|
fclose(fp);
|
|
return 1;
|
|
}
|
|
|
|
int getnumrecords (sscErrorHandle hError,ssdb_Error_Handle error_handle,ssdb_Request_Handle req_handle)
|
|
{
|
|
int number_of_records;
|
|
|
|
number_of_records = ssdbGetNumRecords(error_handle,req_handle);
|
|
|
|
if(ssdbGetLastErrorCode(error_handle) != SSDBERR_SUCCESS)
|
|
{
|
|
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
|
|
return 0;
|
|
}
|
|
return number_of_records;
|
|
}
|
|
|
|
void create_help(sscErrorHandle hError,char *helpfile)
|
|
{
|
|
int fd;
|
|
char buffer[1024];
|
|
memset(buffer,0,1024);
|
|
unlink("/var/esp/ssc/help.html");
|
|
if ((fd = open("/var/esp/ssc/help.html",O_CREAT | O_RDWR,0777)) < 0)
|
|
return;
|
|
sprintf(buffer,"<html> <head> <title>SGI Embedded Support Partner - Help</title></head>\n"
|
|
"<frameset cols=\"170,*\" border=0>\n"
|
|
"<frame src=\"/help_navigator.html\" name=\"help_index\" scrolling=\"auto\"\n"
|
|
"marginheight=8 marginwidth=8 border=0 frameborder=0 framespacing=0>\n"
|
|
"<frame src=\"/help_contents.html#%s\" name=\"help_main\"\n"
|
|
"scrolling=\"auto\" marginheight=8 marginwidth=8 border=0 frameborder=0 framespacing=0>\n"
|
|
"<noframes>\n"
|
|
"<body bgcolor=\"#FFFFFF\">Your browser does not support frames. "
|
|
"Please install a browser that supports frames.\n"
|
|
"</body>\n"
|
|
"</noframes>\n"
|
|
"</frameset> </html>\n",helpfile);
|
|
write(fd,buffer,strlen(buffer));
|
|
close(fd);
|
|
}
|
|
|
|
int get_variable(sscErrorHandle hError,CMDPAIR *cmdp,int type, char *varname,char *string,int *intval,int errornum)
|
|
{
|
|
int key;
|
|
|
|
|
|
if ((key = sscFindPairByKey(cmdp,0,varname)) < 0)
|
|
{
|
|
@ <HTML> <HEAD> <TITLE>SGI Embedded Support Partner - ver.1.0</TITLE> </HEAD>
|
|
@ <body bgcolor="#ffffcc">
|
|
@table border=0 cellpadding=0 cellspacing=0 width=100%
|
|
@row
|
|
@cell bgcolor="#cccc99" width=15
|
|
@
|
|
@endcell
|
|
@cell bgcolor="#cccc99"
|
|
@ <B>SERVER ERROR</B>
|
|
@endcell
|
|
@endrow
|
|
@row
|
|
@cell colspan=2
|
|
@ <p>
|
|
@endcell
|
|
@endrow
|
|
@row
|
|
@cell
|
|
@
|
|
@endcell
|
|
|
|
@cell
|
|
@format "System group manager plugin server error. Error #: %d" errornum
|
|
@endcell
|
|
@endrow
|
|
@endtable
|
|
@ </body></html>
|
|
return 0;
|
|
}
|
|
if(type)
|
|
{
|
|
if (sscanf(cmdp[key].value,"%d",intval) != 1)
|
|
{
|
|
@ <HTML> <HEAD> <TITLE>SGI Embedded Support Partner - ver.1.0</TITLE> </HEAD>
|
|
@ <body bgcolor="#ffffcc">
|
|
@table border=0 cellpadding=0 cellspacing=0 width=100%
|
|
@row
|
|
@cell bgcolor="#cccc99" width=15
|
|
@
|
|
@endcell
|
|
@cell bgcolor="#cccc99"
|
|
@ <B>SERVER ERROR</B>
|
|
@endcell
|
|
@endrow
|
|
@row
|
|
@cell colspan=2
|
|
@ <p>
|
|
@endcell
|
|
@endrow
|
|
@row
|
|
@cell
|
|
@
|
|
@endcell
|
|
|
|
@cell
|
|
@format "System group manager plugin server error. Error #: %d" errornum
|
|
@endcell
|
|
@endrow
|
|
@endtable
|
|
@ </body></html>
|
|
return 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (cmdp[key].value && cmdp[key].value[0])
|
|
strcpy(string,cmdp[key].value);
|
|
else
|
|
{
|
|
@ <HTML> <HEAD> <TITLE>SGI Embedded Support Partner - ver.1.0</TITLE> </HEAD>
|
|
@ <body bgcolor="#ffffcc">
|
|
@table border=0 cellpadding=0 cellspacing=0 width=100%
|
|
@row
|
|
@cell bgcolor="#cccc99" width=15
|
|
@
|
|
@endcell
|
|
@cell bgcolor="#cccc99"
|
|
@ <B>SERVER ERROR</B>
|
|
@endcell
|
|
@endrow
|
|
@row
|
|
@cell colspan=2
|
|
@ <p>
|
|
@endcell
|
|
@endrow
|
|
@row
|
|
@cell
|
|
@
|
|
@endcell
|
|
|
|
@cell
|
|
@format "System group manager plugin server error. Error #: %d" errornum
|
|
@endcell
|
|
@endrow
|
|
@endtable
|
|
@ </body></html>
|
|
return 0;
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
int get_variable_variable(sscErrorHandle hError,CMDPAIR *cmdp,int type, char *varname,char *string,int *intval,int errornum)
|
|
{
|
|
int key;
|
|
|
|
|
|
if ((key = sscFindPairByKey(cmdp,0,varname)) < 0)
|
|
{
|
|
@ <HTML> <HEAD> <TITLE>SGI Embedded Support Partner - ver.1.0</TITLE> </HEAD>
|
|
@ <body bgcolor="#ffffcc">
|
|
@table border=0 cellpadding=0 cellspacing=0 width=100%
|
|
@row
|
|
@cell bgcolor="#cccc99" width=15
|
|
@
|
|
@endcell
|
|
@cell bgcolor="#cccc99"
|
|
@ <B>SERVER ERROR</B>
|
|
@endcell
|
|
@endrow
|
|
@row
|
|
@cell colspan=2
|
|
@ <p>
|
|
@endcell
|
|
@endrow
|
|
@row
|
|
@cell
|
|
@
|
|
@endcell
|
|
|
|
@cell
|
|
@format "System group manager plugin server error. Error #: %d" errornum
|
|
@endcell
|
|
@endrow
|
|
@endtable
|
|
@ </body></html>
|
|
return 0;
|
|
}
|
|
if(type)
|
|
{
|
|
if (sscanf(cmdp[key].value,"%d",intval) != 1)
|
|
{
|
|
return -1;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (cmdp[key].value && cmdp[key].value[0])
|
|
strcpy(string,cmdp[key].value);
|
|
else
|
|
strcpy(string,"");
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
void create_custom_list(sscErrorHandle hError, mySession *session,ssdb_Connection_Handle connection,
|
|
ssdb_Error_Handle error_handle,CMDPAIR *cmdp)
|
|
{
|
|
ssdb_Request_Handle req_handle;
|
|
int number_of_records,rec_sequence;
|
|
const char **vector;
|
|
int action_id,key,multiselect,selectvar,classidtype,ev_class,common_int;
|
|
char class_desc[80],sys_id[32],common_string[2];
|
|
|
|
if(!get_variable(hError,cmdp,INTTYPE,"ev_class",common_string,&ev_class,803))
|
|
return;
|
|
if(!get_variable(hError,cmdp,CHARTYPE,"sys_id",sys_id,&common_int,804))
|
|
return;
|
|
|
|
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
|
|
"select class_desc from event_class where class_id = %d and sys_id = '%s'",ev_class,sys_id)))
|
|
{
|
|
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
|
|
return;
|
|
}
|
|
|
|
if ((number_of_records = getnumrecords(hError,error_handle,req_handle)) == 0)
|
|
{
|
|
@ <b>The event class description could not be read</b>
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
return ;
|
|
}
|
|
|
|
vector = ssdbGetRow(error_handle,req_handle);
|
|
|
|
if(vector)
|
|
strcpy(class_desc,vector[0]);
|
|
else
|
|
strcpy(class_desc,"Unknown");
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
|
|
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
|
|
"select type_id,type_desc from event_type where class_id = %d and type_id >= 8400000 and sys_id = '%s' order by type_desc",ev_class,sys_id)))
|
|
{
|
|
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
|
|
return;
|
|
}
|
|
|
|
if ((number_of_records = getnumrecords(hError,error_handle,req_handle)) == 0)
|
|
{
|
|
@format "There are no custom events in the <b>%s</b> class that can be deleted." class_desc
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
return ;
|
|
}
|
|
else
|
|
{
|
|
@format "Choose event(s) from class <b>%s</b>:<p>" class_desc
|
|
@ <select name=event_type multiselect size=10>
|
|
for (rec_sequence = 0; rec_sequence < number_of_records; rec_sequence++)
|
|
{
|
|
vector = ssdbGetRow(error_handle,req_handle);
|
|
if(vector)
|
|
@format "<option value = %d>%s" atoi(vector[0]) vector[1]
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
}
|
|
@ </select>
|
|
@ <p><input type="SUBMIT" value=" Accept ">
|
|
}
|
|
}
|
|
|
|
void generate_list_of_systems(sscErrorHandle hError, mySession *session,ssdb_Connection_Handle connection,
|
|
ssdb_Error_Handle error_handle,CMDPAIR *cmdp)
|
|
{
|
|
|
|
ssdb_Request_Handle req_handle;
|
|
int number_of_records,rec_sequence,common_int,multiselect;
|
|
const char **vector;
|
|
char common_string[2];
|
|
|
|
if(!get_variable(hError,cmdp,INTTYPE,"multiselect",common_string,&multiselect,805))
|
|
return;
|
|
|
|
if (!(req_handle = ssdbSendRequest(error_handle,connection,SSDB_REQTYPE_SELECT,
|
|
"select sys_id,hostname,sys_serial,sys_type,ip_addr from system where active=1")))
|
|
{
|
|
sscError(hError,"Database API Error: \"%s\"\n\n",ssdbGetLastErrorString(error_handle));
|
|
return;
|
|
}
|
|
|
|
if ((number_of_records = getnumrecords(hError,error_handle,req_handle)) == 0)
|
|
{
|
|
@ <b>The system information could not be read</b>
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
return ;
|
|
}
|
|
|
|
vector = ssdbGetRow(error_handle,req_handle);
|
|
|
|
if(vector)
|
|
{
|
|
@table border=4 cellpadding=6 cellspacing=1
|
|
@row valign=top align=center
|
|
@cell colspan=2
|
|
@ <b>System Name</b>
|
|
@endcell
|
|
@cell
|
|
@ <b>IP Type</b>
|
|
@endcell
|
|
@cell
|
|
@ <b>System Serial Number</b>
|
|
@endcell
|
|
@cell
|
|
@ <b>IP Address</b>
|
|
@endcell
|
|
@endrow
|
|
if(multiselect)
|
|
{
|
|
@row valign=top
|
|
@cell
|
|
@ <INPUT TYPE="CHECKBOX" NAME="sys_id" onClick="process_allcheck();" value=0>
|
|
@endcell
|
|
@cell colspan=4
|
|
@ All systems on a site
|
|
@endcell
|
|
@endrow
|
|
}
|
|
for (rec_sequence = 0; rec_sequence < number_of_records; rec_sequence++)
|
|
{
|
|
if(vector)
|
|
{
|
|
@row valign=top
|
|
@cell
|
|
if(multiselect)
|
|
@format "<INPUT TYPE=\"CHECKBOX\" NAME=\"sys_id\" onClick=\"document.SystemAvail.sys_id[0].checked = 0;\" value=\"%s\">" vector[0]
|
|
if(!multiselect)
|
|
@format "<INPUT TYPE=\"RADIO\" NAME=\"sys_id\" value=\"%s\">" vector[0]
|
|
@endcell
|
|
@cell
|
|
@format "%s" vector[1]
|
|
@endcell
|
|
@cell
|
|
@format "IP%d" atoi(vector[3])
|
|
@endcell
|
|
@cell
|
|
@format "%s" vector[2]
|
|
@endcell
|
|
@cell
|
|
@format "%s" vector[4]
|
|
@endcell
|
|
@endrow
|
|
}
|
|
vector = ssdbGetRow(error_handle,req_handle);
|
|
}
|
|
@endtable
|
|
}
|
|
else
|
|
@ There are no systems in the database.
|
|
ssdbFreeRequest(error_handle,req_handle);
|
|
}
|
|
|
|
void makedate (time_t timeval, char *dateout, char *event_time)
|
|
{
|
|
struct tm *timeptr;
|
|
time_t timein = timeval;
|
|
timeptr = localtime(&timein);
|
|
strftime(dateout,20,"%m/%d/%Y",timeptr);
|
|
strftime(event_time,20,"%X",timeptr);
|
|
}
|
|
|
|
long maketime(const char *dateval1,int startend)
|
|
{
|
|
time_t timevalue;
|
|
struct tm timestruct;
|
|
struct tm *timeptr;
|
|
char dateval[40];
|
|
int i;
|
|
char *p;
|
|
strcpy (dateval,dateval1);
|
|
p = strtok(dateval,"/");
|
|
i = atoi(p);
|
|
i = i - 1;
|
|
timestruct.tm_mon = i;
|
|
p = strtok(NULL,"/");
|
|
timestruct.tm_mday = atoi(p);
|
|
p = strtok(NULL,"/");
|
|
i = atoi(p);
|
|
i = i - 1900;
|
|
timestruct.tm_year = i;
|
|
timestruct.tm_isdst = -1;
|
|
if (!startend)
|
|
{
|
|
timestruct.tm_sec = 00;
|
|
timestruct.tm_min = 00;
|
|
timestruct.tm_hour = 00;
|
|
}
|
|
else
|
|
{
|
|
timestruct.tm_sec = 60;
|
|
timestruct.tm_min = 59;
|
|
timestruct.tm_hour = 23;
|
|
}
|
|
timevalue = mktime(×truct);
|
|
return (timevalue);
|
|
}
|