Listing 13: main.c (reworked to start SOAP server).

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include "SocketServer.h"
#include "SOAPServer.h" // New

#define PORT    6069

void cleanExit(int sig);
int main(int argc, char **argv)
{
    signal( SIGTERM, cleanExit );
    signal( SIGINT, cleanExit );
    // New.  Call non-blocking SOAP server
    if (startSOAPServer() < 0) {
        fprintf(stderr, "SOAP server failed\n");
        exit(EXIT_FAILURE);
    }
    // If all is well, then this never returns
    if (startSocketServer(PORT) < 0) {
        fprintf(stderr, "Socked server failed\n");
        exit(EXIT_FAILURE);
    }
}
void cleanExit(int sig)
{
    fprintf(stdout, "\nShutting down ...\n");
    stopSOAPServer();   // New
    exit(EXIT_SUCCESS);
}