From: miker Date: Mon, 28 May 2007 14:27:36 +0000 (+0000) Subject: Second patch for oils_requestor.c from Scott McKellar; fixes parsing with X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=d1c3329b66edcfca85d8c8bc9e06a52ba3b16314;p=Evergreen.git Second patch for oils_requestor.c from Scott McKellar; fixes parsing with regard to embeded spaces. Applied with minor change to use buffer_fadd() instead of multiple calls to buffer_add() and buffer_add_char(). http://list.georgialibraries.org/pipermail/open-ils-dev/2007-May/000832.html git-svn-id: svn://svn.open-ils.org/ILS/trunk@7364 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/extras/oils_requestor.c b/Open-ILS/src/extras/oils_requestor.c index a6d2d986fd..a07ebc33ce 100644 --- a/Open-ILS/src/extras/oils_requestor.c +++ b/Open-ILS/src/extras/oils_requestor.c @@ -90,20 +90,21 @@ static int do_request( char* request ) { char* service; char* method; char* tmp; - char* item; - growing_buffer* buffer = buffer_init(256); service = strtok_r(request, " ", &tmp); method = strtok_r(NULL, " ", &tmp); - while( (item = strtok_r(NULL, " ", &tmp)) ) - buffer_fadd(buffer, "%s", item); if( service && method ) { jsonObject* params = NULL; - if(buffer->n_used > 0) - params = jsonParseStringFmt("[%s]", buffer->buf); + if( *tmp ) { + growing_buffer* buffer = buffer_init(256); + buffer_fadd( buffer, "[%s]", tmp ); + params = jsonParseString( buffer->buf ); + buffer_free(buffer); + } + osrfAppSession* session = osrf_app_client_session_init(service); int req_id = osrf_app_session_make_req( session, params, method, 1, NULL ); osrfMessage* omsg; @@ -120,10 +121,9 @@ static int do_request( char* request ) { jsonObjectFree(params); } else { - fprintf(stderr, "STATMENT DOES NOT PARSE: %s\n", request); + fprintf(stderr, "STATEMENT DOES NOT PARSE: %s\n", request); } - buffer_free(buffer); return 0; }