home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: InfoMgt / InfoMgt.zip / MAILMIND.ZOO / NETADDGR.C < prev    next >
Text File  |  1992-03-11  |  2KB  |  84 lines

  1. /* netaddgr.c - add NETBIOS group name
  2.  * Thomas A. Marciniak, M.D. = ytm@nihccpc1.bitnet
  3.  * Division of Cancer Prevention & Control, NCI
  4.  */
  5.  
  6. /* Revision history:
  7.  * 1.01  ytm  01/31/91  eliminate post routine
  8.  * 1.00  ytm  01/31/91  first release
  9.  */
  10.  
  11. /* Program notes:
  12.  * Current versions are specific for TurboC.
  13.  */
  14.  
  15. #include <local.h>                      /* standard definitions */
  16. #include "netbios.h"
  17.  
  18. /* status structure */
  19. #define STATUS_NONAME  100
  20. #define STATUS_UNKNOWN 0xff
  21. #define STATUS_STRUCT struct status
  22. typedef STATUS_STRUCT
  23.   {
  24.   word   wCode;
  25.   string sText;
  26.   };
  27. STATUS_STRUCT aStatus[] =
  28.   {
  29.   {0,  "OK"},
  30.   {13, "already present"},
  31.   {22, "at another station"},
  32.   {STATUS_NONAME, "NO name!"},
  33.   {STATUS_UNKNOWN, "?"}
  34.   };
  35.  
  36. /* globals */
  37. NCB     Ncb;
  38.  
  39. /* function prototypes */
  40. short main(short argc, string argv[]);
  41. void NetAddName(string sName);
  42.  
  43. /* add a name to the network */
  44. void NetAddName(string sName)
  45. {
  46. memset(&Ncb, 0, sizeof(NCB));
  47. Ncb.NCB_COMMAND = ADD_GROUP_NAME_WAIT;
  48. strcpy(Ncb.NCB_NAME, sName);
  49. Ncb.NCB_CMD_CPLT = STATUS_UNKNOWN;
  50. _ES = FP_SEG(&Ncb);
  51. _BX = FP_OFF(&Ncb);
  52. _AX = 0x0100;
  53. geninterrupt(0x5c);
  54. } /* NetAddName */ 
  55.  
  56. /* main */
  57. short main(short argc, string argv[])
  58. {
  59. char   caName[NETBIOS_NAME_LEN];
  60. short  i;
  61. string s, t;
  62. word   wStatus = STATUS_NONAME;
  63.  
  64. printf("Netaddgr v1.01\n");
  65. memset(&Ncb, 0, sizeof(NCB));
  66. memset(caName, 0, NETBIOS_NAME_LEN);
  67. if (argc > 1)
  68.   {
  69.   strcpy(caName, argv[1]);
  70.   for (s = caName, t = s + NETBIOS_NAME_LEN - 1; s < t; s++)
  71.     *s = ((*s) ? toupper(*s) : ' ');
  72.   printf("Adding %s\n", caName);
  73.   NetAddName(caName);
  74.   wStatus = Ncb.NCB_CMD_CPLT;
  75.   }
  76. for (i = 0; *(aStatus[i].sText) != '?'; i++)
  77.   if (aStatus[i].wCode == wStatus) break;
  78. printf("Netaddgr status: %s (%d)", aStatus[i].sText, Ncb.NCB_CMD_CPLT);
  79. if (Ncb.NCB_NUM) printf("  NETBIOS number %d\n", Ncb.NCB_NUM);
  80. return(i);
  81. } /* main */
  82.  
  83.  
  84.