FreeBSD全能服务器安装手册改进篇之DNS(数据库)…

2009-05-13 02:53:50来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


FreeBSD全能服务器安装手册改进篇之DNS(数据库)篇
2006年3月26日星期日修改了mysqldb.c中#include 的错误
2006年3月29日星期三增加了BIND的中文介绍

#################################下载并解压缩安装包################################
cd /usr/ports/dns/bind9

//下载bind9.3.1
make fetch

cd /usr/ports/distfiles/

//解压缩bind9.3.*
tar zxvf bind-9.3.*.tar.gz

chown -R root:wheel bind-9.3.*


###############################生成mysqldb.c文件##################################
cd /usr/ports/distfiles/bind-9.3.*/bin/named/
//生成mysqldb.c 注意:必须采用touch命令生成文件,因为有些时候用其他命令生成的文件是不能被程序识别的。
touch mysqldb.c

//编辑mysqldb.c

/* 增加以下内容(此为mysqldb.c的原版文档亦可从以下连接直*http://jaist.dl.sourceforge.net/sourceforge/mysql-bind/mysql-bind-0-1.tgz)*/
#include

#include
#include
#include

#include

#include
#include
#include
#include

#include
#include

#include

#include "mysqldb.h"


static dns_sdbimplementation_t *mysqldb = NULL;

struct dbinfo {
  MYSQL *mysql;
  char *database;
  char *table;
  char *host;
  char *user;
  char *passwd;
};

static void
mysqldb_destroy(const char *zone, void *driverdata, void **dbdata);

/*
* Canonicalize a string before writing it to the database.
* "dest" must be an array of at least size 2*strlen(source) + 1.
*/
static void
quotestring(const char *source, char *dest) {
  while (*source != 0) {
    if (*source == '\'')
      *dest++ = '\'';
    *dest++ = *source++;
  }
  *dest++ = 0;
}

/*
* Connect to the database.
*/
static isc_result_t
db_connect(struct dbinfo *dbi) {
  dbi->mysql = mysql_init(0);
  if (!mysql_real_connect(dbi->mysql, dbi->host, dbi->user, dbi->passwd, dbi->database, 0, NULL, 0))
    return (ISC_R_FAILURE);
  return (ISC_R_SUCCESS);
}

/*
* Check to see if the connection is still valid.  If not, attempt to
* reconnect.
*/
static isc_result_t
maybe_reconnect(struct dbinfo *dbi) {
  if (dbi->mysql != NULL)
    return (ISC_R_SUCCESS);

  return (db_connect(dbi));
}

/*
* This database operates on absolute names.
*
* Queries are converted into SQL queries and issued synchronously.  Errors
* are handled really badly.

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:FreeBSD全能服务器安装手册之底层软件安装篇

下一篇:FreeBSD全能服务器安装手册之DNS(配置文件)篇