!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/include/orbit-1.0/IIOP/   drwxr-xr-x
Free 318.37 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     giop-msg-buffer.h (6.01 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef GIOP_MSG_BUFFER_H
#define GIOP_MSG_BUFFER_H 1

#include "IIOP.h"
/* For struct iovec */
#include <sys/uio.h>

typedef enum {
  GIOP_REQUEST,
  GIOP_REPLY,
  GIOP_CANCELREQUEST,
  GIOP_LOCATEREQUEST,
  GIOP_LOCATEREPLY,
  GIOP_CLOSECONNECTION,
  GIOP_MESSAGEERROR,
  GIOP_FRAGMENT
} GIOPMsgType;

/* GIOP message header */
typedef struct _GIOPMessageHeader {
  GIOP_char magic[4];
  GIOP_char GIOP_version[2];
  GIOP_octet flags;

  /*
   * We should really use GIOPMsgType
   * but that enum winds up being an int...
   */
  GIOP_octet message_type;

  GIOP_unsigned_long message_size;
} GIOPMessageHeader;

#define GIOP_MESSAGE_BUFFER(x) ((GIOPMessageBuffer *)x)
typedef struct _GIOPMessageBuffer
{
  /* The connection that this message will go out over... */
  GIOPConnection *connection; 
                 
  GArray *iovecs;
  GIOPMessageHeader message_header;
} GIOPMessageBuffer;

#include "../orb/iop.h"

/* GIOP_REQUEST header */
typedef enum {
  GIOP_NO_EXCEPTION,
  GIOP_USER_EXCEPTION,
  GIOP_SYSTEM_EXCEPTION,
  GIOP_LOCATION_FORWARD
} GIOPReplyStatusType;

typedef struct _GIOPMessageRequest {
  IOP_ServiceContextList service_context;
  GIOP_unsigned_long request_id;
  GIOP_boolean response_expected;
  CORBA_sequence_octet object_key;
  CORBA_char *operation;
  CORBA_Principal requesting_principal;
} GIOPMessageRequest;

typedef struct _GIOPMessageReply {
  IOP_ServiceContextList service_context;
  GIOP_unsigned_long request_id;
  GIOPReplyStatusType reply_status;
} GIOPMessageReply;

typedef struct _GIOPMessageCancelRequest {
  GIOP_unsigned_long request_id;
} GIOPMessageCancelRequest;

typedef struct _GIOPMessageLocateRequest {
  GIOP_unsigned_long request_id;
  CORBA_sequence_octet object_key;
} GIOPMessageLocateRequest;

typedef enum {
  GIOP_UNKNOWN_OBJECT,
  GIOP_OBJECT_HERE,
  GIOP_OBJECT_FORWARD
} GIOPLocateStatusType;

typedef struct _GIOPMessageLocateReply {
  GIOP_unsigned_long request_id;
  GIOPLocateStatusType locate_status;
} GIOPMessageLocateReply;

typedef struct _GIOPMessage
{
  union {
    GIOPMessageRequest request;
    GIOPMessageReply reply;
    GIOPMessageCancelRequest cancel_request;
    GIOPMessageLocateRequest locate_request;
    GIOPMessageLocateReply locate_reply;
  } u;
} GIOPMessage;

typedef enum {
  GIOP_MSG_READING_HEADER,
  GIOP_MSG_READING_BODY,
  GIOP_MSG_READY
} GIOPMessageBufferState;

#define GIOP_SEND_BUFFER(x) ((GIOPSendBuffer *)x)
typedef struct _GIOPSendBuffer
{
  GIOPMessageBuffer message_buffer;

  gpointer indirect;

  GMemChunk *indirects; /* Request buffers only (at present) */
  gulong indirect_used;

  GIOPMessage message;
  CORBA_unsigned_long scontext_tmp;
} GIOPSendBuffer;

#define GIOP_RECV_BUFFER(x) ((GIOPRecvBuffer *)x)
typedef struct _GIOPRecvBuffer
{
  GIOPMessageBuffer message_buffer;
  GIOPMessage message;

  gpointer message_body;
  gpointer cur;

  void (*decoder)(gpointer dest, gpointer src, gulong len);

  GIOPMessageBufferState state;
  gint left_to_read;
} GIOPRecvBuffer;

/* This function needs to be called before useful things happen */
void giop_message_buffer_init(void);

gint giop_send_buffer_write(GIOPSendBuffer *request_buffer);

void 
giop_message_buffer_append_mem_a(GIOPMessageBuffer *request_buffer,
                 gconstpointer mem_region,
                 gulong mem_region_length);
void 
giop_message_buffer_append_mem(GIOPMessageBuffer *request_buffer,
                   gconstpointer mem_region,
                   gulong mem_region_length);

/*
 * This copies the value into a request-specific buffer before
 * adding it to the list
 */
gpointer
giop_send_buffer_append_mem_indirect_a(GIOPSendBuffer *request_buffer,
                       gconstpointer mem_region,
                       gulong mem_region_length);
gpointer
giop_send_buffer_append_mem_indirect(GIOPSendBuffer *request_buffer,
                     gconstpointer mem_region,
                     gulong mem_region_length);

GIOPSendBuffer *
giop_send_request_buffer_use(GIOPConnection *connection,
                 const IOP_ServiceContextList *service_context,
                 GIOP_unsigned_long request_id,
                 GIOP_boolean response_expected,
                 const struct iovec *object_key_vec,
                 const struct iovec *operation_vec,
                 const struct iovec *principal_vec);
GIOPSendBuffer *
giop_send_reply_buffer_use(GIOPConnection *connection,
               const IOP_ServiceContextList *service_context,
               GIOP_unsigned_long request_id,
               GIOPReplyStatusType reply_status);
GIOPSendBuffer *
giop_send_locate_request_buffer_use(GIOPConnection *connection,
                 GIOP_unsigned_long request_id,
                 const struct iovec *object_key_vec);
GIOPSendBuffer *
giop_send_locate_reply_buffer_use(GIOPConnection *connection,
               GIOP_unsigned_long request_id,
               GIOPLocateStatusType reply_status);

void giop_send_buffer_unuse(GIOPSendBuffer *send_buffer);

GIOP_unsigned_long giop_get_request_id(void);

GIOPRecvBuffer *
giop_recv_reply_buffer_use(GIOP_unsigned_long request_id,
               gboolean block_for_reply);
GIOPRecvBuffer *
giop_recv_reply_buffer_use_2(GIOPConnection *request_cnx,
                 GIOP_unsigned_long request_id,
                 gboolean block_for_reply);

/* For DII - hands back the first received request matching an id on the list */
GIOPRecvBuffer *
giop_recv_reply_buffer_use_multiple(GArray *request_ids,
                    gboolean block_for_reply);
GIOPRecvBuffer *
giop_recv_reply_buffer_use_multiple_2(GIOPConnection *request_cnx,
                      GArray *request_ids,
                      gboolean block_for_reply);

GIOPRecvBuffer *
giop_recv_locate_reply_buffer_use(GIOP_unsigned_long request_id,
                  gboolean block_for_reply);

/*
 * For server-side use. It's the responsibility of the caller to do
 * any select()ion desired
 */
GIOPRecvBuffer *
giop_recv_message_buffer_use(GIOPConnection *connection);

void giop_recv_buffer_unuse(GIOPRecvBuffer *buffer);

/*
 * This is used for sending (and recving, if we ever
 *  get zero-copy receives implemented) alignment bytes
 */ 
extern char giop_scratch_space[2048];
gulong giop_message_buffer_do_alignment(GIOPMessageBuffer *buffer,
                    gulong align_for);

#define giop_msg_conversion_needed(msgbuf) (conversion_needed(GIOP_MESSAGE_BUFFER(msgbuf)->message_header.flags & 1))

#endif /* GIOP_MSG_BUFFER_H */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0285 ]--