Apache2-AuthenNTLM

 view release on metacpan or  search on metacpan

smb/smbval/rfcnb-error.h  view on Meta::CPAN

#define RFCNBE_ConGone 6       /* Connection dropped                    */
#define RFCNBE_BadHandle 7     /* Handle passed was bad                 */
#define RFCNBE_BadSocket 8     /* Problems creating socket              */
#define RFCNBE_ConnectFailed 9 /* Connect failed                        */
#define RFCNBE_CallRejNLOCN 10 /* Call rejected, not listening on CN    */
#define RFCNBE_CallRejNLFCN 11 /* Call rejected, not listening for CN   */
#define RFCNBE_CallRejCNNP  12 /* Call rejected, called name not present */
#define RFCNBE_CallRejInfRes 13/* Call rejetced, name ok, no resources   */
#define RFCNBE_CallRejUnSpec 14/* Call rejected, unspecified error      */
#define RFCNBE_BadParam      15/* Bad parameters passed ...             */
#define RFCNBE_Timeout       16/* IO Timed out                          */

/* Text strings for the error responses                                 */

static char *RFCNB_Error_Strings[] = {

  "RFCNBE_OK: Routine completed successfully.",
  "RFCNBE_NoSpace: No space available for a malloc call.",
  "RFCNBE_BadName: NetBIOS name could not be translated to IP address.",
  "RFCNBE_BadRead: Read system call returned an error. Check errno.",
  "RFCNBE_BadWrite: Write system call returned an error. Check errno.",

smb/smbval/rfcnb-error.h  view on Meta::CPAN

  "RFCNBE_ConGone: Connection dropped during a read or write system call.",
  "RFCNBE_BadHandle: Bad connection handle passed.",
  "RFCNBE_BadSocket: Problems creating socket.",
  "RFCNBE_ConnectFailed: Connection failed. See errno.",
  "RFCNBE_CallRejNLOCN: Call rejected. Not listening on called name.",
  "RFCNBE_CallRejNLFCN: Call rejected. Not listening for called name.",
  "RFCNBE_CallRejCNNP: Call rejected. Called name not present.",
  "RFCNBE_CallRejInfRes: Call rejected. Name present, but insufficient resources.",
  "RFCNBE_CallRejUnSpec: Call rejected. Unspecified error.",
  "RFCNBE_BadParam: Bad parameters passed to a routine.",
  "RFCNBE_Timeout: IO Operation timed out ..."

};



smb/smbval/rfcnb-io.c  view on Meta::CPAN

*/
/* #include <features.h> */
#include "std-includes.h"
#include "rfcnb-priv.h"
#include "rfcnb-util.h"
#include "rfcnb-io.h"
#include <sys/uio.h>
#include <sys/signal.h>
#include <string.h>

int RFCNB_Timeout = 0;    /* Timeout in seconds ... */

void rfcnb_alarm(int sig)

{

  fprintf(stderr, "IO Timed out ...\n");

}

/* Set timeout value and setup signal handling */

int RFCNB_Set_Timeout(int seconds)

{
  int temp;
  /* If we are on a Bezerkeley system, use sigvec, else sigaction */
#ifndef SA_RESTART
  struct sigvec invec, outvec; 
#else
  struct sigaction inact, outact;
#endif

  RFCNB_Timeout = seconds;

  if (RFCNB_Timeout > 0) { /* Set up handler to ignore but not restart */

#ifndef SA_RESTART
    invec.sv_handler = (void (*)())rfcnb_alarm;
    invec.sv_mask = 0;
    invec.sv_flags = SV_INTERRUPT;

    if (sigvec(SIGALRM, &invec, &outvec)  < 0)
      return(-1);
#else
    inact.sa_handler = (void (*)())rfcnb_alarm;

smb/smbval/rfcnb-io.c  view on Meta::CPAN

    pkt_ptr = pkt_ptr -> next;

  }

#ifdef RFCNB_DEBUG
  fprintf(stderr, "Frags = %i, tot_sent = %i\n", i, tot_sent);
#endif

  /* Set up an alarm if timeouts are set ... */

  if (RFCNB_Timeout > 0) 
    alarm(RFCNB_Timeout);

  if ((len_sent = writev(con -> fd, io_list, i)) < 0) { /* An error */

    con -> rfc_errno = errno;
    if (errno == EINTR)  /* We were interrupted ... */
      RFCNB_errno = RFCNBE_Timeout;
    else
      RFCNB_errno = RFCNBE_BadWrite;
    RFCNB_saved_errno = errno;
    return(RFCNBE_Bad);

  }

  if (len_sent < tot_sent) { /* Less than we wanted */
    if (errno == EINTR)      /* We were interrupted */
      RFCNB_errno = RFCNBE_Timeout;
    else
      RFCNB_errno = RFCNBE_BadWrite;
    RFCNB_saved_errno = errno;
    return(RFCNBE_Bad);
  }

  if (RFCNB_Timeout > 0)
    alarm(0);                /* Reset that sucker */

#ifdef RFCNB_DEBUG

  fprintf(stderr, "Len sent = %i ...\n", len_sent);
  RFCNB_Print_Pkt(stderr, "sent", pkt, len_sent); /* Print what send ... */

#endif

  return(len_sent);

smb/smbval/rfcnb-io.c  view on Meta::CPAN

    fprintf(stderr, "Trying to read less than a packet:");
    perror("");
#endif
    RFCNB_errno = RFCNBE_BadParam;
    return(RFCNBE_Bad);

  }

  /* We discard keep alives here ... */

  if (RFCNB_Timeout > 0) 
    alarm(RFCNB_Timeout);

  while (seen_keep_alive) {

    if ((read_len = read(con -> fd, hdr, sizeof(hdr))) < 0) { /* Problems */
#ifdef RFCNB_DEBUG
      fprintf(stderr, "Reading the packet, we got:");
      perror("");
#endif
      if (errno == EINTR)
	RFCNB_errno = RFCNBE_Timeout;
      else
	RFCNB_errno = RFCNBE_BadRead;
      RFCNB_saved_errno = errno;
      return(RFCNBE_Bad);

    }

    /* Now we check out what we got */

    if (read_len == 0) { /* Connection closed, send back eof?  */

#ifdef RFCNB_DEBUG
      fprintf(stderr, "Connection closed reading\n");
#endif 

      if (errno == EINTR) 
	RFCNB_errno = RFCNBE_Timeout;
      else
	RFCNB_errno = RFCNBE_ConGone;
      RFCNB_saved_errno = errno;
      return(RFCNBE_Bad);

    }

    if (RFCNB_Pkt_Type(hdr) == RFCNB_SESSION_KEEP_ALIVE) {

#ifdef RFCNB_DEBUG

smb/smbval/rfcnb-io.c  view on Meta::CPAN

    this_len = more;        /* Get the rest ...                        */
  else
    this_len = frag_len - offset;

  while (more > 0) {

    if ((this_time = read(con -> fd, (pkt_frag -> data) + offset, this_len)) <= 0) { /* Problems */

      if (errno == EINTR) {

	RFCNB_errno = RFCNB_Timeout;

      }
      else {
	if (this_time < 0)
	  RFCNB_errno = RFCNBE_BadRead;
	else
	  RFCNB_errno = RFCNBE_ConGone;
      }

      RFCNB_saved_errno = errno;

smb/smbval/rfcnb-io.c  view on Meta::CPAN

  fprintf(stderr,"Pkt Len = %i, read_len = %i\n", pkt_len, read_len);
  RFCNB_Print_Pkt(stderr, "rcvd", pkt, read_len + sizeof(hdr));
#endif

  if (read_len < (pkt_len + sizeof(hdr))) {  /* Discard the rest */

    return(RFCNB_Discard_Rest(con, (pkt_len + sizeof(hdr)) - read_len));

  }

  if (RFCNB_Timeout > 0)
    alarm(0);                /* Reset that sucker */

  return(read_len + sizeof(RFCNB_Hdr));
}

smb/smbval/smblib-priv.h  view on Meta::CPAN


/* Defines for SMB transact and transact2 calls                             */

#define SMB_trans_tpc_offset    33        /* Total param count              */
#define SMB_trans_tdc_offset    35        /* total Data count               */
#define SMB_trans_mpc_offset    37        /* Max params bytes to return     */
#define SMB_trans_mdc_offset    39        /* Max data bytes to return       */
#define SMB_trans_msc_offset    41        /* Max setup words to return      */
#define SMB_trans_rs1_offset    42        /* Reserved byte                  */
#define SMB_trans_flg_offset    43        /* flags                          */
#define SMB_trans_tmo_offset    45        /* Timeout, long                  */
#define SMB_trans_rs2_offset    49        /* Next reserved                  */
#define SMB_trans_pbc_offset    51        /* Param Byte count in buf        */
#define SMB_trans_pbo_offset    53        /* Offset to param bytes          */
#define SMB_trans_dbc_offset    55        /* Data byte count in buf         */
#define SMB_trans_dbo_offset    57        /* Data byte offset               */
#define SMB_trans_suc_offset    59        /* Setup count - byte             */
#define SMB_trans_rs3_offset    60        /* Reserved to pad ...            */
#define SMB_trans_len           61        /* Up to setup, still need bcc    */

#define SMB_transr_tpc_offset   33        /* Total param bytes returned     */



( run in 0.262 second using v1.01-cache-2.11-cpan-4d50c553e7e )