1. Changed osrfLogFacilityToInt() so that it accepts
authorscottmk <scottmk@9efc2488-bf62-4759-914b-345cdb29e865>
Mon, 28 Sep 2009 12:26:21 +0000 (12:26 +0000)
committerscottmk <scottmk@9efc2488-bf62-4759-914b-345cdb29e865>
Mon, 28 Sep 2009 12:26:21 +0000 (12:26 +0000)
a const pointer.

2. Added the const qualifier to various variables.

3. In osrf_router_main.c: Removed three inappropriate
calls to free().  Some memory leaks remain, where we
fetch some cloned jsonObjects from jsonObjectFindPath()
and don't free them.

M    include/opensrf/log.h
M    src/router/osrf_router_main.c
M    src/gateway/osrf_http_translator.c
M    src/libopensrf/osrf_prefork.c
M    src/libopensrf/log.c
M    src/libopensrf/osrf_application.c

git-svn-id: svn://svn.open-ils.org/OpenSRF/trunk@1797 9efc2488-bf62-4759-914b-345cdb29e865

include/opensrf/log.h
src/gateway/osrf_http_translator.c
src/libopensrf/log.c
src/libopensrf/osrf_application.c
src/libopensrf/osrf_prefork.c
src/router/osrf_router_main.c

index a50e21e..8463708 100644 (file)
@@ -94,7 +94,7 @@ void osrfLogSetActivityEnabled( int enabled );
 /* returns the int representation of the log facility based on the facility name
  * if the facility name is invalid, LOG_LOCAL0 is returned 
  */
-int osrfLogFacilityToInt( char* facility );
+int osrfLogFacilityToInt( const char* facility );
 
 #ifdef __cplusplus
 }
index d794d08..df2d273 100644 (file)
@@ -194,8 +194,8 @@ static int osrfHttpTranslatorSetTo(osrfHttpTranslator* trans) {
             sessionCache = osrfCacheGetObject(trans->thread);
 
             if(sessionCache) {
-                char* ipAddr = jsonObjectGetString(jsonObjectGetKey(sessionCache, "ip"));
-                char* recipient = jsonObjectGetString(jsonObjectGetKey(sessionCache, "jid"));
+                const char* ipAddr = jsonObjectGetString(jsonObjectGetKey(sessionCache, "ip"));
+                const char* recipient = jsonObjectGetString(jsonObjectGetKey(sessionCache, "jid"));
 
                 // choosing a specific recipient address requires that the recipient and 
                 // thread be cached on the server (so drone processes cannot be hijacked)
index aca653e..7cb9232 100644 (file)
@@ -299,7 +299,7 @@ static void _osrfLogToFile( const char* msg, ... ) {
 }
 
 
-int osrfLogFacilityToInt( char* facility ) {
+int osrfLogFacilityToInt( const char* facility ) {
        if(!facility) return LOG_LOCAL0;
        if(strlen(facility) < 6) return LOG_LOCAL0;
        switch( facility[5] ) {
index b4dde46..d25eeec 100644 (file)
@@ -452,7 +452,7 @@ static int _osrfAppRunSystemMethod(osrfMethodContext* ctx) {
 static int osrfAppIntrospect( osrfMethodContext* ctx ) {
 
        jsonObject* resp = NULL;
-       char* methodSubstring = jsonObjectGetString( jsonObjectGetIndex(ctx->params, 0) );
+       const char* methodSubstring = jsonObjectGetString( jsonObjectGetIndex(ctx->params, 0) );
        osrfApplication* app = _osrfAppFindApplication( ctx->session->remote_service );
        int len = 0;
 
index ce19e35..7cfd535 100644 (file)
@@ -158,14 +158,14 @@ static void osrf_prefork_send_router_registration(const char* appname, const cha
 /** parses a single "complex" router configuration chunk */
 static void osrf_prefork_parse_router_chunk(const char* appname, jsonObject* routerChunk) {
 
-       char* routerName = jsonObjectGetString(jsonObjectGetKey(routerChunk, "name"));
-       char* domain = jsonObjectGetString(jsonObjectGetKey(routerChunk, "domain"));
-       jsonObject* services = jsonObjectGetKey(routerChunk, "services");
+       const char* routerName = jsonObjectGetString(jsonObjectGetKeyConst(routerChunk, "name"));
+       const char* domain = jsonObjectGetString(jsonObjectGetKeyConst(routerChunk, "domain"));
+       const jsonObject* services = jsonObjectGetKeyConst(routerChunk, "services");
        osrfLogDebug(OSRF_LOG_MARK, "found router config with domain %s and name %s", routerName, domain);
 
        if( services && services->type == JSON_HASH ) {
                osrfLogDebug(OSRF_LOG_MARK, "investigating router information...");
-               jsonObject* service_obj = jsonObjectGetKey(services, "service");
+               const jsonObject* service_obj = jsonObjectGetKeyConst(services, "service");
                if( !service_obj )
                        ;    // do nothing (shouldn't happen)
                else if( JSON_ARRAY == service_obj->type ) {
index d15f164..db4a299 100644 (file)
@@ -84,15 +84,15 @@ int setupRouter(jsonObject* configChunk) {
     if(!jsonObjectGetKey(configChunk, "transport"))
         return 0; /* these are not the configs you're looking for */
 
-       char* server = jsonObjectGetString(jsonObjectFindPath(configChunk, "/transport/server"));
-       char* port = jsonObjectGetString(jsonObjectFindPath(configChunk, "/transport/port"));
-       char* username = jsonObjectGetString(jsonObjectFindPath(configChunk, "/transport/username"));
-       char* password = jsonObjectGetString(jsonObjectFindPath(configChunk, "/transport/password"));
-       char* resource = jsonObjectGetString(jsonObjectFindPath(configChunk, "/transport/resource"));
+       const char* server   = jsonObjectGetString(jsonObjectFindPath(configChunk, "/transport/server"));
+       const char* port     = jsonObjectGetString(jsonObjectFindPath(configChunk, "/transport/port"));
+       const char* username = jsonObjectGetString(jsonObjectFindPath(configChunk, "/transport/username"));
+       const char* password = jsonObjectGetString(jsonObjectFindPath(configChunk, "/transport/password"));
+       const char* resource = jsonObjectGetString(jsonObjectFindPath(configChunk, "/transport/resource"));
 
-       char* level = jsonObjectGetString(jsonObjectFindPath(configChunk, "/loglevel"));
-       char* log_file = jsonObjectGetString(jsonObjectFindPath(configChunk, "/logfile"));
-       char* facility = jsonObjectGetString(jsonObjectFindPath(configChunk, "/syslog"));
+       const char* level    = jsonObjectGetString(jsonObjectFindPath(configChunk, "/loglevel"));
+       const char* log_file = jsonObjectGetString(jsonObjectFindPath(configChunk, "/logfile"));
+       const char* facility = jsonObjectGetString(jsonObjectFindPath(configChunk, "/syslog"));
 
        int llevel = 1;
        if(level) llevel = atoi(level);
@@ -108,10 +108,6 @@ int setupRouter(jsonObject* configChunk) {
                osrfLogSetFile( log_file );
        }
 
-       free(facility);
-       free(level);
-       free(log_file);
-
        osrfLogInfo(  OSRF_LOG_MARK, "Router connecting as: server: %s port: %s "
                        "user: %s resource: %s", server, port, username, resource );
 
@@ -128,24 +124,24 @@ int setupRouter(jsonObject* configChunk) {
 
     if(tserversList->type == JSON_ARRAY) {
            for( i = 0; i != tserversList->size; i++ ) {
-            char* serverDomain = jsonObjectGetString(jsonObjectGetIndex(tserversList, i));
+            const char* serverDomain = jsonObjectGetString(jsonObjectGetIndex(tserversList, i));
                    osrfLogInfo( OSRF_LOG_MARK,  "Router adding trusted server: %s", serverDomain);
             osrfStringArrayAdd(tservers, serverDomain);
         }
     } else {
-        char* serverDomain = jsonObjectGetString(tserversList);
+        const char* serverDomain = jsonObjectGetString(tserversList);
         osrfLogInfo( OSRF_LOG_MARK,  "Router adding trusted server: %s", serverDomain);
         osrfStringArrayAdd(tservers, serverDomain);
     }
 
     if(tclientsList->type == JSON_ARRAY) {
            for( i = 0; i != tclientsList->size; i++ ) {
-            char* clientDomain = jsonObjectGetString(jsonObjectGetIndex(tclientsList, i));
+            const char* clientDomain = jsonObjectGetString(jsonObjectGetIndex(tclientsList, i));
                    osrfLogInfo( OSRF_LOG_MARK,  "Router adding trusted client: %s", clientDomain);
             osrfStringArrayAdd(tclients, clientDomain);
         }
     } else {
-        char* clientDomain = jsonObjectGetString(tclientsList);
+        const char* clientDomain = jsonObjectGetString(tclientsList);
         osrfLogInfo( OSRF_LOG_MARK,  "Router adding trusted client: %s", clientDomain);
         osrfStringArrayAdd(tclients, clientDomain);
     }