Ejemplo n.º 1
0
Archivo: ooms.c Proyecto: kingiol/cmoon
NEOERR* oms_camer_data_del(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses)
{
    mevent_t *evt = (mevent_t*)hash_lookup(evth, "aic");
    char *aname, *uname;
    NEOERR *err;

    APP_CHECK_LOGIN();

    HDF_GET_STR(cgi->hdf, PRE_QUERY".uname", uname);
    LEGAL_CK_ANAME(uname);

    hdf_set_value(evt->hdfsnd, "aname", aname);
    hdf_set_value(evt->hdfsnd, "uname", uname);

    MEVENT_TRIGGER(evt, aname, REQ_CMD_APPUSEROUT, FLAGS_NONE);

    evt = (mevent_t*)hash_lookup(evth, "msg");
    if (evt) {
        hdf_set_value(evt->hdfsnd, "name", uname);
        hdf_set_value(evt->hdfsnd, "name2", aname);
        MEVENT_TRIGGER(evt, uname, REQ_CMD_DEL_BOTH, FLAGS_NONE);
    }

    return STATUS_OK;
}
Ejemplo n.º 2
0
static NEOERR* member_after_login(CGI *cgi, HASH *dbh, char *mname)
{
    char tm[LEN_TM_GMT], *p, mmsn[LEN_CK];
    mdb_conn *db = hash_lookup(dbh, "main");
    NEOERR *err;

    memset(mmsn, 0x0, sizeof(mmsn));
    mstr_rand_string(mmsn, sizeof(mmsn));
    mutil_getdatetime_gmt(tm, sizeof(tm), "%A, %d-%b-%Y %T GMT", ONE_WEEK);

    /*
     * set cookie 
     */
    neos_url_escape(mname, &p, NULL);

    cgi_cookie_set(cgi, "mname",     mname, NULL, SITE_DOMAIN, tm, 1, 0);
    cgi_cookie_set(cgi, "mname_esc", p,     NULL, SITE_DOMAIN, tm, 1, 0);
    cgi_cookie_set(cgi, "mmsn",      mmsn,  NULL, SITE_DOMAIN, tm, 1, 0);

    free(p);

    hdf_set_value(cgi->hdf, PRE_OUTPUT".mname", mname);
    hdf_set_value(cgi->hdf, PRE_OUTPUT".mmsn", mmsn);

    MDB_EXEC(db, NULL, "UPDATE member SET mmsn=$1 WHERE mname=$2",
             "ss", mmsn, mname);

    return STATUS_OK;
}
Ejemplo n.º 3
0
int main(int argc, char *argv[])
{
  NEOERR *err;
  HDF *hdf, *h2;


  err = hdf_init(&hdf);
  if (err != STATUS_OK) 
  {
    nerr_log_error(err);
    return -1;
  }

  err = hdf_set_value(hdf, "CGI.Foo", "Bar");
  if (err) 
  {
    nerr_log_error(err);
    return -1;
  }
  err = hdf_set_value(hdf, "CGI.Foo", "Baz");
  if (err) 
  {
    nerr_log_error(err);
    return -1;
  }

  h2 = hdf_get_obj(hdf, "CGI");
  err = hdf_set_value(h2, "Foo", "Bang");

  hdf_dump(hdf, NULL); 

  hdf_destroy(&hdf);

  return 0;
}
Ejemplo n.º 4
0
Archivo: ooms.c Proyecto: kingiol/cmoon
NEOERR* oms_bill_data_get(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses)
{
    mevent_t *evt = (mevent_t*)hash_lookup(evth, "aic");
    char *aname;
    NEOERR *err;

    APP_CHECK_ADMIN();
    SET_ADMIN_ACTION(evt->hdfrcv, cgi->hdf);

    hdf_copy(cgi->hdf, PRE_OUTPUT".appinfo", evt->hdfrcv);

    int state = hdf_get_int_value(evt->hdfrcv, "state", LCS_ST_FREE);
    if (state <= LCS_ST_FREE) return STATUS_OK;

    evt = hash_lookup(evth, "bank");
    hdf_set_value(evt->hdfsnd, "aname", aname);
    MEVENT_TRIGGER(evt, aname, REQ_CMD_BANK_INFO, FLAGS_SYNC);
    hdf_copy(cgi->hdf, PRE_OUTPUT".bankinfo", evt->hdfrcv);

    hdf_set_value(evt->hdfsnd, "aname", aname);
    hdf_copy(evt->hdfsnd, NULL, hdf_get_obj(cgi->hdf, PRE_QUERY));
    MEVENT_TRIGGER(evt, aname, REQ_CMD_BANK_GETBILL, FLAGS_SYNC);
    hdf_copy(cgi->hdf, PRE_OUTPUT, evt->hdfrcv);

    return STATUS_OK;
}
Ejemplo n.º 5
0
Archivo: lerr.c Proyecto: bigml/mgate
void lerr_opfinish_json(NEOERR *err, HDF *hdf)
{
    if (err == STATUS_OK) {
        hdf_set_value(hdf, PRE_SUCCESS, "1");
        mcs_set_int_attr(hdf, PRE_SUCCESS, "type", CNODE_TYPE_INT);
        return;
    }

    hdf_remove_tree(hdf, PRE_SUCCESS);

    NEOERR *neede = mcs_err_valid(err);
    /* set PRE_ERRXXX with the most recently err */
    mcs_set_int_value_with_type(hdf, PRE_ERRCODE, neede->error, CNODE_TYPE_INT);
    if (!hdf_get_obj(hdf, PRE_ERRMSG)) {
        hdf_set_valuef(hdf, "%s=%s:%d %s",
                       PRE_ERRMSG, neede->file, neede->lineno, neede->desc);
    }

    STRING str; string_init(&str);
    nerr_error_traceback(err, &str);
    mtc_err("%s", str.buf);
    hdf_set_value(hdf, PRE_ERRTRACE, str.buf);
    nerr_ignore(&err);
    string_clear(&str);
}
Ejemplo n.º 6
0
Archivo: lerr.c Proyecto: kingiol/cmoon
void lerr_opfinish_json(NEOERR *err, HDF *hdf)
{
    if (err == STATUS_OK) {
        hdf_set_value(hdf, PRE_SUCCESS, "1");
        return;
    }
    
    hdf_remove_tree(hdf, PRE_SUCCESS);
    
    char buf[1024], errname[128];
    NEOERR *neede = mcs_err_valid(err);
    if (!neede) neede = err;
    snprintf(buf, sizeof(buf), "%s:%d %s",
             neede->file, neede->lineno,
             _lookup_errname(neede, errname, sizeof(errname)));
    /* set PRE_ERRXXX with the most recently err */
    if (!hdf_get_obj(hdf, PRE_ERRMSG)) {
        hdf_set_value(hdf, PRE_ERRMSG, buf);
    }
    hdf_set_int_value(hdf, PRE_ERRCODE, neede->error);

    STRING str; string_init(&str);
    nerr_error_traceback(err, &str);
    mtc_err("%s", str.buf);
    hdf_set_value(hdf, PRE_ERRTRACE, str.buf);
    nerr_ignore(&err);
    string_clear(&str);
}
Ejemplo n.º 7
0
static NEOERR* aux_cmd_emailadd(struct aux_entry *e, QueueEntry *q)
{
    STRING str; string_init(&str);
    char sum[LEN_MD5], *content;
    NEOERR *err;
    mdb_conn *db = e->db;

    REQ_GET_PARAM_STR(q->hdfrcv, "content", content);
    
    mstr_md5_str(content, sum);
    hdf_set_value(q->hdfrcv, "checksum", sum);

    HDF *node = hdf_get_child(q->hdfrcv, "mto");

insert:
    if (node) hdf_set_value(q->hdfrcv, "to", hdf_obj_value(node));
    
    err = mdb_build_incol(q->hdfrcv,
                          hdf_get_obj(g_cfg, CONFIG_PATH".InsertCol.email"),
                          &str);
    if (err != STATUS_OK) return nerr_pass(err);
    
    MDB_EXEC(db, NULL, "INSERT INTO email %s", NULL, str.buf);
    string_clear(&str);

    if (node) {
        node = hdf_obj_next(node);
        if (node) goto insert;
    }

    return STATUS_OK;
}
Ejemplo n.º 8
0
NEOERR* member_exist_data_get(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses)
{
    mevent_t *evt = hash_lookup(evth, "member");
    char *mname;

    MCS_NOT_NULLB(cgi->hdf, evt);

    HDF_GET_STR(cgi->hdf, PRE_QUERY".mname", mname);

    hdf_set_value(evt->hdfsnd, "mname", mname);

    mevent_trigger(evt, mname, REQ_CMD_MEMBER_GET, FLAGS_SYNC);

    if (PROCESS_OK(evt->errcode)) {
        hdf_set_value(cgi->hdf, PRE_OUTPUT".exist", "1");
        hdf_set_value(cgi->hdf, PRE_OUTPUT".msg", "用户已被注册");
    } else if (evt->errcode == LERR_MEMBER_NEXIST) {
        hdf_set_value(cgi->hdf, PRE_OUTPUT".exist", "0");
        hdf_set_value(cgi->hdf, PRE_OUTPUT".msg", "用户还未注册");
    } else {
        return nerr_raise(evt->errcode, "get member %s info failure %d",
                          evt->ename, evt->errcode);
    }

    return STATUS_OK;
}
Ejemplo n.º 9
0
void mjson_str2hdf(HDF *node, struct json_object *o)
{
    if (!node) return;
    
    char *s = hdf_obj_value(node);
    
    struct json_object *obj;
    struct array_list *list;
    enum json_type type;
    HDF *cnode;
    char tok[64];
    int i;
    
    char *key; struct json_object *val; struct lh_entry *entry;
    
    obj = o;

    if (!obj && s && *s) {
        obj = json_tokener_parse(s);
    }
    if (!obj || obj < 0) return;

    type = json_object_get_type(obj);

    switch (type) {
    case json_type_boolean:
        hdf_set_int_value(node, NULL, json_object_get_boolean(obj));
        return;
    case json_type_int:
        hdf_set_int_value(node, NULL, json_object_get_int(obj));
        return;
    case json_type_double:
        sprintf(tok, "%f", json_object_get_double(obj));
        hdf_set_value(node, NULL, tok);
        return;
    case json_type_string:
        hdf_set_value(node, NULL, json_object_get_string(obj));
        return;
    case json_type_array:
        list = json_object_get_array(obj);
        for (i = 0; i < list->length; i++) {
            sprintf(tok, "%d", i);
            hdf_get_node(node, tok, &cnode);
            mjson_str2hdf(cnode, (struct json_object*)list->array[i]);
        }
        return;
    case json_type_object:
        for(entry = json_object_get_object(obj)->head;
            (entry ? (key = (char*)entry->k,
                      val = (struct json_object*)entry->v, entry) : 0);
            entry = entry->next) {
            hdf_get_node(node, key, &cnode);
            mjson_str2hdf(cnode, val);
        }
        return;
    default:
        return;
    }
}
Ejemplo n.º 10
0
static int diary_handle_feed_rss(request_rec *r, diary_conf *conf)
{
    HDF *hdf;
    CSPARSE *cs;
    NEOERR *cs_err;
    STRING cs_err_str;

    ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r, "diary_handle_feed_rss()");

    hdf_init(&hdf);
    hdf_set_value(hdf, "hdf.loadpaths.1", conf->path);
    hdf_set_value(hdf, "diary.title", conf->title);
    hdf_set_value(hdf, "diary.uri", conf->uri);

    cs_err = hdf_read_file(hdf, INDEX_HDF);
    if(cs_err){
        ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "cannot read index.hdf.");
        hdf_destroy(&hdf);
        return HTTP_INTERNAL_SERVER_ERROR;
    }
    //hdf_dump(hdf, NULL);

    cs_err = cs_init(&cs, hdf);
    if(cs_err){
        string_init(&cs_err_str);
        nerr_error_string(cs_err, &cs_err_str);
        ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
                      "error at cs_init(): %s", cs_err_str.buf);
        cs_destroy(&cs);
        hdf_destroy(&hdf);
        return HTTP_INTERNAL_SERVER_ERROR;
    }

    cgi_register_strfuncs(cs);

    cs_err = cs_parse_string(cs, strdup(RSS_TMPL), RSS_TMPL_LEN);
    if(cs_err){
        string_init(&cs_err_str);
        nerr_error_string(cs_err, &cs_err_str);
        ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
                      "error in cs_parse_string(): %s", cs_err_str.buf);
        cs_destroy(&cs);
        hdf_destroy(&hdf);
        return HTTP_INTERNAL_SERVER_ERROR;
    }

    r->content_type = "application/rss+xml";
    cs_render(cs, r, diary_cs_render_cb);

    cs_destroy(&cs);
    hdf_destroy(&hdf);
    return OK;
}
Ejemplo n.º 11
0
int main(int argc, char **argv, char **envp)
{
	CGI *cgi = NULL;
	NEOERR *err;
	mdb_conn *conn = NULL;

	char *s, *u, *p, *r, *jcbk;

	mtc_init("test");
	mconfig_parse_file(SITE_CONFIG, &g_cfg);

	if (mdb_init(&conn, DB_DSN) != MDB_ERR_NONE) {
		mtc_err("init db error %s", mdb_get_errmsg(conn));
		printf("Content-Type: text/html; charset=UTF-8\r\n\r\n");
		printf("{errcode: %d}", SAM_ERR_INIT);
		return 1;
	}
	
	err = cgi_init(&cgi, NULL);
	if (err != STATUS_OK) {
		mtc_err("init cgi error");
		printf("Content-Type: text/html; charset=UTF-8\r\n\r\n");
		printf("初始化错误");
		return 1;
	}
	err = cgi_parse(cgi);
	if (err != STATUS_OK) {
		mtc_err("parse cgi error");
		hdf_set_value(cgi->hdf, PRE_OUTPUT".errmsg", "初始化出错");
		goto finish;
	}

	u = hdf_get_value(cgi->hdf, PRE_COOKIE".samuser", NULL);
	s = hdf_get_value(cgi->hdf, PRE_COOKIE".samkey", NULL);
	if (s && u) {
		if (user_has_login(conn, u, s)) {
			hdf_set_copy(cgi->hdf, PRE_OUTPUT".samuser", PRE_COOKIE".samuser");
			hdf_set_copy(cgi->hdf, PRE_OUTPUT".samkey", PRE_COOKIE".samkey");
			hdf_set_value(cgi->hdf, PRE_OUTPUT".rcode", "1");
			goto finish;
		}
	}

	hdf_set_value(cgi->hdf, PRE_OUTPUT".rcode", "2");

finish:
	cgi_display(cgi, F_TPL_TEST);
	cgi_destroy(&cgi);
	mdb_destroy(conn);
	return 0;
}
Ejemplo n.º 12
0
static NEOERR* aux_cmd_inboxadd(struct aux_entry *e, QueueEntry *q)
{
    STRING str; string_init(&str);
    NEOERR *err;
    mdb_conn *db = e->db;

    HDF *node = hdf_get_child(q->hdfrcv, "mmid");

insert:
    if (node) hdf_set_value(q->hdfrcv, "mid", hdf_obj_value(node));
    
    err = mdb_build_incol(q->hdfrcv,
                          hdf_get_obj(g_cfg, CONFIG_PATH".InsertCol.inbox"),
                          &str);
    if (err != STATUS_OK) return nerr_pass(err);
    
    MDB_EXEC(db, NULL, "INSERT INTO inbox %s", NULL, str.buf);
    string_clear(&str);

    if (node) {
        node = hdf_obj_next(node);
        if (node) goto insert;
    }

    return STATUS_OK;
}
Ejemplo n.º 13
0
Archivo: ooms.c Proyecto: kingiol/cmoon
NEOERR* oms_users_data_get(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses)
{
    mevent_t *evt = (mevent_t*)hash_lookup(evth, "aic");
    char *aname;
    NEOERR *err;

    APP_CHECK_ADMIN();

    SET_ADMIN_ACTION(evt->hdfrcv, cgi->hdf);

    hdf_copy(cgi->hdf, PRE_OUTPUT".appinfo", evt->hdfrcv);

    /*
     * prepare data
     */
    hdf_set_value(evt->hdfsnd, "pname", aname);
    hdf_copy(evt->hdfsnd, NULL, hdf_get_obj(cgi->hdf, PRE_QUERY));

    /*
     * trigger
     */
    MEVENT_TRIGGER(evt, aname, REQ_CMD_APP_O_USERS, FLAGS_SYNC);
    hdf_copy(cgi->hdf, PRE_OUTPUT, evt->hdfrcv);

    return STATUS_OK;
}
Ejemplo n.º 14
0
NEOERR* system_comment_data_get(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses)
{
    mdb_conn *db = hash_lookup(dbh, "aux");
    STRING str; string_init(&str);
    char *mname;
    NEOERR *err;

    MCS_NOT_NULLB(cgi->hdf, db);
    
    MEMBER_CHECK_ADMIN();
    SET_DASHBOARD_ACTION(cgi->hdf);

    if (!hdf_get_value(cgi->hdf, PRE_QUERY".times", NULL))
        hdf_set_value(cgi->hdf, PRE_QUERY".timed", "current_date - 7");
    err = mdb_build_querycond(hdf_get_obj(cgi->hdf, PRE_QUERY),
                              hdf_get_obj(g_cfg, "Db.QueryCond.system.comment"),
                              &str, NULL);
    if (err != STATUS_OK) return nerr_pass(err);

    MDB_QUERY_RAW(db, "comment", _COL_CMT, "%s ORDER BY id DESC", NULL, str.buf);
    err = mdb_set_rows(cgi->hdf, db, _COL_CMT, PRE_OUTPUT".rows",
                       NULL, MDB_FLAG_EMPTY_OK);
    if (err != STATUS_OK) return nerr_pass(err);

    return STATUS_OK;
}
Ejemplo n.º 15
0
NEOERR* mcs_set_uint_value(HDF *hdf, char *name, unsigned int value)
{
    char buf[256];

    snprintf(buf, sizeof(buf), "%u", value);
    return nerr_pass(hdf_set_value(hdf, name, buf));
}
Ejemplo n.º 16
0
NEOERR* mcs_set_int64_value(HDF *hdf, char *name, int64_t val)
{
    char buf[256];
    
    snprintf(buf, sizeof(buf), "%ld", val);
    return nerr_pass(hdf_set_value(hdf, name, buf));
}
Ejemplo n.º 17
0
NEOERR* mcs_set_float_value(HDF *hdf, char *name, float value)
{
    char buf[256];

    snprintf(buf, sizeof(buf), "%f", value);
    return nerr_pass(hdf_set_value(hdf, name, buf));
}
Ejemplo n.º 18
0
JNIEXPORT void JNICALL Java_org_clearsilver_HDF__1setValue(
    JNIEnv *env, jclass objClass,
    jint hdf_obj_ptr, jstring j_hdfname, jstring j_value) {
  HDF *hdf = (HDF *)hdf_obj_ptr;
  NEOERR *err;
  const char *hdfname;
  const char *value;

  if (!j_hdfname) {
    throwNullPointerException(env, "hdfname argument was null");
    return;
  }
  hdfname = (*env)->GetStringUTFChars(env, j_hdfname, 0);
  if (j_value) {
    value = (*env)->GetStringUTFChars(env, j_value, 0);
  } else {
    value = NULL;
  }
  err = hdf_set_value(hdf, hdfname, value);

  (*env)->ReleaseStringUTFChars(env, j_hdfname, hdfname);
  if (value) {
    (*env)->ReleaseStringUTFChars(env, j_value, value);
  }

  if (err != STATUS_OK) {
    // Throw an exception
    jNeoErr(env, err);
  }
}
Ejemplo n.º 19
0
void mcs_hdf_rep(HDF *data, HDF *dst)
{
    char *srcstr, *repstr;
    
    if (!data || !dst) return;

    HDF *datarow = hdf_obj_child(data);
    while (datarow) {
        HDF *child = hdf_obj_child(dst);
        while (child) {
            if (hdf_obj_child(child)) {
                return mcs_hdf_rep(data, child);
            }

            srcstr = hdf_obj_value(child);
            repstr = mstr_repstr(1, srcstr,
                                 hdf_obj_name(datarow),
                                 hdf_obj_value(datarow));
            hdf_set_value(child, NULL, repstr);
            free(repstr);

            child = hdf_obj_next(child);
        }
        
        datarow = hdf_obj_next(datarow);
    }
}
Ejemplo n.º 20
0
NEOERR* member_check_login_data_get(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses)
{
    mdb_conn *db = hash_lookup(dbh, "main");
    char *mname, *mmsn;
    NEOERR *err;
    
    MCS_NOT_NULLB(cgi->hdf, db);

    HDF_FETCH_STR(cgi->hdf, PRE_QUERY".mname", mname);
    HDF_FETCH_STR(cgi->hdf, PRE_QUERY".mmsn", mmsn);
    if (!mname || !mmsn) {
        HDF_GET_STR_IDENT(cgi->hdf, PRE_COOKIE".mname", mname);
        HDF_GET_STR_IDENT(cgi->hdf, PRE_COOKIE".mmsn", mmsn);
    }
    hdf_set_value(cgi->hdf, PRE_RESERVE".mname", mname);

    MDB_QUERY_RAW(db, "member", _COL_MEMBER, "mname=$1", "s", mname);
    err = mdb_set_row(cgi->hdf, db, _COL_MEMBER, PRE_OUTPUT".member", MDB_FLAG_Z);
    if (err != STATUS_OK) return nerr_pass(err);

    char *mmsndb = hdf_get_value(cgi->hdf, PRE_OUTPUT".member.mmsn", NULL);
    if (!mmsndb || strcmp(mmsndb, mmsn)) {
        hdf_remove_tree(cgi->hdf, PRE_OUTPUT".member");
        return nerr_raise(LERR_NOTLOGIN, "msn don't match");
    }
    
    return STATUS_OK;
}
Ejemplo n.º 21
0
Archivo: ooms.c Proyecto: kingiol/cmoon
NEOERR* oms_data_get(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses)
{
    mevent_t *evt = (mevent_t*)hash_lookup(evth, "aic");
    char *aname;
    NEOERR *err;

    APP_CHECK_LOGIN();
    SET_ADMIN_ACTION(evt->hdfrcv, cgi->hdf);

    hdf_copy(cgi->hdf, PRE_OUTPUT".appinfo", evt->hdfrcv);

    /*
     * prepare data
     */
    hdf_set_value(evt->hdfsnd, "aname", aname);
    hdf_set_int_value(evt->hdfsnd, "limit", MAX_USERS_PERADMIN);

    /*
     * trigger
     */
    MEVENT_TRIGGER(evt, aname, REQ_CMD_APPUSERS, FLAGS_SYNC);
    hdf_copy(cgi->hdf, PRE_OUTPUT, evt->hdfrcv);
    /*
     * TODO: remove ips2places() when userinfo's addr all filled
     */
    ips2places(hdf_get_obj(cgi->hdf, PRE_OUTPUT".userlist"), evth);

    return STATUS_OK;
}
Ejemplo n.º 22
0
NEOERR* fill_trackarea(HASH *evth, HASH *dbh)
{
    mdb_conn *conn = (mdb_conn*)hash_lookup(dbh, "dyn");
    mevent_t *evt = (mevent_t*)hash_lookup(evth, "place");
    HDF *node; hdf_init(&node);
    char *ip, *aid, *uid, *city, *area;
    NEOERR *err;

    LPRE_ALLOP(node, conn, evt);

    MDB_QUERY_RAW(conn, "track", COL_TRACK, "intime > current_date AND "
                  " area='' GROUP BY aid, uid", NULL);
    err = mdb_set_rows(node, conn, COL_TRACK, NULL, NULL);
    if (err != STATUS_OK) return nerr_pass(err);

    node = hdf_obj_child(node);
    while (node) {
        ip = hdf_get_value(node, "ip", NULL);
        aid = hdf_get_value(node, "aid", "0");
        uid = hdf_get_value(node, "uid", "0");
        if (ip) {
            hdf_set_value(evt->hdfsnd, "ip", ip);
            MEVENT_TRIGGER_NRET(evt, ip, REQ_CMD_PLACEGET, FLAGS_SYNC);
            city = hdf_get_value(evt->hdfrcv, "0.c", "Mars");
            area = city2area(city);
            MDB_EXEC(conn, NULL, "UPDATE track SET area=$1 WHERE aid=$2 AND uid=$3",
                     "sss", area, aid, uid);
        }

        node = hdf_obj_next(node);
    }

    return STATUS_OK;
}
Ejemplo n.º 23
0
bool Tree::SerializeToHdfInternal(struct _hdf *hdf,
                                  bool only_nodes_with_value) const
{
    for (std::map<std::string, Tree *>::const_iterator p = _children.begin();
         p != _children.end(); ++p) {

        if (!p->second->SerializeToHdfInternal(hdf, only_nodes_with_value)) {
            return false;
        }
    }

    // Any intermediate nodes with empty value are filtered out.
    // Leaf nodes are controlled by only_nodes_with_value.
    if (_value.empty()) {
        if (!_children.empty() || only_nodes_with_value) {
            return true;
        }
    }

    NEOERR *err = hdf_set_value(hdf, _full_path.c_str(), _value.c_str());
    if (err != STATUS_OK) {
        nerr_ignore(&err);
        return false;
    }

    return true;
}
Ejemplo n.º 24
0
int lutil_fill_layout_by_file(mdb_conn *conn, file_t *file, HDF *hdf)
{
    ULIST *files = NULL;
    file_t *fl;
    int ret, errsn;

    PRE_DBOP(hdf, conn);
    if (file == NULL)
        return RET_RBTOP_INPUTE;

    hdf_set_value(hdf, PRE_LAYOUT".title", file->remark);

    ret = file_get_infos_by_uri(conn, file->uri, &files, &errsn);
    if (ret != RET_RBTOP_OK) {
        mtc_err("get files's infos by uri %s failure %d",
                file->uri, errsn);
        return ret;
    }

    MLIST_ITERATE(files, fl) {
        hdf_set_valuef(hdf, "%s.crumbs.%d.name=%s",
                       PRE_LAYOUT, t_rsv_i, fl->remark);
        if (fl->reqtype == CGI_REQ_AJAX) {
            hdf_set_valuef(hdf, "%s.crumbs.%d.href=%s.html",
                           PRE_LAYOUT, t_rsv_i, fl->uri);
        } else {
            hdf_set_valuef(hdf, "%s.crumbs.%d.href=%s",
                           PRE_LAYOUT, t_rsv_i, fl->uri);
        }
    }
Ejemplo n.º 25
0
Archivo: ooms.c Proyecto: kingiol/cmoon
NEOERR* oms_secy_data_mod(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses)
{
    mevent_t *evt = (mevent_t*)hash_lookup(evth, "aic");
    char *aname, *uname;
    NEOERR *err;

    HDF_GET_STR(cgi->hdf, PRE_QUERY".aname", uname);

    APP_CHECK_ADMIN_OTHER(uname);

    hdf_set_value(evt->hdfsnd, "pname", aname);
    hdf_set_value(evt->hdfsnd, "aname", uname);

    MEVENT_TRIGGER(evt, aname, REQ_CMD_APP_SETSECY, FLAGS_NONE);

    return STATUS_OK;
}
Ejemplo n.º 26
0
NEOERR* member_logout_data_get(CGI *cgi, HASH *dbh, HASH *evth, session_t *ses)
{
    mevent_t *evt = hash_lookup(evth, "member");
    char *mname;
    NEOERR *err;

    MCS_NOT_NULLB(cgi->hdf, evt);

    MEMBER_CHECK_LOGIN();

    hdf_set_value(evt->hdfsnd, "mname", mname);
    hdf_set_value(evt->hdfsnd, "mmsn", "0");

    MEVENT_TRIGGER(evt, mname, REQ_CMD_MEMBER_UP, FLAGS_NONE);

    return STATUS_OK;
}
Ejemplo n.º 27
0
static int AmbaPMPage_get_params_fb () {
    MESSAGE* msg = (MESSAGE*)receive_buffer->data;
    char name[NAME_LEN] = {0};
    uint32_t *camtype = (uint32_t*)(msg->data);
    uint32_t* pmid;

    if((msg->cmd_id == GET_CAM_TYPE) && (msg->status == STATUS_SUCCESS)) {
        sprintf(name, "%d", *camtype);
        hdf_set_value(cgi->hdf, "camtype", name);
    }
    msg = (MESSAGE*)(receive_buffer->data + sizeof(ENC_COMMAND_ID) + sizeof(uint32_t) + sizeof(uint32_t));
    if((msg->cmd_id == GET_PRVACY_MASK) && (msg->status == STATUS_SUCCESS)) {
        pmid = (uint32_t *)(msg->data);
        sprintf(name, "%d", *pmid);
        hdf_set_value(cgi->hdf, "pm_id", name);
    }
    return 0;
}
Ejemplo n.º 28
0
int main(void)
{
  GC_INIT();
  TF_Buffer *buffer = TF_GetAllOpList();
  Tensorflow__OpList *op_list = tensorflow__op_list__unpack(NULL, buffer->length, buffer->data);

  HDF *hdf;
  hdf_init(&hdf);

  for (int i=0; i<op_list->n_op; i++) {
    struct _Tensorflow__OpDef *op = op_list->op[i];
    char variable[256];
    char value[256];
    snprintf(variable, 256, "Op.%s.name", op->name);
    snprintf(value, 256, "tf-%s", kebab_case(op->name));
    hdf_set_value(hdf, variable, value);
    for (int j=0; j<op->n_input_arg; j++) {
      Tensorflow__OpDef__ArgDef *arg = op->input_arg[j];
      snprintf(variable, 256, "Op.%s.input_arg.%s", op->name, arg->name);
      const char *multiple = arg->number_attr && *arg->number_attr ? "list" : "single";
      hdf_set_value(hdf, variable, multiple);
    };
    for (int j=0; j<op->n_attr; j++) {
      Tensorflow__OpDef__AttrDef *attr = op->attr[j];
      snprintf(variable, 256, "Op.%s.attr.%s", op->name, attr->name);
      snprintf(value, 256, "%s", attr->type);
      hdf_set_value(hdf, variable, value);
    };
    snprintf(variable, 256, "Op.%s.n_output", op->name);
    snprintf(value, 256, "%d", op->n_output_arg);
    hdf_set_value(hdf, variable, value);
  };

  CSPARSE *parse;
  cs_init(&parse, hdf);
  cs_parse_file(parse, "tensorflow.scm.in");
  cs_render(parse, stdout, output);

  cs_destroy(&parse);
  hdf_destroy(&hdf);

  tensorflow__op_list__free_unpacked(op_list, NULL);
  TF_DeleteBuffer(buffer);
}
Ejemplo n.º 29
0
static void wiki_output(MMIOT *doc, request_rec *r)
{
    char *title;
    int ret;
    int size;
    char *p;
    wiki_conf *conf;
    list_t *css;
    HDF *hdf;
    CSPARSE *cs;
    int i;

    conf =
        (wiki_conf *) ap_get_module_config(r->per_dir_config,
                                           &wiki_module);
    ret = mkd_compile(doc, MKD_TOC | MKD_AUTOLINK);

    hdf_init(&hdf);

    if(conf->name){
        hdf_set_value(hdf, "wikiname", conf->name);
    }

    title = mkd_doc_title(doc);
    if(title == NULL){
        title = "notitle";
    }
    hdf_set_value(hdf, "title", title);

    for(i=0, css = conf->css; css; i++, css = (list_t *) css->next){
        hdf_set_valuef(hdf, "css.%d=%s", i, (char *)css->data);
    }

    if ((size = mkd_document(doc, &p)) != EOF) {
        hdf_set_value(hdf, "document", p);
    }

    cs_init(&cs, hdf);
    cs_parse_string(cs, strdup(DEFAULT_TEMPLATE), strlen(DEFAULT_TEMPLATE));
    cs_render(cs, r, cs_output);
    hdf_destroy(&hdf);
    cs_destroy(&cs);
}
Ejemplo n.º 30
0
NEOERR* mcs_set_value_with_type(HDF *hdf, char *name, char *value,
                                CnodeType type)
{
    NEOERR *err;

    err = hdf_set_value(hdf, name, value);
    if (err != STATUS_OK) return nerr_pass(err);

    return nerr_pass(mcs_set_int_attr(hdf, name, "type", type));
}