Fixed http server on linux.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5176 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
65e58c3595
commit
fbf5069a38
2 changed files with 22 additions and 17 deletions
|
@ -1839,7 +1839,7 @@ m-dbg:
|
|||
m-profile:
|
||||
@$(MAKE) m-tmp TYPE=_clsv-profile OUT_DIR="$(PROFILE_DIR)/$(NCDIRPREFIX)$(MB_DIR)"
|
||||
|
||||
.PHONY: m-tmp mcl-tmp mingl-tmp glcl-tmp gl-tmp sv-tmp _clsv-dbg _clsv-rel _cl-dbg _cl-rel _out-rel _out-dbg reldir debugdir makelibs wel-rel web-dbg
|
||||
.PHONY: m-tmp mcl-tmp mingl-tmp glcl-tmp gl-tmp sv-tmp _clsv-dbg _clsv-rel _cl-dbg _cl-rel _out-rel _out-dbg reldir debugdir makelibs wel-rel web-dbg httpserver
|
||||
|
||||
|
||||
_qcc-tmp: $(REQDIR)
|
||||
|
@ -2159,9 +2159,9 @@ libs-$(ARCH)/libopus.a:
|
|||
|
||||
makelibs: libs-$(ARCH)/libjpeg.a libs-$(ARCH)/libz.a libs-$(ARCH)/libpng.a libs-$(ARCH)/libogg.a libs-$(ARCH)/libvorbis.a libs-$(ARCH)/libopus.a
|
||||
|
||||
HTTP_OBJECTS=http/httpserver.c http/iwebiface.c common/fs_stdio.c
|
||||
HTTP_OBJECTS=http/httpserver.c http/iwebiface.c common/fs_stdio.c http/ftpserver.c
|
||||
$(RELEASE_DIR)/httpserver$(BITS): $(HTTP_OBJECTS)
|
||||
$(CC) -o $(RELEASE_DIR)/httpserver$(BITS) $(HTTP_OBJECTS) -Icommon -Iclient -Iqclib -Igl -Iserver -DWEBSVONLY -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -DNO_PNG
|
||||
$(CC) -o $(RELEASE_DIR)/httpserver$(BITS) -Icommon -Iclient -Iqclib -Igl -Iserver -DWEBSERVER -DWEBSVONLY -Dstricmp=strcasecmp -Dstrnicmp=strncasecmp -DNO_PNG $(HTTP_OBJECTS)
|
||||
httpserver: $(RELEASE_DIR)/httpserver$(BITS)
|
||||
|
||||
IQM_OBJECTS=../iqm/iqm.cpp
|
||||
|
|
|
@ -15,28 +15,28 @@ char *NET_SockadrToString(char *s, int slen, struct sockaddr_qstorage *addr)
|
|||
Q_snprintfz(s, slen, "%s:%u", inet_ntoa(((struct sockaddr_in*)addr)->sin_addr), ntohs(((struct sockaddr_in*)addr)->sin_port));
|
||||
break;
|
||||
case AF_INET6:
|
||||
if (!memcmp(((struct sockaddr_in6*)addr)->sin6_addr.s6_bytes, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12))
|
||||
if (!memcmp(((struct sockaddr_in6*)addr)->sin6_addr.s6_addr, "\0\0\0\0\0\0\0\0\0\0\xff\xff", 12))
|
||||
{ //ipv4-mapped
|
||||
Q_snprintfz(s, slen, "[::ffff:%u.%u.%u.%u]:%u",
|
||||
((struct sockaddr_in6*)addr)->sin6_addr.s6_bytes[12],
|
||||
((struct sockaddr_in6*)addr)->sin6_addr.s6_bytes[13],
|
||||
((struct sockaddr_in6*)addr)->sin6_addr.s6_bytes[14],
|
||||
((struct sockaddr_in6*)addr)->sin6_addr.s6_bytes[15],
|
||||
((struct sockaddr_in6*)addr)->sin6_addr.s6_addr[12],
|
||||
((struct sockaddr_in6*)addr)->sin6_addr.s6_addr[13],
|
||||
((struct sockaddr_in6*)addr)->sin6_addr.s6_addr[14],
|
||||
((struct sockaddr_in6*)addr)->sin6_addr.s6_addr[15],
|
||||
|
||||
ntohs(((struct sockaddr_in6*)addr)->sin6_port));
|
||||
}
|
||||
else
|
||||
{
|
||||
Q_snprintfz(s, slen, "[%x:%x:%x:%x:%x:%x:%x:%x]:%u",
|
||||
ntohs(((struct sockaddr_in6*)addr)->sin6_addr.s6_words[0]),
|
||||
ntohs(((struct sockaddr_in6*)addr)->sin6_addr.s6_words[1]),
|
||||
ntohs(((struct sockaddr_in6*)addr)->sin6_addr.s6_words[2]),
|
||||
ntohs(((struct sockaddr_in6*)addr)->sin6_addr.s6_words[3]),
|
||||
ntohs(((unsigned short*)((struct sockaddr_in6*)addr)->sin6_addr.s6_addr)[0]),
|
||||
ntohs(((unsigned short*)((struct sockaddr_in6*)addr)->sin6_addr.s6_addr)[1]),
|
||||
ntohs(((unsigned short*)((struct sockaddr_in6*)addr)->sin6_addr.s6_addr)[2]),
|
||||
ntohs(((unsigned short*)((struct sockaddr_in6*)addr)->sin6_addr.s6_addr)[3]),
|
||||
|
||||
ntohs(((struct sockaddr_in6*)addr)->sin6_addr.s6_words[4]),
|
||||
ntohs(((struct sockaddr_in6*)addr)->sin6_addr.s6_words[5]),
|
||||
ntohs(((struct sockaddr_in6*)addr)->sin6_addr.s6_words[6]),
|
||||
ntohs(((struct sockaddr_in6*)addr)->sin6_addr.s6_words[7]),
|
||||
ntohs(((unsigned short*)((struct sockaddr_in6*)addr)->sin6_addr.s6_addr)[4]),
|
||||
ntohs(((unsigned short*)((struct sockaddr_in6*)addr)->sin6_addr.s6_addr)[5]),
|
||||
ntohs(((unsigned short*)((struct sockaddr_in6*)addr)->sin6_addr.s6_addr)[6]),
|
||||
ntohs(((unsigned short*)((struct sockaddr_in6*)addr)->sin6_addr.s6_addr)[7]),
|
||||
|
||||
ntohs(((struct sockaddr_in6*)addr)->sin6_port));
|
||||
}
|
||||
|
@ -181,7 +181,7 @@ int main(int argc, char **argv)
|
|||
printf(" -user <name> specifies the username that has full access. if not supplied noone can write.\n");
|
||||
printf(" -pass <pass> specifies the password to go with that username\n");
|
||||
printf(" -noanon will refuse to serve files to anyone but the authed user\n");
|
||||
return;
|
||||
return 0;
|
||||
}
|
||||
else if (!strcmp(a, "port") || !strcmp(a, "p"))
|
||||
{
|
||||
|
@ -312,6 +312,11 @@ void COM_EnumerateFiles (const char *match, int (*func)(const char *, qofs_t, ti
|
|||
while(FindNextFileA(r, &fd) && go);
|
||||
FindClose(r);
|
||||
}
|
||||
#else
|
||||
void COM_EnumerateFiles (const char *match, int (*func)(const char *, qofs_t, time_t mtime, void *, searchpathfuncs_t *f), void *parm)
|
||||
{
|
||||
//No implementation on unix etc
|
||||
}
|
||||
#endif
|
||||
|
||||
char *COM_ParseType (const char *data, char *out, int outlen, com_tokentype_t *toktype)
|
||||
|
|
Loading…
Reference in a new issue