You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

26 lines
549B

  1. #include <stdlib.h>
  2. #include <strings.h>
  3. #include "barpainet.h"
  4. int inet_aton (const char * str, struct in_addr * add) {
  5. const char * pch = str;
  6. unsigned int add1 = 0, add2 = 0, add3 = 0, add4 = 0;
  7. add1 = atoi(pch);
  8. pch = strpbrk(pch,".");
  9. if (pch == 0 || ++pch == 0) goto done;
  10. add2 = atoi(pch);
  11. pch = strpbrk(pch,".");
  12. if (pch == 0 || ++pch == 0) goto done;
  13. add3 = atoi(pch);
  14. pch = strpbrk(pch,".");
  15. if (pch == 0 || ++pch == 0) goto done;
  16. add4 = atoi(pch);
  17. done:
  18. add->s_addr=(add4<<24)+(add3<<16)+(add2<<8)+add1;
  19. return 1;
  20. }