diff options
Diffstat (limited to 'local.c')
-rw-r--r-- | local.c | 15 |
1 files changed, 13 insertions, 2 deletions
@@ -1,4 +1,4 @@ -/* $Id: local.c,v 1.31 2003/09/26 17:59:51 ukai Exp $ */ +/* $Id: local.c,v 1.35 2007/05/23 15:06:05 inu Exp $ */ #include "fm.h" #include <string.h> #include <stdio.h> @@ -16,6 +16,10 @@ #include "local.h" #include "hash.h" +#ifdef __MINGW32_VERSION +#include <winsock.h> +#endif + #define CGIFN_NORMAL 0 #define CGIFN_LIBDIR 1 #define CGIFN_CGIBIN 2 @@ -85,7 +89,8 @@ loadLocalDir(char *dname) Strcat_char(dirname, '/'); qdir = html_quote(Str_conv_from_system(dirname)->ptr); /* FIXME: gettextize? */ - tmp = Strnew_m_charp("<HTML>\n<HEAD>\n<BASE HREF=\"file://", qdir, + tmp = Strnew_m_charp("<HTML>\n<HEAD>\n<BASE HREF=\"file://", + html_quote(file_quote(dirname->ptr)), "\">\n<TITLE>Directory list of ", qdir, "</TITLE>\n</HEAD>\n<BODY>\n<H1>Directory list of ", qdir, "</H1>\n", NULL); @@ -193,8 +198,10 @@ check_local_cgi(char *file, int status) return -1; if (S_ISDIR(st.st_mode)) return -1; +#ifndef __MINGW32_VERSION if ((st.st_uid == geteuid() && (st.st_mode & S_IXUSR)) || (st.st_gid == getegid() && (st.st_mode & S_IXGRP)) || (st.st_mode & S_IXOTH)) /* executable */ return 0; +#endif return -1; } @@ -353,6 +360,9 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer) pid_t pid; char *file = uri, *name = uri, *path_info = NULL, *tmpf = NULL; +#ifdef __MINGW32_VERSION + return NULL; +#else status = cgi_filename(uri, &file, &name, &path_info); if (check_local_cgi(file, status) < 0) return NULL; @@ -412,4 +422,5 @@ localcgi_post(char *uri, char *qstr, FormList *request, char *referer) file, mybasename(file), strerror(errno)); exit(1); return NULL; +#endif } |