dns_domain.c

来自「fget是一个小型的HTTP/FTP工具」· C语言 代码 · 共 62 行

C
62
字号
#include "error.h"#include "alloc.h"#include "case.h"#include "byte.h"#include "dns.h"unsigned int dns_domain_length(const char *dn){  const char *x;  unsigned char c;  x = dn;  while ((c = *x++))    x += (unsigned int) c;  return x - dn;}void dns_domain_free(char **out){  if (*out) {    alloc_free(*out);    *out = 0;  }}int dns_domain_copy(char **out,char *in){  unsigned int len;  char *x;  len = dns_domain_length(in);  x = alloc(len);  if (!x) return 0;  byte_copy(x,len,in);  if (*out) alloc_free(*out);  *out = x;  return 1;}int dns_domain_equal(const char *dn1,const char *dn2){  unsigned int len;  len = dns_domain_length(dn1);  if (len != dns_domain_length(dn2)) return 0;  if (case_diffb(dn1,len,dn2)) return 0; /* safe since 63 < 'A' */  return 1;}char *dns_domain_suffix(const char *big,const char *little){  unsigned char c;  for (;;) {    if (dns_domain_equal(big,little)) return (char*)big;    c = *big++;    if (!c) return 0;    big += c;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?