response_codes melted_command_get_error( command_argument cmd ) { response_codes ret = mvcp_response_get_error_code( cmd->response ); if ( ret == RESPONSE_SUCCESS_N || ret == RESPONSE_SUCCESS_1 ) ret = RESPONSE_SUCCESS; return ret; }
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; }
static mvcp_response mvcp_remote_connect( mvcp_remote remote ) { mvcp_response response = NULL; mvcp_remote_disconnect( remote ); if ( !remote->connected ) { #ifndef WIN32 signal( SIGPIPE, SIG_IGN ); #endif remote->socket = mvcp_socket_init( remote->server, remote->port ); remote->status = mvcp_socket_init( remote->server, remote->port ); if ( mvcp_socket_connect( remote->socket ) == 0 ) { response = mvcp_response_init( ); mvcp_remote_read_response( remote->socket, response ); } if ( 0 && response != NULL && mvcp_socket_connect( remote->status ) == 0 ) { mvcp_response status_response = mvcp_response_init( ); mvcp_remote_read_response( remote->status, status_response ); if ( mvcp_response_get_error_code( status_response ) == 100 ) pthread_create( &remote->thread, NULL, mvcp_remote_status_thread, remote ); mvcp_response_close( status_response ); remote->connected = 1; } } return response; }
response_codes melted_run( command_argument cmd_arg ) { mvcp_response temp = mvcp_parser_run( cmd_arg->parser, (char *)cmd_arg->argument ); if ( temp != NULL ) { int index = 0; mvcp_response_set_error( cmd_arg->response, mvcp_response_get_error_code( temp ), mvcp_response_get_error_string( temp ) ); for ( index = 1; index < mvcp_response_count( temp ); index ++ ) mvcp_response_printf( cmd_arg->response, 10240, "%s\n", mvcp_response_get_line( temp, index ) ); mvcp_response_close( temp ); } return mvcp_response_get_error_code( cmd_arg->response ); }