config.proto: use string instead of bytes
authorRobert Swiecki <robert@swiecki.net>
Fri, 26 May 2017 22:09:08 +0000 (00:09 +0200)
committerRobert Swiecki <robert@swiecki.net>
Fri, 26 May 2017 22:09:08 +0000 (00:09 +0200)
config.c
config.pb-c.c
config.pb-c.h
config.proto

index ea4427571874074430edd9b5d7a1236913d5bfeb..c9e3bc01c0041cb7a565caa4472ad15052b8af17 100644 (file)
--- a/config.c
+++ b/config.c
@@ -59,18 +59,18 @@ static bool configParseInternal(struct nsjconf_t *nsjconf, Nsjail__NsJailConfig
                LOG_E("Uknown running mode: %d", njc->mode);
                return false;
        }
-       if (njc->has_chroot_dir) {
-               nsjconf->chroot = utilStrDupLen((char *)njc->chroot_dir.data, njc->chroot_dir.len);
+       if (njc->chroot_dir) {
+               nsjconf->chroot = utilStrDup(njc->chroot_dir);
        }
-       nsjconf->hostname = utilStrDupLen((char *)njc->hostname.data, njc->hostname.len);
-       nsjconf->cwd = utilStrDupLen((char *)njc->cwd.data, njc->cwd.len);
-       nsjconf->bindhost = utilStrDupLen((char *)njc->bindhost.data, njc->bindhost.len);
+       nsjconf->hostname = utilStrDup(njc->hostname);
+       nsjconf->cwd = utilStrDup(njc->cwd);
+       nsjconf->bindhost = utilStrDup(njc->bindhost);
        nsjconf->max_conns_per_ip = njc->max_conns_per_ip;
        nsjconf->tlimit = njc->time_limit;
        nsjconf->daemonize = njc->daemon;
 
-       if (njc->has_log_file) {
-               nsjconf->logfile = utilStrDupLen((char *)njc->log_file.data, njc->log_file.len);
+       if (njc->log_file) {
+               nsjconf->logfile = utilStrDup(njc->log_file);
        }
        if (njc->has_log_level) {
                switch (njc->log_level) {
@@ -96,7 +96,7 @@ static bool configParseInternal(struct nsjconf_t *nsjconf, Nsjail__NsJailConfig
 
        }
 
-       if (njc->has_log_file || njc->has_log_level) {
+       if (njc->log_file || njc->has_log_level) {
                if (logInitLogFile(nsjconf) == false) {
                        return false;
                }
@@ -152,57 +152,36 @@ static bool configParseInternal(struct nsjconf_t *nsjconf, Nsjail__NsJailConfig
        nsjconf->clone_newcgroup = njc->clone_newcgroup;
 
        for (size_t i = 0; i < njc->n_uidmap; i++) {
-               const char *i_id =
-                   utilStrDupLen((char *)njc->uidmap[i]->inside_id.data,
-                                 njc->uidmap[i]->inside_id.len);
-               const char *o_id =
-                   utilStrDupLen((char *)njc->uidmap[i]->outside_id.data,
-                                 njc->uidmap[i]->outside_id.len);
                struct idmap_t *p =
-                   userParseId(i_id, o_id, njc->uidmap[i]->count, false /* is_gid */ );
+                   userParseId(njc->uidmap[i]->inside_id, njc->uidmap[i]->outside_id,
+                               njc->uidmap[i]->count, false /* is_gid */ );
                if (p == NULL) {
                        return false;
                }
                TAILQ_INSERT_TAIL(&nsjconf->uids, p, pointers);
        }
        for (size_t i = 0; i < njc->n_gidmap; i++) {
-               const char *i_id =
-                   utilStrDupLen((char *)njc->gidmap[i]->inside_id.data,
-                                 njc->uidmap[i]->inside_id.len);
-               const char *o_id =
-                   utilStrDupLen((char *)njc->gidmap[i]->outside_id.data,
-                                 njc->uidmap[i]->outside_id.len);
                struct idmap_t *p =
-                   userParseId(i_id, o_id, njc->gidmap[i]->count, true /* is_gid */ );
+                   userParseId(njc->gidmap[i]->inside_id, njc->gidmap[i]->outside_id,
+                               njc->gidmap[i]->count, true /* is_gid */ );
                if (p == NULL) {
                        return false;
                }
                TAILQ_INSERT_TAIL(&nsjconf->gids, p, pointers);
        }
        for (size_t i = 0; i < njc->n_newuidmap; i++) {
-               const char *i_id =
-                   utilStrDupLen((char *)njc->newuidmap[i]->inside_id.data,
-                                 njc->uidmap[i]->inside_id.len);
-               const char *o_id =
-                   utilStrDupLen((char *)njc->newuidmap[i]->outside_id.data,
-                                 njc->uidmap[i]->outside_id.len);
                struct idmap_t *p =
-                   userParseId(i_id, o_id, njc->newuidmap[i]->count, false /* is_gid */ );
+                   userParseId(njc->newuidmap[i]->inside_id, njc->newuidmap[i]->outside_id,
+                               njc->newuidmap[i]->count, false /* is_gid */ );
                if (p == NULL) {
                        return false;
                }
                TAILQ_INSERT_TAIL(&nsjconf->newuidmap, p, pointers);
        }
-
        for (size_t i = 0; i < njc->n_newgidmap; i++) {
-               const char *i_id =
-                   utilStrDupLen((char *)njc->newgidmap[i]->inside_id.data,
-                                 njc->uidmap[i]->inside_id.len);
-               const char *o_id =
-                   utilStrDupLen((char *)njc->newgidmap[i]->outside_id.data,
-                                 njc->uidmap[i]->outside_id.len);
                struct idmap_t *p =
-                   userParseId(i_id, o_id, njc->newgidmap[i]->count, true /* is_gid */ );
+                   userParseId(njc->newgidmap[i]->inside_id, njc->newgidmap[i]->outside_id,
+                               njc->newgidmap[i]->count, true /* is_gid */ );
                if (p == NULL) {
                        return false;
                }
index 21ba0632f2cb98f1b6f699074722ad613dcf0964..bf24c2c4b2d99c16cb83e3b1c45f9ee885d9b90e 100644 (file)
@@ -77,7 +77,7 @@ static const ProtobufCFieldDescriptor nsjail__id_map__field_descriptors[3] = {
         "inside_id",
         1,
         PROTOBUF_C_LABEL_REQUIRED,
-        PROTOBUF_C_TYPE_BYTES,
+        PROTOBUF_C_TYPE_STRING,
         0,                     /* quantifier_offset */
         offsetof(Nsjail__IdMap, inside_id),
         NULL,
@@ -89,7 +89,7 @@ static const ProtobufCFieldDescriptor nsjail__id_map__field_descriptors[3] = {
         "outside_id",
         2,
         PROTOBUF_C_LABEL_REQUIRED,
-        PROTOBUF_C_TYPE_BYTES,
+        PROTOBUF_C_TYPE_STRING,
         0,                     /* quantifier_offset */
         offsetof(Nsjail__IdMap, outside_id),
         NULL,
@@ -137,18 +137,12 @@ const ProtobufCMessageDescriptor nsjail__id_map__descriptor = {
        NULL, NULL, NULL        /* reserved[123] */
 };
 
-uint8_t nsjail__ns_jail_config__hostname__default_value_data[] = "NSJAIL";
-uint8_t nsjail__ns_jail_config__cwd__default_value_data[] = "/";
-uint8_t nsjail__ns_jail_config__bindhost__default_value_data[] = "::";
+char nsjail__ns_jail_config__hostname__default_value[] = "NSJAIL";
+char nsjail__ns_jail_config__cwd__default_value[] = "/";
+char nsjail__ns_jail_config__bindhost__default_value[] = "::";
 static const Nsjail__Mode nsjail__ns_jail_config__mode__default_value = NSJAIL__MODE__ONCE;
 static const protobuf_c_boolean nsjail__ns_jail_config__is_root_rw__default_value = 0;
-static const ProtobufCBinaryData nsjail__ns_jail_config__hostname__default_value =
-    { 6, nsjail__ns_jail_config__hostname__default_value_data };
-static const ProtobufCBinaryData nsjail__ns_jail_config__cwd__default_value =
-    { 1, nsjail__ns_jail_config__cwd__default_value_data };
 static const uint32_t nsjail__ns_jail_config__port__default_value = 0u;
-static const ProtobufCBinaryData nsjail__ns_jail_config__bindhost__default_value =
-    { 2, nsjail__ns_jail_config__bindhost__default_value_data };
 static const uint32_t nsjail__ns_jail_config__max_conns_per_ip__default_value = 0u;
 static const uint32_t nsjail__ns_jail_config__time_limit__default_value = 600u;
 static const protobuf_c_boolean nsjail__ns_jail_config__daemon__default_value = 0;
@@ -194,8 +188,8 @@ static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[
         "chroot_dir",
         2,
         PROTOBUF_C_LABEL_OPTIONAL,
-        PROTOBUF_C_TYPE_BYTES,
-        offsetof(Nsjail__NsJailConfig, has_chroot_dir),
+        PROTOBUF_C_TYPE_STRING,
+        0,                     /* quantifier_offset */
         offsetof(Nsjail__NsJailConfig, chroot_dir),
         NULL,
         NULL,
@@ -218,7 +212,7 @@ static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[
         "hostname",
         6,
         PROTOBUF_C_LABEL_REQUIRED,
-        PROTOBUF_C_TYPE_BYTES,
+        PROTOBUF_C_TYPE_STRING,
         0,                     /* quantifier_offset */
         offsetof(Nsjail__NsJailConfig, hostname),
         NULL,
@@ -230,7 +224,7 @@ static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[
         "cwd",
         7,
         PROTOBUF_C_LABEL_REQUIRED,
-        PROTOBUF_C_TYPE_BYTES,
+        PROTOBUF_C_TYPE_STRING,
         0,                     /* quantifier_offset */
         offsetof(Nsjail__NsJailConfig, cwd),
         NULL,
@@ -254,7 +248,7 @@ static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[
         "bindhost",
         9,
         PROTOBUF_C_LABEL_REQUIRED,
-        PROTOBUF_C_TYPE_BYTES,
+        PROTOBUF_C_TYPE_STRING,
         0,                     /* quantifier_offset */
         offsetof(Nsjail__NsJailConfig, bindhost),
         NULL,
@@ -302,8 +296,8 @@ static const ProtobufCFieldDescriptor nsjail__ns_jail_config__field_descriptors[
         "log_file",
         13,
         PROTOBUF_C_LABEL_OPTIONAL,
-        PROTOBUF_C_TYPE_BYTES,
-        offsetof(Nsjail__NsJailConfig, has_log_file),
+        PROTOBUF_C_TYPE_STRING,
+        0,                     /* quantifier_offset */
         offsetof(Nsjail__NsJailConfig, log_file),
         NULL,
         NULL,
index 0051738131ffb65b697d729ca3586774aff4d1fd..05b9713df191efb932f986052c13c3e32dd0b8ea 100644 (file)
@@ -35,29 +35,27 @@ typedef enum _Nsjail__LogLevel {
 
 struct _Nsjail__IdMap {
        ProtobufCMessage base;
-       ProtobufCBinaryData inside_id;
-       ProtobufCBinaryData outside_id;
+       char *inside_id;
+       char *outside_id;
        uint32_t count;
 };
 #define NSJAIL__ID_MAP__INIT \
  { PROTOBUF_C_MESSAGE_INIT (&nsjail__id_map__descriptor) \
-    , {0,NULL}, {0,NULL}, 1u }
+    , NULL, NULL, 1u }
 
 struct _Nsjail__NsJailConfig {
        ProtobufCMessage base;
        Nsjail__Mode mode;
-       protobuf_c_boolean has_chroot_dir;
-       ProtobufCBinaryData chroot_dir;
+       char *chroot_dir;
        protobuf_c_boolean is_root_rw;
-       ProtobufCBinaryData hostname;
-       ProtobufCBinaryData cwd;
+       char *hostname;
+       char *cwd;
        uint32_t port;
-       ProtobufCBinaryData bindhost;
+       char *bindhost;
        uint32_t max_conns_per_ip;
        uint32_t time_limit;
        protobuf_c_boolean daemon;
-       protobuf_c_boolean has_log_file;
-       ProtobufCBinaryData log_file;
+       char *log_file;
        protobuf_c_boolean has_log_level;
        Nsjail__LogLevel log_level;
        protobuf_c_boolean keep_env;
@@ -97,12 +95,12 @@ struct _Nsjail__NsJailConfig {
        size_t n_newgidmap;
        Nsjail__IdMap **newgidmap;
 };
-extern uint8_t nsjail__ns_jail_config__hostname__default_value_data[];
-extern uint8_t nsjail__ns_jail_config__cwd__default_value_data[];
-extern uint8_t nsjail__ns_jail_config__bindhost__default_value_data[];
+extern char nsjail__ns_jail_config__hostname__default_value[];
+extern char nsjail__ns_jail_config__cwd__default_value[];
+extern char nsjail__ns_jail_config__bindhost__default_value[];
 #define NSJAIL__NS_JAIL_CONFIG__INIT \
  { PROTOBUF_C_MESSAGE_INIT (&nsjail__ns_jail_config__descriptor) \
-    , NSJAIL__MODE__ONCE, 0,{0,NULL}, 0, { 6, nsjail__ns_jail_config__hostname__default_value_data }, { 1, nsjail__ns_jail_config__cwd__default_value_data }, 0u, { 2, nsjail__ns_jail_config__bindhost__default_value_data }, 0u, 600u, 0, 0,{0,NULL}, 0,0, 0, 0, 0, 0,NULL, 0, 0, 512ull, 0ull, 600ull, 1ull, 32ull, 0,0, 0,0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,NULL, 0,NULL, 0,NULL, 0,NULL }
+    , NSJAIL__MODE__ONCE, NULL, 0, nsjail__ns_jail_config__hostname__default_value, nsjail__ns_jail_config__cwd__default_value, 0u, nsjail__ns_jail_config__bindhost__default_value, 0u, 600u, 0, NULL, 0,0, 0, 0, 0, 0,NULL, 0, 0, 512ull, 0ull, 600ull, 1ull, 32ull, 0,0, 0,0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,NULL, 0,NULL, 0,NULL, 0,NULL }
 
 /* Nsjail__IdMap methods */
 void nsjail__id_map__init(Nsjail__IdMap * message);
index 11bb2c6c39eadc3d09271bb6fec8d442401901ab..35ef9d7e4dd8f4167adeaf420b649f820daefbc2 100644 (file)
@@ -18,25 +18,25 @@ enum LogLevel {
 }
 
 message IdMap {
-       required bytes inside_id = 1;
-       required bytes outside_id = 2;
+       required string inside_id = 1;
+       required string outside_id = 2;
        required uint32 count = 3 [default = 1];
 }
 
 message NsJailConfig {
        required Mode mode = 1 [default = ONCE];
-       optional bytes chroot_dir = 2;
+       optional string chroot_dir = 2;
        required bool is_root_rw = 3 [default = false];
-       required bytes hostname = 6 [default = "NSJAIL"];
-       required bytes cwd = 7 [default = "/"];
+       required string hostname = 6 [default = "NSJAIL"];
+       required string cwd = 7 [default = "/"];
 
        required uint32 port = 8 [default = 0];
-       required bytes bindhost = 9 [default = "::"];
+       required string bindhost = 9 [default = "::"];
        required uint32 max_conns_per_ip = 10 [default = 0];
 
        required uint32 time_limit = 11 [default = 600];
        required bool daemon = 12 [default = false];
-       optional bytes log_file = 13;
+       optional string log_file = 13;
        optional LogLevel log_level = 14;
        required bool keep_env = 15 [default = false];
        required bool silent = 16 [default = false];