home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Tools / probe / p_ut.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  2.1 KB  |  131 lines

  1. /* p_ut.c: Common Utilities for probe */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Tools/probe/RCS/p_ut.c,v 6.0 1991/12/18 20:32:41 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Tools/probe/RCS/p_ut.c,v 6.0 1991/12/18 20:32:41 jpo Rel $
  9.  *
  10.  * $Log: p_ut.c,v $
  11.  * Revision 6.0  1991/12/18  20:32:41  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16.  
  17.  
  18. #include "util.h"
  19. #include "q.h"
  20. #include "tb_bpt84.h"
  21. #include "tb_p1.h"
  22. #include "retcode.h"
  23. #include <isode/cmd_srch.h>
  24. #include <pwd.h>
  25.  
  26.  
  27.  
  28. /* --- externals --- */
  29. extern CMD_TABLE            bptbl_body_parts84[];
  30. extern CMD_TABLE            p1tbl_encinfoset[];
  31. extern Q_struct                *QuePtr;
  32.  
  33.  
  34.  
  35. /* -- local routines -- */
  36. ADDR *make_adr_new();
  37. int set_encoded();
  38. int set_yn();
  39. void set_from();
  40.  
  41.  
  42.  
  43.  
  44. /* ---------------------  Begin  Routines  -------------------------------- */
  45.  
  46.  
  47.  
  48.  
  49. int set_encoded (values)
  50. char    *values;
  51. {
  52.     int     argc;
  53.         char    *argv[10];
  54.     int    retval;
  55.  
  56.     argv[0] = "=";
  57.     argv[1] = rcmd_srch (EI_BIT_STRING, p1tbl_encinfoset);
  58.  
  59.     if (!isstr (values)) 
  60.         argv[2] = rcmd_srch(BPT_IA5, bptbl_body_parts84);
  61.     else      
  62.         argv[2] = values;
  63.  
  64.     retval = txt2encodedinfo (&QuePtr->encodedinfo, argv, 3);
  65.     return retval;
  66. }
  67.  
  68.  
  69.  
  70.  
  71. int set_yn (value)
  72. char    *value; 
  73.     if (!isstr (value))
  74.         return NO;
  75.     if (lexequ (value, "y") == 0)
  76.         return YES;
  77.     if (lexequ (value, "yes") == 0)
  78.         return YES;
  79.     return NO;
  80. }
  81.  
  82.  
  83.  
  84.  
  85. void set_from()
  86. {
  87.     RP_Buf        rp;
  88.     struct passwd    *pwd,
  89.             *getpwuid();
  90.  
  91.     if ((pwd = getpwuid(getuid())) == NULL) {
  92.         printf("Cannot get your passwd entry\n");
  93.         exit(0);
  94.     }
  95.  
  96.     QuePtr -> Oaddress = make_adr_new (pwd->pw_name, AD_ORIGINATOR);
  97. }
  98.  
  99.  
  100. ADDR *make_adr_new (value, flag)
  101. char    *value;
  102. int    flag;
  103. {
  104.     static int     recipno = 0;
  105.     int        type = 0;
  106.     ADDR        *ap = NULLADDR;
  107.  
  108.     if (index (value, '@'))
  109.         type = AD_822_TYPE;
  110.     else if (value[0] == '/') 
  111.         type = AD_X400_TYPE;
  112.         else
  113.         type = AD_822_TYPE;
  114.  
  115.     switch (flag) {
  116.     case AD_ORIGINATOR: 
  117.         ap =  adr_new (value, type, 0);
  118.         break;
  119.     case AD_RECIPIENT: 
  120.         ap = adr_new (value, type, ++recipno);
  121.         break;
  122.     default:
  123.         printf ("make_adr_new/Unknown type '%d'\n", flag);
  124.         exit (1);
  125.     }
  126.  
  127.     return (ap);
  128. }
  129.     
  130.