From 493d66b832935b69e13f2bcbb39f42a3203bd3fe Mon Sep 17 00:00:00 2001 From: Spoike Date: Wed, 10 May 2017 04:32:49 +0000 Subject: [PATCH] misc fixes git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5100 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- engine/client/m_mp3.c | 2 +- engine/common/common.c | 4 ++-- engine/common/net_wins.c | 5 ++++- engine/http/ftpserver.c | 26 +++++++++++++++++++++----- engine/http/iwebiface.c | 2 +- engine/server/sv_mvd.c | 5 +++-- 6 files changed, 32 insertions(+), 12 deletions(-) diff --git a/engine/client/m_mp3.c b/engine/client/m_mp3.c index 1e921db8a..25d44eeb1 100644 --- a/engine/client/m_mp3.c +++ b/engine/client/m_mp3.c @@ -3406,7 +3406,7 @@ double Media_TweekCaptureFrameTime(double oldtime, double time) } #ifdef VKQUAKE -static void Media_CapturedFrame (void *data, int bytestride, size_t width, size_t height, enum uploadfmt fmt) +static void Media_CapturedFrame (void *data, qintptr_t bytestride, size_t width, size_t height, enum uploadfmt fmt) { if (currentcapture_funcs) currentcapture_funcs->capture_video(currentcapture_ctx, offscreen_captureframe, data, bytestride, width, height, fmt); diff --git a/engine/common/common.c b/engine/common/common.c index 292d4737b..58547c521 100644 --- a/engine/common/common.c +++ b/engine/common/common.c @@ -392,11 +392,11 @@ int Q_strncasecmp (const char *s1, const char *s2, int n) int Q_strcasecmp (const char *s1, const char *s2) { - return Q_strncasecmp (s1, s2, INT_MAX); + return Q_strncasecmp (s1, s2, 0x7fffffff); } int QDECL Q_stricmp (const char *s1, const char *s2) { - return Q_strncasecmp (s1, s2, INT_MAX); + return Q_strncasecmp (s1, s2, 0x7fffffff); } int Q_strstopcasecmp(const char *s1start, const char *s1end, const char *s2) { //safer version of strncasecmp, where s1 is the one with the length, and must exactly match s2 (which is null terminated and probably an immediate. diff --git a/engine/common/net_wins.c b/engine/common/net_wins.c index d04817012..912349547 100644 --- a/engine/common/net_wins.c +++ b/engine/common/net_wins.c @@ -3871,7 +3871,6 @@ qboolean FTENET_TCP_ParseHTTPRequest(ftenet_tcpconnect_connection_t *con, ftenet } else { - qboolean fail = false; char acceptkey[20*2]; unsigned char sha1digest[20]; char *blurgh; @@ -3918,6 +3917,8 @@ qboolean FTENET_TCP_ParseHTTPRequest(ftenet_tcpconnect_connection_t *con, ftenet if (!net_enable_webrtcbroker.ival) return false; break; + default: + return false; } if (*arg[WCATTR_URL] == '/') @@ -4010,6 +4011,7 @@ qboolean FTENET_TCP_ParseHTTPRequest(ftenet_tcpconnect_connection_t *con, ftenet } } +#ifdef HAVE_SSL static int QDECL TLSPromoteRead (struct vfsfile_s *file, void *buffer, int bytestoread) { if (bytestoread > net_message.cursize) @@ -4019,6 +4021,7 @@ static int QDECL TLSPromoteRead (struct vfsfile_s *file, void *buffer, int bytes return bytestoread; } #endif +#endif void FTENET_TCPConnect_PrintStatus(ftenet_generic_connection_t *gcon) { ftenet_tcpconnect_connection_t *con = (ftenet_tcpconnect_connection_t*)gcon; diff --git a/engine/http/ftpserver.c b/engine/http/ftpserver.c index 384f6368f..39bbf8e9e 100644 --- a/engine/http/ftpserver.c +++ b/engine/http/ftpserver.c @@ -53,7 +53,9 @@ typedef struct FTPclient_s{ unsigned long blocking; +#ifdef MULTITHREAD void *transferthread; +#endif struct FTPclient_s *next; } FTPclient_t; @@ -529,6 +531,7 @@ qboolean FTP_ReadToAbsFilename(FTPclient_t *cl, const char *msg, char *out, size return true; } +#ifdef MULTITHREAD int FTP_TransferThread(void *vcl) { char resource[8192]; @@ -536,7 +539,7 @@ int FTP_TransferThread(void *vcl) u_long _false = false; ioctlsocket (cl->datasock, FIONBIO, &_false); - if (cl->datadir == 1) + if ((cl->datadir&~64) == 1) { while(1) { @@ -554,7 +557,7 @@ int FTP_TransferThread(void *vcl) break; } } - else if (cl->datadir == 2) + else if ((cl->datadir&~64) == 2) { while(1) { @@ -565,10 +568,11 @@ int FTP_TransferThread(void *vcl) break; } } - cl->transferthread = NULL; + cl->datadir &= ~64; return 0; } +#endif iwboolean FTP_ServerThinkForConnection(FTPclient_t *cl) { @@ -581,15 +585,22 @@ iwboolean FTP_ServerThinkForConnection(FTPclient_t *cl) char resource[8192]; int _true = true; - if (cl->transferthread) +#ifdef MULTITHREAD + if (cl->datadir & 64) { if (*cl->messagebuffer) - { + { //fixme: gah! if (send (cl->controlsock, cl->messagebuffer, strlen(cl->messagebuffer), 0) != -1) *cl->messagebuffer = '\0'; //YAY! It went! } return false; } + if (cl->transferthread) + { + Sys_WaitOnThread(cl->transferthread); + cl->transferthread = NULL; + } +#endif if (cl->datadir == 1) { @@ -1322,8 +1333,13 @@ iwboolean FTP_ServerThinkForConnection(FTPclient_t *cl) } } +#ifdef MULTITHREAD if (cl->datadir && !cl->transferthread) + { + cl->datadir|=64; cl->transferthread = Sys_CreateThread("FTP RECV", FTP_TransferThread, cl, 0, 65536); + } +#endif return false; } diff --git a/engine/http/iwebiface.c b/engine/http/iwebiface.c index cf602fa61..396507f6f 100644 --- a/engine/http/iwebiface.c +++ b/engine/http/iwebiface.c @@ -670,7 +670,7 @@ int IWebAuthorize(const char *name, const char *password) rankinfo_t info; if (!id) { - if (!sv_readlevel.value && !*name || !stricmp(name, "anonymous")) + if (!sv_readlevel.value && (!*name || !stricmp(name, "anonymous"))) return IWEBACC_READ; //read only anywhere return 0; } diff --git a/engine/server/sv_mvd.c b/engine/server/sv_mvd.c index a7ef61f3a..ec09a69e6 100644 --- a/engine/server/sv_mvd.c +++ b/engine/server/sv_mvd.c @@ -2355,6 +2355,7 @@ void SV_UserCmdMVDList_HTML (vfsfile_t *pipe) VFS_PRINTF(pipe, "" "" + "%s - %s" "" "