testconnect.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "headers.h"
  2. void
  3. threadmain(int argc, char *argv[])
  4. {
  5. SmbClient *c;
  6. char *errmsg;
  7. if (argc != 2 && argc != 3) {
  8. print("usage: testconnect to [share]\n");
  9. exits("args");
  10. }
  11. smbglobalsguess(1);
  12. errmsg = nil;
  13. c = smbconnect(argv[1], argc == 3 ? argv[2] : nil, &errmsg);
  14. if (c) {
  15. int i, rv;
  16. int entries;
  17. SmbRapServerInfo1 *si = nil;
  18. SmbFindFileBothDirectoryInfo ip[10];
  19. char *errmsg;
  20. ushort sid, searchcount, endofsearch;
  21. errmsg = nil;
  22. rv = smbnetserverenum2(c, SV_TYPE_SERVER, "PLAN9", &entries, &si, &errmsg);
  23. if (rv < 0)
  24. print("error: %s\n", errmsg);
  25. else if (rv > 0)
  26. print("error code %d\n", rv);
  27. else
  28. for (i = 0; i < entries; i++)
  29. print("%s: %d.%d 0x%.8lux %s\n", si[i].name, si[i].vmaj, si[i].vmin, si[i].type, si[i].remark);
  30. free(si);
  31. if (rv == 0) {
  32. rv = smbnetserverenum2(c, SV_TYPE_DOMAIN_ENUM, nil, &entries, &si, &errmsg);
  33. if (rv < 0)
  34. print("error: %s\n", errmsg);
  35. else if (rv > 0)
  36. print("error code %d\n", rv);
  37. else
  38. for (i = 0; i < entries; i++)
  39. print("%s: %d.%d 0x%.8lux %s\n", si[i].name, si[i].vmaj, si[i].vmin, si[i].type, si[i].remark);
  40. free(si);
  41. }
  42. rv = smbclienttrans2findfirst2(c, nelem(ip), "\\LICENSE",
  43. &sid, &searchcount, &endofsearch, ip, &errmsg);
  44. if (rv) {
  45. print("sid 0x%.4ux\n", sid);
  46. print("searchcount 0x%.4ux\n", searchcount);
  47. print("endofsearch 0x%.4ux\n", endofsearch);
  48. }
  49. else
  50. print("search failed %s\n", errmsg);
  51. smbclientfree(c);
  52. }
  53. else
  54. print("failed to connect: %s\n", errmsg);
  55. }