void getusers_handler(int argc,char**argv,int bloblen,void*blob) { dbResult*res; int i,l; char rsp[64]; struct dynbuf_s*buf; if(!checkGlobalACL(ACL_ADMUSER)){ bc_hdl->sockwriter(bc_hdl,E_PERM,strlen(E_PERM)); return; } res=query(bc_con,SQL_GETUSERS); if(!res){ bc_hdl->sockwriter(bc_hdl,E_DATABASE,strlen(E_DATABASE)); return; } buf=dynbuf_new(); if(!buf){ bc_hdl->sockwriter(bc_hdl,E_ALLOCATION,strlen(E_ALLOCATION)); dbFree(res); return; } l=dbNumRows(res); for(i=0;i<l;i++){ dynbuf_addstr(buf,dbGetStringByname(res,i,"usrname")); dynbuf_addstr(buf,"\n"); } dbFree(res); sprintf(rsp,"+%i Users:\n",buf->len); bc_hdl->sockwriter(bc_hdl,rsp,strlen(rsp)); bc_hdl->sockwriter(bc_hdl,buf->buffer,buf->len); dynbuf_free(buf); }
void getuseracl_handler(int argc,char**argv,int bloblen,void*blob) { dbResult*res; char*acl; struct dynbuf_s*buf; if(!checkGlobalACL(ACL_ADMUSER)){ bc_hdl->sockwriter(bc_hdl,E_PERM,strlen(E_PERM)); return; } /*invalid argc*/ if(argc!=2){ bc_hdl->sockwriter(bc_hdl,E_SYNTAX,strlen(E_SYNTAX)); return; } res=query(bc_con,SQL_GETMAINACL,argv[1]); if(!res){ bc_hdl->sockwriter(bc_hdl,E_DATABASE,strlen(E_DATABASE)); return; } if(dbNumRows(res)!=1){ bc_hdl->sockwriter(bc_hdl,E_NOUSER,strlen(E_NOUSER)); dbFree(res); return; } buf=dynbuf_new(); if(!buf){ bc_hdl->sockwriter(bc_hdl,E_ALLOCATION,strlen(E_ALLOCATION)); dbFree(res); return; } acl=dbGetString(res,0,0); if(!acl)acl=""; if(strchr(acl,ACL_ADMIN))dynbuf_addstr(buf," admin"); if(strchr(acl,ACL_READ))dynbuf_addstr(buf," read"); if(strchr(acl,ACL_WRITE))dynbuf_addstr(buf," write"); if(strchr(acl,ACL_CONFIG))dynbuf_addstr(buf," config"); if(strchr(acl,ACL_ADMUSER))dynbuf_addstr(buf," crateUsers"); if(strchr(acl,ACL_ADMPROJECT))dynbuf_addstr(buf,"createProjects"); dbFree(res); dynbuf_addstr(buf,"\n"); bc_hdl->sockwriter(bc_hdl,"+0",2); bc_hdl->sockwriter(bc_hdl,buf->buffer,buf->len); dynbuf_free(buf); }
static void cachessess_free_val_cb(cache_val_t val) { dynbuf_free(val); }
static void cachessess_free_key_cb(cache_key_t key) { dynbuf_free(key); }