addr.c 360 B

12345678910111213141516171819202122232425
  1. #include <bits/socket/unix.h>
  2. #include <nlusctl.h>
  3. int uc_address(struct sockaddr_un* addr, const char* path)
  4. {
  5. char* p = addr->path;
  6. char* e = p + sizeof(addr->path);
  7. const char* q = path;
  8. char c;
  9. addr->family = AF_UNIX;
  10. while(p < e) {
  11. if((c = *q++))
  12. *p++ = c;
  13. else break;
  14. } if(p >= e) {
  15. return -ENAMETOOLONG;
  16. }
  17. *p = '\0';
  18. return 0;
  19. }