httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chuck Murcko <ch...@hyperreal.com>
Subject cvs commit: apache/src/modules/proxy proxy_ftp.c
Date Mon, 14 Apr 1997 03:43:35 GMT
chuck       97/04/13 20:43:34

  Modified:    src/modules/proxy  proxy_ftp.c
  Log:
  Encode spaces for displayed filenames in directories.
  
  Revision  Changes    Path
  1.20      +26 -2     apache/src/modules/proxy/proxy_ftp.c
  
  Index: proxy_ftp.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/modules/proxy/proxy_ftp.c,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -C3 -r1.19 -r1.20
  *** proxy_ftp.c	1997/04/13 15:20:30	1.19
  --- proxy_ftp.c	1997/04/14 03:43:33	1.20
  ***************
  *** 149,155 ****
    	}
    	else
    	{
  ! 	    p = proxy_canonenc(pool, r->args, strlen(r->args), enc_path, 1);
    	    if (p == NULL) return BAD_REQUEST;
    	    path = pstrcat(pool, path, "?", p, NULL);
    	}
  --- 149,155 ----
    	}
    	else
    	{
  ! 	    p = proxy_canonenc(pool, r->args, strlen(r->args), enc_fpath, 1);
    	    if (p == NULL) return BAD_REQUEST;
    	    path = pstrcat(pool, path, "?", p, NULL);
    	}
  ***************
  *** 213,218 ****
  --- 213,239 ----
        return status;
    }
    
  + static char *
  + encode_space(request_rec *r, char *path)
  + {
  +     pool *pool=r->pool;
  +     char *newpath;
  +     int i, j, len;
  + 
  +     len = strlen(path);
  +     newpath = palloc(pool, 3 * len + 1);
  +     for (i=0, j=0; i < len; i++, j++) {
  + 	if (path[i] != ' ')
  + 	    newpath[j] = path[i];
  + 	else {
  + 	    proxy_c2hex(' ', &newpath[j]);
  + 	    j += 2;
  + 	}
  +     }
  +     newpath[j] = '\0';
  +     return newpath;
  + }
  + 
    static long int
    send_dir(BUFF *f, request_rec *r, BUFF *f2, struct cache_req *c, char *url)
    {
  ***************
  *** 220,225 ****
  --- 241,247 ----
        char buf2[IOBUFSIZE];
        char *filename;
        char *tempurl;
  +     char *newurlptr;
        int searchidx = 0;
        char *searchptr = NULL;
        int firstfile = 1;
  ***************
  *** 235,240 ****
  --- 257,263 ----
    	tempurl += n - 5;	/* leave room for ftp:// */
        }
    
  +     n = decodeenc(tempurl);
        ap_snprintf(buf, sizeof(buf), "<HTML><HEAD><TITLE>%s</TITLE></HEAD><BODY><H1>Directory
%s</H1><HR><PRE>", tempurl, tempurl);
        bwrite(con->client, buf, strlen(buf));
        if (f2 != NULL) bwrite(f2, buf, strlen(buf));
  ***************
  *** 326,332 ****
                else 
                {
                    ap_snprintf(urlptr, sizeof(urlptr), "%s%s%s",url,(url[strlen(url)-1]=='/'
? "" : "/"), filename);
  !                 ap_snprintf(buf2, sizeof(buf2), "%s <A HREF=\"%s\">%s</A>\015\012",
buf, urlptr, filename);
                }
                strncpy(buf, buf2, sizeof(buf));
    	    buf[sizeof(buf)-1] = '\0';
  --- 349,356 ----
                else 
                {
                    ap_snprintf(urlptr, sizeof(urlptr), "%s%s%s",url,(url[strlen(url)-1]=='/'
? "" : "/"), filename);
  ! 		newurlptr = encode_space(r, urlptr);
  !                 ap_snprintf(buf2, sizeof(buf2), "%s <A HREF=\"%s\">%s</A>\015\012",
buf, newurlptr, filename);
                }
                strncpy(buf, buf2, sizeof(buf));
    	    buf[sizeof(buf)-1] = '\0';
  
  
  

Mime
View raw message