コード例 #1
0
ファイル: socket.c プロジェクト: daddyreb/Bigit_Genie
static sw_result
sw_socket_udp_recvfrom(
					sw_socket				self,
					sw_octets				buffer,
					sw_size_t				max,
					sw_size_t			*	len,
					sw_ipv4_address	*	from,
					sw_port				*	from_port,
					sw_ipv4_address	*	dest,
					sw_uint32			*	interface_index)
{
	struct sockaddr_in	from_addr;
	struct in_addr			dest_addr;
	sw_result				err;

	err = sw_socket_udp_really_recvfrom(self, buffer, max, len, (struct sockaddr*) &from_addr, sizeof(from_addr), &dest_addr, interface_index);
	sw_check_okay(err, exit);

	sw_ipv4_address_init_from_saddr(from, from_addr.sin_addr.s_addr);
	*from_port	= ntohs(from_addr.sin_port);  

	if (dest)
	{
		sw_ipv4_address_init_from_saddr(dest, dest_addr.s_addr);
	}

exit:

	return err;
}
コード例 #2
0
ファイル: query.c プロジェクト: JDsolution/ipnc
static sw_result HOWL_API
query_record_reply(
				sw_discovery								session,
				sw_discovery_oid							oid,
				sw_discovery_query_record_status		status,
				sw_uint32									interface_index,
				sw_const_string							fullname,
				sw_uint16									rrtype,
				sw_uint16									rrclass,
				sw_uint16									rrdatalen,	
				sw_const_octets							rrdata,
				sw_uint32									ttl,
				sw_opaque									extra)
{
	sw_ipv4_address address;

	fprintf(stderr, "interface index = 0x%x, fullname is %s\n", interface_index, fullname);

	if ((rrtype == 1) && (rrclass == 1))
	{
		sw_ipv4_address	address;
		sw_char				name[16];

		sw_ipv4_address_init_from_saddr(&address, *(sw_saddr*) rrdata);

		fprintf(stderr, "address is %s\n", sw_ipv4_address_name(address, name, sizeof(name)));
	}

	return SW_OKAY;
}
コード例 #3
0
ファイル: socket.c プロジェクト: daddyreb/Bigit_Genie
sw_ipv4_address
sw_socket_ipv4_address(
					sw_socket self)
{
	sw_ipv4_address address;

	sw_ipv4_address_init_from_saddr(&address, self->m_addr.sin_addr.s_addr);

	return address;
}
コード例 #4
0
ファイル: socket.c プロジェクト: daddyreb/Bigit_Genie
static sw_result
sw_socket_tcp_recvfrom(
               sw_socket				self,
               sw_octets				buffer,
               sw_size_t				max,
               sw_size_t			*	len,
					sw_ipv4_address	*	from,
					sw_port				*	from_port,
					sw_ipv4_address	*	dest,
					sw_uint32			*	interface_index)
{
	SW_UNUSED_PARAM(dest);
	SW_UNUSED_PARAM(interface_index);

	sw_ipv4_address_init_from_saddr(from, self->m_dest_addr.sin_addr.s_addr);
	*from_port = ntohs(self->m_dest_addr.sin_port);
	return sw_socket_tcp_recv(self, buffer, max, len);
}