~ubuntu-branches/ubuntu/trusty/sblim-sfcb/trusty-proposed

« back to all changes in this revision

Viewing changes to sfcBroker.c

  • Committer: Bazaar Package Importer
  • Author(s): Thierry Carrez
  • Date: 2009-06-08 12:04:49 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20090608120449-byfplk09rqz8rtg6
Tags: 1.3.3-0ubuntu1
* New upstream release.
* debian/rules: Removed rpath hacks, SFCB default build handles that now.
* Removed 1934753-remove-assignment.diff, now upstream.
* Refreshed patch cim-schema-location.diff

Show diffs side-by-side

added added

removed removed

Lines of Context:
53
53
static int startSLP = 1;
54
54
#endif
55
55
 
 
56
#ifdef LOCAL_CONNECT_ONLY_ENABLE
 
57
// from httpAdapter.c
 
58
int sfcBrokerPid=0;
 
59
#endif // LOCAL_CONNECT_ONLY_ENABLE
 
60
 
56
61
//#define USE_THREADS
57
62
 
58
63
// for use by thread in startHttpd, startDbpd
221
226
   stopLocalConnectServer();
222
227
   
223
228
   for(;;) {
224
 
      waitTime.tv_sec=time(NULL)+5;
225
 
      waitTime.tv_nsec=0;
226
229
 
227
230
      if (adaptersStopped==0) {
228
231
         pthread_mutex_lock(&sdMtx);
229
 
         if (sa==0) mlogf(M_INFO,M_SHOW,"--- Stopping adapters\n");
 
232
         waitTime.tv_sec=time(NULL)+5;
 
233
         waitTime.tv_nsec=0;
 
234
         if (sa==0) fprintf(stderr,"--- Stopping adapters\n");
230
235
         sa++;
231
236
         if (stopNextAdapter()) {
232
237
            rc=pthread_cond_timedwait(&sdCnd,&sdMtx,&waitTime);
240
245
      
241
246
      if (adaptersStopped) {
242
247
         pthread_mutex_lock(&sdMtx);
243
 
         if (sp==0) mlogf(M_INFO,M_SHOW,"--- Stopping providers\n");
 
248
         waitTime.tv_sec=time(NULL)+5;
 
249
         waitTime.tv_nsec=0;
 
250
         if (sp==0)  fprintf(stderr,"--- Stopping providers\n");
244
251
         sp++;
245
252
         if (stopNextProc()) {
246
253
            rc=pthread_cond_timedwait(&sdCnd,&sdMtx,&waitTime);
260
267
   
261
268
   if (restartBroker) {
262
269
      char *emsg=strerror(errno);
263
 
      mlogf(M_INFO,M_SHOW,"---\n");   
264
270
      execvp("sfcbd",restartArgv);
265
 
      mlogf(M_ERROR,M_SHOW,"--- execv for restart problem: %s\n",emsg);
 
271
      fprintf(stderr,"--- execv for restart problem: %s\n",emsg);
266
272
      abort();
267
273
   }
268
274
 
298
304
   pthread_attr_t tattr;
299
305
   
300
306
   if (sfcBrokerPid==currentProc) {    
301
 
      mlogf(M_INFO,M_SHOW, "--- Winding down %s\n", processName);
 
307
      fprintf(stderr,"--- Winding down %s\n", processName);
302
308
      pthread_attr_init(&tattr);
303
309
      pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_DETACHED);      
304
310
      pthread_create(&t, &tattr, (void *(*)(void *))stopBroker,NULL);
314
320
  
315
321
   if (sfcBrokerPid==currentProc) {    
316
322
      restartBroker=1;
317
 
      mlogf(M_INFO,M_SHOW, "--- Restarting %s\n", processName);
 
323
      fprintf(stderr,"--- Restarting %s\n", processName);
318
324
      pthread_attr_init(&tattr);
319
325
      pthread_attr_setdetachstate(&tattr, PTHREAD_CREATE_DETACHED);      
320
326
      pthread_create(&t, &tattr, (void *(*)(void *))stopBroker,NULL);
348
354
//         mlogf(M_INFO,M_SHOW,"sigchild %d\n",pid);
349
355
        if (testStartedAdapter(pid,&left)) { 
350
356
            if (left==0) {
351
 
               mlogf(M_INFO,M_SHOW,"--- Adapters stopped\n");
 
357
               fprintf(stderr,"--- Adapters stopped\n");
352
358
               adaptersStopped=1;
353
359
            }   
354
360
            pthread_attr_init(&tattr);
357
363
         }
358
364
         else if (testStartedProc(pid,&left)) {
359
365
            if (left==0) {
360
 
               mlogf(M_INFO,M_SHOW,"--- Providers stopped\n");
 
366
               fprintf(stderr,"--- Providers stopped\n");
361
367
               providersStopped=1;
362
368
            }   
363
369
            pthread_attr_init(&tattr);
374
380
{
375
381
 
376
382
   if (!terminating) {
377
 
      mlogf(M_ERROR,M_SHOW, "--- %s - %d exiting due to signal %d\n", processName, currentProc, sig);
 
383
      fprintf(stderr,"--- %s - %d exiting due to signal %d\n", processName, currentProc, sig);
378
384
      dumpTiming(currentProc);
379
385
   }   
380
386
   terminating=1; 
386
392
 
387
393
static void handleSigSegv(int sig)
388
394
{
389
 
   mlogf(M_ERROR,M_SHOW, "-#- %s - %d exiting due to a SIGSEGV signal\n",
 
395
   fprintf(stderr,"-#- %s - %d exiting due to a SIGSEGV signal\n",
390
396
           processName, currentProc);
391
397
}
392
398
/*
393
399
static void handleSigAbort(int sig)
394
400
{
395
 
   mlogf(M_INFO,M_SHOW, "%s: exiting due to a SIGABRT signal - %d\n", processName, currentProc);
 
401
   fprintf(stderr,"%s: exiting due to a SIGABRT signal - %d\n", processName, currentProc);
396
402
   kill(0, SIGTERM);
397
403
}
398
404
*/
399
405
 
400
406
 
 
407
#ifndef LOCAL_CONNECT_ONLY_ENABLE
401
408
#ifdef USE_THREADS
402
409
void* startHttpThread(void* params) {
403
410
  struct adapterThreadParams* p = (struct adapterThreadParams*)params;
448
455
   return 0;
449
456
}
450
457
 
 
458
#endif // LOCAL_CONNECT_ONLY_ENABLE
 
459
 
451
460
#ifdef HAVE_JDBC
452
461
 
453
462
extern int dbpDaemon(int argc, char *argv[], int sslMode, int sfcbPid);
533
542
   int c, i;
534
543
   long tmask = 0, sslMode=0,sslOMode=0, tracelevel=0;
535
544
   char * tracefile = NULL;
 
545
#ifdef HAVE_UDS
 
546
   int enableUds=0;
 
547
#endif
536
548
   int enableHttp=0,enableHttps=0,useChunking=0,doBa=0,enableInterOp=0,httpLocalOnly=0;
537
549
   long dSockets,sSockets,pSockets;
538
550
   char *pauseStr;
579
591
 
580
592
           case 'd':
581
593
               daemon(0, 0);
 
594
               currentProc=sfcBrokerPid=getpid(); /* req. on some systems */
582
595
               break;
583
596
 
584
597
           case 'h':
656
669
      
657
670
   if (getControlBool("enableHttp", &enableHttp))
658
671
      enableHttp=1;
 
672
 
 
673
#ifdef HAVE_UDS
 
674
   if (getControlBool("enableUds", &enableUds))
 
675
      enableUds=1;
 
676
#endif
659
677
      
660
678
#if defined USE_SSL
661
679
   if (getControlBool("enableHttps", &enableHttps))
662
680
      enableHttps=0;
663
681
 
664
682
   sslMode=enableHttps;
 
683
#ifdef HAVE_UDS
 
684
   sslOMode=sslMode & !enableHttp & !enableUds;
 
685
#else
665
686
   sslOMode=sslMode & !enableHttp;
 
687
#endif
666
688
#else
667
689
   mlogf(M_INFO,M_SHOW,"--- SSL not configured\n");
668
690
   enableHttps=0;
710
732
   else
711
733
       exFlags = exFlags | 2;
712
734
 
713
 
   if ((enableInterOp && pSockets < 2 ) || pSockets < 1) {
 
735
   if ((enableInterOp && pSockets < 4 ) || pSockets < 3) {
714
736
     /* adjusting provider number */
715
737
     if (enableInterOp) {
716
 
       pSockets = 2;
 
738
       pSockets = 4;
717
739
     } else {
718
 
       pSockets = 1;
 
740
       pSockets = 3;
719
741
     }
720
742
     mlogf(M_INFO,M_SHOW,
721
743
           "--- Max provider process number adjusted to %d\n", pSockets);
740
762
 
741
763
   startLocalConnectServer();
742
764
   
 
765
#ifndef LOCAL_CONNECT_ONLY_ENABLE
743
766
   if (startHttp) {
744
767
      if (sslMode)
745
768
         startHttpd(argc, argv,1);
746
769
      if (!sslOMode)
747
770
         startHttpd(argc, argv,0);
748
771
   }
 
772
#endif // LOCAL_CONNECT_ONLY_ENABLE
749
773
   
750
774
#ifdef HAVE_JDBC
751
775
   //Start dbProtocol-Daemon