Minor refactoring and cleanup

- Renamed ngx_ldap_server to ngx_http_auth_ldap_server_t.
- Used NGX_CONF_ANY instead of many NGX_CONF_TAKExxxx for the configuration
  option taking any number of arguments.
main
Jiri Hruska 12 years ago
parent 2d30d6e4ae
commit 4228721e81
  1. 44
      ngx_http_auth_ldap_module.c

@ -55,7 +55,7 @@ typedef struct {
ngx_array_t *require_user; /* array of ngx_ldap_require_t */ ngx_array_t *require_user; /* array of ngx_ldap_require_t */
ngx_flag_t require_valid_user; ngx_flag_t require_valid_user;
ngx_flag_t satisfy_all; ngx_flag_t satisfy_all;
} ngx_ldap_server; } ngx_http_auth_ldap_server_t;
typedef struct { typedef struct {
ngx_str_t realm; ngx_str_t realm;
@ -63,22 +63,22 @@ typedef struct {
} ngx_http_auth_ldap_loc_conf_t; } ngx_http_auth_ldap_loc_conf_t;
typedef struct { typedef struct {
ngx_array_t *servers; /* array of ngx_ldap_server */ ngx_array_t *servers; /* array of ngx_http_auth_ldap_server_t */
ngx_hash_t srv; ngx_hash_t srv;
} ngx_http_auth_ldap_conf_t; } ngx_http_auth_ldap_conf_t;
static void * ngx_http_auth_ldap_create_conf(ngx_conf_t *cf); static void * ngx_http_auth_ldap_create_conf(ngx_conf_t *cf);
static char * ngx_http_auth_ldap_ldap_server_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf); static char * ngx_http_auth_ldap_ldap_server_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
static char * ngx_http_auth_ldap_parse_url(ngx_conf_t *cf, ngx_ldap_server *server); static char * ngx_http_auth_ldap_parse_url(ngx_conf_t *cf, ngx_http_auth_ldap_server_t *server);
static char * ngx_http_auth_ldap_parse_require(ngx_conf_t *cf, ngx_ldap_server *server); static char * ngx_http_auth_ldap_parse_require(ngx_conf_t *cf, ngx_http_auth_ldap_server_t *server);
static char * ngx_http_auth_ldap_parse_satisfy(ngx_conf_t *cf, ngx_ldap_server *server); static char * ngx_http_auth_ldap_parse_satisfy(ngx_conf_t *cf, ngx_http_auth_ldap_server_t *server);
static char * ngx_http_auth_ldap_ldap_server(ngx_conf_t *cf, ngx_command_t *dummy, void *conf); static char * ngx_http_auth_ldap_ldap_server(ngx_conf_t *cf, ngx_command_t *dummy, void *conf);
static ngx_int_t ngx_http_auth_ldap_handler(ngx_http_request_t *r); static ngx_int_t ngx_http_auth_ldap_handler(ngx_http_request_t *r);
static ngx_int_t ngx_http_auth_ldap_init(ngx_conf_t *cf); static ngx_int_t ngx_http_auth_ldap_init(ngx_conf_t *cf);
static void * ngx_http_auth_ldap_create_loc_conf(ngx_conf_t *); static void * ngx_http_auth_ldap_create_loc_conf(ngx_conf_t *);
static char * ngx_http_auth_ldap_merge_loc_conf(ngx_conf_t *, void *, void *); static char * ngx_http_auth_ldap_merge_loc_conf(ngx_conf_t *, void *, void *);
static ngx_int_t ngx_http_auth_ldap_authenticate_against_server(ngx_http_request_t *r, ngx_ldap_server *server, static ngx_int_t ngx_http_auth_ldap_authenticate_against_server(ngx_http_request_t *r, ngx_http_auth_ldap_server_t *server,
ngx_ldap_userinfo *uinfo, ngx_http_auth_ldap_loc_conf_t *conf); ngx_ldap_userinfo *uinfo, ngx_http_auth_ldap_loc_conf_t *conf);
static ngx_int_t ngx_http_auth_ldap_set_realm(ngx_http_request_t *r, ngx_str_t *realm); static ngx_int_t ngx_http_auth_ldap_set_realm(ngx_http_request_t *r, ngx_str_t *realm);
static ngx_ldap_userinfo * ngx_http_auth_ldap_get_user_info(ngx_http_request_t *); static ngx_ldap_userinfo * ngx_http_auth_ldap_get_user_info(ngx_http_request_t *);
@ -90,7 +90,7 @@ static ngx_conf_post_handler_pt ngx_http_auth_ldap_p = ngx_http_auth_ldap;
static ngx_command_t ngx_http_auth_ldap_commands[] = { static ngx_command_t ngx_http_auth_ldap_commands[] = {
{ {
ngx_string("ldap_server"), ngx_string("ldap_server"),
NGX_HTTP_MAIN_CONF|NGX_CONF_BLOCK|NGX_CONF_TAKE1, NGX_HTTP_MAIN_CONF | NGX_CONF_BLOCK | NGX_CONF_TAKE1,
ngx_http_auth_ldap_ldap_server_block, ngx_http_auth_ldap_ldap_server_block,
NGX_HTTP_MAIN_CONF_OFFSET, NGX_HTTP_MAIN_CONF_OFFSET,
0, 0,
@ -106,7 +106,7 @@ static ngx_command_t ngx_http_auth_ldap_commands[] = {
}, },
{ {
ngx_string("auth_ldap_servers"), ngx_string("auth_ldap_servers"),
NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LMT_CONF | NGX_CONF_TAKE1234 | NGX_CONF_TAKE5 |NGX_CONF_TAKE6|NGX_CONF_TAKE7, NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_HTTP_LMT_CONF | NGX_CONF_ANY,
ngx_conf_set_str_array_slot, ngx_conf_set_str_array_slot,
NGX_HTTP_LOC_CONF_OFFSET, NGX_HTTP_LOC_CONF_OFFSET,
offsetof(ngx_http_auth_ldap_loc_conf_t, servers), offsetof(ngx_http_auth_ldap_loc_conf_t, servers),
@ -148,11 +148,11 @@ ngx_module_t ngx_http_auth_ldap_module = {
static char * static char *
ngx_http_auth_ldap_ldap_server_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) ngx_http_auth_ldap_ldap_server_block(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
{ {
char *rv; char *rv;
ngx_str_t *value, name; ngx_str_t *value, name;
ngx_conf_t save; ngx_conf_t save;
ngx_ldap_server server, *s; ngx_http_auth_ldap_server_t server, *s;
ngx_http_auth_ldap_conf_t *cnf = conf; ngx_http_auth_ldap_conf_t *cnf = conf;
value = cf->args->elts; value = cf->args->elts;
@ -166,7 +166,7 @@ ngx_http_auth_ldap_ldap_server_block(ngx_conf_t *cf, ngx_command_t *cmd, void *c
server.alias = name; server.alias = name;
if (cnf->servers == NULL) { if (cnf->servers == NULL) {
cnf->servers = ngx_array_create(cf->pool, 7, sizeof(ngx_ldap_server)); cnf->servers = ngx_array_create(cf->pool, 7, sizeof(ngx_http_auth_ldap_server_t));
if (cnf->servers == NULL) { if (cnf->servers == NULL) {
return NGX_CONF_ERROR; return NGX_CONF_ERROR;
} }
@ -201,11 +201,11 @@ ngx_http_auth_ldap_ldap_server(ngx_conf_t *cf, ngx_command_t *dummy, void *conf)
char *rv; char *rv;
ngx_str_t *value; ngx_str_t *value;
ngx_ldap_server *server; ngx_http_auth_ldap_server_t *server;
ngx_http_auth_ldap_conf_t *cnf = conf; ngx_http_auth_ldap_conf_t *cnf = conf;
// It should be safe to just use latest server from array // It should be safe to just use latest server from array
server = ((ngx_ldap_server*)cnf->servers->elts + (cnf->servers->nelts - 1)); server = ((ngx_http_auth_ldap_server_t*)cnf->servers->elts + (cnf->servers->nelts - 1));
value = cf->args->elts; value = cf->args->elts;
@ -269,7 +269,7 @@ ngx_http_auth_ldap(ngx_conf_t *cf, void *post, void *data) {
* Parse URL conf parameter * Parse URL conf parameter
*/ */
static char * static char *
ngx_http_auth_ldap_parse_url(ngx_conf_t *cf, ngx_ldap_server *server) { ngx_http_auth_ldap_parse_url(ngx_conf_t *cf, ngx_http_auth_ldap_server_t *server) {
ngx_str_t *value; ngx_str_t *value;
u_char *p; u_char *p;
value = cf->args->elts; value = cf->args->elts;
@ -340,7 +340,7 @@ ngx_http_auth_ldap_parse_url(ngx_conf_t *cf, ngx_ldap_server *server) {
* Parse "require" conf parameter * Parse "require" conf parameter
*/ */
static char * static char *
ngx_http_auth_ldap_parse_require(ngx_conf_t *cf, ngx_ldap_server *server) { ngx_http_auth_ldap_parse_require(ngx_conf_t *cf, ngx_http_auth_ldap_server_t *server) {
ngx_http_script_compile_t sc; ngx_http_script_compile_t sc;
ngx_str_t *value; ngx_str_t *value;
@ -410,7 +410,7 @@ ngx_http_auth_ldap_parse_require(ngx_conf_t *cf, ngx_ldap_server *server) {
* Parse "satisfy" conf parameter * Parse "satisfy" conf parameter
*/ */
static char * static char *
ngx_http_auth_ldap_parse_satisfy(ngx_conf_t *cf, ngx_ldap_server *server) { ngx_http_auth_ldap_parse_satisfy(ngx_conf_t *cf, ngx_http_auth_ldap_server_t *server) {
ngx_str_t *value; ngx_str_t *value;
value = cf->args->elts; value = cf->args->elts;
@ -543,7 +543,7 @@ ngx_http_auth_ldap_get_user_info(ngx_http_request_t *r) {
static ngx_int_t ngx_http_auth_ldap_authenticate(ngx_http_request_t *r, ngx_http_auth_ldap_loc_conf_t *conf, static ngx_int_t ngx_http_auth_ldap_authenticate(ngx_http_request_t *r, ngx_http_auth_ldap_loc_conf_t *conf,
ngx_http_auth_ldap_conf_t *mconf) { ngx_http_auth_ldap_conf_t *mconf) {
ngx_ldap_server *server, *servers; ngx_http_auth_ldap_server_t *server, *servers;
servers = mconf->servers->elts; servers = mconf->servers->elts;
int rc; int rc;
ngx_uint_t i, k; ngx_uint_t i, k;
@ -608,7 +608,9 @@ static ngx_int_t ngx_http_auth_ldap_authenticate(ngx_http_request_t *r, ngx_http
/** /**
* Actual authentication against LDAP server * Actual authentication against LDAP server
*/ */
static ngx_int_t ngx_http_auth_ldap_authenticate_against_server(ngx_http_request_t *r, ngx_ldap_server *server, ngx_ldap_userinfo *uinfo, ngx_http_auth_ldap_loc_conf_t *conf) { static ngx_int_t ngx_http_auth_ldap_authenticate_against_server(ngx_http_request_t *r, ngx_http_auth_ldap_server_t *server,
ngx_ldap_userinfo *uinfo, ngx_http_auth_ldap_loc_conf_t *conf) {
LDAPURLDesc *ludpp = server->ludpp; LDAPURLDesc *ludpp = server->ludpp;
int rc; int rc;
LDAP *ld; LDAP *ld;

Loading…
Cancel
Save