version 1.1.3.1, 1998/08/08 22:43:15
|
version 1.3.4.1, 1998/08/13 18:23:30
|
Line 20
|
Line 20
|
#if defined(NeXT) || defined(VMS) |
#if defined(NeXT) || defined(VMS) |
#include <stdlib.h> |
#include <stdlib.h> |
#else /* next || vms */ |
#else /* next || vms */ |
|
#ifndef __FreeBSD__ |
#include <malloc.h> |
#include <malloc.h> |
|
#endif |
#endif /* next || vms */ |
#endif /* next || vms */ |
#if defined(BC31) || defined(_WIN32) |
#if defined(BC31) || defined(_WIN32) || defined(sunos5) |
#include <stdarg.h> |
#include <stdarg.h> |
#else /* BC31 || _WIN32 */ |
#else /* BC31 || _WIN32 || defined(sunos5) */ |
#include <varargs.h> |
#include <varargs.h> |
#endif /* BC31 || _WIN32 */ |
#endif /* BC31 || _WIN32 || defined(sunos5) */ |
#include <sys/types.h> |
#include <sys/types.h> |
#include <sys/socket.h> |
#include <sys/socket.h> |
#include <netinet/in.h> |
#include <netinet/in.h> |
Line 155 ber_getnint( BerElement *ber, long *num,
|
Line 157 ber_getnint( BerElement *ber, long *num,
|
{ |
{ |
int diff, sign, i; |
int diff, sign, i; |
long netnum; |
long netnum; |
|
char *p; |
|
|
/* |
/* |
* The tag and length have already been stripped off. We should |
* The tag and length have already been stripped off. We should |
Line 172 ber_getnint( BerElement *ber, long *num,
|
Line 175 ber_getnint( BerElement *ber, long *num,
|
if ( ber_read( ber, ((char *) &netnum) + diff, len ) != len ) |
if ( ber_read( ber, ((char *) &netnum) + diff, len ) != len ) |
return( -1 ); |
return( -1 ); |
|
|
/* sign extend if necessary */ |
/* sign extend if necessary */ |
sign = ((0x80 << ((len - 1) * 8)) & netnum); |
p = (char *) &netnum; |
if ( sign && len < sizeof(long) ) { |
sign = (0x80 & *(p+diff) ); |
for ( i = sizeof(long) - 1; i > len - 1; i-- ) { |
if ( sign && len < sizeof(long) ) { |
netnum |= (0xffL << (i * 8)); |
for ( i = 0; i < diff; i++ ) { |
|
*(p+i) = 0xff; |
} |
} |
} |
} |
*num = LBER_NTOHL( netnum ); |
*num = LBER_NTOHL( netnum ); |
Line 383 ber_next_element( BerElement *ber, unsig
|
Line 387 ber_next_element( BerElement *ber, unsig
|
/* VARARGS */ |
/* VARARGS */ |
unsigned long |
unsigned long |
ber_scanf( |
ber_scanf( |
#if defined( MACOS ) || defined( BC31 ) || defined( _WIN32 ) |
#if defined( MACOS ) || defined( BC31 ) || defined( _WIN32 ) || defined(sunos5) |
BerElement *ber, char *fmt, ... ) |
BerElement *ber, char *fmt, ... ) |
#else |
#else |
va_alist ) |
va_alist ) |
Line 391 va_dcl
|
Line 395 va_dcl
|
#endif |
#endif |
{ |
{ |
va_list ap; |
va_list ap; |
#if !defined( MACOS ) && !defined( BC31 ) && !defined( _WIN32 ) |
#if !defined( MACOS ) && !defined( BC31 ) && !defined( _WIN32 ) && !defined(sunos5) |
BerElement *ber; |
BerElement *ber; |
char *fmt; |
char *fmt; |
#endif |
#endif |
Line 402 va_dcl
|
Line 406 va_dcl
|
long *l, rc, tag; |
long *l, rc, tag; |
unsigned long len; |
unsigned long len; |
|
|
#if defined( MACOS ) || defined( BC31 ) || defined( _WIN32 ) |
#if defined( MACOS ) || defined( BC31 ) || defined( _WIN32 ) || defined(sunos5) |
va_start( ap, fmt ); |
va_start( ap, fmt ); |
#else |
#else |
va_start( ap ); |
va_start( ap ); |