>>>>> Sergey A Osokin <[EMAIL PROTECTED]> writes:

 SAO> On Tue, Feb 25, 2003 at 05:57:03PM +0300, Dmitry Morozovsky wrote:
 >> On Fri, 21 Feb 2003, Michael Kazakov wrote:
 >> 
 MK> IK> Только изменением этого поля в ftp_utilc.c и перекомпиляцией.
 MK> 
 MK> Спасибо. А могу ли я выразить пожелание о соответствующем ключике в
 MK> конфиге? :)
 >> 
 >> Хе ;) Как говорят фришники, your patches are always welcome ;-)

 SAO> Немного offtopic, но так говорят не только "фришники", IMHO это
 SAO> вообще UNIX-WAY :-)

В общем, если что не так, то сами виноваты :) Use absolutely free, at
your own risk.

-- 
WBR, Michael Kazakov.

diff -cr oops-1.5.22/src/extern.h oops-1.5.22.new/src/extern.h
*** oops-1.5.22/src/extern.h	Ср Янв 23 17:11:25 2002
--- oops-1.5.22.new/src/extern.h	Сб Мар  1 20:33:48 2003
***************
*** 120,125 ****
--- 120,126 ----
  extern char		domain_name[MAXHOSTNAMELEN+1];
  extern char		host_name[MAXHOSTNAMELEN+1];
  extern char		*oops_user;
+ extern char		*ftp_passw;
  extern char		*oops_chroot;
  extern uid_t    oops_uid;
  extern int             insert_via;
diff -cr oops-1.5.22/src/ftp_utils.c oops-1.5.22.new/src/ftp_utils.c
*** oops-1.5.22/src/ftp_utils.c	Вт Май 29 10:29:25 2001
--- oops-1.5.22.new/src/ftp_utils.c	Сб Мар  1 20:32:20 2003
***************
*** 1203,1209 ****
  	r = writet(server_so, "\r\n", 2, READ_ANSW_TIMEOUT);
      } else {
  	char	*pass = NULL;
! 	if ( host_name[0] && strchr(host_name, '.') ) {
  	    pass = malloc(5 + 5 + strlen(host_name) + 3);
  	    sprintf(pass, "PASS [EMAIL PROTECTED]", host_name);
  	} else {
--- 1203,1212 ----
  	r = writet(server_so, "\r\n", 2, READ_ANSW_TIMEOUT);
      } else {
  	char	*pass = NULL;
! 	if (ftp_passw) {
! 	    pass = malloc(5 + strlen(ftp_passw) + 3);
! 	    sprintf(pass, "PASS %s\r\n", ftp_passw);
! 	} else if ( host_name[0] && strchr(host_name, '.') ) {
  	    pass = malloc(5 + 5 + strlen(host_name) + 3);
  	    sprintf(pass, "PASS [EMAIL PROTECTED]", host_name);
  	} else {
Common subdirectories: oops-1.5.22/src/lib and oops-1.5.22.new/src/lib
Common subdirectories: oops-1.5.22/src/modules and oops-1.5.22.new/src/modules
diff -cr oops-1.5.22/src/oops.c oops-1.5.22.new/src/oops.c
*** oops-1.5.22/src/oops.c	Пн Фев  4 10:22:07 2002
--- oops-1.5.22.new/src/oops.c	Сб Мар  1 20:59:52 2003
***************
*** 149,154 ****
--- 149,155 ----
  char		domain_name[MAXHOSTNAMELEN+1];
  char		host_name[MAXHOSTNAMELEN+1];
  char		*oops_user;
+ char		*ftp_passw;
  char		*oops_chroot;
  uid_t           oops_uid = -1;
  int             insert_via;
***************
*** 627,632 ****
--- 628,634 ----
      always_check_freshness_acl = NULL;
      stop_cache_acl = NULL;
      oops_user = NULL;
+     ftp_passw = NULL;
      oops_chroot = NULL;
      bind_acl_list = NULL;
      one_second_proxy_requests = 0;
***************
*** 738,743 ****
--- 740,749 ----
  	free(oops_user);
  	oops_user = NULL;
      }
+     if ( ftp_passw ) {
+ 	free(ftp_passw);
+ 	ftp_passw = NULL;
+     }
      if ( oops_chroot ) {
  	free(oops_chroot);
  	oops_chroot = NULL;
diff -cr oops-1.5.22/src/oops.cfg.in oops-1.5.22.new/src/oops.cfg.in
*** oops-1.5.22/src/oops.cfg.in	Ср Янв 23 18:34:39 2002
--- oops-1.5.22.new/src/oops.cfg.in	Сб Мар  1 21:17:17 2003
***************
*** 179,184 ****
--- 179,189 ----
  #connect-from	proxy.paco.net
  
  ##
+ #  While connecting to public FTP resource, use this string as password
+ ##
+ #anon_ftp_passw [EMAIL PROTECTED]
+ 
+ ##
  #	ACLs - currently: urlregex, urlpath, usercharset
  #		port, dstdom, dstdom_regex, src_ip, time
  #		each acl can be loaded from file.
diff -cr oops-1.5.22/src/parser.l oops-1.5.22.new/src/parser.l
*** oops-1.5.22/src/parser.l	Ср Янв 23 17:57:00 2002
--- oops-1.5.22.new/src/parser.l	Сб Мар  1 20:25:46 2003
***************
*** 105,110 ****
--- 105,113 ----
  <INITIAL>[Uu][Ss][Ee][Rr][Ii][Dd] {
  		return(USERID_T);
  		}
+ <INITIAL>[Aa][Nn][Oo][Nn]_[Ff][Tt][Pp]_[Pp][Aa][Ss][Ss][Ww] {
+ 		return(FTP_PASSW_T);
+ 		}
  <INITIAL>[Cc][Hh][Rr][Oo][Oo][Tt] {
  		return(CHROOT_T);
  		}
diff -cr oops-1.5.22/src/parser.y oops-1.5.22.new/src/parser.y
*** oops-1.5.22/src/parser.y	Ср Янв 23 17:55:27 2002
--- oops-1.5.22.new/src/parser.y	Сб Мар  1 20:46:51 2003
***************
*** 20,25 ****
--- 20,26 ----
  %token	PEER_ACCESS_T PER_SESS_BW_T PER_IP_BW_T PER_IP_CONN_T CONN_FROM_T
  %token	ALWAYS_CHECK_FRESHNESS_ACL_T PEER_DOWN_TIMEOUT_T
  %token	EXPIRE_TIME_T SWAP_ADVANCE_T FETCH_WITH_CLIENT_SPEED_T
+ %token  FTP_PASSW_T
  
  %type	<NETPTR>	network_list network
  %type	<STRPTR>	group_name string module_name
***************
*** 141,146 ****
--- 142,148 ----
  		| acl_deny
  		| stop_cache_acl
  		| userid
+ 		| anon_ftp_passw
  		| chroot
  		| bind_acl
  		| blacklist
***************
*** 212,217 ****
--- 214,223 ----
  			oops_user = $2;
  		}
  
+ anon_ftp_passw	: FTP_PASSW_T string L_EOS {
+ 			ftp_passw = $2;
+ 		}
+ 
  chroot		: CHROOT_T string L_EOS {
  			oops_chroot = $2;
  		}

Дати відповідь електронним листом