I don't understand how the fossil web server is interacting with the child 
processes that it launches.  I see the code in cgi.c that does the launching, 
but I don't see how the child processes actually know what it is they should be 
doing.

    if( select( listener+1, &readfds, 0, 0, &delay) ){
      lenaddr = sizeof(inaddr);
      connection = accept(listener, (struct sockaddr*)&inaddr,
                                    (socklen_t*) &lenaddr);
      if( connection>=0 ){
        child = fork();
        if( child!=0 ){
          if( child>0 ) nchildren++;
          close(connection);
        }else{
          close(0);
          dup(connection);
          close(1);
          dup(connection);
          if( !g.fHttpTrace && !g.fSqlTrace ){
            close(2);
            dup(connection);
          }
          close(connection);
          return 0;
        }
      }
    } 

Furthermore, I am trying to debug some web functions that I have written using 
ddd, but that is monitoring only the server process.  Does anyone have some 
advice on how I might debug my web functions?

Thanks.

_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to