oldbind.compat.c
上传用户:xu_441
上传日期:2007-01-04
资源大小:1640k
文件大小:1k
源码类别:

Email客户端

开发平台:

Unix_Linux

  1. /*
  2. **  OLDBIND.COMPAT.C
  3. **
  4. ** Very old systems do not have res_query(), res_querydomain() or
  5. ** res_search(), so emulate them here.
  6. **
  7. ** You really ought to be upgrading to a newer version of BIND
  8. ** (4.8.2 or later) rather than be using this.
  9. **
  10. ** J.R. Oldroyd <jr@inset.com>
  11. */
  12. #include <sys/types.h>
  13. #include <netinet/in.h>
  14. #include <arpa/nameser.h>
  15. #include <resolv.h>
  16. typedef union
  17. {
  18. HEADER qb1;
  19. char qb2[PACKETSZ];
  20. } querybuf;
  21. res_query(dname, class, type, data, datalen)
  22. char * dname;
  23. int class;
  24. int  type;
  25. char * data;
  26. int datalen;
  27. {
  28. int n;
  29. querybuf buf;
  30. n = res_mkquery(QUERY, dname, class, type, (char *) NULL, 0,
  31. NULL, (char *) &buf, sizeof buf);
  32. n = res_send((char *)&buf, n, data, datalen);
  33. return n;
  34. }
  35. res_querydomain(host, dname, class, type, data, datalen)
  36. char * host;
  37. char * dname;
  38. int class;
  39. int type;
  40. char * data;
  41. int datalen;
  42. {
  43. int n;
  44. querybuf buf;
  45. char dbuf[256];
  46. strcpy(dbuf, host);
  47. if (dbuf[strlen(dbuf)-1] != '.')
  48. strcat(dbuf, ".");
  49. strcat(dbuf, dname);
  50. n = res_mkquery(QUERY, dbuf, class, type, (char *) NULL, 0,
  51. NULL, (char *)&buf, sizeof buf);
  52. n = res_send((char *) &buf, n, data, datalen);
  53. return n;
  54. }
  55. res_search(dname, class, type, data, datalen)
  56. char * dname;
  57. int class;
  58. int type;
  59. char * data;
  60. int datalen;
  61. {
  62. int n;
  63. querybuf buf;
  64. n = res_mkquery(QUERY, dname, class, type, (char *)NULL, 0,
  65. NULL, (char *) &buf, sizeof buf);
  66. n = res_send((char *) &buf, n, data, datalen);
  67. return n;
  68. }