diff options
Diffstat (limited to 'vlib-api/vlibsocket/sock_test.c')
-rw-r--r-- | vlib-api/vlibsocket/sock_test.c | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/vlib-api/vlibsocket/sock_test.c b/vlib-api/vlibsocket/sock_test.c deleted file mode 100644 index 3bded08f..00000000 --- a/vlib-api/vlibsocket/sock_test.c +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2015 Cisco and/or its affiliates. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at: - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <strings.h> -#include <unistd.h> -#include <sys/types.h> -#include <sys/socket.h> -#include <netinet/in.h> -#include <netdb.h> - -#define SOCKCLNT_SERVER_PORT 32741 /* whatever */ - -typedef signed char i8; -typedef signed short i16; -typedef signed int i32; -typedef signed long long i64; -typedef unsigned char u8; -typedef unsigned short u16; -typedef unsigned int u32; -typedef unsigned long long u64; -typedef unsigned long uword; - -#define VL_API_PACKED(x) x __attribute__ ((packed)) - -typedef VL_API_PACKED (struct _vl_api_sockclnt_create - { - u16 _vl_msg_id; u8 name[64]; - u32 context; - }) vl_api_sockclnt_create_t; - -typedef VL_API_PACKED (struct _vl_api_sockclnt_create_reply - { - u16 _vl_msg_id; - i32 response; u64 handle; u32 index; u32 context; - }) vl_api_sockclnt_create_reply_t; - -typedef VL_API_PACKED (struct _vl_api_sockclnt_delete - { - u16 _vl_msg_id; u32 index; - u64 handle; - }) vl_api_sockclnt_delete_t; - -typedef VL_API_PACKED (struct _vl_api_sockclnt_delete_reply - { - u16 _vl_msg_id; i32 response; u64 handle; - }) vl_api_sockclnt_delete_reply_t; - -void -error (char *msg) -{ - perror (msg); - exit (0); -} - -int -main (int argc, char *argv[]) -{ - int sockfd, portno, n; - struct sockaddr_in serv_addr; - struct hostent *server; - char buffer[256]; - int i; - u32 nbytes; - vl_api_sockclnt_create_t *mp; - vl_api_sockclnt_create_reply_t *rp; - char *rdptr; - int total_bytes; - - for (i = 0; i < 1; i++) - { - portno = SOCKCLNT_SERVER_PORT; - sockfd = socket (AF_INET, SOCK_STREAM, 0); - if (sockfd < 0) - error ("ERROR opening socket"); - server = gethostbyname ("localhost"); - if (server == NULL) - { - fprintf (stderr, "ERROR, no such host\n"); - exit (0); - } - bzero ((char *) &serv_addr, sizeof (serv_addr)); - serv_addr.sin_family = AF_INET; - bcopy ((char *) server->h_addr, - (char *) &serv_addr.sin_addr.s_addr, server->h_length); - serv_addr.sin_port = htons (portno); - if (connect (sockfd, (const void *) &serv_addr, sizeof (serv_addr)) < 0) - error ("ERROR connecting"); - - memset (buffer, 0, sizeof (buffer)); - - mp = (vl_api_sockclnt_create_t *) buffer; - mp->_vl_msg_id = ntohs (8); /* VL_API_SOCKCLNT_CREATE */ - strncpy ((char *) mp->name, "socket-test", sizeof (mp->name) - 1); - mp->name[sizeof (mp->name) - 1] = 0; - mp->context = 0xfeedface; - /* length of the message, including the length itself */ - nbytes = sizeof (*mp) + sizeof (nbytes); - nbytes = ntohl (nbytes); - n = write (sockfd, &nbytes, sizeof (nbytes)); - if (n < 0) - error ("ERROR writing len to socket"); - n = write (sockfd, mp, sizeof (*mp)); - if (n < 0) - error ("ERROR writing msg to socket"); - - memset (buffer, 0, sizeof (buffer)); - - total_bytes = 0; - rdptr = buffer; - do - { - n = read (sockfd, rdptr, sizeof (buffer) - (rdptr - buffer)); - if (n < 0) - error ("ERROR reading from socket"); - printf ("read %d bytes\n", n); - total_bytes += n; - rdptr += n; - } - while (total_bytes < sizeof (vl_api_sockclnt_create_reply_t) + 4); - - rp = (vl_api_sockclnt_create_reply_t *) (buffer + 4); - /* VL_API_SOCKCLNT_CREATE_REPLY */ - if (ntohs (rp->_vl_msg_id) != 9) - { - printf ("WARNING: msg id %d\n", ntohs (rp->_vl_msg_id)); - } - - printf ("response %d, handle 0x%llx, index %d, context 0x%x\n", - ntohl (rp->response), rp->handle, rp->index, rp->context); - close (sockfd); - } - return 0; -} - -/* - * fd.io coding-style-patch-verification: ON - * - * Local Variables: - * eval: (c-set-style "gnu") - * End: - */ |