diff options
| author | Sam Varshavchik | 2013-08-19 16:39:41 -0400 | 
|---|---|---|
| committer | Sam Varshavchik | 2013-08-25 14:43:51 -0400 | 
| commit | 9c45d9ad13fdf439d44d7443ae75da15ea0223ed (patch) | |
| tree | 7a81a04cb51efb078ee350859a64be2ebc6b8813 /imap/externalauth.c | |
| parent | a9520698b770168d1f33d6301463bb70a19655ec (diff) | |
| download | courier-libs-9c45d9ad13fdf439d44d7443ae75da15ea0223ed.tar.bz2 | |
Initial checkin
Imported from subversion report, converted to git. Updated all paths in
scripts and makefiles, reflecting the new directory hierarchy.
Diffstat (limited to 'imap/externalauth.c')
| -rw-r--r-- | imap/externalauth.c | 39 | 
1 files changed, 39 insertions, 0 deletions
| diff --git a/imap/externalauth.c b/imap/externalauth.c new file mode 100644 index 0000000..154e876 --- /dev/null +++ b/imap/externalauth.c @@ -0,0 +1,39 @@ +/* +** Copyright 1998 - 2008 Double Precision, Inc. +** See COPYING for distribution information. +*/ + +#if	HAVE_CONFIG_H +#include	"config.h" +#endif +#include	<stdio.h> +#include	<stdlib.h> +#include	<string.h> +#if	HAVE_UNISTD_H +#include	<unistd.h> +#endif + +const char *externalauth() +{ +	const char *p=getenv("TLS_EXTERNAL"); +	char *q, *r; + +	if (!p || !*p) +		return NULL; + +	if ((q=malloc(strlen(p)+20)) == NULL) +		return NULL; + +	strcat(strcpy(q, "TLS_SUBJECT_"), p); + +	for (r=q; *r; r++) +		if (*r >= 'a' && *r <= 'z') +			*r -= 'a' - 'A'; + +	p=getenv(q); +	free(q); + +	if (p && *p) +		return p; +	return 0; +} | 
