[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Where in queue? ;-)



On Sat, May 10, 2003 at 02:06:08AM +0200, Marek Kowal wrote:
> Hi there,
> 
> How do I get to know (and is it possible at all) to get to know the name of
> the directory in postoffice/queue (or postoffice/transport) where the file
> willl be "routed" in process.cf? I need to know the path before calling
> rfc822().

  It all depends on what you want to do with it.

  It is quite deterministic, so there could be a new function, which
  calculates the new path for a given file.  Essentially:

	sprintf(qpath, "../%s/%s%s", QUEUEDIR, subdirhash, file);
	if (... || (erename(file, qpath) != 0)) ...


	sprintf(path, "../%s/%s%s", TRANSPORTDIR, subdirhash, file);
	if (erename(ofpname, path) < 0)
		...


  Where 'file' is input given to the 'rfc822()' function, and
  calculation of  'subdirhash'  is done at the beginning of
  the  sequencer()  function in  router/rfc822.c  file.


  Thinking of that ... looks like use of ZENV variable  ROUTERDIRHASH
  might cause some trouble to the system!   -- or maybe not..
  Apparently the system is calling rename(2) in order to move file
  located in some subdir into primary router directory's root
  when it begins processing.

  That is actually _extra_ work, which could be avoided, but avoiding
  it properly needs carefull code changes all over the place.
  (At least:   router/damemonsub.c, router/rfc822.c )

> Cheers,
> Marek.
> 
> Ps. In worst case I could also get to know it after calling rfc822(), though
> this might create some race condidtion. But any solution will do...

-- 
/Matti Aarnio	<mea@nic.funet.fi>
-
To unsubscribe from this list: send the line "unsubscribe zmailer" in
the body of a message to majordomo@nic.funet.fi