home *** CD-ROM | disk | FTP | other *** search
/ The Pier Shareware 6 / The_Pier_Shareware_Number_6_(The_Pier_Exchange)_(1995).iso / 024 / psi110g.zip / CALLDBD.C < prev    next >
C/C++ Source or Header  |  1994-07-05  |  2KB  |  116 lines

  1. /* Callbook server */
  2. #include "global.h"
  3. #if defined CALLSERVER || defined SAMCALLB || defined QRZCALLB
  4. #include "files.h"
  5. #include "mbuf.h"
  6. #include "socket.h"
  7. #include "session.h"
  8. #include "proc.h"
  9. #include "dirutil.h"
  10. #include "commands.h"
  11. #include "mailbox.h"
  12. #include "config.h"
  13.  
  14. extern char *Callserver;  /* buckbook.c */
  15.  
  16. static void calldbd __ARGS((int s,void *unused,void *p));
  17.  
  18. #if defined(SAMCALLB) || defined(QRZCALLB)
  19. int cb_lookup __ARGS((int s,char *call,FILE *fp));
  20. #else
  21. int cb_lookup(int s,char *call);  /* in buckbook.c  */
  22. #endif
  23.  
  24. /* Start up callsign database service */
  25. int
  26. cdbstart(argc,argv,p)
  27. int argc;
  28. char *argv[];
  29. void *p;
  30. {
  31.     int16 port;
  32.  
  33.     if(argc < 2)
  34.         port = IPPORT_CALLDB;
  35.     else
  36.         port = atoi(argv[1]);
  37.  
  38.     return start_tcp(port,"CALL Server",calldbd,1024);
  39. }
  40.  
  41. int
  42. cdb0(argc,argv,p)
  43. int argc;
  44. char *argv[];
  45. void *p;
  46. {
  47.     int16 port;
  48.  
  49.     if(argc < 2)
  50.         port = IPPORT_CALLDB;
  51.     else
  52.         port = atoi(argv[1]);
  53.  
  54.     return stop_tcp(port);
  55. }
  56.  
  57. static void
  58. calldbd(s,unused,p)
  59. int s;
  60. void *unused;
  61. void *p;
  62. {
  63.     char user[80];
  64.     int err;
  65.  
  66.     sockmode(s,SOCK_ASCII);
  67.     sockowner(s,Curproc);
  68.     recvline(s,user,80);
  69.     rip(user);
  70.     log(s,"Callbook lookup: %s",user);
  71.     if(strlen(user) == 0)
  72.     {
  73.         usputs(s,"No Callbook information available\n");
  74.     }
  75.     else
  76.     {
  77. #if defined(SAMCALLB) || defined(QRZCALLB)
  78.         if ((err = cb_lookup(s,user,(FILE *) 0)) != 0)
  79.             usprintf(s,(err == 2) ? "No Callbook information available\n" : "Callbook not active\n");
  80. #else
  81.         cb_lookup(s,user);
  82. #endif
  83.     }
  84.     close_s(s);
  85. /*   log(s,"close Callbook"); */
  86. }
  87.  
  88. /* This routine has been expanded upon, and is now located in buckbook.c
  89.   - kb7yw Mon  01-27-1992
  90.  
  91. int
  92. docallserver(argc,argv,p)
  93. int argc;
  94. char *argv[];
  95. void *p;
  96. {
  97.     if(argc < 2)
  98.     {
  99.         if(Callserver != NULLCHAR)
  100.       tprintf("The callserver's host name is: %s\n",Callserver);
  101.         else
  102.         {
  103.             tputs("Callserver not configured!\nUsage: callserver hostname OR callserver ip_address\n");
  104.         }
  105.     }
  106.     else {
  107.         if(Callserver != NULLCHAR)
  108.             free(Callserver);
  109.         Callserver = strdup(argv[1]);
  110.     }
  111.     return 0;
  112. }
  113. */
  114.  
  115. #endif /* CALLSERVER */
  116.