mirror of
https://github.com/nzp-team/fteqw.git
synced 2025-02-07 15:51:09 +00:00
Fixing bugs that stop qtv working properly.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@1273 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
e37c03318c
commit
532df5c3d8
1 changed files with 23 additions and 8 deletions
|
@ -131,6 +131,12 @@ void DestFlush(qboolean compleate)
|
||||||
demo.dest = d->nextdest;
|
demo.dest = d->nextdest;
|
||||||
|
|
||||||
DestClose(d, false);
|
DestClose(d, false);
|
||||||
|
|
||||||
|
if (!demo.dest)
|
||||||
|
{
|
||||||
|
SV_MVDStop(2);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (d = demo.dest; d; d = d->nextdest)
|
for (d = demo.dest; d; d = d->nextdest)
|
||||||
{
|
{
|
||||||
|
@ -157,10 +163,13 @@ void DestFlush(qboolean compleate)
|
||||||
d->error = true;
|
d->error = true;
|
||||||
else if (len > 0) //error of some kind
|
else if (len > 0) //error of some kind
|
||||||
{
|
{
|
||||||
memmove(d->cache, d->cache+len, d->cacheused-len);
|
d->cacheused -= len;
|
||||||
|
memmove(d->cache, d->cache+len, d->cacheused);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ //error of some kind. would block or something
|
{ //error of some kind. would block or something
|
||||||
|
if (qerrno != EWOULDBLOCK)
|
||||||
|
d->error = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -1099,7 +1108,7 @@ mvddest_t *SV_InitStream(int socket)
|
||||||
|
|
||||||
dst->desttype = DEST_STREAM;
|
dst->desttype = DEST_STREAM;
|
||||||
dst->socket = socket;
|
dst->socket = socket;
|
||||||
dst->maxcachesize = 0x1000; //4096. :/
|
dst->maxcachesize = 0x8000; //is this too small?
|
||||||
dst->cache = BZ_Malloc(dst->maxcachesize);
|
dst->cache = BZ_Malloc(dst->maxcachesize);
|
||||||
|
|
||||||
return dst;
|
return dst;
|
||||||
|
@ -1464,15 +1473,20 @@ static qboolean SV_MVD_Record (mvddest_t *dest)
|
||||||
|
|
||||||
for (n = 0; n < sv.num_signon_buffers; n++)
|
for (n = 0; n < sv.num_signon_buffers; n++)
|
||||||
{
|
{
|
||||||
SZ_Write (&buf,
|
if (buf.cursize+sv.signon_buffer_size[n] > MAX_QWMSGLEN/2)
|
||||||
sv.signon_buffers[n],
|
|
||||||
sv.signon_buffer_size[n]);
|
|
||||||
|
|
||||||
if (buf.cursize > MAX_QWMSGLEN/2)
|
|
||||||
{
|
{
|
||||||
SV_WriteRecordMVDMessage (&buf, seq++);
|
SV_WriteRecordMVDMessage (&buf, seq++);
|
||||||
SZ_Clear (&buf);
|
SZ_Clear (&buf);
|
||||||
}
|
}
|
||||||
|
SZ_Write (&buf,
|
||||||
|
sv.signon_buffers[n],
|
||||||
|
sv.signon_buffer_size[n]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (buf.cursize > MAX_QWMSGLEN/2)
|
||||||
|
{
|
||||||
|
SV_WriteRecordMVDMessage (&buf, seq++);
|
||||||
|
SZ_Clear (&buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
MSG_WriteByte (&buf, svc_stufftext);
|
MSG_WriteByte (&buf, svc_stufftext);
|
||||||
|
@ -1532,7 +1546,7 @@ static qboolean SV_MVD_Record (mvddest_t *dest)
|
||||||
// get the client to check and download skins
|
// get the client to check and download skins
|
||||||
// when that is completed, a begin command will be issued
|
// when that is completed, a begin command will be issued
|
||||||
MSG_WriteByte (&buf, svc_stufftext);
|
MSG_WriteByte (&buf, svc_stufftext);
|
||||||
MSG_WriteString (&buf, va("skins\n") );
|
MSG_WriteString (&buf, "skins\n");
|
||||||
|
|
||||||
SV_WriteRecordMVDMessage (&buf, seq++);
|
SV_WriteRecordMVDMessage (&buf, seq++);
|
||||||
|
|
||||||
|
@ -1943,6 +1957,7 @@ int MVD_StreamStartListening(int port)
|
||||||
|
|
||||||
unsigned int nonblocking = true;
|
unsigned int nonblocking = true;
|
||||||
|
|
||||||
|
address.sin_family = AF_INET;
|
||||||
address.sin_addr.s_addr = INADDR_ANY;
|
address.sin_addr.s_addr = INADDR_ANY;
|
||||||
address.sin_port = htons((u_short)port);
|
address.sin_port = htons((u_short)port);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue