5

mbd_kbd.c

  1. #include "mbd_kbd.h"
  2. #include "mbd.h"
  3.  
  4. #include <stdlib.h>
  5. #include <string.h>
  6.  
  7. void kbd_open( int argc, char **argv ) {
  8.     switch ( argc ) {
  9.     case 1:
  10.         mb_open( );
  11.         break;
  12.     case 2: {
  13.         if ( strcmp( argv[ 1 ], "unix" ) == 0 )
  14.             mb_open_unix( );
  15.         else if ( strcmp( argv[ 1 ], "inet" ) == 0 )
  16.             mb_open_inet( );
  17.         else
  18.             goto error;
  19.         break;
  20.     }
  21.     default:
  22.     error:
  23.         fprintf( stderr, "open [unix | inet]\n" );
  24.         break;
  25.     }
  26. }
  27.  
  28. void kbd_close( int argc, char **argv ) {
  29.     switch ( argc ) {
  30.     case 1:
  31.         mb_close( );
  32.         break;
  33.     case 2: {
  34.         char *p = argv[ 1 ];
  35.  
  36.         if ( *p == 'u' || *p == 'U' )
  37.             mb_close_unix( );
  38.         else if ( *p == 'i' || *p == 'I' )
  39.             mb_close_inet( );
  40.         else
  41.             goto error;
  42.         break;
  43.     }
  44.     default:
  45.     error:
  46.         fprintf( stderr, "%s [unix | inet]\n", argv[ 0 ] );
  47.         break;
  48.     }
  49. }
  50.  
  51. void kbd_pagesize( int argc, char **argv ) {
  52.     switch ( argc ) {
  53.     case 2: {
  54.         int size = atoi( argv[ 1 ] );
  55.         if ( size > 0 )
  56.             mb_setpagesize( size );
  57.         else
  58.             goto error;
  59.         break;
  60.     }
  61.     case 1:
  62.         fprintf( stdout, "%u\n", mb_getpagesize() );
  63.         break;
  64.     default:
  65.     error:
  66.         fprintf( stderr, "%s [nbytes]\n", argv[ 0 ] );
  67.         break;
  68.     }
  69. }
  70.  
  71. void kbd_info( int argc, char **argv ) {
  72.     struct mb_socket *s_in;
  73.     int i, len;
  74.  
  75.     switch ( argc ) {
  76.     case 1:
  77.         len = list_length( mb.in_sockets );
  78.  
  79.         fprintf( stdout, "conn=%i total=%u msgs=%u\n", len, mb.n_conn, mb.n_msgs );
  80.  
  81.         for ( i = 0; i < len; i++ ) {
  82.             s_in = (struct mb_socket *)list_get( mb.in_sockets, i );
  83.             fprintf( stdout, "%s sent=%u recv=%u\n",
  84.                  s_in->s_name ? s_in->s_name : "anonymous",
  85.                  s_in->n_sent, s_in->n_recv
  86.                  );
  87.         }
  88.         break;
  89.     default:
  90.         fprintf( stderr, "%s\n", argv[ 0 ] );
  91.         break;
  92.     }
  93. }
  94.  
  95. void kbd_timeout( int argc, char **argv ) {
  96.     switch ( argc ) {
  97.     case 2: {
  98.         int size = atoi( argv[ 1 ] );
  99.         if ( size > 0 )
  100.             mb_settimeout( size );
  101.         else
  102.             goto error;
  103.         break;
  104.     }
  105.     case 1:
  106.         fprintf( stdout, "%u\n", mb_gettimeout() );
  107.         break;
  108.     default:
  109.     error:
  110.         fprintf( stderr, "%s [nsecs]\n", argv[ 0 ] );
  111.         break;
  112.     }
  113. }
  114.  
  115. #if defined( DEBUG )
  116.  
  117. #include "ctk/debug.h"
  118.  
  119. void kbd_debug( int argc, char **argv ) {
  120.     switch ( argc ) {
  121.     case 2:
  122.         debug = atoi( argv[ 1 ] );
  123.         break;
  124.     case 1:
  125.         fprintf( stdout, "%i\n", debug );
  126.         break;
  127.     default:
  128.         fprintf( stderr, "%s [level]\n", argv[ 0 ] );
  129.         break;
  130.     }
  131. }
  132.  
  133. void kbd_dumpsize( int argc, char **argv ) {
  134.     switch ( argc ) {
  135.     case 2: {
  136.         int size = atoi( argv[ 1 ] );
  137.         if ( size > 0 )
  138.             mb.dump_size = size;
  139.         else
  140.             goto error;
  141.         break;
  142.     }
  143.     case 1:
  144.         fprintf( stdout, "%u\n", mb.dump_size );
  145.         break;
  146.     default:
  147.     error:
  148.         fprintf( stderr, "%s [n_octets]\n", argv[ 0 ] );
  149.         break;
  150.     }
  151. }
  152. #endif
  153.  
  154. void kbd_exit( int argc, char **argv ) {
  155.     mb_exit( 0 );
  156. }

Comments

Your comment:
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip help 2000

Enter a maximum of 2000 characters.
Improve the presentation of your text with the following formatting tags:
[p]paragraph[/p], [b]bold[/b], [i]italics[/i], [u]underline[/u], [s]strike[/s], [quote]citation[/quote], [pre]as is[/pre], [br]line break,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]command[/code], [code=language]source code in c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].