📄 blacklist.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 + -