Ejemplo n.º 1
0
vm_connection_t vm_connect()
{
  unsigned long port;
  char* host = NULL;
  char* inet = NULL;
  vm_connection_t con = VOICEMAN_BAD_CONNECTION;
  char* vm=getenv("VOICEMAN");
  if (vm == NULL || vm[0] == '\0')
    return vm_connect_unix(VOICEMAN_DEFAULT_SOCKET);
  inet=check_inet_prefix(vm);
  if (inet == NULL)
    return vm_connect_unix(vm);
  host = (char*)malloc(strlen(inet) + 1);
  if (host == NULL)
    return VOICEMAN_BAD_CONNECTION;
  if (!parse_inet_str(inet, host, &port))
    {
      free(host);
      return VOICEMAN_BAD_CONNECTION;
    }
  con = vm_connect_inet(host, port);
  free(host);
  return con;
}
Ejemplo n.º 2
0
int
main(int argc, char **argv)
{
	struct sigaction action;
        char *filepath = NULL;
        struct in_addr srv_inetaddr;
        int port = DEFAULT_SERVER_SID;
        int family = AF_SERVAL;

        server_srvid.s_sid32[0] = htonl(DEFAULT_SERVER_SID);    

	memset (&action, 0, sizeof(struct sigaction));
        action.sa_handler = signal_handler;
    
	/* This server should shut down on these signals. */
        sigaction(SIGTERM, &action, 0);
        sigaction(SIGHUP, &action, 0);
        sigaction(SIGINT, &action, 0);

        progname = argv[0];
        argc--;
        argv++;
    
        while (argc && argv) {
                if (strcmp("-f", argv[0]) == 0 || 
                    strcmp("--file", argv[0]) == 0) {
                        if (argv[1]) {
                                filepath = argv[1];
                                argc--;
                                argv++;
                        }
                } else if (strcmp("-i", argv[0]) == 0 || 
                           strcmp("--inet", argv[0]) == 0) {
                        if (argv[1] && 
                            parse_inet_str(argv[1], 
                                           &srv_inetaddr, &port) == 1) {
                                family = AF_INET;
                                argc--;
                                argv++;
                        }
                } else if (strcmp("-h", argv[0]) == 0 || 
                           strcmp("--help", argv[0]) == 0) {
                        print_help();
                        return EXIT_SUCCESS;
                } else if (strcmp("-s", argv[0]) == 0 ||
                            strcmp("--serviceid", argv[0]) == 0) {
                        char *endptr = NULL;
                        unsigned long sid = strtoul(argv[1], &endptr, 10);

                        if (*endptr != '\0') {
                                fprintf(stderr, "invalid service id %s", 
                                        argv[1]);
                                return EXIT_FAILURE;
                        } else  {
                                server_srvid.s_sid32[0] = htonl(sid);
                        }
                        argc--;
                        argv++;
                } else {
                        print_help();
                        return EXIT_FAILURE;
                }
                argc--;
                argv++;
        }
    
        return client(filepath, family == AF_INET ? &srv_inetaddr : NULL, port);
}