int vssGetVar2Buffer(vss arg,char *name,char *buf, int size) { // to do - url_decode_param? int nl = strlen(name); vss A=arg; memset(buf,0,size); printf("A=<%*.*s>\n",VSS(A)); while (A.len>0) { // check it vss v = vssGetTillStr(&A,"&",1,1); vss n = vssGetTillStr(&v,"=",1,1); printf("Check Name=<%*.*s> V=<%*.*s> R=<%*.*s>\n",VSS(n),VSS(v),VSS(A)); if (n.len == nl && memcmp(name,n.data,nl) == 0) { // found! size--; if (v.len>=size) v.len=size; memcpy(buf,v.data,v.len); url_decode8(buf,buf); // replace %20 return 1; } } printf("%s - not found\n",name); return 0; // not found }
void MatrixQRDecompColMajor(Matrix*mtR,Matrix*mt){ // gram-schmidt orthonormalization (Lt and Q) double t, *aT[mt->W]; int W = mt->W; int i,j; MatrixClear(mtR); for (i = 0; i < W;i++) { aT[i] = Row(mt,i); for (j = 0; j < i; j++) { Elem(mtR,j,i) = t = VP(aT[j], aT[i], W); VSA(aT[i], aT[j], -t, W); } Elem(mtR,i,i) = t = sqrt(VP(aT[i],aT[i],W)); VSS(aT[i], 1/t, W); } /* Elem(mtR,0,0) = t = sqrt(VP(aT[0],aT[0],W)); VSS(aT[0], 1/t, W); Elem(mtR,0,1) = t = VP(aT[0], aT[1], W); VSA(aT[1], aT[0], -t, W); Elem(mtR,1,1) = t = sqrt(VP(aT[1],aT[1],W)); VSS(aT[1], 1/t, W); /////////// Elem(mtR,0,2) = t = VP(aT[0], aT[2], W); VSA(aT[2], aT[0], -t, W); Elem(mtR,1,2) = t = VP(aT[1], aT[2], W); VSA(aT[2], aT[1], -t, W); Elem(mtR,2,2) = t = sqrt(VP(aT[2],aT[2],W)); VSS(aT[2], 1/t, W); ////// 以下略 */ }
int onDbRequest(Socket *sock, vssHttp *req, SocketMap *map) { // Генерация статистики по серверу char buf[1024]; httpSrv *srv = (void*)sock->pool; strSetLength(&srv->buf,0); // ClearResulted vss r=req->B; strCat(&srv->buf,r.data,r.len); char *sql = srv->buf; printf("DB->REQ:<%*.*s>\n",VSS(req->B)); if (strncmp(r.data,"select",6)==0) { // get a data if (db_select(db,sql)<=0) { // error here ... SocketPrintHttp(sock,req,"-%s",db->error); return 1; } strSetLength(&srv->buf,0); dbStrFetch(db,&srv->buf); SocketSendHttp(sock,req,srv->buf,-1); return 1; } else { //exec a result if (db_exec_once(db,sql)<=0) { // error here SocketPrintHttp(sock,req,"-%s",db->error); db_rollback(db); return 1; } db_commit(db); // anyqway SocketPrintHttp(sock,req,"+1 OK"); return 1; } /* sprintf(buf,"{clients:%d,connects:%d,requests:%d,mem:%d,serverTime:'%s',pps:%d}",arrLength(srv->srv.sock)-1, srv->srv.connects, srv->srv.requests, os_mem_used(), szTimeNow, (srv->readLimit.pValue+srv->readLimit.ppValue)/2); */ SocketPrintHttp(sock,req,"%s","-not implemented yet"); // Flash Results as httpreturn 1; // OK - generated return 1; }