Ejemplo n.º 1
0
static void do_tcp_server_start(void) {
  int result;
  tuvp_tcp_init();

  ip4_addr("0.0.0.0", tuvp_htons(SOCKET_TEST_PORT), &_addr_in);
  _sock_server = tuvp_socket(AF_INET, SOCK_STREAM, 0);

  result = tuvp_bind(_sock_server,
                     (const struct sockaddr*)&_addr_in,
                     sizeof(_addr_in));
  if (result != 0) {
    printf("!! tuvp_bind failed (%d)\r\n", result);
    return;
  }
  result = tuvp_listen(_sock_server, SOMAXCONN);
  if (result != 0) {
    printf("!! tuvp_listen failed (%d)\r\n", result);
    return;
  }

  printf(".. echo server started at ");
  dump_socket_info(_sock_server);
  printf("\r\n");

  printf(".. use 'telnet' to test, manually\r\n");
}
Ejemplo n.º 2
0
bool ip_union::is_rfc1918() const
{
	if(is_ip4map6()) {
		uint32_t ip4 = ip4_addr();
		if((ip4 & htonl(0xff000000)) == htonl(0x0a000000)) // 10.0.0.0/8
			return true;
		if((ip4 & htonl(0xfff00000)) == htonl(0xac100000)) // 172.16.0.0/12
			return true;
		if((ip4 & htonl(0xffff0000)) == htonl(0xc0a80000)) // 192.168.0.0/16
			return true;
	}
	return false;
}
Ejemplo n.º 3
0
int ip4_netmask(char *addr)
{
	char* slash;

	slash = strchr(addr, '/');
	if (slash) {
		return atoi(slash + 1);
	} else {
		switch ((ip4_addr(addr) & 192)) {
		case 0:
		case 1:
			return 8;
		case 128:
			return 16;
		default:
			return 24;
		}
	}
}
Ejemplo n.º 4
0
bool ip_union::is_link_local() const
{
	if((ip4_mapped[0] & htonl(0xFFC00000)) == htonl(0xFE800000)) // IPv6 link local
		return true;
	return is_ip4map6() && ((ip4_addr() & htonl(0xFFFF0000)) == htonl(0xA9FE0000)); // IPv4 link local
}