Documentation Source Text

Check-in [5a80e1c8e7]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update althttpd.c client to log SIGPIPE and SIGSEGV in addition to SIGALRM.
Timelines: family | ancestors | descendants | both | version-3.8.4.3
Files: files | file ages | folders
SHA1: 5a80e1c8e7b6e5709a0470ba598975c0909b0546
User & Date: drh 2014-04-26 00:30:59
Context
2014-05-26
22:56
Update the download page to support DLL snapshots. check-in: 3cfd0f3e9a user: drh tags: version-3.8.4.3
2014-04-26
00:30
Update althttpd.c client to log SIGPIPE and SIGSEGV in addition to SIGALRM. check-in: 5a80e1c8e7 user: drh tags: version-3.8.4.3
2014-04-25
20:47
Fix more typos in the foreignkey.html document. check-in: 25bc66990e user: drh tags: version-3.8.4.3
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to misc/althttpd.c.

445
446
447
448
449
450
451
452

453
454
455
456
457





458
459
460
461
462
463
464
465
...
926
927
928
929
930
931
932


933
934
935
936
937
938
939
    "The CGI program %s generated an error\n"
    "</body>\n", zScript);
  MakeLogEntry(0);
  exit(0);
}

/*
** This is called if we timeout.

*/
static void Timeout(int NotUsed){
  (void)NotUsed;
  if( !debugFlag ){
    if( zScript && zScript[0] ){





      strcpy(zReplyStatus, "999");
      MakeLogEntry(0);
    }
    exit(0);
  }
}

/*
................................................................................
  }
  nRequest++;

  /*
  ** We must receive a complete header within 15 seconds
  */
  signal(SIGALRM, Timeout);


  if( useTimeout ) alarm(15);

  /* Get the first line of the request and parse out the
  ** method, the script and the protocol.
  */
  if( fgets(zLine,sizeof(zLine),stdin)==0 ){
    exit(0);







|
>

|
<


>
>
>
>
>
|







 







>
>







445
446
447
448
449
450
451
452
453
454
455

456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
...
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
    "The CGI program %s generated an error\n"
    "</body>\n", zScript);
  MakeLogEntry(0);
  exit(0);
}

/*
** This is called if we timeout or catch some other kind of signal.
** Log an error code which is 900+iSig and then quit.
*/
static void Timeout(int iSig){

  if( !debugFlag ){
    if( zScript && zScript[0] ){
      char zBuf[10];
      zBuf[0] = '9';
      zBuf[1] = '0' + (iSig/10)%10;
      zBuf[2] = '0' + iSig%10;
      zBuf[3] = 0;
      strcpy(zReplyStatus, zBuf);
      MakeLogEntry(0);
    }
    exit(0);
  }
}

/*
................................................................................
  }
  nRequest++;

  /*
  ** We must receive a complete header within 15 seconds
  */
  signal(SIGALRM, Timeout);
  signal(SIGSEGV, Timeout);
  signal(SIGPIPE, Timeout);
  if( useTimeout ) alarm(15);

  /* Get the first line of the request and parse out the
  ** method, the script and the protocol.
  */
  if( fgets(zLine,sizeof(zLine),stdin)==0 ){
    exit(0);