summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorValentin Bartenev <vbart@nginx.com>2018-10-09 17:53:31 +0300
committerValentin Bartenev <vbart@nginx.com>2018-10-09 17:53:31 +0300
commit029c1a9f509b2af60e02d74ef982fda1346d85e0 (patch)
treebc4265edcf0620f191393c1faa2a6610c60b1886
parent6c5e5f25ef74dbf4d3dc524e293863fad7fcf524 (diff)
downloadunit-029c1a9f509b2af60e02d74ef982fda1346d85e0.tar.gz
unit-029c1a9f509b2af60e02d74ef982fda1346d85e0.tar.bz2
Renamed "go" application type to "external".
There's nothing specific to Go language. This type of application object can be used to run any external application that utilizes libunit API.
-rw-r--r--auto/sources2
-rw-r--r--pkg/deb/debian.module/unit.example-go-config2
-rw-r--r--pkg/deb/debian.module/unit.example-go1.10-config2
-rw-r--r--pkg/deb/debian.module/unit.example-go1.7-config2
-rw-r--r--pkg/deb/debian.module/unit.example-go1.8-config2
-rw-r--r--pkg/deb/debian.module/unit.example-go1.9-config2
-rw-r--r--pkg/deb/debian/unit.example.config2
-rw-r--r--pkg/rpm/rpmbuild/SOURCES/unit.example-go-config2
-rw-r--r--pkg/rpm/rpmbuild/SOURCES/unit.example.config2
-rw-r--r--src/nxt_application.c8
-rw-r--r--src/nxt_application.h26
-rw-r--r--src/nxt_conf_validation.c32
-rw-r--r--src/nxt_external.c (renamed from src/nxt_go.c)45
-rw-r--r--src/nxt_main_process.c42
-rw-r--r--src/nxt_router.c2
-rw-r--r--src/nxt_runtime.c4
-rw-r--r--test/unit.py2
17 files changed, 91 insertions, 88 deletions
diff --git a/auto/sources b/auto/sources
index e7074345..0ebdab63 100644
--- a/auto/sources
+++ b/auto/sources
@@ -84,7 +84,7 @@ NXT_LIB_SRCS=" \
src/nxt_http_response.c \
src/nxt_http_error.c \
src/nxt_application.c \
- src/nxt_go.c \
+ src/nxt_external.c \
src/nxt_port_hash.c \
"
diff --git a/pkg/deb/debian.module/unit.example-go-config b/pkg/deb/debian.module/unit.example-go-config
index d6a2a8a0..079ce0b8 100644
--- a/pkg/deb/debian.module/unit.example-go-config
+++ b/pkg/deb/debian.module/unit.example-go-config
@@ -1,7 +1,7 @@
{
"applications": {
"example_go": {
- "type": "go",
+ "type": "external",
"user": "nobody",
"executable": "/tmp/go-app"
}
diff --git a/pkg/deb/debian.module/unit.example-go1.10-config b/pkg/deb/debian.module/unit.example-go1.10-config
index 262eae29..29bb9059 100644
--- a/pkg/deb/debian.module/unit.example-go1.10-config
+++ b/pkg/deb/debian.module/unit.example-go1.10-config
@@ -1,7 +1,7 @@
{
"applications": {
"example_go": {
- "type": "go",
+ "type": "external",
"user": "nobody",
"executable": "/tmp/go1.10-app"
}
diff --git a/pkg/deb/debian.module/unit.example-go1.7-config b/pkg/deb/debian.module/unit.example-go1.7-config
index 62489959..bd98fe3a 100644
--- a/pkg/deb/debian.module/unit.example-go1.7-config
+++ b/pkg/deb/debian.module/unit.example-go1.7-config
@@ -1,7 +1,7 @@
{
"applications": {
"example_go": {
- "type": "go",
+ "type": "external",
"user": "nobody",
"executable": "/tmp/go1.7-app"
}
diff --git a/pkg/deb/debian.module/unit.example-go1.8-config b/pkg/deb/debian.module/unit.example-go1.8-config
index 551ec24e..1c14ca25 100644
--- a/pkg/deb/debian.module/unit.example-go1.8-config
+++ b/pkg/deb/debian.module/unit.example-go1.8-config
@@ -1,7 +1,7 @@
{
"applications": {
"example_go": {
- "type": "go",
+ "type": "external",
"user": "nobody",
"executable": "/tmp/go1.8-app"
}
diff --git a/pkg/deb/debian.module/unit.example-go1.9-config b/pkg/deb/debian.module/unit.example-go1.9-config
index ab026fb3..341894b7 100644
--- a/pkg/deb/debian.module/unit.example-go1.9-config
+++ b/pkg/deb/debian.module/unit.example-go1.9-config
@@ -1,7 +1,7 @@
{
"applications": {
"example_go": {
- "type": "go",
+ "type": "external",
"user": "nobody",
"executable": "/tmp/go1.9-app"
}
diff --git a/pkg/deb/debian/unit.example.config b/pkg/deb/debian/unit.example.config
index a4396a58..8d86acbe 100644
--- a/pkg/deb/debian/unit.example.config
+++ b/pkg/deb/debian/unit.example.config
@@ -17,7 +17,7 @@
},
"example_go": {
- "type": "go",
+ "type": "external",
"user": "nobody",
"executable": "/tmp/go-app"
},
diff --git a/pkg/rpm/rpmbuild/SOURCES/unit.example-go-config b/pkg/rpm/rpmbuild/SOURCES/unit.example-go-config
index d6a2a8a0..079ce0b8 100644
--- a/pkg/rpm/rpmbuild/SOURCES/unit.example-go-config
+++ b/pkg/rpm/rpmbuild/SOURCES/unit.example-go-config
@@ -1,7 +1,7 @@
{
"applications": {
"example_go": {
- "type": "go",
+ "type": "external",
"user": "nobody",
"executable": "/tmp/go-app"
}
diff --git a/pkg/rpm/rpmbuild/SOURCES/unit.example.config b/pkg/rpm/rpmbuild/SOURCES/unit.example.config
index a5f31ced..1715c971 100644
--- a/pkg/rpm/rpmbuild/SOURCES/unit.example.config
+++ b/pkg/rpm/rpmbuild/SOURCES/unit.example.config
@@ -17,7 +17,7 @@
},
"example_go": {
- "type": "go",
+ "type": "external",
"user": "nobody",
"executable": "/tmp/go-app"
},
diff --git a/src/nxt_application.c b/src/nxt_application.c
index 3c62f7d4..acdebe04 100644
--- a/src/nxt_application.c
+++ b/src/nxt_application.c
@@ -507,15 +507,15 @@ nxt_app_parse_type(u_char *p, size_t length)
str.length = length;
str.start = p;
- if (nxt_str_eq(&str, "python", 6)) {
+ if (nxt_str_eq(&str, "external", 8) || nxt_str_eq(&str, "go", 2)) {
+ return NXT_APP_EXTERNAL;
+
+ } else if (nxt_str_eq(&str, "python", 6)) {
return NXT_APP_PYTHON;
} else if (nxt_str_eq(&str, "php", 3)) {
return NXT_APP_PHP;
- } else if (nxt_str_eq(&str, "go", 2)) {
- return NXT_APP_GO;
-
} else if (nxt_str_eq(&str, "perl", 4)) {
return NXT_APP_PERL;
diff --git a/src/nxt_application.h b/src/nxt_application.h
index 35346655..10f5a922 100644
--- a/src/nxt_application.h
+++ b/src/nxt_application.h
@@ -15,9 +15,9 @@
typedef enum {
+ NXT_APP_EXTERNAL,
NXT_APP_PYTHON,
NXT_APP_PHP,
- NXT_APP_GO,
NXT_APP_PERL,
NXT_APP_RUBY,
@@ -40,6 +40,12 @@ typedef struct nxt_common_app_conf_s nxt_common_app_conf_t;
typedef struct {
+ char *executable;
+ nxt_conf_value_t *arguments;
+} nxt_external_app_conf_t;
+
+
+typedef struct {
char *home;
nxt_str_t path;
nxt_str_t module;
@@ -55,12 +61,6 @@ typedef struct {
typedef struct {
- char *executable;
- nxt_conf_value_t *arguments;
-} nxt_go_app_conf_t;
-
-
-typedef struct {
char *script;
} nxt_perl_app_conf_t;
@@ -80,11 +80,11 @@ struct nxt_common_app_conf_s {
nxt_conf_value_t *environment;
union {
- nxt_python_app_conf_t python;
- nxt_php_app_conf_t php;
- nxt_go_app_conf_t go;
- nxt_perl_app_conf_t perl;
- nxt_ruby_app_conf_t ruby;
+ nxt_external_app_conf_t external;
+ nxt_python_app_conf_t python;
+ nxt_php_app_conf_t php;
+ nxt_perl_app_conf_t perl;
+ nxt_ruby_app_conf_t ruby;
} u;
};
@@ -161,7 +161,7 @@ nxt_app_lang_module_t *nxt_app_lang_module(nxt_runtime_t *rt, nxt_str_t *name);
nxt_app_type_t nxt_app_parse_type(u_char *p, size_t length);
NXT_EXPORT extern nxt_str_t nxt_server;
-extern nxt_app_module_t nxt_go_module;
+extern nxt_app_module_t nxt_external_module;
NXT_EXPORT nxt_int_t nxt_unit_default_init(nxt_task_t *task,
nxt_unit_init_t *init);
diff --git a/src/nxt_conf_validation.c b/src/nxt_conf_validation.c
index ca7107cc..b1e30955 100644
--- a/src/nxt_conf_validation.c
+++ b/src/nxt_conf_validation.c
@@ -256,6 +256,21 @@ static nxt_conf_vldt_object_t nxt_conf_vldt_common_members[] = {
};
+static nxt_conf_vldt_object_t nxt_conf_vldt_external_members[] = {
+ { nxt_string("executable"),
+ NXT_CONF_VLDT_STRING,
+ NULL,
+ NULL },
+
+ { nxt_string("arguments"),
+ NXT_CONF_VLDT_ARRAY,
+ &nxt_conf_vldt_array_iterator,
+ (void *) &nxt_conf_vldt_argument },
+
+ NXT_CONF_VLDT_NEXT(&nxt_conf_vldt_common_members)
+};
+
+
static nxt_conf_vldt_object_t nxt_conf_vldt_python_members[] = {
{ nxt_string("home"),
NXT_CONF_VLDT_STRING,
@@ -321,21 +336,6 @@ static nxt_conf_vldt_object_t nxt_conf_vldt_php_members[] = {
};
-static nxt_conf_vldt_object_t nxt_conf_vldt_go_members[] = {
- { nxt_string("executable"),
- NXT_CONF_VLDT_STRING,
- NULL,
- NULL },
-
- { nxt_string("arguments"),
- NXT_CONF_VLDT_ARRAY,
- &nxt_conf_vldt_array_iterator,
- (void *) &nxt_conf_vldt_argument },
-
- NXT_CONF_VLDT_NEXT(&nxt_conf_vldt_common_members)
-};
-
-
static nxt_conf_vldt_object_t nxt_conf_vldt_perl_members[] = {
{ nxt_string("script"),
NXT_CONF_VLDT_STRING,
@@ -565,9 +565,9 @@ nxt_conf_vldt_app(nxt_conf_validation_t *vldt, nxt_str_t *name,
static nxt_str_t type_str = nxt_string("type");
static void *members[] = {
+ nxt_conf_vldt_external_members,
nxt_conf_vldt_python_members,
nxt_conf_vldt_php_members,
- nxt_conf_vldt_go_members,
nxt_conf_vldt_perl_members,
nxt_conf_vldt_ruby_members,
};
diff --git a/src/nxt_go.c b/src/nxt_external.c
index 4e7d0488..c7aacffc 100644
--- a/src/nxt_go.c
+++ b/src/nxt_external.c
@@ -9,21 +9,24 @@
#include <nxt_unit.h>
-static nxt_int_t nxt_go_init(nxt_task_t *task, nxt_common_app_conf_t *conf);
+static nxt_int_t nxt_external_init(nxt_task_t *task,
+ nxt_common_app_conf_t *conf);
-nxt_app_module_t nxt_go_module = {
+
+nxt_app_module_t nxt_external_module = {
0,
NULL,
- nxt_string("go"),
+ nxt_string("external"),
"*",
- nxt_go_init,
+ nxt_external_init,
};
extern char **environ;
+
nxt_inline nxt_int_t
-nxt_go_fd_no_cloexec(nxt_task_t *task, nxt_socket_t fd)
+nxt_external_fd_no_cloexec(nxt_task_t *task, nxt_socket_t fd)
{
int res, flags;
@@ -54,20 +57,20 @@ nxt_go_fd_no_cloexec(nxt_task_t *task, nxt_socket_t fd)
static nxt_int_t
-nxt_go_init(nxt_task_t *task, nxt_common_app_conf_t *conf)
+nxt_external_init(nxt_task_t *task, nxt_common_app_conf_t *conf)
{
- char **argv;
- u_char buf[256];
- u_char *p, *end;
- uint32_t index;
- size_t size;
- nxt_str_t str;
- nxt_int_t rc;
- nxt_uint_t i, argc;
- nxt_port_t *my_port, *main_port;
- nxt_runtime_t *rt;
- nxt_conf_value_t *value;
- nxt_go_app_conf_t *c;
+ char **argv;
+ u_char buf[256];
+ u_char *p, *end;
+ uint32_t index;
+ size_t size;
+ nxt_str_t str;
+ nxt_int_t rc;
+ nxt_uint_t i, argc;
+ nxt_port_t *my_port, *main_port;
+ nxt_runtime_t *rt;
+ nxt_conf_value_t *value;
+ nxt_external_app_conf_t *c;
rt = task->thread->runtime;
@@ -78,12 +81,12 @@ nxt_go_init(nxt_task_t *task, nxt_common_app_conf_t *conf)
return NXT_ERROR;
}
- rc = nxt_go_fd_no_cloexec(task, main_port->pair[1]);
+ rc = nxt_external_fd_no_cloexec(task, main_port->pair[1]);
if (nxt_slow_path(rc != NXT_OK)) {
return NXT_ERROR;
}
- rc = nxt_go_fd_no_cloexec(task, my_port->pair[0]);
+ rc = nxt_external_fd_no_cloexec(task, my_port->pair[0]);
if (nxt_slow_path(rc != NXT_OK)) {
return NXT_ERROR;
}
@@ -116,7 +119,7 @@ nxt_go_init(nxt_task_t *task, nxt_common_app_conf_t *conf)
return NXT_ERROR;
}
- c = &conf->u.go;
+ c = &conf->u.external;
argc = 2;
size = 0;
diff --git a/src/nxt_main_process.c b/src/nxt_main_process.c
index 491b09f3..819ed44c 100644
--- a/src/nxt_main_process.c
+++ b/src/nxt_main_process.c
@@ -134,6 +134,22 @@ static nxt_conf_map_t nxt_common_app_conf[] = {
};
+static nxt_conf_map_t nxt_external_app_conf[] = {
+ {
+ nxt_string("executable"),
+ NXT_CONF_MAP_CSTRZ,
+ offsetof(nxt_common_app_conf_t, u.external.executable),
+ },
+
+ {
+ nxt_string("arguments"),
+ NXT_CONF_MAP_PTR,
+ offsetof(nxt_common_app_conf_t, u.external.arguments),
+ },
+
+};
+
+
static nxt_conf_map_t nxt_python_app_conf[] = {
{
nxt_string("home"),
@@ -182,22 +198,6 @@ static nxt_conf_map_t nxt_php_app_conf[] = {
};
-static nxt_conf_map_t nxt_go_app_conf[] = {
- {
- nxt_string("executable"),
- NXT_CONF_MAP_CSTRZ,
- offsetof(nxt_common_app_conf_t, u.go.executable),
- },
-
- {
- nxt_string("arguments"),
- NXT_CONF_MAP_PTR,
- offsetof(nxt_common_app_conf_t, u.go.arguments),
- },
-
-};
-
-
static nxt_conf_map_t nxt_perl_app_conf[] = {
{
nxt_string("script"),
@@ -217,11 +217,11 @@ static nxt_conf_map_t nxt_ruby_app_conf[] = {
static nxt_conf_app_map_t nxt_app_maps[] = {
- { nxt_nitems(nxt_python_app_conf), nxt_python_app_conf },
- { nxt_nitems(nxt_php_app_conf), nxt_php_app_conf },
- { nxt_nitems(nxt_go_app_conf), nxt_go_app_conf },
- { nxt_nitems(nxt_perl_app_conf), nxt_perl_app_conf },
- { nxt_nitems(nxt_ruby_app_conf), nxt_ruby_app_conf },
+ { nxt_nitems(nxt_external_app_conf), nxt_external_app_conf },
+ { nxt_nitems(nxt_python_app_conf), nxt_python_app_conf },
+ { nxt_nitems(nxt_php_app_conf), nxt_php_app_conf },
+ { nxt_nitems(nxt_perl_app_conf), nxt_perl_app_conf },
+ { nxt_nitems(nxt_ruby_app_conf), nxt_ruby_app_conf },
};
diff --git a/src/nxt_router.c b/src/nxt_router.c
index 139b2c4c..3a5382e4 100644
--- a/src/nxt_router.c
+++ b/src/nxt_router.c
@@ -289,9 +289,9 @@ static const nxt_str_t http_prefix = nxt_string("HTTP_");
static const nxt_str_t empty_prefix = nxt_string("");
static const nxt_str_t *nxt_app_msg_prefix[] = {
+ &empty_prefix,
&http_prefix,
&http_prefix,
- &empty_prefix,
&http_prefix,
&http_prefix,
};
diff --git a/src/nxt_runtime.c b/src/nxt_runtime.c
index 311c2c08..8f20e0a0 100644
--- a/src/nxt_runtime.c
+++ b/src/nxt_runtime.c
@@ -80,10 +80,10 @@ nxt_runtime_create(nxt_task_t *task)
/* Should not fail. */
lang = nxt_array_add(rt->languages);
- lang->type = NXT_APP_GO;
+ lang->type = NXT_APP_EXTERNAL;
lang->version = (u_char *) "";
lang->file = NULL;
- lang->module = &nxt_go_module;
+ lang->module = &nxt_external_module;
listen_sockets = nxt_array_create(mp, 1, sizeof(nxt_listen_socket_t));
if (nxt_slow_path(listen_sockets == NULL)) {
diff --git a/test/unit.py b/test/unit.py
index cec62489..98a0a4db 100644
--- a/test/unit.py
+++ b/test/unit.py
@@ -477,7 +477,7 @@ class TestUnitApplicationGo(TestUnitApplicationProto):
},
"applications": {
script: {
- "type": "go",
+ "type": "external",
"processes": { "spare": 0 },
"working_directory": self.current_dir + '/go/' + script,
"executable": self.testdir + '/go/' + name