コード例 #1
0
static void register_send_count_request(NETADDR addr)
{
	NETCHUNK packet;
	packet.client_id = -1;
	packet.address = addr;
	packet.flags = NETSENDFLAG_CONNLESS;
	packet.data_size = sizeof(SERVERBROWSE_GETCOUNT);
	packet.data = SERVERBROWSE_GETCOUNT;
	netserver_send(net, &packet);
}
コード例 #2
0
static void register_send_fwcheckresponse(NETADDR *addr)
{
	NETCHUNK packet;
	packet.client_id = -1;
	packet.address = *addr;
	packet.flags = NETSENDFLAG_CONNLESS;
	packet.data_size = sizeof(SERVERBROWSE_FWRESPONSE);
	packet.data = SERVERBROWSE_FWRESPONSE;
	netserver_send(net, &packet);
}
コード例 #3
0
ファイル: es_server.c プロジェクト: inherited/gravctf
int server_send_msg(int client_id)
{
	const MSG_INFO *info = msg_get_info();
	NETCHUNK packet;
	if(!info)
		return -1;
		
	mem_zero(&packet, sizeof(NETCHUNK));
	
	packet.client_id = client_id;
	packet.data = info->data;
	packet.data_size = info->size;

	if(info->flags&MSGFLAG_VITAL)
		packet.flags |= NETSENDFLAG_VITAL;
	if(info->flags&MSGFLAG_FLUSH)
		packet.flags |= NETSENDFLAG_FLUSH;
	
	/* write message to demo recorder */
	if(!(info->flags&MSGFLAG_NORECORD))
		demorec_record_message(info->data, info->size);

	if(!(info->flags&MSGFLAG_NOSEND))
	{
		if(client_id == -1)
		{
			/* broadcast */
			int i;
			for(i = 0; i < MAX_CLIENTS; i++)
				if(clients[i].state == SRVCLIENT_STATE_INGAME)
				{
					packet.client_id = i;
					netserver_send(net, &packet);
				}
		}
		else
			netserver_send(net, &packet);
	}
	return 0;
}
コード例 #4
0
static void register_send_heartbeat(NETADDR addr)
{
	static unsigned char data[sizeof(SERVERBROWSE_HEARTBEAT) + 2];
	unsigned short port = config.sv_port;
	NETCHUNK packet;
	
	mem_copy(data, SERVERBROWSE_HEARTBEAT, sizeof(SERVERBROWSE_HEARTBEAT));
	
	packet.client_id = -1;
	packet.address = addr;
	packet.flags = NETSENDFLAG_CONNLESS;
	packet.data_size = sizeof(SERVERBROWSE_HEARTBEAT) + 2;
	packet.data = &data;

	/* supply the set port that the master can use if it has problems */	
	if(config.sv_external_port)
		port = config.sv_external_port;
	data[sizeof(SERVERBROWSE_HEARTBEAT)] = port >> 8;
	data[sizeof(SERVERBROWSE_HEARTBEAT)+1] = port&0xff;
	netserver_send(net, &packet);
}