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 /cgi/cgihttpscriptptr.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 'cgi/cgihttpscriptptr.c')
| -rw-r--r-- | cgi/cgihttpscriptptr.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/cgi/cgihttpscriptptr.c b/cgi/cgihttpscriptptr.c new file mode 100644 index 0000000..9f5ee25 --- /dev/null +++ b/cgi/cgihttpscriptptr.c @@ -0,0 +1,48 @@ +/* +** Copyright 1998 - 2007 Double Precision, Inc. +** See COPYING for distribution information. +*/ + +/* +*/ +#include "cgi.h" + +#if HAVE_UNISTD_H +#include <unistd.h> +#endif + +#include <string.h> +#include <stdlib.h> +#include <stdio.h> + +static char *scriptptr=0; + +extern void error(const char *); + +void cgihttpscriptptr_init() +{ + /* Reinitialisation required when running as fastcgi */ + if (scriptptr) { + free(scriptptr); + scriptptr=0; + } +} + +const char *cgihttpscriptptr() +{ + if (!scriptptr) + { + char *p=getenv("SCRIPT_NAME"); + char *h=getenv("HTTP_HOST"); + char *q; + + if (!h) h=""; + if (!p) p=""; + + q=malloc(strlen(p)+strlen(h)+sizeof("http://")); + if (!q) error("Out of memory."); + sprintf(q, "http:%s%s%s", (*h ? "//":""), h, p); + scriptptr=q; + } + return (scriptptr); +} |
