1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hotmocha-sbalance

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
sbdns.h 1.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
hotmocha Отправлено 30.06.2015 18:43 b981c41
#ifndef _SBDNSE_H_
#define _SBDNS_H_
#include <stdio.h>
#include <unistd.h>
#include <ares.h>
#include "sbalance.h"
#include "sblist.h"
#include "sbutil.h"
#define SB_DNS_MAX_HOSTNAME_LEN 256
#define SB_DNS_MAX_IP_LEN 64
#define SB_DNS_STATUS_DESTORYED -1 /* not in wait or parse list and channel destoryed */
#define SB_DNS_STATUS_INITED 0 /* temp status, not in wait or parse list after inited */
#define SB_DNS_STATUS_WAITING 1 /* int wait list*/
#define SB_DNS_STATUS_PARSING 2 /* in parse list */
#define SB_DNS_STATUS_OK 3 /* parse ok, notice not in wait or parse and channel destoryed */
#define SB_DNS_STATUS_TIMEOUT 4 /* temp status */
#define SB_DNS_STATUS_ERROR 5 /* temp status */
#define SB_REQREPMSG_TYPESPLIT 10000
#define SB_DNS_STATUS_CHAR_OK '0'
#define SB_DNS_STATUS_CHAR_FAIL '1'
#define SB_DNS_STATUS_CHAR_TIMEOUT '2'
#define SB_DNS_REQUEST_TYPE_QUERY '0'
#define SB_DNS_REQUEST_TYPE_UPDATE '1'
#define SB_DNS_BITMAP_LEN SB_MAX_WORKERS_NUM >> 3 + 1
#define SB_DNS_ARRAY_LEN SB_MAX_WORKERS_NUM
#if 0
struct msgbuf
{
/* requeset msg type : worker id(start from one); response msg type : worker id + SB_REQREPMSG_TYPESPLIT */
long mtype;
/* request: "host[#1]"; respose: "host#status#ip" */
/* if request has '[#1]' means dns server should update host's ip cache */
char mtext[SB_MSG_QUEUE_MAX_MSG_LEN];
};
struct dns_msg
{
int mtext_len;
struct msgbuf m;
};
#endif
struct sb_dns
{
char host[SB_DNS_MAX_HOSTNAME_LEN];
char ip[SB_DNS_MAX_IP_LEN]; /* only save one ip address */
int status; /* 0:inited 1: parsing 2: done 3: timeout*/
ares_channel channel;
unsigned long timeout_time;
struct list_head list_node;
struct hlist_node hash_node;
unsigned char waiting_dns_worker_bitmap[SB_DNS_BITMAP_LEN];
int waiting_dns_worker_array[SB_DNS_ARRAY_LEN];
int waiting_dns_worker_num;
};
int sb_dns_init(int msgqueueid);
int sb_dns_main_loop(int msgqueueid);
#endif

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/hotmocha-sbalance.git
git@api.gitlife.ru:oschina-mirror/hotmocha-sbalance.git
oschina-mirror
hotmocha-sbalance
hotmocha-sbalance
master