Article delegate-en/996 of [1-5169] on the server localhost:119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
[Reference:<_A995@delegate-en.ML_>]
Newsgroups: mail-lists.delegate-en

[DeleGate-En] Re: BUG: clear cache
26 Jan 2001 08:03:54 GMT ysato@etl.go.jp (Yutaka Sato)


Hi,

On 01/24/01(16:56) you Steffen Kaiser <p4mbqbdyi-fa3r2xiqkrfr.ml@ml.delegate.org>
wrote in <_A995@delegate-en.ML_>
 |delegate/6.1.22 on Sparc/Solaris 7.
 |
 |The call includes the option: CRON="0 3 * * * -expire +4"
 |
 |However delegate does not remove nothing, the only thing in the logfile
 |is this ($DGROOT/log/expire.log):
...
 |I have another delegate running on a Linux box including the same option,
 |where it works.
 |
 |The only difference I see is that the "cache" subdirectory within DGROOT
 |is a symbolic link on the Solaris box:
...
 |lrwxrwxrwx   1 root     other         24 Sep 22 09:00 cache ->
 |/mnt/temp/delegate-cache

A simple solution for a while is specifying the cache directry with
a full path like CACHEDIR="/mnt/temp/delegate-cache".
But I don't like to recommend using explicit CACHEDIR parameter, and
making cache directory be pointed from symbolic link under DGROOT is
a usual manner, so I'll support it in the next release (DeleGate/7.0.1)
like the enclosed patch.

Cheers,
Yutaka
--
Yutaka Sato <ysato@delegate.org> http://www.delegate.org/~ysato/   @ @ 
Computer Science Division, Electrotechnical Laboratory            ( - )
1-1-4 Umezono, Tsukuba, Ibaraki, 305-8568 Japan                  _<   >_


*** ../../delegate7.0.0/src/croncom.c	Fri Jan  5 16:38:27 2001
--- croncom.c	Fri Jan 26 17:04:19 2001
***************
*** 22,27 ****
--- 22,37 ----
  #include "delegate.h"
  extern char *DELEGATE_EXPIRELOG;
  extern char *cachedir();
+ char *getcachedir(path,size)
+ 	char *path;
+ {	char *cdir;
+ 
+ 	if( (cdir = cachedir()) == NULL )
+ 		return NULL;
+ 	if( 0 <= Readlink(cdir,path,size) )
+ 		return path;
+ 	else	return cdir;
+ }
  
  typedef struct {
  	int	ce_crons[256];
***************
*** 95,100 ****
--- 105,111 ----
  {	int pid;
  	char *av[32],ab[8][128];
  	int ac,ai,aj;
+ 	char cpath[1024];
  
  	pid = 0;
  	if( act[0] == 0 ){
***************
*** 139,145 ****
  
  		ac = 0;
  		av[ac++] = "-Fexpire";
! 		av[ac++] = cachedir();
  		av[ac++] = "-rm";
  		av[ac++] = "-atime";
  		av[ac++] = period;
--- 150,156 ----
  
  		ac = 0;
  		av[ac++] = "-Fexpire";
! 		av[ac++] = getcachedir(cpath,sizeof(cpath));
  		av[ac++] = "-rm";
  		av[ac++] = "-atime";
  		av[ac++] = period;

  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V