Back to index

lightning-sunbird  0.9+nobinonly
Functions
etest.c File Reference
#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include "lber.h"

Go to the source code of this file.

Functions

int SSL_Recv (int s, char *b, unsigned l, int dummy)
 SSL_Send (int s, char *b, unsigned l, int dummy)
int getline (char *prompt, char c, char *buf, int bsize)
static void usage (char *name)
 main (int argc, char **argv)

Function Documentation

int getline ( char *  prompt,
char  c,
char *  buf,
int  bsize 
)

Definition at line 80 of file etest.c.

{
       char   *p;

       if ( prompt != NULL ) {
              fprintf( stderr, "%s: ", prompt );
       } else {
              fprintf( stderr, "enter value for '%c': ", c );
       }
       if ( fgets( buf, bsize, stdin ) == NULL ) {
              return( -1 );
       }
       if ( (p = strchr( buf, '\n' )) != NULL ) {
              *p = '\0';
       }

       return( 0 );
}

Here is the call graph for this function:

Here is the caller graph for this function:

main ( int  argc,
char **  argv 
)

Definition at line 105 of file etest.c.

{
       int           rc, fd;
       char          *s, *p;
       void          *arg1, *arg2;
       Sockbuf              *sb;
       BerElement    *ber;
       char          fmt[2];
       char          buf[BUFSIZ];
       extern int    lber_debug;

       lber_debug = 255;
       if ( argc < 2 ) {
              usage( argv[0] );
              exit( 1 );
       }

       sb = ber_sockbuf_alloc();
       fd = 1;
       ber_sockbuf_set_option( sb, LBER_SOCKBUF_OPT_DESC, &fd );

       if ( (ber = der_alloc()) == NULL ) {
              perror( "ber_alloc" );
              exit( 1 );
       }

       rc = 0;
       fmt[1] = '\0';
       for ( s = argv[1]; *s; s++ ) {
              switch ( *s ) {
              case 'i':     /* int */
              case 'b':     /* boolean */
              case 'e':     /* enumeration */
                     getline( NULL, *s, buf, sizeof(buf) );
                     arg1 = (void *) atoi( buf );
                     break;

              case 'n':     /* null */
                     arg1 = NULL;
                     break;

              case 'o':     /* octet string (non-null terminated) */
                     getline( NULL, *s, buf, sizeof(buf) );
                     arg1 = (void *) buf;
                     arg2 = (void *) strlen( buf );
                     break;

              case 's':     /* string */
                     getline( NULL, *s, buf, sizeof(buf) );
                     arg1 = (void *) buf;
                     break;

              case 'B':     /* bit string */
                     getline( NULL, *s, buf, sizeof(buf) );
                     arg1 = (void *) buf;
                     arg2 = (void *) strlen( buf );
                     break;

              case 't':     /* tag for the next element */
                     getline( NULL, *s, buf, sizeof(buf) );
                     arg1 = (void *) buf;
                     break;

              case '{':     /* begin sequence */
              case '}':     /* end sequence */
              case '[':     /* begin set */
              case ']':     /* end set */
                     break;

              default:
                     fprintf( stderr, "unknown fmt %c\n", *s );
                     rc = -1;
                     break;
              }

              fmt[0] = *s;
              if ( ber_printf( ber, fmt, arg1, arg2 ) == -1 ) {
                     fprintf( stderr, "ber_printf\n" );
                     exit( 1 );
              }
       }

       if ( ber_flush( sb, ber, 1 ) != 0 ) {
              perror( "ber_flush" );
              rc = -1;
       }

       return( rc );
}

Here is the call graph for this function:

int SSL_Recv ( int  s,
char *  b,
unsigned  l,
int  dummy 
)

Definition at line 69 of file etest.c.

{
       return( read( s, b, l ) );
}
SSL_Send ( int  s,
char *  b,
unsigned  l,
int  dummy 
)

Definition at line 74 of file etest.c.

{
       return( write( s, b, l ) );
}
static void usage ( char *  name) [static]

Definition at line 100 of file etest.c.

{
       fprintf( stderr, "usage: %s fmtstring\n", name );
}

Here is the call graph for this function: