You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Randy Terbush <ra...@zyzzyva.com> on 1996/06/26 03:40:45 UTC

Re: For 1.1

> Okay...
> 
> So, what is left for Apache 1.1? Let's try and make a list or something.
> 
> Now, I know there are a couple bugs. There's the Windows/Keep-Alive bug.
> Anyone know anything about fixing this? What about the UnixWare bug? You
> know, I had a dream about that last night (really)... I dreamt that a
> user sent us a bug report, and they included a patch that made Apache work
> on UnixWare. It involved changing "const char*" references to "data
> char*", which I have no clue what means (I don't think "data" is a C
> keyword) or why it would work, but if that's useful to anyone... :P

I'll give it a go Alexei... :-)

Seriously though, I have not spent any time on this. The latency
between here and Australia is humorous if you don't care what you
laugh at. I'll try to give this some time tonight.

> There are at least two outstanding issues that I've introduced:
> 
> 1) Moving mod_env (I've changed my mind on mod_cern_meta) to be
> uncommented by default in Configuration. Does anyone really object to
> this?
> 
> 2) Fixing inetd CGI requests. I've decided the first patch I posted (the
> one to mod_cgi.c) is wrong, because really, all instances of spawn_child()
> will then wreak havoc on inetd requests. The second (to alloc.c) is the
> one I'd like to see included. If anyone would like me to post it again, I
> will. Anyone have any thoughts on it? We still officially support inetd,
> and not having CGI scripts work is a Bad Thing...

I feel that inetd is in the same category as mod_proxy. "Any fix is 
better than no fix." +1 on your second patch

> Then, other things... there's Jim's 18k conf.h-related patch... are we
> leaving it or getting rid of it? How about the (now-withdrawn) patch to
> mod_cern_meta to make it conditional? If that patch doesn't work, can we
> take the modified version from apache-XX and use that? (it makes MetaDir
> and MetaStuffix per-dir, and only activates if MetaSuffix is explicitly
> set).

mod_cern_meta 0 - I have not discovered the usefulness of it.

jim's patch - 	I vote for delaying the release for this type of cleanup
		to go in. My feeling is that 1.1's period of being
		a useful (no need to upgrade) piece of code is going
		to be far longer than 1.0. Anything done now to prevent
		spending time maintaining it in the future is a good
		thing. I also recognize that I am out on a limb here.
		Whatever...

> Anything else?

I've exchanged some mail today with the guy that reported a problem
with "the parser" where commented lines appeared to not be ignored.
Well, it turns out that Apache seems to be reading in his 'httpd.conf.new'
file instead of 'httpd.conf'.  I seem to remember some funkyness with
the strcpy in SunOS4.1 and sent him the following patch to try. Other
than that, I'm not sure what could be happening here other than pilot
error. I have not gotten a confirmation on this patch yet. Comments
welcome.


*** http_main.c.orig	Tue Jun 25 15:59:13 1996
--- http_main.c	Tue Jun 25 16:12:35 1996
***************
*** 167,173 ****
  {
      char lock_fname[30];
  
!     strcpy(lock_fname, "/usr/tmp/htlock.XXXXXX");
      
      if (mktemp(lock_fname) == NULL || lock_fname[0] == '\0')
      {
--- 167,174 ----
  {
      char lock_fname[30];
  
!     strncpy(lock_fname, "/usr/tmp/htlock.XXXXXX", 22);
!     lock_fname[22] = '\0';
      
      if (mktemp(lock_fname) == NULL || lock_fname[0] == '\0')
      {
***************
*** 221,227 ****
  {
      char lock_fname[30];
  
!     strcpy(lock_fname, "/usr/tmp/htlock.XXXXXX");
      
      if (mktemp(lock_fname) == NULL || lock_fname[0] == '\0')
      {
--- 222,229 ----
  {
      char lock_fname[30];
  
!     strncpy(lock_fname, "/usr/tmp/htlock.XXXXXX", 22);
!     lock_fname[22] = '\0';
      
      if (mktemp(lock_fname) == NULL || lock_fname[0] == '\0')
      {
***************
*** 1463,1469 ****
--- 1465,1473 ----
  main(int argc, char *argv[])
  {
      int c;
+     int len;
  
+     
  #ifdef AUX
      (void)set42sig();
  #endif
***************
*** 1483,1498 ****
      ptrans = make_sub_pool(pconf);
      
      server_argv0 = argv[0];
!     strcpy (server_root, HTTPD_ROOT);
!     strcpy (server_confname, SERVER_CONFIG_FILE);
  
      while((c = getopt(argc,argv,"Xd:f:v")) != -1) {
          switch(c) {
            case 'd':
!             strcpy (server_root, optarg);
              break;
            case 'f':
!             strcpy (server_confname, optarg);
              break;
            case 'v':
              printf("Server version %s.\n",SERVER_VERSION);
--- 1487,1512 ----
      ptrans = make_sub_pool(pconf);
      
      server_argv0 = argv[0];
! 
!     len = strlen (HTTPD_ROOT);
!     strncpy (server_root, HTTPD_ROOT, len);
!     server_root[len] = '\0';
!     
!     len = strlen (SERVER_CONFIG_FILE);
!     strncpy (server_confname, SERVER_CONFIG_FILE, len);
!     server_confname[len] = '\0';
  
      while((c = getopt(argc,argv,"Xd:f:v")) != -1) {
          switch(c) {
            case 'd':
! 	      len = strlen (optarg);
! 	      strncpy (server_root, optarg, len);
! 	      server_root[len] = '\0';
              break;
            case 'f':
! 	      len = strlen (optarg);
! 	      strncpy (server_confname, optarg, len);
! 	      server_confname[len] = '\0';
              break;
            case 'v':
              printf("Server version %s.\n",SERVER_VERSION);