Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

BinPAC::DCE_RPC_Auth Class Reference

#include <dce_rpc_pac.h>

Collaboration diagram for BinPAC::DCE_RPC_Auth:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DCE_RPC_Auth (DCE_RPC_Header *arg_header)
 ~DCE_RPC_Auth ()
int parse (const uint8 *const t_begin_of_data, const uint8 *const t_end_of_data, int t_byteorder)
DCE_RPC_Header *const  header () const
int val_case_index () const
array< uint8 > const & auth_verifier () const

Protected Attributes

DCE_RPC_Headerheader_
int val_case_index_
union {
   array< uint8 >   auth_verifier_
val_

Constructor & Destructor Documentation

BinPAC::DCE_RPC_Auth::DCE_RPC_Auth DCE_RPC_Header arg_header  ) 
 

Definition at line 648 of file dce_rpc_pac.cc.

References header_, and val_case_index_.

00649         {
00650         header_ = arg_header;
00651         val_case_index_ = -1;
00652         }

BinPAC::DCE_RPC_Auth::~DCE_RPC_Auth  ) 
 

Definition at line 654 of file dce_rpc_pac.cc.

References BinPAC::delete_array(), val_, and val_case_index().

00655         {
00656         switch ( val_case_index() )
00657                 {
00658                 case 0:
00659                         // Clean up "none"
00660                         {
00661                         }
00662                         break;
00663                 default:
00664                         // Clean up "auth_verifier"
00665                         {
00666                         delete_array(val_.auth_verifier_);
00667                         }
00668                         break;
00669                 }
00670         }


Member Function Documentation

array<uint8> const& BinPAC::DCE_RPC_Auth::auth_verifier  )  const [inline]
 

Definition at line 334 of file dce_rpc_pac.h.

References val_.

00335                 {
00336                 return val_.auth_verifier_;
00337                 }

DCE_RPC_Header* const BinPAC::DCE_RPC_Auth::header  )  const [inline]
 

Definition at line 332 of file dce_rpc_pac.h.

References header_.

Referenced by parse().

00332 { return header_; };

int BinPAC::DCE_RPC_Auth::parse const uint8 *const  t_begin_of_data,
const uint8 *const  t_end_of_data,
int  t_byteorder
 

Definition at line 672 of file dce_rpc_pac.cc.

References BinPAC::DCE_RPC_Header::auth_length(), header(), BinPAC::uint8, val_, val_case_index(), and val_case_index_.

Referenced by BinPAC::DCE_RPC_PDU::parse().

00673         {
00674         int t_val__size;
00675         val_case_index_ = header()->auth_length();
00676         switch ( val_case_index() )
00677                 {
00678                 case 0:
00679                         // Parse "none"
00680                         {
00681                         // Checking out-of-bound for "DCE_RPC_Auth:none"
00682                         if ( t_begin_of_data + (0) > t_end_of_data )
00683                                 {
00684                                 // Handle out-of-bound condition
00685                                 throw ExceptionOutOfBound("DCE_RPC_Auth:none",
00686                                         (0) + (0), 
00687                                         (t_end_of_data) - (t_begin_of_data));
00688                                 }
00689                         t_val__size = 0;
00690                         }
00691                         break;
00692                 default:
00693                         // Parse "auth_verifier"
00694                         {
00695                         int t_auth_verifier__arraylength = header()->auth_length();
00696                         int t_auth_verifier__size = 1 * t_auth_verifier__arraylength;
00697                         // Checking out-of-bound for "DCE_RPC_Auth:auth_verifier"
00698                         if ( t_begin_of_data + (t_auth_verifier__size) > t_end_of_data )
00699                                 {
00700                                 // Handle out-of-bound condition
00701                                 throw ExceptionOutOfBound("DCE_RPC_Auth:auth_verifier",
00702                                         (0) + (t_auth_verifier__size), 
00703                                         (t_end_of_data) - (t_begin_of_data));
00704                                 }
00705                         make_array<uint8>(val_.auth_verifier_, t_auth_verifier__arraylength);
00706                         const uint8* t_auth_verifier__elem__data = t_begin_of_data;
00707                         for ( int t_auth_verifier__elem__it = 0; 
00708                                 t_auth_verifier__elem__it < t_auth_verifier__arraylength; 
00709                                 ++t_auth_verifier__elem__it )
00710                                 {
00711                                 uint8 t_auth_verifier__elem;
00712                                 t_auth_verifier__elem = *((uint8 *) (t_auth_verifier__elem__data));
00713                                 val_.auth_verifier_.v[t_auth_verifier__elem__it] = t_auth_verifier__elem;
00714                                 t_auth_verifier__elem__data += 1;
00715                                 }
00716                         t_val__size = t_auth_verifier__size;
00717                         }
00718                         break;
00719                 }
00720         return t_val__size;
00721         }

int BinPAC::DCE_RPC_Auth::val_case_index  )  const [inline]
 

Definition at line 333 of file dce_rpc_pac.h.

References val_case_index_.

Referenced by parse(), and ~DCE_RPC_Auth().

00333 { return val_case_index_; }


Member Data Documentation

array<uint8> BinPAC::DCE_RPC_Auth::auth_verifier_ [protected]
 

Definition at line 343 of file dce_rpc_pac.h.

DCE_RPC_Header* BinPAC::DCE_RPC_Auth::header_ [protected]
 

Definition at line 340 of file dce_rpc_pac.h.

Referenced by DCE_RPC_Auth(), and header().

union { ... } BinPAC::DCE_RPC_Auth::val_ [protected]
 

Referenced by auth_verifier(), parse(), and ~DCE_RPC_Auth().

int BinPAC::DCE_RPC_Auth::val_case_index_ [protected]
 

Definition at line 341 of file dce_rpc_pac.h.

Referenced by DCE_RPC_Auth(), parse(), and val_case_index().


The documentation for this class was generated from the following files:
Generated on Wed Sep 14 03:16:10 2005 for bro_docs by doxygen 1.3.5