Codebase list libauthen-tacacsplus-perl / HEAD TacacsPlus.xs
HEAD

Tree @HEAD (Download .tar.gz)

TacacsPlus.xs @HEADraw · history · blame

#ifdef __cplusplus
extern "C" {
#endif
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#ifdef __cplusplus
}
#endif

#include <string.h>
#include "tacpluslib/tacplus_client.h"
#include "tacpluslib/tac_plus.h"

static int
not_here(s)
char *s;
{
    croak("%s not implemented on this architecture", s);
    return -1;
}

static double
constant(name, arg)
char *name;
int arg;
{
    errno = 0;
    switch (*name) {
    case 'A':
	break;
    case 'B':
	break;
    case 'C':
	break;
    case 'D':
	break;
    case 'E':
	break;
    case 'F':
	break;
    case 'G':
	break;
    case 'H':
	break;
    case 'I':
	break;
    case 'J':
	break;
    case 'K':
	break;
    case 'L':
	break;
    case 'M':
	break;
    case 'N':
	break;
    case 'O':
	break;
    case 'P':
	break;
    case 'Q':
	break;
    case 'R':
	break;
    case 'S':
	break;
    case 'T':
	if (strEQ(name, "TAC_PLUS_AUTHEN_TYPE_ASCII"))
	    return TAC_PLUS_AUTHEN_TYPE_ASCII;
	else if (strEQ(name, "TAC_PLUS_AUTHEN_TYPE_PAP"))
	    return TAC_PLUS_AUTHEN_TYPE_PAP;
	else if (strEQ(name, "TAC_PLUS_AUTHEN_TYPE_CHAP"))
	    return TAC_PLUS_AUTHEN_TYPE_CHAP;
	else if (strEQ(name, "TAC_PLUS_AUTHEN_TYPE_ARAP"))
	    return TAC_PLUS_AUTHEN_TYPE_ARAP;
	break;
    case 'U':
	break;
    case 'V':
	break;
    case 'W':
	break;
    case 'X':
	break;
    case 'Y':
	break;
    case 'Z':
	break;
    }
    errno = EINVAL;
    return 0;

//not_there:
//   errno = ENOENT;
//    return 0;
}


MODULE = Authen::TacacsPlus		PACKAGE = Authen::TacacsPlus		


double
constant(name,arg)
	char *		name
	int		arg


int
init_tac_session (host_name,port_name,key,timeout)
	char* host_name
	char* port_name
	char* key
	int timeout
	OUTPUT:
	RETVAL

int
make_auth (username, password, authen_type)
	char* username
	char* password
	int authen_type
	CODE:
	STRLEN user_len;
	STRLEN password_len;
        username = (char *)SvPV(ST(0),user_len);
        password = (char *)SvPV(ST(1),password_len);
	RETVAL = make_auth(username, user_len, 
			   password, password_len, 
			   authen_type);
	OUTPUT:
	RETVAL

void
deinit_tac_session()


char *                                                               
errmsg()                                                     
    CODE:  
     RETVAL = tac_err;     
    OUTPUT:
     RETVAL