#include #include #include #include #include int main(int argc, char **argv) { int fd, gairet; struct addrinfo hints; struct addrinfo * result = NULL; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_RAW; hints.ai_protocol = 0; gairet = getaddrinfo("localhost", NULL, &hints, &result); if ((gairet !=0) || (result == NULL)) { fprintf(stderr, "could not resolve src, errno = %s\n", gai_strerror(gairet)); return 1; } printf("src ai_family %d ai_socketype %d ai_protocol %d\n", result->ai_family, result->ai_socktype, result->ai_protocol); if ( (fd = socket(result->ai_family, result->ai_socktype, result->ai_protocol)) == -1) { fd = -errno; printf("socket creation failed, errno = %d\n", -fd); } freeaddrinfo(result); memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_RAW; hints.ai_protocol = 0x73; gairet = getaddrinfo("localhost", NULL, &hints, &result); if ((gairet !=0) || (result == NULL)) { fprintf(stderr, "could not resolve src, errno = %s\n", gai_strerror(gairet)); return 1; } printf("src ai_family %d ai_socketype %d ai_protocol %d\n", result->ai_family, result->ai_socktype, result->ai_protocol); if ( (fd = socket(result->ai_family, result->ai_socktype, result->ai_protocol)) == -1) { fd = -errno; printf("l2tpv3_open : socket creation failed, errno = %d", -fd); } freeaddrinfo(result); return 0; }