dsm.c 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // Test file for libevent
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <assert.h>
  6. #include <unistd.h>
  7. #include <errno.h>
  8. #include <sys/socket.h>
  9. #include <netinet/in.h>
  10. #include <netinet/ip.h>
  11. #include <netinet/udp.h>
  12. #include <arpa/inet.h>
  13. #define NBT_UDP_PORT 138
  14. #define NBT_TCP_PORT 139
  15. #include "bdsm.h"
  16. #include "bdsm/netbios_utils.h"
  17. #include "bdsm/netbios_session.h"
  18. #include "bdsm/smb_session.h"
  19. int main(int ac, char **av)
  20. {
  21. struct sockaddr_in addr;
  22. bdsm_context_t *ctx;
  23. const char *dialects[]= SMB_DIALECTS;
  24. printf("sizeof(smb_header_t) = %lu", sizeof(smb_header_t));
  25. ctx = bdsm_context_new();
  26. assert(ctx);
  27. addr.sin_addr.s_addr = netbios_ns_resolve(ctx->ns, av[1], NETBIOS_FILESERVER);
  28. printf("%s's IP address is : %s\n", av[1], inet_ntoa(addr.sin_addr));
  29. //netbios_ns_discover(ctx->ns);
  30. //exit(0);
  31. // netbios_session_t *session;
  32. // session = netbios_session_new(addr.sin_addr.s_addr);
  33. // if (netbios_session_connect(session, "Cerbere"))
  34. // printf("A NetBIOS session with %s has been established\n", av[1]);
  35. // else
  36. // {
  37. // printf("Unable to establish a NetBIOS session with %s\n", av[1]);
  38. // exit(21);
  39. // }
  40. // netbios_session_destroy(session);
  41. smb_session_t *session;
  42. session = smb_session_new();
  43. if (smb_session_connect(session, av[1], addr.sin_addr.s_addr))
  44. printf("Successfully connected to %s\n", av[1]);
  45. else
  46. {
  47. printf("Unable to connect to %s\n", av[1]);
  48. exit(42);
  49. }
  50. if (smb_session_negotiate_protocol(session))
  51. printf("cool\n");
  52. else
  53. printf("Unable to negotiate SMB Dialect\n");
  54. smb_session_destroy(session);
  55. bdsm_context_destroy(ctx);
  56. return (0);
  57. }