[Initng-svn] r3233 - initng/trunk/plugins/ngcs
svn at initng.thinktux.net
svn at initng.thinktux.net
Tue Mar 7 15:13:47 CET 2006
Author: makomk
Date: Tue Mar 7 15:13:47 2006
New Revision: 3233
Modified:
initng/trunk/plugins/ngcs/ngcs.py (contents, props changed)
Log:
Various minor ngcs improvements
Modified: initng/trunk/plugins/ngcs/ngcs.py
==============================================================================
--- initng/trunk/plugins/ngcs/ngcs.py (original)
+++ initng/trunk/plugins/ngcs/ngcs.py Tue Mar 7 15:13:47 2006
@@ -83,8 +83,12 @@
self.send(0, cmd)
def send(self, chan, msg):
- msg = ngcs_pack(msg)
- self._sendbuf += struct.pack("@iii",chan,msg.typecode,len(msg.data)) + msg.data
+ if isinstance(msg, NgcsEOF):
+ assert msg.val < 0
+ self._sendbuf += struct.pack("@iii",chan,NGCS_TYPE_NONE,msg.val)
+ else:
+ msg = ngcs_pack(msg)
+ self._sendbuf += struct.pack("@iii",chan,msg.typecode,len(msg.data)) + msg.data
self.try_send()
def try_send(self):
@@ -104,6 +108,11 @@
def unreg_channel(self, chan):
del self._chans[chan]
+ def close_channel(self, chan):
+ self.send(chan, NgcsEOF(-1))
+ if self._chans.has_key(chan):
+ del self._chans[chan]
+
def try_recv(self):
while True:
try:
@@ -263,9 +272,13 @@
sock.settimeout(30.0)
def ngcs_send(chan, msg):
- msg = ngcs_pack(msg)
- sock.sendall(struct.pack("@iii",chan,msg.typecode,len(msg.data)))
- sock.sendall(msg.data)
+ if isinstance(msg, NgcsEOF):
+ assert msg.val < 0
+ sock.sendall(struct.pack("@iii",chan,NGCS_TYPE_NONE,msg.val))
+ else:
+ msg = ngcs_pack(msg)
+ sock.sendall(struct.pack("@iii",chan,msg.typecode,len(msg.data)))
+ sock.sendall(msg.data)
def ngcs_pack(datum):
if isinstance(datum, NoneType):
More information about the Initng-svn
mailing list