예제 #1
0
SVAPI_API
bool SubmitTask(OBJECT taskobj,string user,string addr)
{
	if(taskobj==INVALID_VALUE)
		return false;
	if(user.empty()||addr.empty())
		return false;
	try{
		Section *pmtp=reinterpret_cast<Section *>(taskobj);
		S_UINT len=pmtp->GetRawDataSize();
		svutil::buffer buf;
		if(!buf.checksize(len))
			return false;
		if(pmtp->GetRawData(buf,len)==NULL)
			return false;

		SVDBQUERY querybuf={0};
		querybuf.len = sizeof(SVDBQUERY);
		querybuf.querytype=QUERY_UPDATE;
		querybuf.datatype=S_TASK;
		strcpy(querybuf.qstr,pmtp->GetSection().getword());
		querybuf.datalen=len;
		strcpy(querybuf.idcuser,user.c_str());

		QueryData qd;
		SVDBRESULT ret={0};
		return qd.Update(&querybuf,buf,len,&ret,addr);
	}catch(...)
	{
		return false;
	}
	return false;
}
예제 #2
0
SVAPI_API
bool SubmitSVSE(OBJECT svseobj,string user,string addr)
{
	if(svseobj==INVALID_VALUE)
		return false;
	if(user.empty()||addr.empty())
		return false;
	try{
		SVSE *pmtp=reinterpret_cast<SVSE *>(svseobj);
		S_UINT len=pmtp->GetRawDataSize();
		svutil::buffer buf;
		if(!buf.checksize(len))
			return false;
		if(pmtp->GetRawData(buf,len)==NULL)
			return false;

		SVDBQUERY querybuf={0};
		querybuf.len = sizeof(SVDBQUERY);
		querybuf.querytype=QUERY_UPDATE;
		querybuf.datatype=S_SVSE;
		sprintf(querybuf.qstr,"%d",pmtp->GetID());
		querybuf.datalen=len;
		strcpy(querybuf.idcuser,user.c_str());

		QueryData qd;
		SVDBRESULT ret={0};
		return qd.Update(&querybuf,buf,len,&ret,addr);
	}catch(...)
	{
		return false;
	}


	return true;
}
예제 #3
0
SVAPI_API
bool EditTask(OBJECT taskobj,string taskname,string user,string addr)
{
	if(taskobj==INVALID_VALUE)
		return false;
	if(user.empty()||addr.empty())
		return false;

	if(taskname.empty())
		return SubmitTask(taskobj,user,addr);

	try{
		Section *pmtp=reinterpret_cast<Section *>(taskobj);
		if(taskname.compare(pmtp->GetSection().getword())==0)
			return SubmitTask(taskobj,user,addr);
		if(pmtp->Find("$newtaskname3721$"))
			return false;
		if(!pmtp->Push("$newsection3721$",taskname))
			return false;
		S_UINT len=pmtp->GetRawDataSize();
		svutil::buffer buf;
		if(!buf.checksize(len))
		{
			pmtp->Delete("$newsection3721$");
			return false;
		}
		if(pmtp->GetRawData(buf,len)==NULL)
		{
			pmtp->Delete("$newsection3721$");
			return false;
		}

		pmtp->Delete("$newsection3721$");

		SVDBQUERY querybuf={0};
		querybuf.len = sizeof(SVDBQUERY);
		querybuf.querytype=QUERY_EDIT;
		querybuf.datatype=S_TASK;
		strcpy(querybuf.qstr,pmtp->GetSection().getword());
		querybuf.datalen=len;
		strcpy(querybuf.idcuser,user.c_str());

		QueryData qd;
		SVDBRESULT ret={0};
		return qd.Update(&querybuf,buf,len,&ret,addr);
	}catch(...)
	{
		return false;
	}
	return false;

}
예제 #4
0
SVAPI_API
bool CopyIniFile(string filecopy,string addr,string user)
{
	if(filecopy.empty()||addr.empty()||user.empty())
		return false;
	if( filecopy.size()>MAXQUEREYSTRINGLEN )
		return false;
	if(user.compare("default")==0)
		return false;

	try{
		S_UINT dlen=0;

		SVDBQUERY querybuf={0};
		querybuf.len = sizeof(SVDBQUERY);
		querybuf.querytype=QUERY_COPY_INI;
		querybuf.datatype=S_GROUP;
		strcpy(querybuf.qstr,filecopy.c_str());
		strcpy(querybuf.idcuser,user.c_str());

		INIQUERY iquery={0};
		iquery.len=sizeof(INIQUERY);
		dlen+=sizeof(INIQUERY);

		querybuf.datalen=dlen;

		buffer buf;
		if(!buf.checksize(dlen))
			return false;
		char *pt=buf.getbuffer();
		memcpy(pt,&iquery,sizeof(INIQUERY));

		QueryData qd;
		SVDBRESULT ret={0};
		return qd.Update(&querybuf,buf,dlen,&ret,addr);
	}catch(...)
	{
		return false;
	}

}
예제 #5
0
SVAPI_API
string AddNewGroup(OBJECT groupobj,string pid,string user,string addr)
{
	if(groupobj==INVALID_VALUE)
		return "";
	if(user.empty()||addr.empty()||pid.empty())
		return "";

	try{
		Group *pmtp=reinterpret_cast<Group *>(groupobj);
		S_UINT len=pmtp->GetRawDataSize();
		svutil::buffer buf;
		if(!buf.checksize(len))
			return "";
		if(pmtp->GetRawData(buf,len)==NULL)
			return "";

		SVDBQUERY querybuf={0};
		querybuf.len = sizeof(SVDBQUERY);
		querybuf.querytype=QUERY_ADDNEW;
		querybuf.datatype=S_GROUP;
		strcpy(querybuf.qstr,pid.c_str());
		querybuf.datalen=len;
		strcpy(querybuf.idcuser,user.c_str());

		QueryData qd;
		SVDBRESULT ret={0};
		if(!qd.Update(&querybuf,buf,len,&ret,addr))
			return "";
		return ret.info;
	}catch(...)
	{
		return "";
	}


	return "";

}
예제 #6
0
SVAPI_API
bool SubmitEntityGroup(OBJECT egobj,string user,string addr)
{
	if(egobj==INVALID_VALUE)
		return false;
	if(user.empty()||addr.empty())
		return false;
	if(user.size()>MAXUSERLEN)
		return false;

	try{
		EntityGroup *pmtp=reinterpret_cast<EntityGroup *>(egobj);
		S_UINT len=pmtp->GetRawDataSize();
		svutil::buffer buf;
		if(!buf.checksize(len))
			return false;
		if(pmtp->GetRawData(buf,len)==NULL)
			return false;

		SVDBQUERY querybuf={0};
		querybuf.len = sizeof(SVDBQUERY);
		querybuf.querytype=QUERY_UPDATE;
		querybuf.datatype=S_ENTITYGROUP;
		strcpy(querybuf.qstr,pmtp->GetID().getword());
		querybuf.datalen=len;
		strcpy(querybuf.idcuser,user.c_str());

		QueryData qd;
		SVDBRESULT ret={0};
		return qd.Update(&querybuf,buf,len,&ret,addr);
	}catch(...)
	{
		return false;
	}


	return true;
}