コード例 #1
0
ファイル: main.c プロジェクト: dgoulet/debind
/*
 * Setup UDP client socket and bind to it.
 *
 * Return bound socket.
 */
static int dns_client_setup(int port, char *ip)
{
	int ret, sock;

	sock = udp_create_socket();
	if (sock < 0) {
		goto error;
	}

	ret = udp_bind_socket(sock, port, ip);
	if (ret < 0) {
		goto error;
	}

	return sock;

error:
	return -1;
}
コード例 #2
0
ファイル: socket.c プロジェクト: barryzxy/RIOT
int socket_base_bind(int s, sockaddr6_t *addr, int addrlen)
{
    if (socket_base_exists_socket(s)) {
        socket_t *current_socket = &socket_base_get_socket(s)->socket_values;

        switch (current_socket->domain) {
            case (PF_INET): {
                /* Not provided */
                return -1;
                break;
            }

            case (PF_INET6): {
                switch (current_socket->type) {
                        /* TCP */
                    case (SOCK_STREAM): {
                        if ((current_socket->protocol == 0) ||
                            (current_socket->protocol == IPPROTO_TCP)) {
                            return tcp_bind_socket(s, addr, addrlen,
                                                   thread_getpid());
                            break;
                        }
                        else {
                            return -1;
                            break;
                        }

                        break;
                    }

                    /* UDP */
                    case (SOCK_DGRAM): {
                        if ((current_socket->protocol == 0) ||
                            (current_socket->protocol == IPPROTO_UDP)) {
                            return udp_bind_socket(s, addr, addrlen,
                                                   thread_getpid());
                            break;
                        }
                        else {
                            return -1;
                            break;
                        }

                        break;
                    }

                    case (SOCK_SEQPACKET): {
                        /* not provided */
                        return -1;
                        break;
                    }

                    case (SOCK_RAW): {
                        /* not provided */
                        return -1;
                        break;
                    }

                    default: {
                        return -1;
                        break;
                    }
                }

                break;
            }

            case (PF_UNIX): {
                /* Not provided */
                return -1;
                break;
            }
        }
    }
    else {
        printf("SOCKET DOES NOT EXIST!\n");
        return -1;
    }

    return -1;
}