unixbind.lc 1.3 KB

12345678910111213141516171819202122232425262728
  1. #include "unp.h"## 1 ##src/unixdomain/unixbind.c##
  2. int## 2 ##src/unixdomain/unixbind.c##
  3. main(int argc, char **argv)## 3 ##src/unixdomain/unixbind.c##
  4. {## 4 ##src/unixdomain/unixbind.c##
  5. int sockfd;## 5 ##src/unixdomain/unixbind.c##
  6. socklen_t len;## 6 ##src/unixdomain/unixbind.c##
  7. struct sockaddr_un addr1, addr2;## 7 ##src/unixdomain/unixbind.c##
  8. if (argc != 2)## 8 ##src/unixdomain/unixbind.c##
  9. err_quit("usage: unixbind <pathname>");## 9 ##src/unixdomain/unixbind.c##
  10. sockfd = Socket(AF_LOCAL, SOCK_STREAM, 0);## 10 ##src/unixdomain/unixbind.c##
  11. unlink(argv[1]); /* OK if this fails */## 11 ##src/unixdomain/unixbind.c##
  12. bzero(&addr1, sizeof(addr1));## 12 ##src/unixdomain/unixbind.c##
  13. addr1.sun_family = AF_LOCAL;## 13 ##src/unixdomain/unixbind.c##
  14. strncpy(addr1.sun_path, argv[1], sizeof(addr1.sun_path) - 1);## 14 ##src/unixdomain/unixbind.c##
  15. Bind(sockfd, (SA *) &addr1, SUN_LEN(&addr1));## 15 ##src/unixdomain/unixbind.c##
  16. len = sizeof(addr2);## 16 ##src/unixdomain/unixbind.c##
  17. Getsockname(sockfd, (SA *) &addr2, &len);## 17 ##src/unixdomain/unixbind.c##
  18. printf("bound name = %s, returned len = %d\n", addr2.sun_path, len);## 18 ##src/unixdomain/unixbind.c##
  19. exit(0);## 19 ##src/unixdomain/unixbind.c##
  20. }## 20 ##src/unixdomain/unixbind.c##