aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2019-11-13 10:12:39 +0100
committerTibor Frank <tifrank@cisco.com>2019-11-13 10:12:39 +0100
commit1a4993354a24f9cf2d70d2b2b6b057852560b6e6 (patch)
treea0b54ab81c965c934f83c33c57f16235496a1d85 /docs
parentdfcefbd900389576769cfb6d61390c35d143541c (diff)
Trending: Input data
Change-Id: I9b1060cb6162521bfdfe4b875444dc09c109960d Signed-off-by: Tibor Frank <tifrank@cisco.com>
Diffstat (limited to 'docs')
0 files changed, 0 insertions, 0 deletions
e and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include <vppinfra/format.h> #include <vppinfra/socket.h> static int verbose; #define if_verbose(format,args...) \ if (verbose) { clib_warning(format, ## args); } int test_socket_main (unformat_input_t * input) { clib_socket_t _s = { 0 }, *s = &_s; char *config; clib_error_t *error; s->config = "localhost:22"; s->flags = CLIB_SOCKET_F_IS_CLIENT; while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT) { if (unformat (input, "server %s %=", &config, &s->flags, CLIB_SOCKET_F_IS_SERVER)) ; else if (unformat (input, "client %s %=", &config, &s->flags, CLIB_SOCKET_F_IS_CLIENT)) ; else { error = clib_error_create ("unknown input `%U'\n", format_unformat_error, input); goto done; } } error = clib_socket_init (s); if (error) goto done; if (0) { struct { int a, b; } *msg; msg = clib_socket_tx_add (s, sizeof (msg[0])); msg->a = 99; msg->b = 100; } else clib_socket_tx_add_formatted (s, "hello there mr server %d\n", 99); error = clib_socket_tx (s); if (error) goto done; while (1) { error = clib_socket_rx (s, 100); if (error) break; if (clib_socket_rx_end_of_file (s)) break; if_verbose ("%v", s->rx_buffer); _vec_len (s->rx_buffer) = 0; } error = clib_socket_close (s); done: if (error) clib_error_report (error); return 0; } #ifdef CLIB_UNIX int main (int argc, char *argv[]) { unformat_input_t i; int r; clib_mem_init (0, 64ULL << 20); verbose = (argc > 1); unformat_init_command_line (&i, argv); r = test_socket_main (&i); unformat_free (&i); return r; } #endif /* * fd.io coding-style-patch-verification: ON * * Local Variables: * eval: (c-set-style "gnu") * End: */