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

  1. /* netdelnm.c - delete NETBIOS 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.   {21, "not found"},
  31.   {STATUS_NONAME, "NO name!"},
  32.   {STATUS_UNKNOWN, "?"}
  33.   };
  34.  
  35. /* globals */
  36. NCB     Ncb;
  37.  
  38. /* function prototypes */
  39. short main(short argc, string argv[]);
  40. void NetDelName(string sName);
  41.  
  42. /* delete a name from NETBIOS */
  43. void NetDelName(string sName)
  44. {
  45. memset(&Ncb, 0, sizeof(NCB));
  46. Ncb.NCB_COMMAND = DELETE_NAME_WAIT;
  47. strcpy(Ncb.NCB_NAME, sName);
  48. Ncb.NCB_CMD_CPLT = STATUS_UNKNOWN;
  49. _ES = FP_SEG(&Ncb);
  50. _BX = FP_OFF(&Ncb);
  51. _AX = 0x0100;
  52. geninterrupt(0x5c);
  53. } /* NetDelName */ 
  54.  
  55. /* main */
  56. short main(short argc, string argv[])
  57. {
  58. char   caName[NETBIOS_NAME_LEN];
  59. short  i;
  60. string s, t;
  61. word   wStatus = STATUS_NONAME;
  62.  
  63. printf("Netdelnm v1.01\n");
  64. memset(&Ncb, 0, sizeof(NCB));
  65. memset(caName, 0, NETBIOS_NAME_LEN);
  66. if (argc > 1)
  67.   {
  68.   strcpy(caName, argv[1]);
  69.   for (s = caName, t = s + NETBIOS_NAME_LEN - 1; s < t; s++)
  70.     *s = ((*s) ? toupper(*s) : ' ');
  71.   printf("Deleting %s\n", caName);
  72.   NetDelName(caName);
  73.   wStatus = Ncb.NCB_CMD_CPLT;
  74.   }
  75. for (i = 0; *(aStatus[i].sText) != '?'; i++)
  76.   if (aStatus[i].wCode == wStatus) break;
  77. printf("Netdelnm status: %s (%d)\n", aStatus[i].sText, Ncb.NCB_CMD_CPLT);
  78. return(i);
  79. } /* main */
  80.  
  81.  
  82.