Author: pnoltes
Date: Tue Dec 11 17:58:35 2012
New Revision: 1420306

URL: http://svn.apache.org/viewvc?rev=1420306&view=rev
Log:
CELIX-44: 
 - added parent pool for socket memory pool creating. Creating with NULL as 
parent will give segfault in some cases
 - fixed bug for uninitialized var
 - Added a print errors for closing connections
 - Corrected CMakeLists dependency order

Modified:
    incubator/celix/trunk/CMakeLists.txt
    incubator/celix/trunk/remote_shell/private/src/connection_listener.c
    incubator/celix/trunk/remote_shell/private/src/remote_shell.c
    incubator/celix/trunk/remote_shell/private/src/shell_mediator.c

Modified: incubator/celix/trunk/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/CMakeLists.txt?rev=1420306&r1=1420305&r2=1420306&view=diff
==============================================================================
--- incubator/celix/trunk/CMakeLists.txt (original)
+++ incubator/celix/trunk/CMakeLists.txt Tue Dec 11 17:58:35 2012
@@ -42,9 +42,9 @@ add_subdirectory(examples)
 add_subdirectory(device_access)
 add_subdirectory(deployment_admin)
 add_subdirectory(remote_services)
+add_subdirectory(remote_shell)
 add_subdirectory(shell_tui)
 add_subdirectory(shell)
-add_subdirectory(remote_shell)
 add_subdirectory(log_writer)
 add_subdirectory(log_service)
 

Modified: incubator/celix/trunk/remote_shell/private/src/connection_listener.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/remote_shell/private/src/connection_listener.c?rev=1420306&r1=1420305&r2=1420306&view=diff
==============================================================================
--- incubator/celix/trunk/remote_shell/private/src/connection_listener.c 
(original)
+++ incubator/celix/trunk/remote_shell/private/src/connection_listener.c Tue 
Dec 11 17:58:35 2012
@@ -157,7 +157,7 @@ static void* APR_THREAD_FUNC connection_
                if (status == APR_SUCCESS) {
                        acceptedSocket = NULL;
                        apr_pool_t *socketPool = NULL;
-                       apr_pool_create(&socketPool, NULL);
+                       apr_pool_create(&socketPool, instance->pool);
                        apr_status_t socketStatus = 
apr_socket_accept(&acceptedSocket, listenSocket, socketPool);
                        printf("REMOTE_SHELL: created connection socket\n");
                        if (socketStatus == APR_SUCCESS) {

Modified: incubator/celix/trunk/remote_shell/private/src/remote_shell.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/remote_shell/private/src/remote_shell.c?rev=1420306&r1=1420305&r2=1420306&view=diff
==============================================================================
--- incubator/celix/trunk/remote_shell/private/src/remote_shell.c (original)
+++ incubator/celix/trunk/remote_shell/private/src/remote_shell.c Tue Dec 11 
17:58:35 2012
@@ -137,17 +137,22 @@ celix_status_t remoteShell_addConnection
 
 celix_status_t remoteShell_stopConnections(remote_shell_t instance) {
        celix_status_t status = CELIX_SUCCESS;
+       apr_status_t wakeupStatus = APR_SUCCESS;
+       char error[64];
 
        apr_thread_mutex_lock(instance->mutex);
        int length = arrayList_size(instance->connections);
        for (int i = 0; i < length; i += 1) {
                connection_t connection = arrayList_get(instance->connections, 
i);
-               apr_pollset_wakeup(connection->pollset);
+               wakeupStatus = apr_pollset_wakeup(connection->pollset);
+               if (wakeupStatus != APR_SUCCESS) {
+                       apr_strerror(wakeupStatus, error, 64);
+                       printf("Error waking up connection %i: '%s'\n", i, 
error);
+               }
        }
        apr_thread_mutex_unlock(instance->mutex);
        apr_thread_pool_tasks_cancel(instance->threadPool,instance);
 
-
        return status;
 }
 

Modified: incubator/celix/trunk/remote_shell/private/src/shell_mediator.c
URL: 
http://svn.apache.org/viewvc/incubator/celix/trunk/remote_shell/private/src/shell_mediator.c?rev=1420306&r1=1420305&r2=1420306&view=diff
==============================================================================
--- incubator/celix/trunk/remote_shell/private/src/shell_mediator.c (original)
+++ incubator/celix/trunk/remote_shell/private/src/shell_mediator.c Tue Dec 11 
17:58:35 2012
@@ -105,7 +105,7 @@ static void shellMediator_writeOnCurrent
 }
 
 celix_status_t shellMediator_executeCommand(shell_mediator_t instance, char 
*command, apr_socket_t *socket) {
-       apr_status_t status;
+       apr_status_t status = CELIX_SUCCESS;
 
        apr_thread_mutex_lock(instance->mutex);
        if (instance->shellService != NULL) {


Reply via email to