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 )