⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 blacklist.c

📁 一个很有名的浏览器
💻 C
字号:
/* Blacklist manager *//* $Id: blacklist.c,v 1.28.6.1 2005/04/05 21:08:42 jonas Exp $ */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include <string.h>#include "elinks.h"#include "protocol/http/blacklist.h"#include "protocol/uri.h"#include "util/lists.h"#include "util/memory.h"#include "util/string.h"struct blacklist_entry {	LIST_HEAD(struct blacklist_entry);	enum blacklist_flags flags;	unsigned char host[1]; /* Must be last. */};static INIT_LIST_HEAD(blacklist);static struct blacklist_entry *get_blacklist_entry(struct uri *uri){	struct blacklist_entry *entry;	assert(uri && uri->hostlen > 0);	if_assert_failed return NULL;	foreach (entry, blacklist)		if (!strlcasecmp(entry->host, -1, uri->host, uri->hostlen))			return entry;	return NULL;}voidadd_blacklist_entry(struct uri *uri, enum blacklist_flags flags){	struct blacklist_entry *entry = get_blacklist_entry(uri);	if (entry) {		entry->flags |= flags;		return;	}	entry = mem_alloc(sizeof(*entry) + uri->hostlen);	if (!entry) return;	entry->flags = flags;	safe_strncpy(entry->host, uri->host, uri->hostlen + 1);	add_to_list(blacklist, entry);}voiddel_blacklist_entry(struct uri *uri, enum blacklist_flags flags){	struct blacklist_entry *entry = get_blacklist_entry(uri);	if (!entry) return;	entry->flags &= ~flags;	if (entry->flags) return;	del_from_list(entry);	mem_free(entry);}enum blacklist_flagsget_blacklist_flags(struct uri *uri){	struct blacklist_entry *entry = get_blacklist_entry(uri);	return entry ? entry->flags : SERVER_BLACKLIST_NONE;}voidfree_blacklist(void){	free_list(blacklist);}

⌨️ 快捷键说明

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