home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / LMUTIL.ZIP / GETSRV.C next >
C/C++ Source or Header  |  1991-03-19  |  1KB  |  70 lines

  1. #define LINT_ARGS
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <string.h>
  5. #define INCL_NETWKSTA
  6. #define INCL_NETERRORS
  7. #include <lan.h>
  8. #include "getsrv.h"
  9.  
  10. int get_logon_server ( char far ** logon_server, char far ** user_name )
  11. {
  12.    /*
  13.    ** Information structures
  14.    */
  15.    struct wksta_info_0 far * WkstaInfo0;
  16.  
  17.    API_RET_TYPE uRetCode = 0;
  18.  
  19.    char far * pszServer = "";
  20.    short sLevel = 0;
  21.    char far * pbBuffer;
  22.    unsigned short cbBuflen = 0;
  23.    unsigned short cbTotalAvail = 0;
  24.  
  25.    /*
  26.    ** Determine how large buffer needs to be
  27.    */
  28.    uRetCode = NetWkstaGetInfo ( pszServer,
  29.                                 sLevel,
  30.                                 NULL,
  31.                                 0,
  32.                                 &cbTotalAvail);
  33.  
  34.    if (uRetCode == NERR_BufTooSmall)
  35.    {
  36.       cbBuflen = cbTotalAvail;
  37.       pbBuffer = (char *) malloc (cbBuflen);
  38.    }
  39.    else
  40.    {
  41.       return (-1);
  42.    }
  43.  
  44.    /*
  45.    ** Allocate storage
  46.    */
  47.    uRetCode = NetWkstaGetInfo ( pszServer,
  48.                                 sLevel,
  49.                                 pbBuffer,
  50.                                 cbBuflen,
  51.                                 &cbTotalAvail);
  52.  
  53.  
  54.  
  55.    if (uRetCode != NERR_Success)
  56.    {
  57.       return (-1);
  58.    }
  59.  
  60.  
  61.  
  62.    WkstaInfo0 = (struct wksta_info_0 *) pbBuffer;
  63.  
  64.    *user_name = WkstaInfo0->wki0_username;
  65.    *logon_server = WkstaInfo0->wki0_logon_server;
  66.  
  67.    return (0);
  68. }
  69.  
  70.