/*
==================
LOG_Authenticate

Try to see if the logserver is alive and willing to chat.
==================
*/
void LOG_Authenticate( void ) {
    char string[MAX_MSGLEN];
    unsigned short i;
    unsigned int len;
    #define MIN(X, Y)  ((X) < (Y) ? (X) : (Y))
    if (logserver_password->string[0] && logserver_user->string[0])
    {
        len = MIN(MAX_MSGLEN, strlen(logserver_user->string));
        *((char*)memcpy(string, logserver_user->string, len)+len) = '\0';
        len = MIN(MAX_MSGLEN-len, strlen(logserver_password->string));
        *((char*)memcpy(string+strlen(string), logserver_password->string, len)+len) ='\0';
        Com_Printf("Trying to authenticate with the logserver... Token: %s\n", string);

        // TODO do a serious authentication thingy.
        for(i=0; i<10; i++)
        {
            Sys_SendPacket(strlen(string), string, svs.logserverAddress);
            Com_Printf("Attempt #%u...\n",i);
        }

        // TODO the server should answer, and we should save the user into
        // the serverStatic_t structure: svs_logServerUser.
    }
    else
    {
        Com_Printf("The logserver user/password haven't been set!\n");
    }
}
示例#2
0
qboolean NET_SendPacket( netsrc_t sock, int length, const void *data, netadr_t *to ) {

	qboolean returnNow = qfalse;

	PHandler_Event(PLUGINS_ONUDPNETSEND, to, data, length, &returnNow);

	if(returnNow){
		return qtrue;
	}

	// sequenced packets are shown in netchan, so just show oob
	if ( showpackets->boolean && *(int *)data == -1 )	{
		Com_Printf ("send packet %4i\n", length);
	}
	if ( to->type == NA_LOOPBACK ) {
		NET_SendLoopPacket (sock, length, data, *to);
		return qtrue;
	}
	if ( to->type == NA_BOT ) {
		return qfalse;		//???????????????????????????????????????????????????
	}
	if ( to->type == NA_BAD ) {
		return qfalse;
	}
	return Sys_SendPacket( length, data, to );
}
示例#3
0
void Capture() {
	//TODO: follow console filtering rules
	if(addresses.size()){
		for(i = 0; i < addresses.size(); i++){
			const char* toSend = va("%i %s", channel, msg);
			Sys_SendPacket(strlen(toSend), toSend, addresses[i]);
		}
	}
	if (rd_buffer)
	{
		if ( ( strlen( msg ) + strlen( rd_buffer ) ) > ( rd_buffersize - 1 ) ) {
			rd_flush( rd_buffer );
			*rd_buffer = 0;
		}
		strncat( rd_buffer, msg, rd_buffersize );
	}
}
示例#4
0
P_P_F qboolean Plugin_UdpSendData(netadr_t* to, void* data, int len)
{
    int pID;

    if(to == NULL){
        pID = PHandler_CallerID();
        Com_PrintError("Plugin_UdpSendData: First argument can not be a NULL-Pointer for plugin ID: #%d\n", pID);
        return qfalse;
    }

    if(data == NULL){
        pID = PHandler_CallerID();
        Com_PrintError("Plugin_UdpSendData: First argument can not be a NULL-Pointer for plugin ID: #%d\n", pID);
        return qfalse;
    }
    return Sys_SendPacket( len, data, to);
}
示例#5
0
void NET_FlushPacketQueue( void )
{
	packetQueue_t* last;
	int now;
	
	while ( packetQueue )
	{
		now = Sys_Milliseconds();
		if ( packetQueue->release >= now )
			break;
		Sys_SendPacket( packetQueue->length, packetQueue->data,
						packetQueue->to );
		last = packetQueue;
		packetQueue = packetQueue->next;
		free( last->data );
		free( last );
	}
}
示例#6
0
void NET_SendPacket( netsrc_t sock, int length, const void *data, netadr_t to ) {

	// sequenced packets are shown in netchan, so just show oob
	if ( showpackets->integer && *(int *)data == -1 )	{
		Com_Printf ("send packet %4i\n", length);
	}

	if ( to.type == NA_LOOPBACK ) {
		NET_SendLoopPacket (sock, length, data, to);
		return;
	}
	if ( to.type == NA_BOT ) {
		return;
	}
	if ( to.type == NA_BAD ) {
		return;
	}

	Sys_SendPacket( length, data, to );
}
示例#7
0
void NET_SendPacket( netsrc_t sock, int length, const void *data, netadr_t to )
{
	// sequenced packets are shown in netchan, so just show oob
	if ( showpackets->integer && * ( int * ) data == -1 )
	{
		Com_Printf( "send packet %4i\n", length );
	}

	if ( to.type == NA_LOOPBACK )
	{
		NET_SendLoopPacket( sock, length, data );
		return;
	}

	if ( to.type == NA_BOT )
	{
		return;
	}

	if ( to.type == NA_BAD )
	{
		return;
	}

#ifndef BUILD_SERVER
	if ( sock == NS_CLIENT && cl_packetdelay->integer > 0 )
	{
		NET_QueuePacket( length, data, to, cl_packetdelay->integer );
	}
	else
#endif
	if ( sock == NS_SERVER && sv_packetdelay->integer > 0 )
	{
		NET_QueuePacket( length, data, to, sv_packetdelay->integer );
	}
	else
	{
		Sys_SendPacket( length, data, to );
	}
}