aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorPaul Vinciguerra <pvinci@vinciconsulting.com>2019-05-18 22:09:28 -0400
committerOle Trøan <otroan@employees.org>2019-05-29 07:40:56 +0000
commit68b24e2c9ae80839d15f680959cce31ca3ec2123 (patch)
tree2ae49e41e5e64509c0dfdeb02b20819d15f97e7b /src/plugins
parent883a8672c14085b61450599188d04317c45f5d12 (diff)
plugins: http_static. Migrate to use api string type.
This is not my core competency. Reviews/feedback/suggestions welcomed. ;) Tested with: rv = self.vapi.http_static_enable( fifo_size = 1, cache_size_limit = 1000000, prealloc_fifos = 0, private_segment_size = 0, uri="tcp://0.0.0.0/80", www_root = "/var/tmp/run/vpp/html" ) DBGvpp# show http static server www_root /var/tmp/run/vpp/html, cache size 0 bytes, limit 1000000 bytes, evictions 0 Change-Id: I0f660753317ceedab89da1b65701a24d6f7145de Signed-off-by: Paul Vinciguerra <pvinci@vinciconsulting.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/http_static/http_static.api8
-rw-r--r--src/plugins/http_static/http_static.c18
-rw-r--r--src/plugins/http_static/http_static_test.c8
3 files changed, 23 insertions, 11 deletions
diff --git a/src/plugins/http_static/http_static.api b/src/plugins/http_static/http_static.api
index 1866e38cb47..dc3dcac71ba 100644
--- a/src/plugins/http_static/http_static.api
+++ b/src/plugins/http_static/http_static.api
@@ -1,8 +1,8 @@
/** \file
- This file defines static http servercontrol-plane API messages
+ This file defines static http server control-plane API messages
*/
-option version = "1.0.0";
+option version = "2.0.0";
/** \brief Configure and enable the static http server
@param client_index - opaque cookie to identify the sender
@@ -29,7 +29,7 @@ autoreply define http_static_enable {
u32 private_segment_size;
/* Root of the html path */
- u8 www_root[256];
+ string www_root[limit=256];
/* The bind URI */
- u8 uri[256];
+ string uri[limit=256];
};
diff --git a/src/plugins/http_static/http_static.c b/src/plugins/http_static/http_static.c
index d4ec2983680..41601f96321 100644
--- a/src/plugins/http_static/http_static.c
+++ b/src/plugins/http_static/http_static.c
@@ -26,6 +26,8 @@
/* define message IDs */
#include <http_static/http_static_msg_enum.h>
+#include <vpp/api/types.h>
+
/* define message structures */
#define vl_typedefs
#include <http_static/http_static_all_api_h.h>
@@ -64,14 +66,22 @@ static void vl_api_http_static_enable_t_handler
vl_api_http_static_enable_reply_t *rmp;
http_static_main_t *hmp = &http_static_main;
int rv;
+ u8 *www_root;
+ u8 *uri;
+
+ char *p = (char *) &mp->www_root;
+ www_root =
+ format (0, "%s%c", vl_api_from_api_string_c ((vl_api_string_t *) p), 0),
+ p += vl_api_string_len ((vl_api_string_t *) p) + sizeof (vl_api_string_t);
+ uri =
+ format (0, "%s%c", vl_api_from_api_string_c ((vl_api_string_t *) p), 0);
- mp->uri[ARRAY_LEN (mp->uri) - 1] = 0;
- mp->www_root[ARRAY_LEN (mp->www_root) - 1] = 0;
rv = http_static_server_enable_api
- (ntohl (mp->fifo_size), ntohl (mp->cache_size_limit),
+ (ntohl (mp->fifo_size),
+ ntohl (mp->cache_size_limit),
ntohl (mp->prealloc_fifos),
- ntohl (mp->private_segment_size), mp->www_root, mp->uri);
+ ntohl (mp->private_segment_size), www_root, uri);
REPLY_MACRO (VL_API_HTTP_STATIC_ENABLE_REPLY);
}
diff --git a/src/plugins/http_static/http_static_test.c b/src/plugins/http_static/http_static_test.c
index 59cc5f1b29f..0720463cf63 100644
--- a/src/plugins/http_static/http_static_test.c
+++ b/src/plugins/http_static/http_static_test.c
@@ -155,9 +155,11 @@ api_http_static_enable (vat_main_t * vam)
/* Construct the API message */
M (HTTP_STATIC_ENABLE, mp);
- clib_strncpy ((char *) mp->www_root, (char *) www_root,
- ARRAY_LEN (mp->www_root) - 1);
- clib_strncpy ((char *) mp->uri, (char *) uri, ARRAY_LEN (mp->uri) - 1);
+ vl_api_to_api_string (strnlen ((const char *) www_root, 256),
+ (const char *) www_root,
+ (vl_api_string_t *) & mp->www_root);
+ vl_api_to_api_string (strnlen ((const char *) uri, 256), (const char *) uri,
+ (vl_api_string_t *) & mp->uri);
mp->fifo_size = ntohl (fifo_size);
mp->cache_size_limit = ntohl (cache_size_limit);
mp->prealloc_fifos = ntohl (prealloc_fifos);