/* Create a range boundary. This is required if more than one range is requested. */ static void createRangeBoundary(HttpStream *stream) { HttpTx *tx; int when; tx = stream->tx; assert(tx->rangeBoundary == 0); when = (int) stream->http->now; tx->rangeBoundary = sfmt("%08X%08X", PTOI(tx) + PTOI(stream) * when, when); }
/* Trace any packet */ PUBLIC bool httpTracePacket(HttpConn *conn, cchar *event, cchar *type, HttpPacket *packet, cchar *values, ...) { va_list ap; int level; assert(conn); assert(packet); if (!conn || conn->http->traceLevel == 0 || conn->rx->skipTrace) { return 0; } level = PTOI(mprLookupKey(conn->trace->events, type)); if (level == 0 || level > conn->http->traceLevel) { \ return 0; } if (packet->prefix) { httpTraceContent(conn, event, type, mprGetBufStart(packet->prefix), mprGetBufLength(packet->prefix), 0); } if (values) { va_start(ap, values); values = sfmtv(values, ap); va_end(ap); } if (packet->content) { if (values) { httpTraceContent(conn, event, type, mprGetBufStart(packet->content), httpGetPacketLength(packet), "%s", values); } else { httpTraceContent(conn, event, type, mprGetBufStart(packet->content), httpGetPacketLength(packet), 0); } } return 1; }
static void manageConstants(EjsConstants *cp, int flags) { int i; if (flags & MPR_MANAGE_MARK) { mprMark(cp->pool); mprMark(cp->table); mprMark(cp->index); /* Racing here, but okay. May miss a few new elements, but they will be picked up on the next sweep. */ for (i = 0; i < cp->indexCount; i++) { if (!(PTOI(cp->index[i]) & 0x1)) { mprMark(cp->index[i]); } } } }
/* Trace request body content */ PUBLIC bool httpTraceContent(HttpConn *conn, cchar *event, cchar *type, cchar *buf, ssize len, cchar *values, ...) { Http *http; HttpTrace *trace; va_list ap; int level; assert(conn); assert(buf); http = HTTP; if (http->traceLevel == 0) { return 0; } if (conn) { if (conn->rx->skipTrace) { return 0; } trace = conn->trace; } else { trace = http->trace; } level = PTOI(mprLookupKey(trace->events, type)); if (level == 0 || level > http->traceLevel) { return 0; } if (conn) { if ((smatch(event, "rx.body.data") && (conn->rx->bytesRead >= conn->trace->maxContent)) || (smatch(event, "tx.body.data") && (conn->tx->bytesWritten >= conn->trace->maxContent))) { if (!conn->rx->webSocket) { conn->rx->skipTrace = 1; httpTrace(conn, event, type, "msg: 'Abbreviating body trace'"); } return 0; } } if (values) { va_start(ap, values); values = sfmtv(values, ap); va_end(ap); } httpFormatTrace(trace, conn, event, type, values, buf, len); return 1; }
EjsString *ejsCreateStringFromConst(Ejs *ejs, EjsModule *mp, int index) { EjsConstants *constants; EjsString *sp; cchar *str; int value; lock(mp); constants = mp->constants; if (index < 0 || index >= constants->indexCount) { assert(!(index < 0 || index >= constants->indexCount)); unlock(mp); return 0; } value = PTOI(constants->index[index]); if (value & 0x1) { str = &constants->pool[value >> 1]; constants->index[index] = sp = ejsInternMulti(ejs, str, slen(str)); }
LTFAT_NAME(maxtree_setdirty)(s->fmaxtree[w2][nidx],\ m2start + k->srange[knidx].start,\ m2start + kdim2.height - k->srange[knidx].end);)\ LTFAT_NAME(maxtree_setdirty)(s->tmaxtree[w2], n2start, n2start + kdim2.width); int LTFAT_NAME(dgtrealmp_execute_locomp)( LTFAT_NAME(dgtrealmp_state)* p, kpoint origpos, LTFAT_COMPLEX** cout) { /* int status = LTFAT_DGTREALMP_STATUS_CANCONTINUE; */ /* int uniquenyquest = p->M[origpos.w] % 2 == 0; */ LTFAT_NAME(dgtrealmpiter_state)* s = p->iterstate; int count = s->suppind[PTOI(origpos)]; DEBUG("\n*****************\n Count %d \n ****************", count); if (count > 10) { /* status = LTFAT_DGTREALMP_STATUS_LOCOMP_ORTHFAILED; break; */ } // STEP 1: Find all active atoms around the current one ltfat_int cvalNo = 0; /* LTFAT_NAME(kerns)* k1 = p->gramkerns[origpos.w + s->P * origpos.w]; */ /* int do_conjat = 0; */ /* if ( (k1->mid.hmid + 2 * origpos.m) < k1->size.height ) */ /* do_conjat = 1; */ s->cvalBuf[cvalNo] = s->c[PTOI(origpos)];