Esempio n. 1
0
static int mvcp_remote_read_response( mvcp_socket socket, mvcp_response response )
{
	char temp[ 10240 ];
	int length;
	int terminated = 0;

	temp[ 0 ] = '\0';
	while ( !terminated && ( length = mvcp_socket_read_data( socket, temp, sizeof( temp ) - 1 ) ) >= 0 )
	{
		int position = 0;
		temp[ length ] = '\0';
		mvcp_response_write( response, temp, length );
		position = mvcp_response_count( response ) - 1;
		if ( position < 0 || temp[ strlen( temp ) - 1 ] != '\n' )
			continue;
		switch( mvcp_response_get_error_code( response ) )
		{
			case 201:
			case 500:
				terminated = !strcmp( mvcp_response_get_line( response, position ), "" );
				break;
			case 202:
				terminated = mvcp_response_count( response ) >= 2;
				break;
			default:
				terminated = 1;
				break;
		}
	}

	return 0;
}
Esempio n. 2
0
int mvcp_response_printf( mvcp_response response, size_t size, const char *format, ... )
{
	int length = 0;
	char *text = malloc( size );
	if ( text != NULL )
	{
		va_list list;
		va_start( list, format );
		length = vsnprintf( text, size, format, list );
		if ( length != 0 )
			mvcp_response_write( response, text, length );
		va_end( list );
		free( text );
	}
	return length;
}