Beispiel #1
0
static void download_file(json_object *obj) {
  json_object *child;
  char *oid, *filename, *desc;
  LargeByteString *lbs;

  filename = "";
  desc = "";

  if (!json_object_object_get_ex(obj, "object_id", &child)) {
    return;
  }
  oid = (char *)json_object_get_string(child);

  if (json_object_object_get_ex(obj, "filename", &child)) {
    filename = (char *)json_object_get_string(child);
  }
  if (json_object_object_get_ex(obj, "description", &child)) {
    desc = (char *)json_object_get_string(child);
  }

  if (oid == NULL || strlen(oid) <= 0) {
    return;
  }

  Info("misc filename:%s description:%s oid:%s", filename, desc, oid);

  setenv("GLPUSH_OID", oid, 1);
  lbs = REST_GetBLOB_via_ENV();
  ShowDownloadDialog(filename, desc, lbs);
  FreeLBS(lbs);
}
Beispiel #2
0
static	void
FreeSessionData(
	SessionData	*data)
{
ENTER_FUNC;
	if (data->type != SESSION_TYPE_API) {
		MessageLogPrintf("[%s@%s] session end",data->hdr->user,data->hdr->uuid);
	}
	if (data->linkdata != NULL) {
		FreeLBS(data->linkdata);
	}
	xfree(data->hdr);
	g_hash_table_foreach_remove(data->spadata,(GHRFunc)FreeSpa,NULL);
	g_hash_table_destroy(data->spadata);
	g_hash_table_foreach_remove(data->scrpool,(GHRFunc)FreeScr,NULL);
	g_hash_table_destroy(data->scrpool);
	xfree(data->scrdata);
	FreeLBS(data->apidata->rec);
	xfree(data->apidata);
	FreeValueStruct(data->sysdbval);
	xfree(data);
LEAVE_FUNC;
}
Beispiel #3
0
static	guint
FreeScr(
	char	*name,
	LargeByteString	*scr,
	void		*dummy)
{
	if (name != NULL) {
		xfree(name);
	}
	if (scr != NULL) {
		FreeLBS(scr);
	}
	return	TRUE;
}
Beispiel #4
0
static	guint
FreeSpa(
	char	*name,
	LargeByteString	*spa,
	void		*dummy)
{
	if (name != NULL) {
		xfree(name);
	}
	if (spa != NULL) {
		FreeLBS(spa);
	}
	return	TRUE;
}
Beispiel #5
0
PacketClass SYSDB_GetDataAll(NETFILE *fp, int *size, ValueStruct *vals) {
  PacketClass rc;
  LargeByteString *buf;
  rc = SESSION_CONTROL_NG;
  buf = NewLBS();
  SendPacketClass(fp, SYSDATA_SYSDB);
  ON_IO_ERROR(fp, badio);
  SendPacketClass(fp, SYSDB_GET_DATA_ALL);
  ON_IO_ERROR(fp, badio);
  rc = RecvPacketClass(fp);
  *size = RecvInt(fp);
  RecvLBS(fp, buf);
  NativeUnPackValue(NULL, LBS_Body(buf), vals);
badio:
  FreeLBS(buf);
  return rc;
}
Beispiel #6
0
static	ValueStruct	*
_DBDISCONNECT(
	DBG_Struct	*dbg,
	DBCOMM_CTRL	*ctrl)
{
ENTER_FUNC;
	if		(  dbg->process[PROCESS_UPDATE].dbstatus == DB_STATUS_CONNECT ) { 
		CloseDB_RedirectPort(dbg);
		FreeLBS((LargeByteString *)dbg->process[PROCESS_UPDATE].conn);
		dbg->process[PROCESS_UPDATE].dbstatus = DB_STATUS_DISCONNECT;
		if		(  ctrl  !=  NULL  ) {
			ctrl->rc = MCP_OK;
		}
	}
LEAVE_FUNC;
	return	(NULL);
}
Beispiel #7
0
extern	void
CloseDB_RedirectPort(
	DBG_Struct	*dbg)
{
ENTER_FUNC;
	if (  dbg->redirect == NULL )
		return;
	if		(  dbg->fpLog  !=  NULL  ) {
		SendPacketClass(dbg->fpLog,RED_END);
		CloseNet(dbg->fpLog);
		dbg->fpLog = NULL;
	}
	if		(  dbg->redirectData  !=  NULL  ) {
		FreeLBS(dbg->redirectData);
		dbg->redirectData = NULL;
	}
LEAVE_FUNC;
}
Beispiel #8
0
static void print_report(json_object *obj) {
  json_object *child;
  char *title, *printer, *oid;
  gboolean showdialog;
  LargeByteString *lbs;

  printer = "";
  title = "";
  showdialog = FALSE;

  if (!json_object_object_get_ex(obj, "object_id", &child)) {
    return;
  }
  oid = (char *)json_object_get_string(child);

  if (json_object_object_get_ex(obj, "printer", &child)) {
    printer = (char *)json_object_get_string(child);
  }
  if (json_object_object_get_ex(obj, "title", &child)) {
    title = (char *)json_object_get_string(child);
  }
  if (json_object_object_get_ex(obj, "showdialog", &child)) {
    showdialog = json_object_get_boolean(child);
  }
  if (oid == NULL || strlen(oid) <= 0) {
    return;
  }
  if (printer == NULL || strlen(printer) <= 0) {
    showdialog = TRUE;
  }
  Info("report title:%s printer:%s showdialog:%d oid:%s", title, printer,
       (int)showdialog, oid);

  setenv("GLPUSH_OID", oid, 1);
  lbs = REST_GetBLOB_via_ENV();
  if (showdialog) {
    ShowPrintDialog(title, lbs);
  } else {
    Print(oid, title, printer, lbs);
  }
  FreeLBS(lbs);
}
Beispiel #9
0
static PacketClass SYSDB_RequestCommon(NETFILE *fp, PacketClass pc,
                                       ValueStruct *val) {
  PacketClass rc;
  LargeByteString *buf;
  rc = SESSION_CONTROL_NG;
  buf = NewLBS();
  LBS_ReserveSize(buf, NativeSizeValue(NULL, val), FALSE);
  NativePackValue(NULL, LBS_Body(buf), val);
  SendPacketClass(fp, SYSDATA_SYSDB);
  ON_IO_ERROR(fp, badio);
  SendPacketClass(fp, pc);
  ON_IO_ERROR(fp, badio);
  SendLBS(fp, buf);
  ON_IO_ERROR(fp, badio);
  rc = RecvPacketClass(fp);
  RecvLBS(fp, buf);
  NativeUnPackValue(NULL, LBS_Body(buf), val);
badio:
  FreeLBS(buf);
  return rc;
}