X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=submit%2Fsubmitd.c;h=f373618444ea5ff8855d05ed5009d55be58c8564;hb=de55454b05f3fee3c8268c5c5d299c31bd212811;hp=e8578f601437ee06ca87ddea4506b77c56d6be00;hpb=6324cb417d421274a384cfae916b039cbe56d6e0;p=eval.git diff --git a/submit/submitd.c b/submit/submitd.c index e8578f6..f373618 100644 --- a/submit/submitd.c +++ b/submit/submitd.c @@ -30,19 +30,29 @@ static uns port = 8888; static uns dh_bits = 1024; static uns max_conn = 10; static uns session_timeout; +uns max_versions; static byte *ca_cert_name = "?"; static byte *server_cert_name = "?"; static byte *server_key_name = "?"; +byte *history_format; static clist access_rules; static uns trace_tls; uns max_request_size; uns max_attachment_size; uns trace_commands; +static struct cf_section ip_node_conf = { + CF_TYPE(struct ip_node), + CF_ITEMS { + CF_USER("IP", PTR_TO(struct ip_node, addrmask), &ip_addrmask_type), + CF_END + } +}; + static struct cf_section access_conf = { CF_TYPE(struct access_rule), CF_ITEMS { - CF_USER("IP", PTR_TO(struct access_rule, addrmask), &ip_addrmask_type), + CF_LIST("IP", PTR_TO(struct access_rule, ip_list), &ip_node_conf), CF_UNS("Admin", PTR_TO(struct access_rule, allow_admin)), CF_UNS("PlainText", PTR_TO(struct access_rule, plain_text)), CF_UNS("MaxConn", PTR_TO(struct access_rule, max_conn)), @@ -59,9 +69,11 @@ static struct cf_section submitd_conf = { CF_UNS("SessionTimeout", &session_timeout), CF_UNS("MaxRequestSize", &max_request_size), CF_UNS("MaxAttachSize", &max_attachment_size), + CF_UNS("MaxVersions", &max_versions), CF_STRING("CACert", &ca_cert_name), CF_STRING("ServerCert", &server_cert_name), CF_STRING("ServerKey", &server_key_name), + CF_STRING("History", &history_format), CF_LIST("Access", &access_rules, &access_conf), CF_UNS("TraceTLS", &trace_tls), CF_UNS("TraceCommands", &trace_commands), @@ -105,8 +117,9 @@ static struct access_rule * lookup_rule(u32 ip) { CLIST_FOR_EACH(struct access_rule *, r, access_rules) - if (ip_addrmask_match(&r->addrmask, ip)) - return r; + CLIST_FOR_EACH(struct ip_node *, n, r->ip_list) + if (ip_addrmask_match(&n->addrmask, ip)) + return r; return NULL; } @@ -156,7 +169,7 @@ tls_new_session(int sk) int err; err = gnutls_init(&s, GNUTLS_SERVER); TLS_CHECK(gnutls_init); - err = gnutls_set_default_priority(s); TLS_CHECK(gnutls_set_default_priority); // FIXME + err = gnutls_set_default_priority(s); TLS_CHECK(gnutls_set_default_priority); gnutls_credentials_set(s, GNUTLS_CRD_CERTIFICATE, cert_cred); gnutls_certificate_server_set_request(s, GNUTLS_CERT_REQUEST); gnutls_dh_set_prime_bits(s, dh_bits);