diff options
author | Igor Sysoev <igor@sysoev.ru> | 2002-12-19 07:08:55 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2002-12-19 07:08:55 +0000 |
commit | 8809257531cc21aab3a25bb487e9424175cdfddd (patch) | |
tree | 42efffb011487a9e62014a7aee1607d51f233dd6 /src/core/ngx_config_command.c | |
parent | 140464d638353addea305e73d247ca6711f668aa (diff) | |
download | nginx-8809257531cc21aab3a25bb487e9424175cdfddd.tar.gz nginx-8809257531cc21aab3a25bb487e9424175cdfddd.zip |
nginx-0.0.1-2002-12-19-10:08:55 import
Diffstat (limited to 'src/core/ngx_config_command.c')
-rw-r--r-- | src/core/ngx_config_command.c | 280 |
1 files changed, 0 insertions, 280 deletions
diff --git a/src/core/ngx_config_command.c b/src/core/ngx_config_command.c deleted file mode 100644 index 26cd26b91..000000000 --- a/src/core/ngx_config_command.c +++ /dev/null @@ -1,280 +0,0 @@ - -#include <ngx_config.h> - - -#if 0 - -typedef struct ngx_conf_file_t { - ngx_fd_t fd; - char *name; - int line; - char *pos; -}; - -typedef struct ngx_conf_t { - char *name; - ngx_array_t *args; - - ngx_conf_file_t *file; - ngx_log_t *log; - - void *context; # ngx_http_conf_t -}; - -static int argument_number[] = { - NGX_CONF_NOARGS, - NGX_CONF_TAKE1, - NGX_CONF_TAKE2, - NGX_CONF_TAKE3 -}; - - -ngx_conf_parse(cf, container, filename) -{ - create cf; - - *conatiner(cf); - - if (filename) { - open; - } - - for ( ;; ) { - rc = ngx_conf_read_token(cf); - -NGX_OK, NGX_ERROR, NGX_CONF_FILE_DONE, NGX_CONF_BLOCK_DONE - - if (rc != NGX_OK) - return rc; - -"listen address:port;" -"location /images/ {" - - cmd = ngx_conf_find_token(cf); - if (cmd == NULL) { - ngx_log_error(NGX_LOG_EMERG, cf->log, 0, - "unknown directive \"%s\" in %s:%d", - cf->name, cf->file->name, cf->file->line); - return NGX_ERROR; - } - - if (cmd->type == NGX_CONF_CONTAINER) { - ngx_conf_parse(cf, cmd->container, NULL); - - } else if (cmd->type == NGX_CONF_FLAG) { - - if (cf->args->nelts != 1) { - ngx_log_error(NGX_LOG_EMERG, cf->log, 0, - "invalid number of arguments " - "in directive \"%s\" in %s:%d", - cf->name, cf->file->name, cf->file->line); - return NGX_ERROR; - } - - if (ngx_strcasecmp(cf->args->elts[0], "on") == 0) { - flag = 1; - - } else if (ngx_strcasecmp(cf->args->elts[0], "off") == 0) { - flag = 0; - - } else { - ngx_log_error(NGX_LOG_EMERG, cf->log, 0, - "invalid flag in directive \"%s\" in %s:%d", - cf->name, cf->file->name, cf->file->line); - return NGX_ERROR; - } - - rv = cmd->set(cf, cmd->offset, flag); - if (rv) { - ngx_log_error(NGX_LOG_EMERG, cf->log, 0, - "%s in directive \"%s\" in %s:%d", - rv, cf->name, cf->file->name, cf->file->line); - return NGX_ERROR; - } - - } else if (cmd->type & argument_number[args->nelts]) { - rv = cmd->set(cf, cmd->offset, cf->args); - if (rv) { - ngx_log_error(NGX_LOG_EMERG, cf->log, 0, - "%s in directive \"%s\" in %s:%d", - rv, cf->name, cf->file->name, cf->file->line); - return NGX_ERROR; - } - - } else { - ngx_log_error(NGX_LOG_EMERG, cf->log, 0, - "invalid number of arguments " - "in directive \"%s\" in %s:%d", - cf->name, cf->file->name, cf->file->line); - return NGX_ERROR; - } - } - - if (filename) { - close; - } -} - -int ngx_conf_read_token(ngx_conf_t *cf) -{ - - need_space = 0; - last_space = 1; - len = 0; - quoted = s_quoted = d_quoted = 0; - - cf->args->nelts = 0; - - for (/* void */ ; cf->pos < cf->end; cf->pos++) { - - ch = *cf->pos; - - if (ch == LF) - cf->line++; - - if (quoted) { - quoted = 0; - continue; - } - - len++; - - if (ch = '\\') { - quoted = 1; - continue; - } - - if (d_quoted) { - - if (ch == '"') { - d_qouted = 0; - need_space = 1; - last_space = 1; - continue; - } - - } else if (s_quoted) { - - if (ch == '\'') { - s_qouted = 0; - need_space = 1; - last_space = 1; - continue; - } - - } else { - - if (ch == ' ' || ch == '\t' || ch == CR || ch == LF) { - ngx_test_null(word, ngx_push_array(cf->args), NGX_ERRROR); - ngx_test_null(*word, ngx_palloc(cf->temp_pool, len + 1), - NGX_ERROR); - - for (dst = *word, src = cf->start; src < cf->pos; /* void */) { - if (*src == '\\') - src++; - *dst++ = *src++; - } - *dst = '\0'; - - need_space = 0; - last_space = 1; - continue; - } - - if (need_space) { - return NGX_ERROR; - } - - if (ch == ';') - return NGX_OK; - - if (ch == '{') - return NGX_OK; - - if (ch == '}') - return NGX_BLOCK_DONE; - - if (last_space) { - if (ch == '"') { - d_qouted = 1; - continue; - } - - if (ch == '\'') { - s_qouted = 1; - continue; - } - } - - last_space = 0; - } - } -} - -container - server - location - module - if - -http_conf current server - current location - - -ngx_conf_t *ngx_conf_open(char *filename, ngx_log_t *log) -{ - ngx_cf->fd = ngx_open_file(config, NGX_FILE_RDONLY); - if (ngx_conf->fd == -1) { - ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, - "ngx_conf_open: " - ngx_open_file_n " %s failed", filename); - - return NULL; - } - - ngx_conf->name = filename; - ngx_conf->log = log; - return ngx_conf; -} - -void ngx_conf_close(ngx_conf_t *cf) -{ - if (ngx_close_file(cf->fd) == -1) { - ngx_log_error(NGX_LOG_ERR, cf->log, ngx_errno, - ngx_close_file_n " %s failed", cf->name); - } - - cf->fd = -1; -} - - - - - - -#endif - - -char *ngx_conf_set_size_slot(char *conf, int offset, char *value) -{ - int size; - - size = atoi(value); - if (size < 0) - return "value must be greater or equal to zero"; - - *(int *) (conf + offset) = size; - return NULL; -} - -char *ngx_conf_set_time_slot(char *conf, int offset, char *value) -{ - int size; - - size = atoi(value); - if (size < 0) - return "value must be greater or equal to zero"; - - *(int *) (conf + offset) = size; - return NULL; -} |