Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.neuron.jaffer
Class AFP_Session  view AFP_Session download AFP_Session.java

java.lang.Object
  extended bycom.neuron.jaffer.Utility
      extended bycom.neuron.jaffer.AFP_Session
All Implemented Interfaces:
AFP_Constants

final class AFP_Session
extends Utility
implements AFP_Constants


Nested Class Summary
private  class AFP_Session.CommandLoop
           
private  class AFP_Session.CommandQueue
           
private  class AFP_Session.Path
           
private  class AFP_Session.ReceiveLoop
           
private  class AFP_Session.SendLoop
           
 
Field Summary
private static java.math.BigInteger bigMask
           
private static java.math.BigInteger bigOne
           
private  java.math.BigInteger clientPublic
           
private  AFP_Session.CommandQueue cmmdQueue
           
private  java.lang.Thread cmmdThread
           
private static byte[] DHX_Decode
           
private static byte[] DHX_Encode
           
private  java.io.InputStream input
           
private  int loginType
           
private  int maxAttnQuantum
           
private  int maxPacket
           
private static int MODE_EXT
           
private static int MODE_NONE
           
private static int MODE_OLD
           
private  int nextForkID
           
private  int nextReqID
           
private  java.math.BigInteger nonce
           
private static boolean nothreads
           
private  java.util.Hashtable openForks
           
private  java.io.OutputStream output
           
private  java.util.Stack packets
           
private static boolean printOnlyUnknown
           
private  long randNum
           
private static java.util.Random random
           
private  java.lang.Thread recvThread
           
private  boolean running
           
private  AFP_Session.CommandQueue sendQueue
           
private  java.lang.Thread sendThread
           
private  AFP_Server server
           
private static java.math.BigInteger serverPrivate
           
private static java.math.BigInteger serverPublic
           
private  java.math.BigInteger sessionKey
           
private  java.net.Socket socket
           
private  java.lang.String userName
           
private  boolean validated
           
 
Fields inherited from class com.neuron.jaffer.Utility
 
Fields inherited from interface com.neuron.jaffer.AFP_Constants
ACCESS_ALL_READ, ACCESS_ALL_SEARCH, ACCESS_ALL_WRITE, ACCESS_EVERYTHING, ACCESS_GROUP_READ, ACCESS_GROUP_SEARCH, ACCESS_GROUP_WRITE, ACCESS_OWNER_READ, ACCESS_OWNER_SEARCH, ACCESS_OWNER_WRITE, ACCESS_UA_BLANK, ACCESS_UA_OWNER, ACCESS_UA_READ, ACCESS_UA_SEARCH, ACCESS_UA_WRITE, CAP_CHANGE_PASSWORD, CAP_COPY_FILE, CAP_MESSAGES, CAP_NO_PASSWD_SAVE, CAP_NOTIFICATIONS, CAP_OPEN_DIRECTORY, CAP_RECONNECT, CAP_SIGNATURE, CAP_SUPER_CLIENT, CAP_TCPIP, CAP_UTF8_NAME, CMD_ADD_APPL, CMD_ADD_COMMENT, CMD_ADD_ICON, CMD_BYTE_RANGE_LOCK, CMD_BYTE_RANGE_LOCK_EXT, CMD_CAT_SEARCH, CMD_CHANGE_PASSWORD, CMD_CLOSE_DIR, CMD_CLOSE_DT, CMD_CLOSE_FORK, CMD_CLOSE_VOL, CMD_COPY_FILE, CMD_CREATE_DIR, CMD_CREATE_FILE, CMD_CREATE_ID, CMD_DELETE, CMD_DELETE_ID, CMD_ENUMERATE, CMD_ENUMERATE_EXT, CMD_ENUMERATE_EXT2, CMD_EXCHANGE_FILES, CMD_FLUSH, CMD_FLUSH_FORK, CMD_GET_APPL, CMD_GET_COMMENT, CMD_GET_FILE_DIR_PARMS, CMD_GET_FORM_PARMS, CMD_GET_ICON, CMD_GET_ICON_INFO, CMD_GET_SESSION_TOKEN, CMD_GET_SRVR_INFO, CMD_GET_SRVR_MSG, CMD_GET_SRVR_PARMS, CMD_GET_USER_INFO, CMD_GET_VOL_PARMS, CMD_LOGIN, CMD_LOGIN_CONT, CMD_LOGIN_EXT, CMD_LOGOUT, CMD_MAP_ID, CMD_MAP_NAME, CMD_MOVE_AND_RENAME, CMD_OPEN_DIR, CMD_OPEN_DT, CMD_OPEN_FORK, CMD_OPEN_VOL, CMD_READ, CMD_READ_EXT, CMD_RENAME, CMD_RESOLVE_ID, CMD_RMV_APPL, CMD_RMV_COMMENT, CMD_SET_DIR_PARMS, CMD_SET_FILE_DIR_PARMS, CMD_SET_FILE_PARMS, CMD_SET_FORK_PARMS, CMD_SET_VOL_PARMS, CMD_WRITE, CMD_WRITE_EXT, COMMAND, DHX_G, DHX_P, DIR_ATTR_BACKUP_NEEDED, DIR_ATTR_DELETE_INHIBIT, DIR_ATTR_IN_EXP_FOLDER, DIR_ATTR_INVISIBLE, DIR_ATTR_IS_EXP_FOLDER, DIR_ATTR_MOUNTED, DIR_ATTR_RENAME_INHIBIT, DIR_ATTR_SET_CLEAR, DIR_ATTR_SYSTEM, DIR_BIT_ACCESS_RIGHTS, DIR_BIT_ATTRIBUTE, DIR_BIT_BACKUP_DATE, DIR_BIT_CREATE_DATE, DIR_BIT_FINDER_INFO, DIR_BIT_GROUP_ID, DIR_BIT_LONG_NAME, DIR_BIT_MOD_DATE, DIR_BIT_NODE_ID, DIR_BIT_OFFSPRING_COUNT, DIR_BIT_OWNER_ID, DIR_BIT_PARENT_DIR_ID, DIR_BIT_SHORT_NAME, DIR_BIT_UNIX_PRIVS, DIR_BIT_UTF8_NAME, ERR_ACCESS_DENIED, ERR_AUTH_CONTINUE, ERR_BAD_UAM, ERR_BAD_VERS_NUM, ERR_BITMAP_ERR, ERR_CALL_NOT_SUPPORTED, ERR_CANT_MOVE, ERR_CANT_RENAME, ERR_DENY_CONFLICT, ERR_DIR_NOT_EMPTY, ERR_DIR_NOT_FOUND, ERR_DISK_FULL, ERR_EOF_ERR, ERR_FILE_BUSY, ERR_FLAT_VOL, ERR_ICON_TYPE_ERROR, ERR_ITEM_NOT_FOUND, ERR_LOCK_ERR, ERR_MISC_ERR, ERR_NO_ERR, ERR_NO_MORE_LOCKS, ERR_NO_SERVER, ERR_OBJECT_EXISTS, ERR_OBJECT_LOCKED, ERR_OBJECT_NOT_FOUND, ERR_OBJECT_TYPE_ERR, ERR_PARAM_ERR, ERR_RANGE_NOT_LOCKED, ERR_RANGE_OVERLAP, ERR_SERVER_GOING_DOWN, ERR_SESS_CLOSED, ERR_TOO_MANY_FILES_OPEN, ERR_USER_NOT_AUTH, ERR_VOL_LOCKED, FILE_ATTR_BACKUP_NEEDED, FILE_ATTR_COPY_PROTECT, FILE_ATTR_DALREADY_OPEN, FILE_ATTR_DELETE_INHIBIT, FILE_ATTR_INVISIBLE, FILE_ATTR_MULTIUSER, FILE_ATTR_RALREADY_OPEN, FILE_ATTR_RENAME_INHIBIT, FILE_ATTR_SET_CLEAR, FILE_ATTR_SYSTEM, FILE_ATTR_WRITE_INHIBIT, FILE_BIT_ATTRIBUTE, FILE_BIT_BACKUP_DATE, FILE_BIT_CREATE_DATE, FILE_BIT_DATA_FORK_LEN, FILE_BIT_FINDER_INFO, FILE_BIT_LAUNCH_LIMIT, FILE_BIT_LONG_NAME, FILE_BIT_MOD_DATE, FILE_BIT_NODE_ID, FILE_BIT_PARENT_DIR_ID, FILE_BIT_RSRC_FORK_LEN, FILE_BIT_SHORT_NAME, FILE_BIT_UNIX_PRIVS, FILE_BIT_UTF8_NAME, FILE_BIT_XDATA_FORK_LEN, FILE_BIT_XRSRC_FORK_LEN, TCP_PORT, UAM_CLEARTEXT, UAM_DHX_128, UAM_DHX_DYNAMIC, UAM_GUEST, UAM_KERBEROS, UAM_RANDOM_NUM1, UAM_RANDOM_NUM2, UAM_STR_CLEARTEXT, UAM_STR_DHX_128, UAM_STR_DHX_DYNAMIC, UAM_STR_GUEST, UAM_STR_KERBEROS, UAM_STR_RANDOM_NUM1, UAM_STR_RANDOM_NUM2, UAM_UNKNOWN, VOL_ATTR_BLANK_PRIVS, VOL_ATTR_CAT_SEARCH, VOL_ATTR_FILE_IDS, VOL_ATTR_NO_NET_UIDS, VOL_ATTR_PASSWORD, VOL_ATTR_READONLY, VOL_ATTR_UNIX_PRIVS, VOL_ATTR_UTF8_NAMES, VOL_BIT_ATTRIBUTE, VOL_BIT_BACKUP_DATE, VOL_BIT_BLOCK_SIZE, VOL_BIT_BYTES_FREE, VOL_BIT_BYTES_TOTAL, VOL_BIT_CREATE_DATE, VOL_BIT_ID, VOL_BIT_MOD_DATE, VOL_BIT_NAME, VOL_BIT_SIGNATURE, VOL_BIT_XBYTES_FREE, VOL_BIT_XBYTES_TOTAL, VOL_SIG_FIXED, VOL_SIG_FLAT, VOL_SIG_VARIABLE
 
Constructor Summary
(package private) AFP_Session(AFP_Server server, java.net.Socket socket)
           
 
Method Summary
private  int cmdCloseDir(ByteReader rr, ByteWriter ww)
           
private  int cmdCloseFork(ByteReader rr, ByteWriter ww)
           
private  int cmdCloseVolume(ByteReader rr, ByteWriter ww)
           
private  int cmdCreateDir(ByteReader rr, ByteWriter ww)
           
private  int cmdCreateFile(ByteReader rr, ByteWriter ww)
           
private  int cmdDelete(ByteReader rr, ByteWriter ww)
           
private  int cmdEnumerate(ByteReader rr, ByteWriter ww)
           
private  int cmdEnumerateExt2(ByteReader rr, ByteWriter ww)
           
private  int cmdFlushFork(ByteReader rr, ByteWriter ww)
           
private  int cmdGetFileDirParams(ByteReader rr, ByteWriter ww)
           
private  int cmdGetServerParams(ByteReader rr, ByteWriter ww)
           
private  int cmdGetSessionToken(ByteReader rr, ByteWriter ww)
           
private  int cmdGetUserInfo(ByteReader rr, ByteWriter ww)
           
private  int cmdGetVolumeParams(ByteReader rr, ByteWriter ww)
           
private  int cmdLogin(ByteReader rr, ByteWriter ww)
           
private  int cmdLoginCont(ByteReader rr, ByteWriter ww)
           
private  int cmdLoginExt(ByteReader rr, ByteWriter ww)
           
private  int cmdLogout(ByteReader rr, ByteWriter ww)
           
private  int cmdMapID(ByteReader rr, ByteWriter ww)
           
private  int cmdMoveAndRename(ByteReader rr, ByteWriter ww)
           
private  int cmdOpenDir(ByteReader rr, ByteWriter ww)
           
private  int cmdOpenFork(ByteReader rr, ByteWriter ww)
           
private  int cmdOpenVolume(ByteReader rr, ByteWriter ww)
           
private  int cmdRead(ByteReader rr, ByteWriter ww)
           
private  int cmdReadExt(ByteReader rr, ByteWriter ww)
           
private  int cmdRename(ByteReader rr, ByteWriter ww)
           
private  int cmdSetDirParams(ByteReader rr, ByteWriter ww)
           
private  int cmdSetFileDirParams(ByteReader rr, ByteWriter ww)
           
private  int cmdSetFileParams(ByteReader rr, ByteWriter ww)
           
private  int cmdSetForkParams(ByteReader rr, ByteWriter ww)
           
private  int cmdWrite(ByteReader rr, ByteWriter ww)
           
private  int cmdWriteExt(ByteReader rr, ByteWriter ww)
           
private  AFP_Session.Path createDirPath(int volID, int dirID, java.lang.String pathName)
           
private  AFP_Session.Path createFilePath(int volID, int dirID, java.lang.String pathName)
           
private  void debug(java.lang.String msg)
           
private  void error(boolean value, java.lang.String msg)
           
private  AFP_Fork getFork(int forkRef)
           
private  int getSessionID()
           
private static int getUAM(java.lang.String uam)
           
private  byte[] keyBytes(java.math.BigInteger bi)
           
private  byte[] keyBytes(java.math.BigInteger bi, int len)
           
private  int loginCommon(java.lang.String uam, java.lang.String user, ByteReader rr, ByteWriter ww)
           
private  int nextForkID()
           
private  int nextRequestID()
           
private  AFP_Session.Path openPath(int volID, int dirID, java.lang.String pathName)
           
private  void print(java.lang.String msg)
           
private  void print(java.lang.String t, int v)
           
private  void print(java.lang.String t, long v)
           
private  void printPacket(DSI_Packet dp)
           
private  void recvDirectoryInfo(ByteReader rr, AFP_CNode node, int flags)
           
private  void recvFileInfo(ByteReader rr, AFP_CNode node, int flags)
           
private  DSI_Packet recvPacket()
           
private  void sendDirectoryInfo(ByteWriter ww, AFP_CNode node, int flags, int mode)
           
private  void sendFileInfo(ByteWriter ww, AFP_CNode node, int flags, int mode)
           
private  void sendPacket(DSI_Packet dp)
           
private  void sendVolumeInfo(ByteWriter ww, AFP_Volume vol, int flags)
           
 void start()
           
private  void terminateSession()
           
 
Methods inherited from class com.neuron.jaffer.Utility
afp2unixTime, bits, dump, dump, dump, dump, empty, error, hasBits, hex, hex, hex, isValidLongName, list, readAFPString, readCString, readInt2, readInt4, readInt8, readPString, readPStringArray, unix2afpTime, writeInt2, writeInt4, writeInt8, writePString, writePStringArray
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

printOnlyUnknown

private static final boolean printOnlyUnknown

nothreads

private static final boolean nothreads

random

private static final java.util.Random random

bigOne

private static final java.math.BigInteger bigOne

bigMask

private static final java.math.BigInteger bigMask

serverPrivate

private static final java.math.BigInteger serverPrivate

serverPublic

private static final java.math.BigInteger serverPublic

DHX_Encode

private static final byte[] DHX_Encode

DHX_Decode

private static final byte[] DHX_Decode

MODE_OLD

private static final int MODE_OLD
See Also:
Constant Field Values

MODE_EXT

private static final int MODE_EXT
See Also:
Constant Field Values

MODE_NONE

private static final int MODE_NONE
See Also:
Constant Field Values

server

private AFP_Server server

socket

private java.net.Socket socket

input

private java.io.InputStream input

output

private java.io.OutputStream output

recvThread

private java.lang.Thread recvThread

cmmdThread

private java.lang.Thread cmmdThread

sendThread

private java.lang.Thread sendThread

maxAttnQuantum

private int maxAttnQuantum

nextReqID

private int nextReqID

nextForkID

private int nextForkID

maxPacket

private int maxPacket

openForks

private java.util.Hashtable openForks

cmmdQueue

private AFP_Session.CommandQueue cmmdQueue

sendQueue

private AFP_Session.CommandQueue sendQueue

running

private boolean running

validated

private boolean validated

userName

private java.lang.String userName

packets

private java.util.Stack packets

randNum

private long randNum

loginType

private int loginType

nonce

private java.math.BigInteger nonce

sessionKey

private java.math.BigInteger sessionKey

clientPublic

private java.math.BigInteger clientPublic
Constructor Detail

AFP_Session

AFP_Session(AFP_Server server,
            java.net.Socket socket)
Method Detail

start

public void start()

print

private void print(java.lang.String msg)

debug

private void debug(java.lang.String msg)

error

private void error(boolean value,
                   java.lang.String msg)
            throws java.lang.Exception

printPacket

private void printPacket(DSI_Packet dp)

recvPacket

private DSI_Packet recvPacket()
                       throws java.io.IOException

sendPacket

private void sendPacket(DSI_Packet dp)
                 throws java.io.IOException

getSessionID

private int getSessionID()

nextRequestID

private int nextRequestID()

nextForkID

private int nextForkID()

terminateSession

private void terminateSession()

cmdLogin

private int cmdLogin(ByteReader rr,
                     ByteWriter ww)
              throws java.io.IOException

cmdLoginExt

private int cmdLoginExt(ByteReader rr,
                        ByteWriter ww)
                 throws java.io.IOException

loginCommon

private int loginCommon(java.lang.String uam,
                        java.lang.String user,
                        ByteReader rr,
                        ByteWriter ww)
                 throws java.io.IOException

cmdLoginCont

private int cmdLoginCont(ByteReader rr,
                         ByteWriter ww)
                  throws java.io.IOException

cmdLogout

private int cmdLogout(ByteReader rr,
                      ByteWriter ww)
               throws java.io.IOException

cmdGetUserInfo

private int cmdGetUserInfo(ByteReader rr,
                           ByteWriter ww)
                    throws java.io.IOException

cmdGetServerParams

private int cmdGetServerParams(ByteReader rr,
                               ByteWriter ww)
                        throws java.io.IOException

cmdOpenVolume

private int cmdOpenVolume(ByteReader rr,
                          ByteWriter ww)
                   throws java.io.IOException

cmdDelete

private int cmdDelete(ByteReader rr,
                      ByteWriter ww)
               throws java.io.IOException

cmdGetFileDirParams

private int cmdGetFileDirParams(ByteReader rr,
                                ByteWriter ww)
                         throws java.io.IOException

cmdSetForkParams

private int cmdSetForkParams(ByteReader rr,
                             ByteWriter ww)
                      throws java.io.IOException

cmdSetFileParams

private int cmdSetFileParams(ByteReader rr,
                             ByteWriter ww)
                      throws java.io.IOException

cmdSetDirParams

private int cmdSetDirParams(ByteReader rr,
                            ByteWriter ww)
                     throws java.io.IOException

cmdSetFileDirParams

private int cmdSetFileDirParams(ByteReader rr,
                                ByteWriter ww)
                         throws java.io.IOException

cmdGetVolumeParams

private int cmdGetVolumeParams(ByteReader rr,
                               ByteWriter ww)
                        throws java.io.IOException

cmdGetSessionToken

private int cmdGetSessionToken(ByteReader rr,
                               ByteWriter ww)
                        throws java.io.IOException

cmdCloseVolume

private int cmdCloseVolume(ByteReader rr,
                           ByteWriter ww)
                    throws java.io.IOException

cmdMapID

private int cmdMapID(ByteReader rr,
                     ByteWriter ww)
              throws java.io.IOException

cmdCreateDir

private int cmdCreateDir(ByteReader rr,
                         ByteWriter ww)
                  throws java.io.IOException

cmdCreateFile

private int cmdCreateFile(ByteReader rr,
                          ByteWriter ww)
                   throws java.io.IOException

cmdOpenDir

private int cmdOpenDir(ByteReader rr,
                       ByteWriter ww)
                throws java.io.IOException

cmdOpenFork

private int cmdOpenFork(ByteReader rr,
                        ByteWriter ww)
                 throws java.io.IOException

cmdRename

private int cmdRename(ByteReader rr,
                      ByteWriter ww)
               throws java.io.IOException

cmdMoveAndRename

private int cmdMoveAndRename(ByteReader rr,
                             ByteWriter ww)
                      throws java.io.IOException

cmdRead

private int cmdRead(ByteReader rr,
                    ByteWriter ww)
             throws java.io.IOException

cmdReadExt

private int cmdReadExt(ByteReader rr,
                       ByteWriter ww)
                throws java.io.IOException

cmdWrite

private int cmdWrite(ByteReader rr,
                     ByteWriter ww)
              throws java.io.IOException

cmdWriteExt

private int cmdWriteExt(ByteReader rr,
                        ByteWriter ww)
                 throws java.io.IOException

cmdFlushFork

private int cmdFlushFork(ByteReader rr,
                         ByteWriter ww)
                  throws java.io.IOException

cmdCloseDir

private int cmdCloseDir(ByteReader rr,
                        ByteWriter ww)
                 throws java.io.IOException

cmdCloseFork

private int cmdCloseFork(ByteReader rr,
                         ByteWriter ww)
                  throws java.io.IOException

cmdEnumerate

private int cmdEnumerate(ByteReader rr,
                         ByteWriter ww)
                  throws java.io.IOException

cmdEnumerateExt2

private int cmdEnumerateExt2(ByteReader rr,
                             ByteWriter ww)
                      throws java.io.IOException

sendVolumeInfo

private void sendVolumeInfo(ByteWriter ww,
                            AFP_Volume vol,
                            int flags)
                     throws java.io.IOException

sendDirectoryInfo

private void sendDirectoryInfo(ByteWriter ww,
                               AFP_CNode node,
                               int flags,
                               int mode)
                        throws java.io.IOException

recvDirectoryInfo

private void recvDirectoryInfo(ByteReader rr,
                               AFP_CNode node,
                               int flags)
                        throws java.io.IOException

sendFileInfo

private void sendFileInfo(ByteWriter ww,
                          AFP_CNode node,
                          int flags,
                          int mode)
                   throws java.io.IOException

recvFileInfo

private void recvFileInfo(ByteReader rr,
                          AFP_CNode node,
                          int flags)
                   throws java.io.IOException

print

private void print(java.lang.String t,
                   int v)

print

private void print(java.lang.String t,
                   long v)

getFork

private AFP_Fork getFork(int forkRef)
                  throws AFP_Error

openPath

private AFP_Session.Path openPath(int volID,
                                  int dirID,
                                  java.lang.String pathName)
                           throws AFP_Error

createDirPath

private AFP_Session.Path createDirPath(int volID,
                                       int dirID,
                                       java.lang.String pathName)
                                throws AFP_Error

createFilePath

private AFP_Session.Path createFilePath(int volID,
                                        int dirID,
                                        java.lang.String pathName)
                                 throws AFP_Error

getUAM

private static int getUAM(java.lang.String uam)

keyBytes

private byte[] keyBytes(java.math.BigInteger bi)

keyBytes

private byte[] keyBytes(java.math.BigInteger bi,
                        int len)