Changeset 511

Show
Ignore:
Timestamp:
07/25/08 12:00:57 (4 months ago)
Author:
bellmich
Message:

more aggressive configuration checks for http server transport

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/libsyncml/transports/http_server.c

    r497 r511  
    249249        smlAssert(tsp->transport_data); 
    250250        SmlTransportHttpServerEnv *env = tsp->transport_data;    
     251 
     252        if (!tsp->context) 
     253        { 
     254                smlErrorSet(error, SML_ERROR_MISCONFIGURATION, 
     255                        "HTTP server runs only in asynchronous mode. So the context must be set."); 
     256                goto error_free_env; 
     257        } 
     258        if (!env->port) 
     259        { 
     260                smlErrorSet(error, SML_ERROR_MISCONFIGURATION, 
     261                        "The HTTP server needs a port where it has to run."); 
     262                goto error_free_env; 
     263        } 
    251264         
    252265        g_type_init(); 
    253266         
    254267        smlTrace(TRACE_INTERNAL, "config: port %i, url %s", env->port, env->url); 
    255          
    256268        smlTrace(TRACE_INTERNAL, "http server uses context %p.", tsp->context); 
     269 
    257270        if(!env->ssl_key || !env->ssl_cert) { 
    258                 env->server = soup_server_new(SOUP_SERVER_ASYNC_CONTEXT, tsp->context, SOUP_SERVER_PORT, env->port, NULL); 
     271                env->server = soup_server_new( 
     272                                SOUP_SERVER_ASYNC_CONTEXT, tsp->context, 
     273                                SOUP_SERVER_PORT, env->port, 
     274                                NULL); 
    259275        } else { 
    260                 env->server = soup_server_new(SOUP_SERVER_ASYNC_CONTEXT, tsp->context, SOUP_SERVER_PORT, env->port, SOUP_SERVER_SSL_CERT_FILE, env->ssl_cert, SOUP_SERVER_SSL_KEY_FILE, env->ssl_key, NULL); 
     276                env->server = soup_server_new( 
     277                                SOUP_SERVER_ASYNC_CONTEXT, tsp->context, 
     278                                SOUP_SERVER_PORT, env->port, 
     279                                SOUP_SERVER_SSL_CERT_FILE, env->ssl_cert, 
     280                                SOUP_SERVER_SSL_KEY_FILE, env->ssl_key, 
     281                                NULL); 
    261282        } 
    262283        if (!env->server) { 
  • trunk/tests/check_http.c

    r510 r511  
    133133        fail_unless(smlTransportSetConfigOption(tsp, "URL", "/test", &error), NULL); 
    134134         
     135        fail_unless(smlTransportRunAsync(tsp, &error), NULL); 
     136        fail_unless(error == NULL, NULL); 
     137 
    135138        fail_unless(smlTransportInitialize(tsp, &error), NULL); 
    136139        fail_unless(error == NULL, NULL); 
     
    156159        fail_unless(error != NULL, NULL); 
    157160        smlErrorDeref(&error); 
     161 
     162        fail_unless(smlTransportRunAsync(tsp, &error), NULL); 
     163        fail_unless(error == NULL, NULL); 
    158164 
    159165        /* The default config of libsoup can be used to setup a valid transport. */