SF.net SVN: fclient: [100] trunk/sandbox/fcp/fcp2_0_consts.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <ju...@us...> - 2008-02-01 14:44:41
|
Revision: 100
http://fclient.svn.sourceforge.net/fclient/?rev=100&view=rev
Author: jurner
Date: 2008-02-01 06:44:41 -0800 (Fri, 01 Feb 2008)
Log Message:
-----------
refactor a bit and a few more messages
Modified Paths:
--------------
trunk/sandbox/fcp/fcp2_0_consts.py
Modified: trunk/sandbox/fcp/fcp2_0_consts.py
===================================================================
--- trunk/sandbox/fcp/fcp2_0_consts.py 2008-02-01 14:43:34 UTC (rev 99)
+++ trunk/sandbox/fcp/fcp2_0_consts.py 2008-02-01 14:44:41 UTC (rev 100)
@@ -1,3 +1,5 @@
+# -*- coding: utf-8 -*-
+
"""Freennet Client Protocol consts and type mappings"""
import base64
@@ -125,8 +127,8 @@
PeerExists = '29'
OpennetDisabled = 30
DarknetPeerOnly = 31
+ NoSuchPlugin = 32
-
# others
class ConnectReason:
@@ -150,6 +152,7 @@
SocketDied = 2
ConnectingFailed = 3
DuplicateConnectionName = 4
+ VersionMismatch = 5 #TODO: implement???
class FilenameCollision:
@@ -161,6 +164,18 @@
CollisionHandled = 0x10000000 # a filename collision has already been handled
+class KeyType:
+ SSK = 'SSK@'
+ KSK = 'KSK@'
+ CHK = 'CHK@'
+ USK = 'USK@'
+ SVK = 'SVK@'
+ Invalid = ''
+ TypesAll = (SSK, KSK, CHK, USK, SVK)
+
+
+
+
class LogMessages:
"""Message strings used for log infos"""
Connecting = 'connecting to node...'
@@ -234,15 +249,8 @@
#*************************************************************************************
# python <--> fcp value mappings
#*************************************************************************************
-#TODO: reqork Clss.validateFcpValue
-
class FcpType(object):
- # consts for validation
- ValidatesInvalid = 0x0
- ValidatesValid = 0x1
- ValidatesIncomlete = 0x2
-
@classmethod
def pythonToFcp(clss, value):
return value
@@ -250,28 +258,19 @@
@classmethod
def fcpToPython(clss, value):
return value
-
- @classmethod
- def validateFcpValue(clss, value):
- return clss.ValidatesValid
-
-
+
+
class FcpTypeString(FcpType):
@classmethod
def pythonToFcp(clss, value):
- return str(value) #TODO: ??? unicode ???
+ return str(value) #TODO: unicode ???
@classmethod
def fcpToPython(clss, value):
return value
-
- @classmethod
- def validateFcpValue(clss, value):
- return clss.ValidatesValid
-
class FcpTypeBool(FcpType):
@classmethod
@@ -282,12 +281,6 @@
def fcpToPython(clss, value):
return value == FcpTrue
- @classmethod
- def validateFcpValue(clss, value):
- if value in ('true', 'false'):
- return self.ValidatesValid
- return self.ValidatesInvalid
-
class FcpTypeInt(FcpType):
@@ -299,13 +292,6 @@
def fcpToPython(clss, value):
return int(value)
- @classmethod
- def validateFcpValue(clss, value):
- try:
- return int(value)
- except ValueError:
- return None
-
class FcpTypeFloat(FcpType):
@@ -317,15 +303,7 @@
def fcpToPython(clss, value):
return float(value)
- @classmethod
- def validateFcpValue(clss, value):
- try:
- return float(value)
- except ValueError:
- return None
-
-
# GetFailed sets the ExpectedDataLenght field to '' (empty string). Fix this to show up as -1
class FcpTypeInt_GetFailed_ExpectedDataLenght(FcpType):
@@ -339,17 +317,7 @@
return -1
return int(value)
- @classmethod
- def validateFcpValue(clss, value):
- if value == '':
- return -1
- try:
- return int(value)
- except ValueError:
- return None
-
-
class FcpTypeIntWithBounds(FcpType):
def __init__(self, lowerBound, upperBound):
@@ -362,23 +330,7 @@
def fcpToPython(self, value):
return int(value)
- def validateFcpValue(self, value):
- try:
- n = int(value)
- except ValueError:
- return None
-
- if self.lowerBound is not None:
- if n >= self.lowerBound:
- return n
- if self.upperBound is not None:
- if n <= self.upperBound:
- return n
-
- return None
-
-
class FcpTypeBase64EncodedString(FcpType):
@classmethod
@@ -389,13 +341,6 @@
def fcpToPython(clss, value):
return base64.b64decode(value)
- @classmethod
- def validateFcpValue(clss, value):
- pass
- #TODO: no idea
-
-
-
class FcpTypeTime(FcpType):
@@ -407,45 +352,19 @@
def fcpToPython(clss, value):
return int(value) / 1000
- @classmethod
- def validateFcpValue(clss, value):
- try:
- return clss.fcpToPython(value)
- except ValueEror:
- return none
-class FcpTypeIP(FcpType):
- pass
+class FcpTypeIP(FcpType): pass
+class FcpTypeIPList(FcpType): pass
+class FcpTypeIPort(FcpType): pass
+class FcpTypeStringList(FcpType): pass
+class FcpTypeDirname(FcpType): pass
+class FcpTypeFilename(FcpType): pass
+class FcpTypeNumBytes(FcpType): pass
+class FcpTypePercent(FcpTypeFloat): pass
+class FcpTypeUri(FcpType): pass
-#TODO: check if comma separated or colon separated
-class FcpTypeIPList(FcpType):
- pass
-
-class FcpTypeIPort(FcpType):
- pass
-class FcpTypeStringList(FcpType):
- pass
-
-class FcpTypeDirname(FcpType):
- pass
-
-class FcpTypeFilename(FcpType):
- pass
-
-
-class FcpTypeNumBytes(FcpType):
- pass
-
-class FcpTypePercent(FcpTypeFloat):
- pass
-
-
-class FcpTypeUri(FcpType):
- pass
-
-
# special choice types for config message
@@ -864,8 +783,6 @@
>> identity=vMQa~..................
'''
-
-
#***************************************************************************************
#
# Mapping from message params to param types
@@ -955,16 +872,21 @@
'ModifyPersistentRequest': {
'Global': FcpTypeBool,
},
+ 'GetPluginInfo': {
+ 'Detailed': FcpTypeBool,
+ },
+
# node messages
'NodeHello': {
+ 'Build': FcpTypeInt,
'CompressionCodecs': FcpTypeInt,
+ 'ExtBuild': FcpTypeInt,
+ 'ExtRevision': FcpTypeInt,
+ 'FcpVersion': FcpTypeFloat,
'Testnet': FcpTypeBool,
-
- #TODO: ExtBuild et al. ???
-
},
#'Peer': # added later as PeerMessageParams
@@ -1032,7 +954,10 @@
},
'SubscribedUSKUpdate': {
'Edition': FcpTypeInt,
- },
+ },
+ 'GetPluginInfo': {
+ 'Started': FcpTypeBool,
+ },
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|