示例#1
0
void
tr_deepLog( const char  * file,
            int           line,
            const char  * name,
            const char  * fmt,
            ... )
{
    FILE * fp = tr_getLog( );
    if( fp || IsDebuggerPresent( ) )
    {
        va_list           args;
        char              timestr[64];
        struct evbuffer * buf = evbuffer_new( );
        char *            base = tr_basename( file );

        evbuffer_add_printf( buf, "[%s] ",
                            tr_getLogTimeStr( timestr, sizeof( timestr ) ) );
        if( name )
            evbuffer_add_printf( buf, "%s ", name );
        va_start( args, fmt );
        evbuffer_add_vprintf( buf, fmt, args );
        va_end( args );
        evbuffer_add_printf( buf, " (%s:%d)\n", base, line );
        /* FIXME(libevent2) ifdef this out for nonwindows platforms */
        OutputDebugString( EVBUFFER_DATA( buf ) );
        if(fp) /* FIXME(libevent2) tr_getLog() should return an fd, then use evbuffer_write() here ) */
            (void) fwrite( EVBUFFER_DATA( buf ), 1, EVBUFFER_LENGTH( buf ), fp );

        tr_free( base );
        evbuffer_free( buf );
    }
}
示例#2
0
void
tr_deepLog( const char  * file,
            int           line,
            const char  * name,
            const char  * fmt,
            ... )
{
    FILE * fp = tr_getLog( );
    if( fp || IsDebuggerPresent( ) )
    {
        va_list           args;
        char              timestr[64];
        struct evbuffer * buf = evbuffer_new( );
        char *            base = tr_basename( file );

        evbuffer_add_printf( buf, "[%s] ",
                            tr_getLogTimeStr( timestr, sizeof( timestr ) ) );
        if( name )
            evbuffer_add_printf( buf, "%s ", name );
        va_start( args, fmt );
        evbuffer_add_vprintf( buf, fmt, args );
        va_end( args );
        evbuffer_add_printf( buf, " (%s:%d)\n", base, line );
        /* FIXME(libevent2) ifdef this out for nonwindows platforms */
        OutputDebugString( evbuffer_pullup( buf, -1 ) );
        if( fp )
            fputs( (const char*)evbuffer_pullup( buf, -1 ), fp );

        tr_free( base );
        evbuffer_free( buf );
    }
}
示例#3
0
void
tr_logAddDeep (const char  * file,
               int           line,
               const char  * name,
               const char  * fmt,
               ...)
{
  const tr_sys_file_t fp = tr_logGetFile ();
  if (fp != TR_BAD_SYS_FILE || IsDebuggerPresent ())
    {
      va_list args;
      char timestr[64];
      char * message;
      size_t message_len;
      struct evbuffer * buf = evbuffer_new ();
      char * base = tr_sys_path_basename (file, NULL);

      evbuffer_add_printf (buf, "[%s] ",
                           tr_logGetTimeStr (timestr, sizeof (timestr)));
      if (name)
        evbuffer_add_printf (buf, "%s ", name);
      va_start (args, fmt);
      evbuffer_add_vprintf (buf, fmt, args);
      va_end (args);
      evbuffer_add_printf (buf, " (%s:%d)" TR_NATIVE_EOL_STR, base, line);
      /* FIXME (libevent2) ifdef this out for nonwindows platforms */
      message = evbuffer_free_to_str (buf, &message_len);
      OutputDebugStringA (message);
      if (fp != TR_BAD_SYS_FILE)
        tr_sys_file_write (fp, message, message_len, NULL, NULL);

      tr_free (message);
      tr_free (base);
    }
}
示例#4
0
void
tr_logAddDeep (const char  * file,
               int           line,
               const char  * name,
               const char  * fmt,
               ...)
{
  FILE * fp = tr_logGetFile ();
  if (fp || IsDebuggerPresent ())
    {
      va_list args;
      char timestr[64];
      char * message;
      struct evbuffer * buf = evbuffer_new ();
      char * base = tr_basename (file);

      evbuffer_add_printf (buf, "[%s] ",
                           tr_logGetTimeStr (timestr, sizeof (timestr)));
      if (name)
        evbuffer_add_printf (buf, "%s ", name);
      va_start (args, fmt);
      evbuffer_add_vprintf (buf, fmt, args);
      va_end (args);
      evbuffer_add_printf (buf, " (%s:%d)\n", base, line);
      /* FIXME (libevent2) ifdef this out for nonwindows platforms */
      message = evbuffer_free_to_str (buf);
      OutputDebugStringA (message);
      if (fp)
        fputs (message, fp);

      tr_free (message);
      tr_free (base);
    }
}
示例#5
0
文件: util.c 项目: dobesv/restgres
int
evbuffer_add_netstring_vprintf(struct evbuffer *buf, const char *fmt, va_list ap)
{
	struct evbuffer *temp = evbuffer_new();
	int rc = evbuffer_add_vprintf(temp, fmt, ap);
	evbuffer_add_netstring_buffer(buf, temp, true);
	evbuffer_free(temp);
	return rc;
}
示例#6
0
static void http_send(struct evhttp_request *request, const char *fmt, ...) {
    struct evbuffer *buffer = evbuffer_new();
    evhttp_add_header(request->output_headers, "Content-Type", "TEXT/XML; charset=UTF8");
    va_list ap;
    va_start(ap, fmt);
    evbuffer_add_vprintf(buffer, fmt, ap);
    va_end(ap);
    evhttp_send_reply(request, HTTP_OK, "", buffer);
    evbuffer_free(buffer);
}
示例#7
0
文件: control.c 项目: bholt/tmux
void
control_write_printf(struct client *c, const char *format, ...)
{
	va_list	argp;
	va_start(argp, format);

	evbuffer_add_vprintf(c->stdout_event->output, format, argp);

	va_end(argp);
}
示例#8
0
文件: control.c 项目: bholt/tmux
void printflike2
control_msg_print(struct cmd_ctx *ctx, const char *fmt, ...)
{
	va_list	ap;

	va_start(ap, fmt);
	evbuffer_add_vprintf(ctx->curclient->stdout_event->output, fmt, ap);
	va_end(ap);

	bufferevent_write(ctx->curclient->stdout_event, "\n", 1);
}
示例#9
0
int
evbuffer_add_printf (struct evbuffer *buf, const char *fmt, ...)
{
    int res = -1;
    va_list ap;

    va_start (ap, fmt);
    res = evbuffer_add_vprintf (buf, fmt, ap);
    va_end (ap);

    return (res);
}
示例#10
0
/* Write a line. */
void printflike2
control_write(struct client *c, const char *fmt, ...)
{
	va_list		 ap;

	va_start(ap, fmt);
	evbuffer_add_vprintf(c->stdout_data, fmt, ap);
	va_end(ap);

	evbuffer_add(c->stdout_data, "\n", 1);
	server_push_stdout(c);
}
示例#11
0
/* Command print callback. */
void printflike2
control_msg_print(struct cmd_ctx *ctx, const char *fmt, ...)
{
	struct client	*c = ctx->curclient;
	va_list		 ap;

	va_start(ap, fmt);
	evbuffer_add_vprintf(c->stdout_data, fmt, ap);
	va_end(ap);

	evbuffer_add(c->stdout_data, "\n", 1);
	server_push_stdout(c);
}
示例#12
0
    void Connection::writeFormat( const char* format, ... )
    {
        TRACE_ENTERLEAVE();
        
        va_list args;
        va_start(args, format);

        vprintf( format, args );

        int written = evbuffer_add_vprintf( m_output, format, args );

        va_end(args);
    }
示例#13
0
文件: client.c 项目: schoentoon/mtop
void client_send_data(struct client* client, char* line, ...) {
  va_list arg;
  va_start(arg, line);
  if (client->websocket && client->websocket->connected) {
    char data[1024*1024];
    size_t length = vsnprintf(data, sizeof(data), line, arg);
    encode_and_send_websocket(client, data, length);
  } else {
    struct evbuffer* output = bufferevent_get_output(client->bev);
    evbuffer_add_vprintf(output, line, arg);
    evbuffer_add(output, "\n", 2);
  }
  va_end(arg);
};
示例#14
0
void
zxy_printf_content(
        zxy_request_context *context,
        const char* fmt,
        ...
        )
{
    evhtp_header_t *header = evhtp_headers_find_header(
            context->request->headers_out,
            "Content-Type"
            );
    if ( header == NULL )
    {
        zxy_add_http_header(context, "Content-Type", "text/html");
    }
    va_list args;
    va_start(args, fmt);
    evbuffer_add_vprintf(context->request->buffer_out, fmt, args);
    va_end(args);
}
示例#15
0
static void add_to_log_buffer(struct async_syslog_state* state, int priority, const char *format, va_list ap) {
	struct evbuffer* buffer = state->buffers[state->buffer_put];
	struct timeval tv;
	char ctime_buf[27];

	if (event_base_gettimeofday_cached(state->base, &tv))
		return;

	priority |= state->facility;
	ctime_r(&tv.tv_sec, ctime_buf);
	if (state->option & LOG_PID)
        	evbuffer_add_printf(buffer, "<%d>%.15s %s[%d]: ", priority, ctime_buf + 4, state->ident, getpid());
	else
		evbuffer_add_printf(buffer, "<%d>%.15s %s: ", priority, ctime_buf + 4, state->ident);

	evbuffer_add_vprintf(buffer, format, ap);
	if (state->sock_type == SOCK_STREAM)
		evbuffer_add_printf(buffer, "%c", 0);

	state->buffer_put += 1;
	state->buffer_put %= ASYNC_SYSLOG_BUFFER_SIZE;
	state->buffers_empty = 0;
}