/* * open udp port */ int open_udp_socket(char *hostname, unsigned short *port) { int sd; /* socket creation */ sd = socket(AF_INET, SOCK_DGRAM, 0); if(sd<0) { ERRMSG("cannot create tcp socket\n"); return -1; } if(bind_host(sd, hostname,0, port)) { close(sd); return -1; } return sd; }
/* * open tcp port */ static int open_tcp_socket(char *hostname, unsigned short *port, GError **error_r) { int sd; /* socket creation */ sd = socket(AF_INET, SOCK_STREAM, 0); if (sd < 0) { g_set_error(error_r, rtsp_client_quark(), errno, "failed to create TCP socket: %s", g_strerror(errno)); return -1; } if (bind_host(sd, hostname, 0, port, error_r)) { close_socket(sd); return -1; } return sd; }
int main(int argc, char *argv[]) { char *domnam = NULL, *master; char *map = NULL; struct ypmaplist *ypml, *y; struct hostent *hent; struct sockaddr_in lsin; int notrans, mode; int c, r; u_int i; notrans = mode = 0; while ((c = getopt(argc, argv, "xd:mt")) != -1) switch (c) { case 'x': for (i = 0; i<sizeof ypaliases/sizeof ypaliases[0]; i++) printf("\"%s\" is an alias for \"%s\"\n", ypaliases[i].alias, ypaliases[i].name); exit(0); case 'd': domnam = optarg; break; case 't': notrans++; break; case 'm': mode++; break; default: usage(); } if (!domnam) yp_get_default_domain(&domnam); if (mode == 0) { switch (argc-optind) { case 0: bzero(&lsin, sizeof lsin); lsin.sin_family = AF_INET; lsin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); if (bind_host(domnam, &lsin)) exit(ERR_NOBINDING); break; case 1: bzero(&lsin, sizeof lsin); lsin.sin_family = AF_INET; if ((lsin.sin_addr.s_addr = inet_addr(argv[optind])) == INADDR_NONE) { hent = gethostbyname(argv[optind]); if (!hent) errx(ERR_NOSUCHHOST, "host %s unknown", argv[optind]); bcopy((char *)hent->h_addr_list[0], (char *)&lsin.sin_addr, sizeof lsin.sin_addr); } if (bind_host(domnam, &lsin)) exit(ERR_NOBINDING); break; default: usage(); } exit(0); } if (argc-optind > 1) usage(); if (argv[optind]) { map = argv[optind]; for (i = 0; (!notrans) && i<sizeof ypaliases/sizeof ypaliases[0]; i++) if (strcmp(map, ypaliases[i].alias) == 0) map = ypaliases[i].name; r = yp_master(domnam, map, &master); switch (r) { case 0: printf("%s\n", master); free(master); break; case YPERR_YPBIND: errx(ERR_NOYPBIND, "not running ypbind"); default: errx(ERR_NOMASTER, "can't find master for map %s: reason: %s", map, yperr_string(r)); } exit(0); } ypml = NULL; r = yp_maplist(domnam, &ypml); switch (r) { case 0: for (y = ypml; y;) { ypml = y; r = yp_master(domnam, ypml->ypml_name, &master); switch (r) { case 0: printf("%s %s\n", ypml->ypml_name, master); free(master); break; default: warnx("can't find the master of %s: reason: %s", ypml->ypml_name, yperr_string(r)); break; } y = ypml->ypml_next; free(ypml); } break; case YPERR_YPBIND: errx(ERR_NOYPBIND, "not running ypbind"); default: errx(ERR_NOMASTER, "can't get map list for domain %s: reason: %s", domnam, yperr_string(r)); } exit(0); }