This is ExecServer.h in view mode; [Download] [Up]
// ------------------------------------------------------------------------------------- // ExecServer // ------------------------------------------------------------------------------------- #import <objc/Object.h> #import <machkit/NXData.h> // ------------------------------------------------------------------------------------- // possible return errors (Note: these may be shared with the executed process) #define RSRV_SUCCESS 0 // successful completion #define RSRV_ABORTED 0xF001 // process aborted #define RSRV_FORK 0xF002 // fork() failed #define RSRV_UNKNOWN 0xF003 // unknown error #define RSRV_BADPASSWD 0xF004 // Invalid user password #define RSRV_BADUSER 0xF005 // Bad user name #define RSRV_BADGID 0xF006 // setgid error #define RSRV_BADUID 0xF007 // setuid error #define RSRV_BADINIT 0xF008 // initgroups error #define RSRV_EXEC 0xF009 // exec() failed #define RSRV_UNDEF 0xF00A // Undefined target #define RSRV_RSH 0xF00B // remote rsh exec() failed // ------------------------------------------------------------------------------------- // handle to ExecServer exec process #define execHandle_t u_int // ------------------------------------------------------------------------------------- @protocol RemoteClient // sent by server to client - (oneway void)commandOutput:(const char*)buffer len:(int)length; - (oneway void)commandDidCompleteWithError:(int)errorCode; @end #define RemoteClient_PROTOCOL // ------------------------------------------------------------------------------------- @interface ExecServer : Object <NXSenderIsInvalid> { @public BOOL isRunning; // true if server is running int rootChild; // process handle id rootServer; // remote object id id methodDelegate; // class object id char mainAppPath[MAXPATHLEN + 1]; // path to app wrapper char mainAppHost[MAXHOSTNAMELEN + 1]; // main app host char mainAppServerName[256]; // main app server name char remoteHost[MAXHOSTNAMELEN + 1]; // remote host name char remoteServerName[256]; // remote server name char serverCommandName[MAXPATHLEN + 1]; // remote server command BOOL exitWhenDone; // exit when no clients } // ------------------------------------------------------------------------------------- /* initializing ExecServer */ // These must be sent prior to 'startServer' in order for them to be effective. - setExitWhenDone:(BOOL)flag; - setMethodDelegate:classId; - setMainAppPath:(const char*)appPath; - setMainAppServerName:(const char*)servName host:(const char*)hostName; - setRemoteHost:(const char*)hostName; - setRemoteServerName:(const char*)serverName; - setServerCommandName:(const char*)cmdPath; /* query ExecServer attributes */ - (const char*)mainAppServerName; - (const char*)mainAppHost; - (const char*)remoteHost; - (const char*)remoteServerName; /* ExecServer startup */ - (void)_runServer; - startServer; /* password check */ - (BOOL)needUserPassword:(const char*)userName; /* ExecServer shell script command service */ - (BOOL)isRunningAsRoot; - (execHandle_t)runCommand:(const char*)cmd withUser:(const char*)userName:(const char*)password forClient:(id <RemoteClient>)client killOnError:(BOOL)killOnError; - (execHandle_t)runCommand:(const char*)cmd forClient:(id <RemoteClient>)client killOnError:(BOOL)killOnError; - terminateCommand:(execHandle_t)runId; - killCommand:(execHandle_t)runId; - (BOOL)commandIsActive:(execHandle_t)runId; - shutDownServer; /* ExecServer class method service (requires setMethodDelegate: set) */ - (int)perform:(SEL)method withArg:(const char*)arg withUser:(const char*)userName:(const char*)password; /* return description to specified error code */ + (char*)errorDesc:(int)err; @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.