2005/08/25 23:04:51.365558 SMTP: processing outbound queue
2005/08/25 23:04:51.366405 SMTP: queue run completed
2005/08/25 23:04:51.367887 network: processing inbound queue
2005/08/25 23:04:51.368065 network: queue run completed
2005/08/25 23:04:52.772942 [ 1] SCRP testcode|explore
In [1]:
In [1]:
In [1]: import tools
2005/08/25 23:04:51.366405 SMTP: queue run completed
2005/08/25 23:04:51.367887 network: processing inbound queue
2005/08/25 23:04:51.368065 network: queue run completed
2005/08/25 23:04:52.772942 [ 1] SCRP testcode|explore
In [1]:
In [1]:
In [1]: import tools
If one installs "IPython" on the machine, its straightforward (5-6 lines of python script) to launch a really neato command line interpreter for python from the citadel logging console. The reason for this is to explore the command set, as well as potentially deeper level mangling of the server.
Here are the Various objects I've imported into the python "tools" module so far (I'm going to rename this to "citadel", but for now its tools...
tools.AdjRefCount   ; tools.VIEW_TASKS
tools.BumpNewMailCounter &nbs p; tools.__class__
tools.CtdlAssociateSystemUser   ; tools.__delattr__
tools.CtdlCheckInternetMailPermission tools.__dict__
tools.CtdlCopyMsgToRoom   ; tools.__doc__
tools.CtdlDeleteMessages &nbs p; tools.__file__
tools.CtdlDoIHavePermissionToDeleteMessagesFromThisRoom tools.__getattribute__
tools.CtdlDoIHavePermissionToPostInThisRoom tools.__hash__
tools.CtdlFetchMessage tools.__init__
tools.CtdlForEachMessage &nbs p; tools.__name__
tools.CtdlForgetThisRoom &nbs p; tools.__new__
tools.CtdlFreeMessage & nbsp; tools.__reduce__
tools.CtdlGetRelationship &nb sp; tools.__reduce_ex__
tools.CtdlGetSeen   ; tools.__repr__
tools.CtdlGetSysConfig tools.__setattr__
tools.CtdlInvtKick &nbs p; tools.__str__
tools.CtdlIsMe &n bsp; tools._newclass
tools.CtdlLoginExistingUser & nbsp; tools._object
tools.CtdlMakeMessage & nbsp; tools._swig_getattr
tools.CtdlMsgCmp tools._swig_setattr
tools.CtdlOutputMsg &nb sp; tools._swig_setattr_nondynamic
tools.CtdlOutputPreLoadedMsg tools._tools
tools.CtdlPutSysConfig tools.alias
tools.CtdlReadMessageBody &nb sp; tools.cmd_agup
tools.CtdlSaveMsgPointerInRoom &nbs p; tools.cmd_asup
tools.CtdlSetRelationship &nb sp; tools.cmd_chek
tools.CtdlSetSeen   ; tools.cmd_creu
tools.CtdlSubmitMsg &nb sp; tools.cmd_dele
tools.CtdlTryPassword & nbsp; tools.cmd_ent0
tools.CtdlWriteObject & nbsp; tools.cmd_forg
tools.EXIT_NORMAL   ; tools.cmd_getu
tools.EXIT_NULL & nbsp; tools.cmd_gnur
tools.EXPIRE_AGE tools.cmd_gtsn
tools.EXPIRE_MANUAL &nb sp; tools.cmd_invt_kick
tools.EXPIRE_NEXTLEVEL tools.cmd_isme
tools.EXPIRE_NUMMSGS &n bsp; tools.cmd_list
tools.ExpirePolicy &nbs p; tools.cmd_move
tools.ExpirePolicyPtr & nbsp; tools.cmd_msg0
tools.FILTERLIST tools.cmd_msg2
tools.F_INUSE &nb sp; tools.cmd_msg3
tools.ForEachUser   ; tools.cmd_msg4
tools.GF_GOTO &nb sp; tools.cmd_msgp
tools.GF_SKIP &nb sp; tools.cmd_msgs
tools.GF_ZAP &nbs p; tools.cmd_newu
tools.GenerateRelationshipIndex &nb sp; tools.cmd_opna
tools.GetMetaData   ; tools.cmd_pass
tools.HEADERS_ALL   ; tools.cmd_qusr
tools.HEADERS_FAST &nbs p; tools.cmd_seen
tools.HEADERS_NONE &nbs p; tools.cmd_setp
tools.HEADERS_ONLY &nbs p; tools.cmd_setu
tools.IGNETCFG &n bsp; tools.cmd_slrp
tools.IGNETMAP &n bsp; tools.cmd_user
tools.INTERNETCFG   ; tools.cmd_vali
tools.InitialMailCheck tools.cmd_view
tools.KA_HALF &nb sp; tools.cprintf
tools.KA_NO   ; tools.create_user
tools.KA_YES &nbs p; tools.ctdlroom
tools.LONG_MAX &n bsp; tools.ctdlroomPtr
tools.ListThisUser &nbs p; tools.ctdlsetseen_answered
tools.MAX_EDITORS   ; tools.ctdlsetseen_seen
tools.MES_ANONONLY &nbs p; tools.ctdluser
tools.MES_ANONOPT   ; tools.ctdluserPtr
tools.MES_ERROR & nbsp; tools.do_help_subst
tools.MES_IGNET & nbsp; tools.do_login
tools.MES_INTERNET &nbs p; tools.floor
tools.MES_LOCAL & nbsp; tools.floorPtr
tools.MES_NORMAL tools.get_mm
tools.MM_VALID &n bsp; tools.getuser
tools.MSGS_ALL &n bsp; tools.getuserbynumber
tools.MSGS_EQ &nb sp; tools.help_subst
tools.MSGS_FIRST tools.is_aide
tools.MSGS_GT &nb sp; tools.is_room_aide
tools.MSGS_LAST & nbsp; tools.is_valid_message
tools.MSGS_NEW &n bsp; tools.lgetuser
tools.MSGS_OLD &n bsp; tools.login_already_logged_in
tools.MailboxName   ; tools.login_not_found
tools.NEWREGISTER   ; tools.login_ok
tools.NEXT_KEY &n bsp; tools.login_too_many_users
tools.NONCE_SIZE tools.logout
tools.NewMailCount &nbs p; tools.lputuser
tools.PutMetaData   ; tools.ma_info
tools.RC_DEFAULT tools.ma_infoPtr
tools.RC_NO   ; tools.march
tools.RC_YES &nbs p; tools.marchPtr
tools.READ_HEADER   ; tools.memfmout
tools.READ_MSGBODY &nbs p; tools.om_mime_error
tools.REREGISTER tools.om_no_such_msg
tools.ROOMNAMELEN   ; tools.om_not_logged_in
tools.ReplicationChecks   ; tools.om_ok
tools.SB_LAST &nb sp; tools.pass_already_logged_in
tools.SB_NO_INTR tools.pass_internal_error
tools.SB_RESTORE tools.pass_no_user
tools.SB_SAVE &nb sp; tools.pass_ok
tools.SB_YES_INTR   ; tools.pass_wrong_password
tools.SERVER_TYPE   ; tools.purge_user
tools.SM_DONT_BUMP_REF tools.put_visit
tools.SM_DO_REPL_CHECK tools.putuser
tools.SM_VERIFY_GOODNESS &nbs p; tools.quickie_message
tools.SPOOLMIME & nbsp; tools.recptypes
tools.STOP_KEY &n bsp; tools.recptypesPtr
tools.UGLISTLEN & nbsp; tools.repl
tools.USERNAME_SIZE &nb sp; tools.replPtr
tools.VIEW_ADDRESSBOOK tools.send_message
tools.VIEW_BBS &n bsp; tools.serialize_message
tools.VIEW_CALENDAR &nb sp; tools.session_startup
tools.VIEW_MAILBOX &nbs p; tools.simple_listing
tools.VIEW_NOTES tools.validate_recipients
Theres still a buch more work before I've finally got the whole lot imported, that is the entire symbol library of citadel imported.
Then that'll be the raw server module for hardcore server destruction.
Then I can build a nice object oriented interface.
But put it this way, theres probably already enough to do useful things with it. I'd still not recomend it going into production use. God only knows the fact that it doesnt check if your logged in before running *any* python code on the system is hazardous enough as it is. But easy enough to fix.
I'll probably add into the higher level interface some sort of "script table" with an ACL against what scripts, and of that , what functions may be called, and by whom.
Still havent looked at the threading mess yet. And dear lord does swig produce a mess of warnings.
