Second patch for oils_requestor.c from Scott McKellar; fixes parsing with
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 28 May 2007 14:27:36 +0000 (14:27 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Mon, 28 May 2007 14:27:36 +0000 (14:27 +0000)
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

Open-ILS/src/extras/oils_requestor.c

index a6d2d98..a07ebc3 100644 (file)
@@ -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;
 }