Log In
New Account
  
 
Home My Page Project Tree Code Snippets Project Openings NUTSS
 
 
Summary Tracker Lists CVS Files
 

CVS | Administration

Diff for /libnutss/examples/nutssd.c between versions 1.1 and 1.2

version 1.1, 2007/04/24 11:42:45 version 1.2, 2007/05/03 13:29:44
Line 20 Line 20
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
//#include <unistd.h>#include <unistd.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <signal.h>
 #include <semaphore.h>  #include <semaphore.h>
 #include <string.h>  #include <string.h>
 #include <errno.h>  #include <errno.h>
Line 47  usage(char *argv0) Line 51  usage(char *argv0)
         "\n"          "\n"
         "Options:\n"          "Options:\n"
         "  --registrar,-r server:port\tUse sip registrar at server\n"          "  --registrar,-r server:port\tUse sip registrar at server\n"
       "  --password,-p pass\t\tUse password for registering with proxy\n",        "  --password,-p pass\t\tUse password for registering with proxy\n"
 "  --nofork,-n\t\t\tDon't fork\n",
         "nutssd");          "nutssd");
     exit(1);      exit(1);
 }  }
   
   void signal_handler(int sig)
   {
       switch(sig) {
           case SIGHUP:
               break;
           case SIGTERM:
               exit(0);
               break;
       }
   }
   
 int  int
 main(int argc, char **argv)  main(int argc, char **argv)
 {  {
   int c;    int c, nofork = 0, l = -1;
     int idx = 0;      int idx = 0;
     char *tmp;      char *tmp;
     static int one = 1;      static int one = 1;
Line 65  main(int argc, char **argv) Line 81  main(int argc, char **argv)
         {"swaplinksd", 0, 0, 'w'},          {"swaplinksd", 0, 0, 'w'},
         {"registrar", 1, 0, 'r'},          {"registrar", 1, 0, 'r'},
         {"password", 1, 0, 'p'},          {"password", 1, 0, 'p'},
       {"help",1, 0, 'h'},        {"nofork", 0, 0, 'n'},
         {"help",0, 0, 'h'},
 {"logfile", 1, 0, 'l'},
         {0, 0, 0, 0}          {0, 0, 0, 0}
     };      };
   
     nutss_config_set(NUTSS_CONFIG_OPT_BIND, &one, sizeof(one));      nutss_config_set(NUTSS_CONFIG_OPT_BIND, &one, sizeof(one));
     while (1) {      while (1) {
       c = getopt_long(argc, argv, "hp:r:stw", opts, &idx);        c = getopt_long(argc, argv, "hp:r:l:stwn", opts, &idx);
   
         if (c == -1)          if (c == -1)
             break;              break;
Line 96  main(int argc, char **argv) Line 114  main(int argc, char **argv)
                 nutss_config_set(NUTSS_CONFIG_PROXYPASSWORD, optarg,                  nutss_config_set(NUTSS_CONFIG_PROXYPASSWORD, optarg,
                     strlen(optarg) + 1);                      strlen(optarg) + 1);
                 break;                  break;
               case 'n':
                   nofork = 1;
                   break;
               case 'l':
                   if (l != -1)
                       close(l);
                   l = open(optarg, O_RDWR|O_APPEND|O_CREAT|O_SYNC, S_IRUSR|S_IWUSR);
                   break;
             case 'h':              case 'h':
             default:              default:
                 usage(argv[0]);                  usage(argv[0]);
Line 117  main(int argc, char **argv) Line 143  main(int argc, char **argv)
     nutss_config_set(NUTSS_CONFIG_DOMAINNAME, tmp, strlen(tmp) + 1);      nutss_config_set(NUTSS_CONFIG_DOMAINNAME, tmp, strlen(tmp) + 1);
     optind++;      optind++;
   
       if (!nofork && daemon(0,0)) {
           perror("nutssd");
           exit(1);
       }
   
       if (l != -1) {
           // Connect stdin and stdout to log file
           dup2(l,1);
           dup2(l,2);
           close(l);
       }
   
       signal(SIGHUP, signal_handler);
       signal(SIGTERM, signal_handler);
   
     sem_init(&sem, 0, 0);      sem_init(&sem, 0, 0);
     nutss_init();      nutss_init();
     while (sem_wait(&sem) == -1 && errno == EINTR);      while (sem_wait(&sem) == -1 && errno == EINTR);
   
   return 1;    exit(0);
 }  }

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
 

GForge.cis.cornell.edu is brought to you by

Cornell Computing and Information Science


Powered By GForge Collaborative Development Environment