diff --git a/engine/Makefile b/engine/Makefile index 527dcab7c..b9c9b95e7 100644 --- a/engine/Makefile +++ b/engine/Makefile @@ -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 diff --git a/engine/http/iwebiface.c b/engine/http/iwebiface.c index 7f07c8f3c..184126dee 100644 --- a/engine/http/iwebiface.c +++ b/engine/http/iwebiface.c @@ -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 specifies the username that has full access. if not supplied noone can write.\n"); printf(" -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)