- switch (type) {
- case RAD_UDP:
- switch (conf->addrinfo->ai_family) {
- case AF_INET:
- if (udp_client4_sock < 0) {
- udp_client4_sock = bindtoaddr(srcprotores[RAD_UDP], AF_INET, 0, 1);
- if (udp_client4_sock < 0)
- debugx(1, DBG_ERR, "addserver: failed to create client socket for server %s", conf->host);
- }
- conf->servers->sock = udp_client4_sock;
- break;
- case AF_INET6:
- if (udp_client6_sock < 0) {
- udp_client6_sock = bindtoaddr(srcprotores[RAD_UDP], AF_INET6, 0, 1);
- if (udp_client6_sock < 0)
- debugx(1, DBG_ERR, "addserver: failed to create client socket for server %s", conf->host);
- }
- conf->servers->sock = udp_client6_sock;
- break;
- default:
- debugx(1, DBG_ERR, "addserver: unsupported address family");
- }
- break;
- case RAD_DTLS:
- switch (conf->addrinfo->ai_family) {
- case AF_INET:
- if (dtls_client4_sock < 0) {
- dtls_client4_sock = bindtoaddr(srcprotores[RAD_DTLS], AF_INET, 0, 1);
- if (dtls_client4_sock < 0)
- debugx(1, DBG_ERR, "addserver: failed to create client socket for server %s", conf->host);
- }
- conf->servers->sock = dtls_client4_sock;
- break;
- case AF_INET6:
- if (dtls_client6_sock < 0) {
- dtls_client6_sock = bindtoaddr(srcprotores[RAD_DTLS], AF_INET6, 0, 1);
- if (dtls_client6_sock < 0)
- debugx(1, DBG_ERR, "addserver: failed to create client socket for server %s", conf->host);
- }
- conf->servers->sock = dtls_client6_sock;
- break;
- default:
- debugx(1, DBG_ERR, "addserver: unsupported address family");
- }
- break;
- default:
- conf->servers->sock = -1;
- }