SF.net SVN: fclient: [87] trunk/sandbox/fcp/fcp2_0_params.py
Status: Pre-Alpha
Brought to you by:
jurner
|
From: <ju...@us...> - 2008-01-30 13:21:04
|
Revision: 87
http://fclient.svn.sourceforge.net/fclient/?rev=87&view=rev
Author: jurner
Date: 2008-01-30 05:21:04 -0800 (Wed, 30 Jan 2008)
Log Message:
-----------
it is save now to pass any string as persistent user data
Modified Paths:
--------------
trunk/sandbox/fcp/fcp2_0_params.py
Modified: trunk/sandbox/fcp/fcp2_0_params.py
===================================================================
--- trunk/sandbox/fcp/fcp2_0_params.py 2008-01-30 13:19:47 UTC (rev 86)
+++ trunk/sandbox/fcp/fcp2_0_params.py 2008-01-30 13:21:04 UTC (rev 87)
@@ -1,6 +1,7 @@
"""Handling of additional message parameters"""
import sys, os
+import base64
#--> rel import hack
class SysPathHack(object):
@@ -65,7 +66,6 @@
('FcPersistentUserData', validateString),
)
-
ISubType = 0
IInitTime = 1
IFilenameCollision = 2
@@ -91,19 +91,25 @@
if len(params) != len(FcParams) +1:
return None
+ # validate and drop our magic string
+ uuid_ = params.pop(0)
+ result = validateUuid(uuid_)
+ if result is None:
+ return None
+ if result != MAGIC:
+ return None
+
for i, (paramName, paramValidator) in enumerate(FcParams):
result = paramValidator(params[i])
if result is None:
return None
params[i] = result
- # valiodate and drop our magic string
- uuid_ = params.pop()
- result = validateUuid(uuid_)
- if result is None:
+ # decode user data
+ try:
+ params[IPersistentUserData] = base64.b64decode(params[IPersistentUserData])
+ except TypeError:
return None
- if result != MAGIC:
- return None
return params
@@ -117,7 +123,11 @@
params = []
for paramName, paramValidator in FcParams:
params.append( str(msg[paramName]) )
- params.append(MAGIC)
+
+ # encode user data
+ params[IPersistentUserData] = base64.b64encode(params[IPersistentUserData])
+ params.insert(0, MAGIC)
+
return FcParamsSep.join(params)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|