Coda Distributed File System
Macros | Functions | Variables
sftp1.c File Reference
#include <stdio.h>
#include <sys/types.h>
#include <sys/file.h>
#include <sys/stat.h>
#include <sys/time.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <assert.h>
#include <string.h>
#include <limits.h>
#include <unistd.h>
#include <rpc2/se.h>
#include <rpc2/sftp.h>
#include "rpc2.private.h"
Include dependency graph for sftp1.c:

Macros

#define FAIL(se, rCode)
 
#define QUIT(se, RC1, RC2)
 
#define BOGUS(pb)    (sftp_TraceBogus(1, __LINE__), sftp_bogus++, SFTP_FreeBuffer(&pb))
 

Functions

long SFTP_Init ()
 
void SFTP_SetDefaults (SFTP_Initializer *initPtr)
 
void SFTP_Activate (SFTP_Initializer *initPtr)
 
long SFTP_Bind1 (IN RPC2_Handle ConnHandle, IN RPC2_CountedBS *ClientIdent)
 
long SFTP_Bind2 (IN RPC2_Handle ConnHandle, IN RPC2_Unsigned BindTime)
 
long SFTP_Unbind (IN RPC2_Handle ConnHandle)
 
long SFTP_NewConn (IN RPC2_Handle ConnHandle, IN RPC2_CountedBS *ClientIdent)
 
long SFTP_MakeRPC1 (IN RPC2_Handle ConnHandle, INOUT SE_Descriptor *SDesc, INOUT RPC2_PacketBuffer **RequestPtr)
 
long SFTP_MakeRPC2 (IN RPC2_Handle ConnHandle, INOUT SE_Descriptor *SDesc, INOUT RPC2_PacketBuffer *Reply)
 
long SFTP_GetRequest (RPC2_Handle ConnHandle, RPC2_PacketBuffer *Request)
 
long SFTP_InitSE (RPC2_Handle ConnHandle, SE_Descriptor *SDesc)
 
long SFTP_CheckSE (RPC2_Handle ConnHandle, SE_Descriptor *SDesc, long Flags)
 
long SFTP_SendResponse (IN RPC2_Handle ConnHandle, IN RPC2_PacketBuffer **Reply)
 
long SFTP_GetTime (IN RPC2_Handle ConnHandle, INOUT struct timeval *Time)
 
long SFTP_GetHostInfo (IN RPC2_Handle ConnHandle, INOUT struct HEntry **HPtr)
 
int sftp_AddPiggy (RPC2_PacketBuffer **whichP, char *dPtr, off_t dSize, unsigned int maxSize)
 
off_t sftp_AppendFileToPacket (struct SFTP_Entry *sEntry, RPC2_PacketBuffer **whichP)
 
off_t sftp_ExtractFileFromPacket (struct SFTP_Entry *sEntry, RPC2_PacketBuffer *whichP)
 
int sftp_AppendParmsToPacket (struct SFTP_Entry *sEntry, RPC2_PacketBuffer **whichP)
 
int sftp_ExtractParmsFromPacket (struct SFTP_Entry *sEntry, RPC2_PacketBuffer *whichP)
 
struct SFTP_Entrysftp_AllocSEntry (void)
 
void sftp_FreeSEntry (struct SFTP_Entry *se)
 
void sftp_AllocPiggySDesc (struct SFTP_Entry *se, off_t len, enum WhichWay direction)
 
void sftp_FreePiggySDesc (struct SFTP_Entry *se)
 
void sftp_SetError (struct SFTP_Entry *s, enum SFState e)
 
long SFTP_PrintSED (IN SDesc, IN outFile) SE_Descriptor *SDesc
 
 assert (SDesc->Tag==SMARTFTP)
 
 switch (SDesc->LocalStatus)
 
 fprintf (outFile, "Tag: SMARTFTP\n")
 
 fprintf (outFile, "TransmissionDirection: %s hashmark: '%c' " "SeekOffset: %ld BytesTransferred: %ld " "ByteQuota: %ld QuotaExceeded: %ld\n",(sftpd->TransmissionDirection==CLIENTTOSERVER) ? "CLIENTTOSERVER" :(sftpd->TransmissionDirection==SERVERTOCLIENT) ? "SERVERTOCLIENT" :"??????", sftpd->hashmark, sftpd->SeekOffset, sftpd->BytesTransferred, sftpd->ByteQuota, sftpd->QuotaExceeded)
 
 switch (sftpd->Tag)
 

Variables

FILE * outFile
 
 sftpd = &SDesc->Value.SmartFTPD
 
 return
 

Macro Definition Documentation

◆ BOGUS

#define BOGUS (   pb)     (sftp_TraceBogus(1, __LINE__), sftp_bogus++, SFTP_FreeBuffer(&pb))

◆ FAIL

#define FAIL (   se,
  rCode 
)
Value:
{ \
sftp_vfclose(se); \
se->SDesc = NULL; \
return (rCode); \
}
#define NULL
Definition: voltypes.h:44

◆ QUIT

#define QUIT (   se,
  RC1,
  RC2 
)
Value:
do { \
while (se->RecvQueue) { \
RPC2_PacketBuffer *pb = sftp_DequeuePacket(se); \
SFTP_FreeBuffer(&pb); \
} \
se->SDesc->LocalStatus = RC1; \
sftp_vfclose(se); \
se->SDesc = NULL; \
return (RC2); \
} while (0)

Function Documentation

◆ assert()

assert ( SDesc->  Tag = =SMARTFTP)

◆ fprintf() [1/2]

fprintf ( outFile  ,
"Tag: SMARTFTP\n"   
)

◆ fprintf() [2/2]

fprintf ( outFile  ,
"TransmissionDirection: %s hashmark: '%c' " "SeekOffset: %ld BytesTransferred: %ld " "ByteQuota: %ld QuotaExceeded: %ld\n"  ,
(sftpd->TransmissionDirection==CLIENTTOSERVER) ? "CLIENTTOSERVER" :(sftpd->TransmissionDirection==SERVERTOCLIENT) ? "SERVERTOCLIENT" :"??????"  ,
sftpd->  hashmark,
sftpd->  SeekOffset,
sftpd->  BytesTransferred,
sftpd->  ByteQuota,
sftpd->  QuotaExceeded 
)

◆ SFTP_Activate()

void SFTP_Activate ( SFTP_Initializer initPtr)

◆ sftp_AddPiggy()

int sftp_AddPiggy ( RPC2_PacketBuffer **  whichP,
char *  dPtr,
off_t  dSize,
unsigned int  maxSize 
)

◆ sftp_AllocPiggySDesc()

void sftp_AllocPiggySDesc ( struct SFTP_Entry se,
off_t  len,
enum WhichWay  direction 
)

◆ sftp_AllocSEntry()

struct SFTP_Entry * sftp_AllocSEntry ( void  )

◆ sftp_AppendFileToPacket()

off_t sftp_AppendFileToPacket ( struct SFTP_Entry sEntry,
RPC2_PacketBuffer **  whichP 
)

◆ sftp_AppendParmsToPacket()

int sftp_AppendParmsToPacket ( struct SFTP_Entry sEntry,
RPC2_PacketBuffer **  whichP 
)

◆ SFTP_Bind1()

long SFTP_Bind1 ( IN RPC2_Handle  ConnHandle,
IN RPC2_CountedBS ClientIdent 
)

◆ SFTP_Bind2()

long SFTP_Bind2 ( IN RPC2_Handle  ConnHandle,
IN RPC2_Unsigned  BindTime 
)

◆ SFTP_CheckSE()

long SFTP_CheckSE ( RPC2_Handle  ConnHandle,
SE_Descriptor SDesc,
long  Flags 
)

◆ sftp_ExtractFileFromPacket()

off_t sftp_ExtractFileFromPacket ( struct SFTP_Entry sEntry,
RPC2_PacketBuffer whichP 
)

◆ sftp_ExtractParmsFromPacket()

int sftp_ExtractParmsFromPacket ( struct SFTP_Entry sEntry,
RPC2_PacketBuffer whichP 
)

◆ sftp_FreePiggySDesc()

void sftp_FreePiggySDesc ( struct SFTP_Entry se)

◆ sftp_FreeSEntry()

void sftp_FreeSEntry ( struct SFTP_Entry se)

◆ SFTP_GetHostInfo()

long SFTP_GetHostInfo ( IN RPC2_Handle  ConnHandle,
INOUT struct HEntry **  HPtr 
)

◆ SFTP_GetRequest()

long SFTP_GetRequest ( RPC2_Handle  ConnHandle,
RPC2_PacketBuffer Request 
)

◆ SFTP_GetTime()

long SFTP_GetTime ( IN RPC2_Handle  ConnHandle,
INOUT struct timeval *  Time 
)

◆ SFTP_Init()

long SFTP_Init ( )

◆ SFTP_InitSE()

long SFTP_InitSE ( RPC2_Handle  ConnHandle,
SE_Descriptor SDesc 
)

◆ SFTP_MakeRPC1()

long SFTP_MakeRPC1 ( IN RPC2_Handle  ConnHandle,
INOUT SE_Descriptor SDesc,
INOUT RPC2_PacketBuffer **  RequestPtr 
)

◆ SFTP_MakeRPC2()

long SFTP_MakeRPC2 ( IN RPC2_Handle  ConnHandle,
INOUT SE_Descriptor SDesc,
INOUT RPC2_PacketBuffer Reply 
)

◆ SFTP_NewConn()

long SFTP_NewConn ( IN RPC2_Handle  ConnHandle,
IN RPC2_CountedBS ClientIdent 
)

◆ SFTP_PrintSED()

long SFTP_PrintSED ( IN  SDesc,
IN  outFile 
)

◆ SFTP_SendResponse()

long SFTP_SendResponse ( IN RPC2_Handle  ConnHandle,
IN RPC2_PacketBuffer **  Reply 
)

◆ SFTP_SetDefaults()

void SFTP_SetDefaults ( SFTP_Initializer initPtr)

◆ sftp_SetError()

void sftp_SetError ( struct SFTP_Entry s,
enum SFState  e 
)

◆ SFTP_Unbind()

long SFTP_Unbind ( IN RPC2_Handle  ConnHandle)

◆ switch() [1/2]

switch ( SDesc->  LocalStatus)

◆ switch() [2/2]

switch ( sftpd->  Tag)

Variable Documentation

◆ outFile

FILE* outFile

◆ return

return

◆ sftpd

sftpd = &SDesc->Value.SmartFTPD