Exemplo n.º 1
0
/*
 *  Create an exception object.
 */
static EjsVar *createException(Ejs *ejs, EjsType *type, cchar* fmt, va_list fmtArgs)
{
    EjsVar          *error, *argv[1];
    char            *msg;

    mprAssert(type);

    if (ejs->noExceptions) {
        return 0;
    }

    mprAllocVsprintf(ejs, &msg, MPR_MAX_STRING, fmt, fmtArgs);
    argv[0] = (EjsVar*) ejsCreateString(ejs, msg);

    if (argv[0] == 0) {
        mprAssert(argv[0]);
        return 0;
    }

    error = (EjsVar*) ejsCreateInstance(ejs, type, 1, argv);
    if (error == 0) {
        mprAssert(error);
        return 0;
    }
    mprFree(msg);

    return error;
}
Exemplo n.º 2
0
static void setHeader(void *handle, bool allowMultiple, cchar *key, cchar *fmt, ...)
{
    char        *value;
    va_list     vargs;

    va_start(vargs, fmt);
    mprAllocVsprintf(handle, &value, -1, fmt, vargs);
    maSetHeader(handle, allowMultiple, key, "%s", value);
}
Exemplo n.º 3
0
static void error(void *handle, int code, cchar *fmt, ...)
{
    va_list     args;
    char        *msg;

    va_start(args, fmt);
    mprAllocVsprintf(handle, &msg, -1, fmt, args);

    maFailRequest(handle, code, "%s", msg);
}
Exemplo n.º 4
0
void mprLog(int level, char *fmt, ...)
{
	va_list	args;
	char	*buf;

	va_start(args, fmt);
	mprAllocVsprintf(&buf, MPR_MAX_STRING, fmt, args);
	va_end(args);
	write(1, buf, strlen(buf));
	mprFree(buf);
}
Exemplo n.º 5
0
void mprRawLog(MprCtx ctx, const char *fmt, ...)
{
	va_list		args;
	char		*buf;
	int			len;

	va_start(args, fmt);
	len = mprAllocVsprintf(MPR_LOC_ARGS(ctx), &buf, 0, fmt, args);
	va_end(args);
	
	logOutput(MPR_LOC_ARGS(ctx), MPR_RAW, 0, buf);
	mprFree(buf);
}
Exemplo n.º 6
0
static int addFormattedStringToToken(EcToken *tp, char *fmt, ...)
{
    va_list     args;
    char        *buf;

    va_start(args, fmt);
    mprAllocVsprintf(tp, &buf, MPR_MAX_STRING, fmt, args);
    addStringToToken(tp, buf);
    mprFree(buf);
    va_end(args);

    return 0;
}
Exemplo n.º 7
0
void MaClient::formatError(char *fmt, ...)
{
	va_list		args;

	mprAssert(fmt);

	if (errorMsg) {
		mprFree(errorMsg);
	}
	va_start(args, fmt);
	mprAllocVsprintf(&errorMsg, MPR_MAX_STRING, fmt, args);
	va_end(args);
}
Exemplo n.º 8
0
void mprLog(int level, const char *fmt, ...)
{
	va_list	args;
	char	*buf;

	if (DEBUGLVL(level)) {
		va_start(args, fmt);
		mprAllocVsprintf(&buf, MPR_MAX_STRING, fmt, args);
		va_end(args);
		DEBUG(level, ("mprLog: %s", buf));
		mprFree(buf);
	}
}
Exemplo n.º 9
0
/*
 *  Add a response header
 */
static void setHeader(void *handle, bool allowMultiple, cchar *key, cchar *fmt, ...)
{
    char            *value;
    va_list         vargs;

    va_start(vargs, fmt);
    mprAllocVsprintf(mpr, &value, EJS_MAX_HEADERS, fmt, vargs);

    if (allowMultiple) {
        mprAddDuplicateHash(responseHeaders, key, value);
    } else {
        mprAddHash(responseHeaders, key, value);
    }
}
Exemplo n.º 10
0
//  TODO - do we need code?
void error(void *handle, int code, cchar *fmt, ...)
{
    va_list args;

    if (responseMsg == 0) {
        if (code == 0) {
            code = MPR_HTTP_CODE_BAD_GATEWAY;
        }
        responseCode = code;
        va_start(args, fmt);
        mprAllocVsprintf(mpr, &responseMsg, -1, fmt, args);
        va_end(args);
    }
}
Exemplo n.º 11
0
void mprError(MPR_LOC_DEC(ctx, loc), const char *fmt, ...)
{
	va_list		args;
	char		*buf;
	int			len;

	va_start(args, fmt);
	len = mprAllocVsprintf(MPR_LOC_ARGS(ctx), &buf, 0, fmt, args);
	va_end(args);
	
	logOutput(MPR_LOC_PASS(ctx, loc), MPR_ERROR_MSG | MPR_ERROR_SRC, 0, buf);

	mprFree(buf);
}
Exemplo n.º 12
0
void espError(EspRequest *ep, char *fmt, ...)
{
	va_list		args;
	char		*buf;

	mprAssert(ep);
	mprAssert(fmt);

	va_start(args, fmt);
	mprAllocVsprintf(&buf, MPR_MAX_HEAP_SIZE, fmt, args);
	ejsSetErrorMsg(ep->eid, buf);
	mprFree(buf);
	va_end(args);
}
Exemplo n.º 13
0
EjsVar *ejsCreateException(Ejs *ejs, int slot, cchar *fmt, va_list fmtArgs)
{
    EjsType     *type;
    EjsVar      *error;
    char        *buf;

#if DEBUG_IDE
    mprBreakpoint(0, 0);
#endif

    mprAssert(ejs->exception == 0);

    if (ejs->exception) {
        mprAllocVsprintf(ejs, &buf, 0, fmt, fmtArgs);
        mprError(ejs, "Double exception: %s", buf);
        return ejs->exception;
    }

    if (!ejs->initialized || (ejs->flags & EJS_FLAG_EMPTY)) {
        mprAllocVsprintf(ejs, &buf, 0, fmt, fmtArgs);
        mprError(ejs, "Exception: %s", buf);
        return ejs->exception;
    }

    type = (EjsType*) ejsGetProperty(ejs, ejs->global, slot);

    if (type == 0) {
        type = ejs->errorType;
    }

    error = createException(ejs, type, fmt, fmtArgs);

    if (error) {
        ejsThrowException(ejs, error);
    }
    return error;
}
Exemplo n.º 14
0
int espWriteFmt(EspRequest *ep, char *fmt, ...)
{
	va_list		args;
	char		*buf;
	int			rc, len;

	mprAssert(ep);
	mprAssert(fmt);

	va_start(args, fmt);
	len = mprAllocVsprintf(&buf, MPR_MAX_HEAP_SIZE, fmt, args);
	rc = ep->esp->writeBlock(ep->requestHandle, buf, len);
	mprFree(buf);
	va_end(args);
	return rc;
}
Exemplo n.º 15
0
void ejsSetWebHeader(Ejs *ejs, bool allowMultiple, cchar *key, cchar *fmt, ...)
{
    EjsWeb     *web;
    char            *value;
    va_list         vargs;

    mprAssert(ejs);

    web = ejsGetHandle(ejs);
    mprAssert(web->control->setHeader);

    va_start(vargs, fmt);
    mprAllocVsprintf(web, &value, -1, fmt, vargs);

    web->control->setHeader(web->handle, allowMultiple, key, value);
}
Exemplo n.º 16
0
void mprLog(MprCtx ctx, int level, const char *fmt, ...)
{
	va_list		args;
	char		*buf;

	if (level > mprGetLogLevel(ctx)) {
		return;
	}

	va_start(args, fmt);
	mprAllocVsprintf(MPR_LOC_ARGS(ctx), &buf, 0, fmt, args);
	va_end(args);

	logOutput(MPR_LOC_ARGS(ctx), MPR_LOG_SRC, level, buf);

	va_end(args);
	mprFree(buf);
}
Exemplo n.º 17
0
/*
 *  Return an error to the client
 */
void ejsWebError(Ejs *ejs, int code, cchar *fmt, ...)
{
    EjsWeb      *web;
    va_list     args;
    char        *buf;

    mprAssert(ejs);
    mprAssert(fmt);

    va_start(args, fmt);
    mprAllocVsprintf(ejs, &buf, -1, fmt, args);
    web = ejsGetHandle(ejs);

    if (web->control->error) {
        web->control->error(web->handle, code, buf);
    }
    mprFree(buf);
    va_end(args);
}
Exemplo n.º 18
0
void mprFatalError(MPR_LOC_DEC(ctx, loc), const char *fmt, ...)
{
	va_list		args;
	char		*buf;
	int			len;

	va_start(args, fmt);
	len = mprAllocVsprintf(MPR_LOC_ARGS(ctx), &buf, 0, fmt, args);
	va_end(args);
	
	logOutput(MPR_LOC_PASS(ctx, loc), MPR_USER_MSG | MPR_FATAL_SRC, 0, buf);

	mprFree(buf);

#if BREW
	mprSignalExit(ctx);
#else
	exit(2);
#endif
}
Exemplo n.º 19
0
int mprFprintf(MprFile *file, const char *fmt, ...)
{
	va_list		ap;
	char		*buf;
	int			len;

	if (file == 0) {
		return MPR_ERR_BAD_HANDLE;
	}

	va_start(ap, fmt);
	len = mprAllocVsprintf(MPR_LOC_ARGS(file), &buf, 0, fmt, ap);
	va_end(ap);

	if (len >= 0) {
		len = mprWrite(file, buf, len);
	}
	mprFree(buf);
	return len;
}
Exemplo n.º 20
0
int mprErrorPrintf(MprCtx ctx, const char *fmt, ...)
{
	va_list		ap;
	char		*buf;
	int			len;
	MprApp		*app;

	/* No asserts here as this is used as part of assert reporting */

	app = mprGetApp(ctx);

	va_start(ap, fmt);
	len = mprAllocVsprintf(MPR_LOC_ARGS(ctx), &buf, 0, fmt, ap);
	va_end(ap);
	if (len >= 0 && app->error) {
		len = mprWrite(app->error, buf, len);
	}
	mprFree(buf);

	return len;
}
Exemplo n.º 21
0
int ejsWrite(Ejs *ejs, cchar *fmt, ...)
{
    EjsWeb     *web;
    va_list     args;
    char        *buf;
    int         rc, len;

    mprAssert(ejs);
    mprAssert(fmt);

    web = ejsGetHandle(ejs);
    mprAssert(web->control->write);

    va_start(args, fmt);
    len = mprAllocVsprintf(web, &buf, -1, fmt, args);
    rc = web->control->write(web->handle, buf, len);
    mprFree(buf);
    va_end(args);

    return rc;
}