Commit Graph

1081 Commits

Author SHA1 Message Date
yar
81d786a9d6 Allow deleting and renaming stale symlinks and
deleting symlinks pointing to directories.

PR:		bin/37250
Submitted by:	Nino Dehne <TeCeEm@gmx.de>
MFC after:	1 week
2002-07-21 12:06:56 +00:00
jake
ddac48a07c Add END markers to asm functions so that debuggers can find their size. 2002-07-17 22:20:41 +00:00
yar
0e4b89607d Avoid passing NULL to freehostent(3).
MFC after:	1 week
2002-07-17 19:29:25 +00:00
yar
ab8d11d3a9 Fix setting parameters for getipnodebyaddr(3):
o "struct addrinfo" contains a pointer to "struct sockaddr,"
  not "struct sockaddr" itself
o the function takes a pointer to "struct in*_addr", not to
  "struct sockaddr," so the address length must be corresponding

MFC after:	1 week
2002-07-17 19:07:07 +00:00
mikeh
1bf2662143 GLOB_QUOTE has been retired. 2002-07-17 05:47:49 +00:00
yar
4410d83dcc Use the right indent for the closing brace: it belongs to `if',
not to `for'.  The previous indent was reather misleading for
the code reader.

MFC after:	1 week
2002-07-16 16:48:15 +00:00
yar
c2dfbe8244 Replace the awkward hackery about strtok(3)
by conventional one-way parsing of ftphosts(5).
Don't let NULL hostname pointers into virtual
host records as well.

PR:		bin/18410
MFC after:	1 month
2002-07-16 16:30:41 +00:00
alfred
83a53d0868 Port to TI/RPC and/or IPV6.
Submitted by: Jean-Luc Richier <Jean-Luc.Richier@imag.fr>
2002-07-15 18:51:57 +00:00
yar
eba11c79d0 Use fgetln(3) to read lines from configuration files (ftpusers, ftphosts.)
Thus lines of any length can be handled, unlike before.

Don't assume that each line read from the files ends with a newline.

As a side effect in inithosts(), don't use automatic buffer at all,
utilize malloc(3) when getting local host name instead.

PR:		misc/21494
Reviewed by:	maxim, mikeh
MFC after:	1 month
2002-07-12 15:51:15 +00:00
johan
784b48a6bb Add ability to only beep when mail arrives.
comsat:
        only send two bell charecters if S_IXGRP is set and S_IXUSR is not.

biff:
        add new option 'b' to set S_IXGRP.

PR:             10931
Submitted by:   Andrew J. Korty <ajk@purdue.edu>
Approved by:    sheldonh (mentor)
MFC after:      1 month
2002-07-09 02:16:49 +00:00
jdp
e26f3975bd Remove the nanosleep calls from the spin loops in the locking code.
They provided little benefit (if any) and they caused some problems
in OpenOffice, at least in post-KSE -current and perhaps in other
environments too.  The nanosleep calls prevented the profiling timer
from advancing during the spinloops, thereby preventing the thread
scheduler from ever pre-empting the spinning thread.  Alexander
Kabaev diagnosed this problem, Martin Blapp helped with testing,
and Matt Dillon provided some helpful suggestions.

This is a short-term fix for a larger problem.  The use of spinlocking
isn't guaranteed to work in all cases.  For example, if the spinning
thread has higher priority than all other threads, it may never be
pre-empted, and the thread holding the lock may never progress far
enough to release the lock.  On the other hand, spinlocking is the
only locking that can work with an arbitrary unknown threads package.

I have some ideas for a much better fix in the longer term.  It
would eliminate all locking inside the dynamic linker by making it
safe for symbol lookups and lazy binding to proceed in parallel
with a call to dlopen or dlclose.  This means that the only mutual
exclusion needed would be to prevent multiple simultaneous calls
to dlopen and/or dlclose.  That mutual exclusion could be put into
the native pthreads library.  Applications using foreign threads
packages would have to make their own arrangements to ensure that
they did not have multiple threads in dlopen and/or dlclose -- a
reasonable requirement in my opinion.

MFC after:	3 days
2002-07-06 20:25:56 +00:00
charnier
9639b20db6 The .Nm utility 2002-07-06 19:19:48 +00:00
dan
2bdfbbf7e6 Make sure to reset transflag back to zero upon succesfully using sendfile()
to transfer a file.

PR: 39362
Submitted by: TANAKA Hiroyuki <kattyo@abk.nu>
MFC after: 1 week
2002-07-03 00:12:00 +00:00
ume
8530756499 Cope with 2292bis-01 getaddrinfo (no NI_WITHSCOPEID, always attach
scope identifier).

MFC after:	3 weeks
2002-07-02 11:11:17 +00:00
maxim
2a203b39db Remove trailing whitespaces. 2002-07-01 14:30:38 +00:00
maxim
53025a95ff Move 'byte_count' calculation just before 'recvurg' check. It is a global
variable and used in myoob().

PR:		bin/38928
Submitted by:	Oliver Fromme <olli@secnetix.de>
MFC after:	1 month
2002-07-01 14:29:44 +00:00
mdodd
c8cc9e8e67 Implement a flag to disable directory creation for anonymous users.
PR:		misc/38987
Submitted by:	Peter da Silva <peter@abbnm.com>
MFC after:	1 week
2002-07-01 02:30:11 +00:00
markm
eaea972b25 Remove a GCC-specific command-line option. We should be using WARNS=n
for this stuff.
2002-06-28 10:36:14 +00:00
wollman
4a461e9ee1 When the -p flag is specified, set an environment variable to the name
of the remote host (or rather, the name as mangled by realhostname_sa())
so that the process can use it to behave differently depending on the
origin on the request.  We use this to implement rudimentary visibility
control on our user information.

Make sure that the child process's standard error goes through the same
NVT-ASCII filter as is applied to the standard output.

Don't attempt to call logerr() from the child since stdio is not safe in
a vforked process.  Just write a message to fd 2 instead.  (Ideally, the
parent would open two pipes, and siphon off our stderr to some place less
public, but I have not attempted to do so in this implementation.)
2002-06-26 21:46:56 +00:00
markm
33f0a5804d Gut out (by default unused) cruft, and tidy up warnings. 2002-06-26 17:09:08 +00:00
jdp
be1828addc Update the asm statements to use the "+" modifier instead of
matching constraints where appropriate.  This makes the dynamic
linker buildable at -O0 again.

Thanks to Bruce Evans for identifying the cause of the build
problem.

MFC after:	1 week
2002-06-24 23:19:18 +00:00
jake
57b695126f Add needed include of mman.h to fix sparc64 buildworld. 2002-06-24 05:23:46 +00:00
dillon
7b9815cfbe The last bits of the alloca -> mmap fix. IA64 and SPARC64 (current only).
Untested (testing request went unanswered), but sparc64 is not expected to
cause problems.  IA64 is not expected to cause problems but the patch was
slightly more complex so the possibility exists.

Approved by:    jdp
2002-06-22 18:36:21 +00:00
dillon
33d5a89404 This is the same alloca() fix as was committed for i386. David O'Brien
tested the patch on -stable.

Reviewed by:	obrien
Approved by:	jdp
MFC after:	3 days
2002-06-18 05:42:33 +00:00
jdp
26c5dfb179 Dillon's recent commits to the dynamic linker without running them
by me first have given me a good excuse to drop my MAINTAINERship.

MFC after:	1 week
2002-06-10 21:51:16 +00:00
dillon
46d8228e36 Correct a bug in the last commit. The whole point of creating a 'done:'
goto target was so the cache could be freed.  So free the cache after
done: rather then before done: (!)

Submitted by:	Gavin Atkinson <gavin@ury.york.ac.uk>
2002-06-10 21:15:50 +00:00
dillon
0dbb92d539 In tracking down an installation seg fault with then openoffice port
Martin Blapp determined that the elf dynamic loader was at fault.  In
particular, the loader uses alloca() to allocate a symbol cache on the
stack.  Normally this would work just fine, but if the loader is called
from a threaded program and the object being loaded is fairly large the
alloca() can blow away the thread stack and effect other nearby thread
stacks as well.  My testing showed that the symbol cache can be as large
as 250KBytes during the openoffice port build and install sequence.  Martin
was able to work around the problem by disabling the symbol cache
(cache = NULL;).  However, this solution is not adequate for commit because
it can cause an enormous cpu burden for applications which do a lot of
dynamic loading (e.g. like konqueror).

The solution is to use anonymous mmap() to temporarily allocate space to
hold the symbol cache.  In testing I found that replacing the alloca()
with mmap() has no observable degredation in performance.

It should be noted that this bug does not necessarily cause an immediate
crash but can instead result in long term corruption and instability in
applications that load modules from threads.  The bug is almost certainly
responsible for some of the instabilities found in konqueror, for example,
and possibly netscape too.

Sleuthing work by: Martin Blapp <mb@imp.ch>
X-MFC after:	Before or after the 4.6 release depending on the release engineers
2002-06-10 18:52:31 +00:00
wollman
b2070d45e0 Add used include of <string.h>.
Delete unused include of <strings.h>.
2002-05-30 21:35:39 +00:00
alfred
a7dd0de84a Assume __STDC__, remove non-__STDC__ code. 2002-05-28 18:57:20 +00:00
alfred
92330964c1 Assume __STDC__, remove non-__STDC__ code. Remove private __P. 2002-05-28 18:39:53 +00:00
alfred
4b9492924e Assume __STDC__, remove non-__STDC__ code.
Remove private __P.
2002-05-28 18:37:43 +00:00
alfred
d1950fa257 This code defined a private __P, nuke it. 2002-05-28 18:36:43 +00:00
alfred
d91b7c2d0f Assume __STDC__, remove non-__STDC__ code.
Reviewed by: md5
2002-05-28 18:31:41 +00:00
jmallett
afc38d0730 Don't risk catching a signal while handling a signal for a dying child, as we
can then end up not properly clearing wtmp/utmp entries.

PR:		bin/37934
Submitted by:	Sandeep Kumar <skumar@juniper.net>
Reviewed by:	markm
MFC after:	2 weeks
2002-05-27 08:10:24 +00:00
marcel
af380c638d Include machine/ia64_cpu.h because we use ia64_mf().
Submitted by: ru
2002-05-21 00:04:08 +00:00
brian
15e2de7839 Understand the new NGM_PPPOE_SESSIONID message and set SESSIONID
in the environment to it's value.

Approved by:	archie (after a very cursory glance)
2002-05-14 12:33:40 +00:00
ru
019e44ef62 Fixed CLEANFILES. 2002-05-13 15:21:51 +00:00
des
84dfbe4ad5 Use <paths.h> rather than "pathnames.h", and fix a couple of whitespace nits.
Sponsored by:	DARPA, NAI Labs
2002-05-08 00:47:01 +00:00
des
6a749b9ddc PAMify.
Sponsored by:	DARPA, NAI Labs
2002-05-08 00:43:46 +00:00
des
b833b9d1d3 Unbreak static build and remove usage() that isn't usage().
Reviewed by:	bde
2002-05-03 13:12:06 +00:00
des
37ceba5949 PAMify rexecd(8).
Sponsored by:	DARPA, NAI Labs
2002-05-02 05:06:32 +00:00
des
e48f76df85 Spell void * as void * rather than caddr_t. This is complicated by the
fact that caddr_t is often misspelled as char *.

Sponsored by:	DARPA, NAI Labs
2002-04-28 15:18:50 +00:00
marcel
501b6d42e1 Fix handling of weak references to undefined symbols on ia64:
o  Set st_shndx for sym_zero to SHN_UNDEF instead of SHN_ABS.
   This gives us something to reliably test against.
o  For weak references to undefined sysmbols (as indicated by
   having st_shndx equals SHN_UNDEF) in the context of OPDs,
   the address of the OPD is to be zero, not the address of
   the function it contains.
o  For weak references to undefined symbols in all other cases
   (only DIR64LSB at this time), the actual relocated value is
   to be zero, not the value prior to relocating.

Roughly speaking, weak references to undefined symbols are no-ops.

Tested on: i386, ia64
2002-04-27 05:32:51 +00:00
marcel
af7991bd02 Now that local symbols aren't looked up with the symbol hash table,
binding works for local symbols. Remove the workaround...
2002-04-27 02:53:31 +00:00
marcel
1c432575fb Don't do symbol lookups for local symbols. The symbol index in the
relocation identifies the symbol to which we need to bind. This
solves a problem seen on ia64 where the symbol hash table does not
contain local symbols and thus resulted in unresolved symbols.

Tested on: alpha, i386, ia64
2002-04-27 02:48:29 +00:00
ume
c9e55ed3c8 Correct indent. 2002-04-26 12:27:55 +00:00
des
4d6b787d2d Usage style sweep: spell "usage" with a small 'u'.
Also change one case of blatant __progname abuse (several more remain)
This commit does not touch anything in src/{contrib,crypto,gnu}/.
2002-04-22 13:44:47 +00:00
ume
903c50775a When opieverify() is fail, fallback to try unix password.
Tested by:	kuriyama
2002-04-16 10:54:30 +00:00
ume
7027bf8c9b Add an IPv6 support.
I dunno if there is an IPv6 supported rexec client.  So, it was
tested that this change doesn't break an IPv4.

Tested by:	kuriyama (IPv4 only)
2002-04-16 10:15:30 +00:00
kuriyama
c89f41e943 Make this compilable without -DOPIE.
Hint by:	ume
2002-04-16 07:53:42 +00:00
ume
4f51ffc3fe IPv6 support for tftp/tftpd.
Obtained from:	KAME
MFC after:	2 weeks
2002-04-11 17:14:22 +00:00
ambrisko
0b5427f932 Better handle the case with a network that drops packets by retrying
with a back off.  This was discovered when Luigi sent me code to
handle this for Etherboot.  The Etherboot patch worked okay but
FreeBSD's tftpd had trouble handling it and would fail to transfer
the file since it would abort on send and not retry.

Submitted by:	luigi
MFC after:	1 week
2002-04-09 19:13:43 +00:00
obrien
986e4bd208 Allow to compile with both GCC 2.95 and 3.1. 2002-04-08 21:22:58 +00:00
peter
888c632b35 Fix a relocation bug in the ia64 ld.so. Weak function pointers in shared
objects were not being correctly set to zero.  Instead, the function
descriptor pointer was set to the load address of the .so object.  This
caused gcc generated binaries to segfault on exit when crtbegin.asm's
_fini code tested the __cxa_finalize() function pointer for zero.

This is a bit of a hack because of a problem nearby workaround for
find_symdef and its quirks (failures) for local symbols.  This still
needs to be fixed.
2002-04-07 04:16:35 +00:00
des
91e1b27629 Fix warnings.
Sponsored by:	DARPA, NAI Labs
2002-04-06 19:08:02 +00:00
jake
6f01a2296f Minor changes to make this work on sparc64.
Approved by:	jdp
Tested on:	alpha, i386, sparc64
2002-04-02 02:19:02 +00:00
mike
524d70a50e Include <string.h> for some prototypes, rather than depending on
pollution from <strings.h>.
2002-04-01 21:13:17 +00:00
imp
d3aae3b22f Add missing commas. At least I didn't miss a period. 2002-03-18 16:10:00 +00:00
imp
d6b5da01f2 o MAXPATHLEN is the correct constant to use for path names, it includes
the NULL.
o use snprintf in preference to unchecked strcat in a couple of places that
  likely can't overflow.  Makes it easier to grep for strcpy :-)
2002-03-18 07:14:59 +00:00
maxim
fb79ef5523 Teach REST how to restart a file transfer after 2^31 bytes: now yylex()
returns off_t in yylval.u.o. REST is the only user of yylval.u.o at the
moment.

NB: seems lukemftpd has the same bug.

PR:		misc/28629
Reviewed by:	ru
Approved by:	ru
MFC after:	1 month
2002-03-14 16:05:06 +00:00
jake
f8145a14d2 rtld support for sparc64.
Largely obtained from:	netbsd
Submitted by:	jake, tmm
2002-03-13 02:40:39 +00:00
maxim
1459c4fc94 Remove duplicated yacc nonterminals declarations, sort includes.
No functional changes from rev. 1.31.

Reviewed by:	ru
Approved by:	ru
MFC after:	1 week
2002-03-11 11:48:55 +00:00
des
c8ad3d5e37 YA patch I forgot to commit last night. 2002-03-06 15:23:18 +00:00
obrien
63cb65a36e *sigh* while the last commit made GCC 3.1 happy, it upset GCC 2.95.
back out last commit to un-break world.
2002-03-01 17:30:01 +00:00
obrien
46f27ab47e CPP v3.1 has different rules for processing #lines directives. This
sometimes causes fewer directories to be searched for includes.  Thus
we have to be more explicit in our search list.

Pointy at to:	GCC 3.1
2002-02-28 23:12:44 +00:00
des
78adc01edf When searching an object that was opened with RTLD_GLOBAL, search its DAG too.
PR:		bin/25059
Approved by:	jdp
MFC after:	3 weeks
2002-02-27 23:44:50 +00:00
obrien
590885c10f Add lukemftpd to the mix. 2002-02-27 18:37:21 +00:00
obrien
a94b4230be Build LukeM's ftpd. 2002-02-27 18:35:26 +00:00
obrien
ce9dcc8784 Put the last added source file in proper order.
(and dcc the committer a dictionary)
2002-02-27 18:29:11 +00:00
des
2b3e8246a1 Rewrite the part of the conversation function that allocates the reply array;
it was inelegant and neglected to check the return value from malloc(3).

Sponsored by:	DARPA, NAI Labs
2002-02-25 16:39:34 +00:00
bde
5b9f1e3569 #include <sys/time.h> instead of depending on namespace pollution in
<sys/stat.h> for its prerequisite <sys/time.h>.

Removed a duplicated include.  Sorted includes.
2002-02-25 02:30:04 +00:00
bde
809bbfd246 Removed unused include of <sys/resource.h> instead of depending on
namespace pollution only 1 layer deep in <sys/stat.h> for its
prerequisite <sys/time.h>

Removed other unused includes.
2002-02-25 02:18:36 +00:00
mike
aa21bc21d2 Revert revision 1.11. FreeBSD/alpha has suppport for T/TCP.
MFC after:	1 week
2002-02-24 22:24:57 +00:00
brian
1af410bad4 Handle NGM_PPPOE_ACNAME messages.
Submitted by:	Andre Albsmeier <andre@albsmeier.net>
Approved by:	julian
2002-02-20 15:52:20 +00:00
mike
bcee06d42c o Move NTOHL() and associated macros into <sys/param.h>. These are
deprecated in favor of the POSIX-defined lowercase variants.
o Change all occurrences of NTOHL() and associated marcros in the
  source tree to use the lowercase function variants.
o Add missing license bits to sparc64's <machine/endian.h>.
  Approved by: jake
o Clean up <machine/endian.h> files.
o Remove unused __uint16_swap_uint32() from i386's <machine/endian.h>.
o Remove prototypes for non-existent bswapXX() functions.
o Include <machine/endian.h> in <arpa/inet.h> to define the
  POSIX-required ntohl() family of functions.
o Do similar things to expose the ntohl() family in libstand, <netinet/in.h>,
  and <sys/param.h>.
o Prepend underscores to the ntohl() family to help deal with
  complexities associated with having MD (asm and inline) versions, and
  having to prevent exposure of these functions in other headers that
  happen to make use of endian-specific defines.
o Create weak aliases to the canonical function name to help deal with
  third-party software forgetting to include an appropriate header.
o Remove some now unneeded pollution from <sys/types.h>.
o Add missing <arpa/inet.h> includes in userland.

Tested on:	alpha, i386
Reviewed by:	bde, jake, tmm
2002-02-18 20:35:27 +00:00
peter
cc75746718 ld-elf.so.1 assumed a few too many things about the ordering of sections
produced by ld(8) (ie: that _DYNAMIC immediately follows the _GOT).
The new binutils import changed that, and the intial GOT relocation
broke.  Use a custom linker script to provide a real end-of-GOT symbol.

Update ld.so to deal with the new (faster) PLT format that gcc-3.1 and
binutils can produce.

This is probably incomplete, but appears to be working again.

Obtained from:  NetBSD
(And a fix to a silly mistake that I made by:  gallatin)
2002-02-18 02:24:10 +00:00
gshapiro
730b12a9a9 Update build infrastructure for sendmail 8.12. 2002-02-17 22:05:07 +00:00
imp
f9bb89fb1d o __P removal
o use Ansi-style function definitions
2002-02-17 19:09:20 +00:00
obrien
77f77a885c Add support such that if LD_TRACE_LOADED_OBJECTS_ALL is defined to a
non-empty string in the environment; we indicate which objects caused
each object to be loaded.

PR:		30908
Submitted-by:	Mike Meyer <mwm@mired.org>
2002-02-17 07:04:32 +00:00
maxim
8b9c5f26cd Fix infinite loop around sendfile(2) after sending >4GB file.
PR:		bin/33770
Submitted by:	Vladislav Shabanov <vs@rambler-co.ru>
Reviewed by:	ru
Approved by:	ru
MFC after:	1 month
2002-02-13 09:00:05 +00:00
imp
c963f1d002 o __P removal
o register removal
o use new style prototypes and function definitions
2002-02-07 23:57:01 +00:00
imp
e1bdd69900 o __P removal
o use new style prototypes and function definitions
o signal handlers need an argument.  Mark it unused.
2002-02-07 05:24:53 +00:00
imp
905dfa5953 o const poison a few prototypes to avoid gcc3 warnings
o s/err/error/ in a couple places to avoid shadowing warnings
2002-02-07 05:07:04 +00:00
imp
2c6de49189 o __P removal
o new style definitions/declarations
o declare null_conv static and its arguments __unused
2002-02-07 04:58:29 +00:00
imp
a2650f5f7c o __P removal
o Use new-style prototypes and function definitions.
o Fix timeout and justquit to have proper signatures for signal
  handlers.  Mark the args as __unused.
o remove register
2002-02-07 04:49:34 +00:00
imp
d812a68063 o __P removal.
o Use new prototypes and function definitions only.
2002-02-07 04:39:05 +00:00
imp
81e25fdf51 o Remove __P
o Use proper prototypes
o remove register
2002-02-06 16:51:09 +00:00
imp
2415390b96 Remove some unused variables, mark unused parameters as unused and change
names of variables that shadow globally declared variables.  This should
help people doing later WARNS= fixes.
2002-02-06 16:47:06 +00:00
imp
03e95a0075 o __P removal
o remove register
o use strict prototypes
2002-02-06 16:38:40 +00:00
des
d7b064e238 ANSIfy and remove some dead code.
Sponsored by:	DARPA, NAI Labs
2002-02-06 15:26:07 +00:00
des
0f2cb9b020 Apply the following mechanical transformations in preparation for
ansification and constification:

    s{\s+__P\((\(.*?\))\)}{$1}g;
    s{\(\s+}{\(}g;
    s{\s+\)}{\)}g;
    s{\s+,}{,}g;
    s{(\s+)(for|if|switch|while)\(}{$1$2 \(}g;
    s{return ([^\(].*?);}{return ($1);}g;
    s{([\w\)])([!=+/\*-]?=)([\w\(+-])}{$1 $2 $3}g;
    s{\s+$}{\n};g

Also add $FreeBSD$ where needed.

MFC after:	1 week
2002-02-06 13:30:31 +00:00
kris
0e1bb965cc Set WFORMAT=0, overlooked in previous commits to libexec/.
Reported by:	jhay
2002-02-06 11:07:55 +00:00
imp
31898ce15f Fix minor disorder in functions declared in extern.h 2002-02-05 21:07:47 +00:00
imp
9d4730cf18 o Move externs to extern.h
o Use new-style prototypes exclusively rather than the old foo() style.
o Use new-style function definitions.
o remove register
o make functions passed to signal have the right signature.
o do minor const poisoning.
2002-02-05 21:06:56 +00:00
sheldonh
81cc5956d9 Don't use non-signal-safe functions (exit(3) in this case) in
signal handlers.  In this case, use _exit(2) instead, following
the call to shutdown(2).

This fixes rare telnetd hangs.

PR:		misc/33672
Submitted by:	Umesh Krishnaswamy <umesh@juniper.net>
MFC after:	1 month
2002-02-05 15:20:02 +00:00
sobomax
0a68f500fa Allow ldd(1) be used on shared libraries in addition to executables. 2002-02-04 10:33:48 +00:00
kris
c60495e0de Lock down with WFORMAT?=1, with overrides in the subdirectories which
are not yet warning-clean.  Tested on i386 and alpha.
2002-02-04 02:33:51 +00:00
kris
5f428d0f3c Mark a function as __printflike()
MFC after:	1 week
2002-02-04 01:41:35 +00:00
kris
43a9d1849c Mark a function as __printf0like(). This exposes a warning which requires
some code changes to fix but should be possible.

MFC after:	1 week
2002-02-04 01:37:59 +00:00
kris
435834a74d Prototype a function as __printflike() to avoid a FORMAT_AUDIT warning.
MFC after:	1 week
2002-02-04 01:34:52 +00:00