Implement the RPC dispatcher and caller for the new API.
# logging/log_manager.h
+virLogManagerDomainAppendMessage;
virLogManagerDomainGetLogFilePosition;
virLogManagerDomainOpenLogFile;
virLogManagerDomainReadLogFile;
virNetMessageSaveError(rerr);
return rv;
}
+
+
+static int
+virLogManagerProtocolDispatchDomainAppendLogFile(virNetServerPtr server ATTRIBUTE_UNUSED,
+ virNetServerClientPtr client ATTRIBUTE_UNUSED,
+ virNetMessagePtr msg ATTRIBUTE_UNUSED,
+ virNetMessageErrorPtr rerr,
+ virLogManagerProtocolDomainAppendLogFileArgs *args,
+ virLogManagerProtocolDomainAppendLogFileRet *ret)
+{
+ int rv;
+
+ if ((rv = virLogHandlerDomainAppendLogFile(virLogDaemonGetHandler(logDaemon),
+ args->driver,
+ (unsigned char *)args->dom.uuid,
+ args->dom.name,
+ args->path,
+ args->message,
+ args->flags)) < 0) {
+ virNetMessageSaveError(rerr);
+ return -1;
+ }
+
+ ret->ret = rv;
+ return 0;
+}
cleanup:
return rv;
}
+
+
+int
+virLogManagerDomainAppendMessage(virLogManagerPtr mgr,
+ const char *driver,
+ const unsigned char *domuuid,
+ const char *domname,
+ const char *path,
+ const char *message,
+ unsigned int flags)
+{
+ struct virLogManagerProtocolDomainAppendLogFileArgs args;
+ struct virLogManagerProtocolDomainAppendLogFileRet ret;
+
+ memset(&args, 0, sizeof(args));
+
+ args.driver = (char *)driver;
+ memcpy(args.dom.uuid, domuuid, VIR_UUID_BUFLEN);
+ args.dom.name = (char *)domname;
+ args.path = (char *)path;
+ args.message = (char *)message;
+ args.flags = flags;
+
+ if (virNetClientProgramCall(mgr->program,
+ mgr->client,
+ mgr->serial++,
+ VIR_LOG_MANAGER_PROTOCOL_PROC_DOMAIN_APPEND_LOG_FILE,
+ 0, NULL, NULL, NULL,
+ (xdrproc_t)xdr_virLogManagerProtocolDomainAppendLogFileArgs, &args,
+ (xdrproc_t)xdr_virLogManagerProtocolDomainAppendLogFileRet, &ret) < 0)
+ return -1;
+
+ return ret.ret;
+}
size_t maxlen,
unsigned int flags);
+int virLogManagerDomainAppendMessage(virLogManagerPtr mgr,
+ const char *driver,
+ const unsigned char *domuuid,
+ const char *domname,
+ const char *path,
+ const char *message,
+ unsigned int flags);
+
#endif /* __VIR_LOG_MANAGER_H__ */
virLogManagerProtocolNonNullString data;
};
+struct virLogManagerProtocolDomainAppendLogFileArgs {
+ virLogManagerProtocolNonNullString driver;
+ virLogManagerProtocolDomain dom;
+ virLogManagerProtocolNonNullString path;
+ virLogManagerProtocolNonNullString message;
+ unsigned int flags;
+};
+
+struct virLogManagerProtocolDomainAppendLogFileRet {
+ int ret;
+};
+
/* Define the program number, protocol version and procedure numbers here. */
const VIR_LOG_MANAGER_PROTOCOL_PROGRAM = 0x87539319;
const VIR_LOG_MANAGER_PROTOCOL_PROGRAM_VERSION = 1;
* @generate: none
* @acl: none
*/
- VIR_LOG_MANAGER_PROTOCOL_PROC_DOMAIN_READ_LOG_FILE = 3
+ VIR_LOG_MANAGER_PROTOCOL_PROC_DOMAIN_READ_LOG_FILE = 3,
+
+ /**
+ * @generate: none
+ * @acl: none
+ */
+ VIR_LOG_MANAGER_PROTOCOL_PROC_DOMAIN_APPEND_LOG_FILE = 4
};