Ejemplo n.º 1
0
void
end_log_block(logger_t* logger)
{
	lstring_t* block_name;
	
	--logger->num_blocks;
	block_name = logger->blocks[logger->num_blocks].name;
	write_log_line(logger, "END", lstring_cstr(block_name));
	free_lstring(block_name);
}
Ejemplo n.º 2
0
static duk_ret_t
js_Logger_write(duk_context* ctx)
{
	const char* text = duk_to_string(ctx, 0);
	
	logger_t* logger;

	duk_push_this(ctx);
	logger = duk_require_sphere_obj(ctx, -1, "Logger");
	write_log_line(logger, NULL, text);
	return 0;
}
Ejemplo n.º 3
0
int ps4sh_log_read(int fd)
{
	int ret;
	int size = sizeof(struct sockaddr_in);
	static char buf[1024];
	static int loc = 0;
	struct sockaddr_in dest_addr;

	if(loc == 0)
		memset(buf, 0x0, sizeof(buf));

	memset(&(dest_addr), '\0', size);

	/* Receive from, size must be at least 1 smaller 
		than buffer for a NULL */
	ret = recvfrom(fd, buf + loc, sizeof(buf) - loc - 1, 0,(struct sockaddr *)&dest_addr, &size);

	if (ret == -1) 
	{
		debugNetPrintf(ERROR,"recvfrom error %s\n",strerror(errno));
	}

	loc += ret;

	if (log_to_file) 
	{
		write(log_f_fd, buf, strlen(buf));
		loc = 0;
	/* log to file isn't line orientated */
	} 
	else 
	{
		if(((strchr(buf, '\n')) || (sizeof(buf) - loc - 1) <= 0))
		{
		/* Ideally we want entire lines but just in case check 
		 for NL at end of string */
			int str_size = strlen(buf);
			if(buf[str_size - 1] != '\n')
				buf[str_size - 1] = '\n';

			write_log_line(buf);
			fflush(stdout);
			loc = 0;
		}
	}
	return ret;
}
Ejemplo n.º 4
0
bool
begin_log_block(logger_t* logger, const char* title)
{
	lstring_t*        block_name;
	struct log_block* blocks;
	int               new_count;
	
	new_count = logger->num_blocks + 1;
	if (new_count > logger->max_blocks) {
		if (!(blocks = realloc(logger->blocks, new_count * 2))) return false;
		logger->blocks = blocks;
		logger->max_blocks = new_count * 2;
	}
	if (!(block_name = lstring_from_cstr(title))) return false;
	write_log_line(logger, "BEGIN", lstring_cstr(block_name));
	logger->blocks[logger->num_blocks].name = block_name;
	++logger->num_blocks;
	return true;
}