[prev in list] [next in list] [prev in thread] [next in thread] 

List:       prelude-cvslog
Subject:    [prelude-cvslog] r10069 - in
From:       noreply () prelude-ids ! org
Date:       2007-11-25 15:19:57
Message-ID: 20071125151957.11D09E353F6 () mail ! prelude-ids ! org
[Download RAW message or body]

Author: pollux
Date: 2007-11-25 16:19:55 +0100 (Sun, 25 Nov 2007)
New Revision: 10069

Added:
   libprelude/branches/libprelude-easy-bindings/bindings/tests/load.py
   libprelude/branches/libprelude-easy-bindings/bindings/tests/save.py
Modified:
   libprelude/branches/libprelude-easy-bindings/bindings/easy-idmef.cxx
   libprelude/branches/libprelude-easy-bindings/bindings/easy-idmef.h
   libprelude/branches/libprelude-easy-bindings/bindings/easy-prelude-client.cxx
Log:
Add functions to read/write IDMEF messages to files.


Modified: libprelude/branches/libprelude-easy-bindings/bindings/easy-idmef.cxx
===================================================================
--- libprelude/branches/libprelude-easy-bindings/bindings/easy-idmef.cxx	2007-11-25 \
                15:17:22 UTC (rev 10068)
+++ libprelude/branches/libprelude-easy-bindings/bindings/easy-idmef.cxx	2007-11-25 \
15:19:55 UTC (rev 10069) @@ -145,6 +145,105 @@
 	return real_str;
 }
 
+static int client_write_cb(prelude_msgbuf_t *msgbuf, prelude_msg_t *msg)
+{
+	prelude_msg_write(msg, (prelude_io_t*)prelude_msgbuf_get_data(msgbuf));
+	return 0;
+}
+
+int IDMEF::WriteToFile(const char *filename)
+{
+        int ret;
+	FILE *fd = stdout;
+        prelude_io_t *io;
+	prelude_msgbuf_t *msgbuf;
+
+#ifdef DEBUG
+        fprintf(stderr,"Entering %s\n",__func__);
+#endif
+
+	if ( strcmp(filename,"-") != 0 ) {
+		fd = fopen(filename, "w");
+		if (fd == NULL)
+			return -1;
+	}
+
+        ret = prelude_io_new(&io);
+	if (ret < 0) {
+		fclose(fd);
+		return -1;
+	}
+        prelude_io_set_file_io(io, fd);
+
+	ret = prelude_msgbuf_new(&msgbuf);
+	if (ret < 0) {
+		fclose(fd);
+		prelude_io_destroy(io);
+		return -1;
+	}
+	prelude_msgbuf_set_callback(msgbuf, client_write_cb);
+	prelude_msgbuf_set_data(msgbuf, io);
+
+	ret = idmef_message_write(_message,msgbuf);
+
+	prelude_msgbuf_destroy(msgbuf);
+	prelude_io_close(io);
+        prelude_io_destroy(io);
+
+	return ret;
+}
+
+int IDMEF::ReadFromFile(const char *filename)
+{
+        int ret;
+	FILE *fd = stdin;
+        prelude_io_t *io;
+	prelude_msg_t *msg = NULL;
+	idmef_message_t *message;
+
+#ifdef DEBUG
+        fprintf(stderr,"Entering %s\n",__func__);
+#endif
+	if ( strcmp(filename,"-") != 0 ) {
+		fd = fopen(filename, "r");
+		if (fd == NULL)
+			return -1;
+	}
+
+        ret = prelude_io_new(&io);
+	if (ret < 0) {
+		fclose(fd);
+		return -1;
+	}
+        prelude_io_set_file_io(io, fd);
+
+	ret = idmef_message_new(&message);
+	if (ret < 0) {
+		fclose(fd);
+		prelude_io_destroy(io);
+		return -1;
+	}
+
+	ret = prelude_msg_read(&msg, io);
+	if (ret < 0) {
+		fclose(fd);
+		prelude_io_destroy(io);
+		idmef_message_destroy(message);
+		return -1;
+	}
+
+	ret = idmef_message_read(message, msg);
+
+	prelude_io_close(io);
+        prelude_io_destroy(io);
+	prelude_msg_destroy(msg);
+
+	if (_message) {
+		idmef_message_destroy(_message);
+	}
+	_message = message;
+}
+
 void IDMEF::PrintToStdout(void)
 {
         int ret;

Modified: libprelude/branches/libprelude-easy-bindings/bindings/easy-idmef.h
===================================================================
--- libprelude/branches/libprelude-easy-bindings/bindings/easy-idmef.h	2007-11-25 \
                15:17:22 UTC (rev 10068)
+++ libprelude/branches/libprelude-easy-bindings/bindings/easy-idmef.h	2007-11-25 \
15:19:55 UTC (rev 10069) @@ -27,6 +27,9 @@
         int Set(const char *object, const char *value);
         char * Get(const char *object) throw (const char *);
 
+	int WriteToFile(const char *filename);
+	int ReadFromFile(const char *filename);
+
         void PrintToStdout(void);
 
         void Print(PreludeIO *io);

Modified: libprelude/branches/libprelude-easy-bindings/bindings/easy-prelude-client.cxx
 ===================================================================
--- libprelude/branches/libprelude-easy-bindings/bindings/easy-prelude-client.cxx	2007-11-25 \
                15:17:22 UTC (rev 10068)
+++ libprelude/branches/libprelude-easy-bindings/bindings/easy-prelude-client.cxx	2007-11-25 \
15:19:55 UTC (rev 10069) @@ -84,7 +84,6 @@
                 return NULL;
 
         return new ClientProfile(profile);
-        ClientProfile *GetProfile();
 }
 
 int Client::setup_analyzer(idmef_analyzer *analyzer, const char *_model, const char \
*_class, const char *_manufacturer, const char *_version)

Added: libprelude/branches/libprelude-easy-bindings/bindings/tests/load.py
===================================================================
--- libprelude/branches/libprelude-easy-bindings/bindings/tests/load.py	              \
                (rev 0)
+++ libprelude/branches/libprelude-easy-bindings/bindings/tests/load.py	2007-11-25 \
15:19:55 UTC (rev 10069) @@ -0,0 +1,16 @@
+#!/usr/bin/python
+
+import sys
+sys.path.append('.')
+sys.path.append('./.libs')
+
+try:
+	import PreludeEasy
+except Exception,e:
+	print "Import failed: ",e
+	print "Try 'cd ./.libs && ln -s libprelude_python.so _PreludeEasy.so'"
+	sys.exit(1)
+
+idmef = PreludeEasy.IDMEF()
+idmef.ReadFromFile("foo.bin")
+idmef.PrintToStdout()


Property changes on: \
libprelude/branches/libprelude-easy-bindings/bindings/tests/load.py \
                ___________________________________________________________________
Name: svn:executable
   + *

Added: libprelude/branches/libprelude-easy-bindings/bindings/tests/save.py
===================================================================
--- libprelude/branches/libprelude-easy-bindings/bindings/tests/save.py	              \
                (rev 0)
+++ libprelude/branches/libprelude-easy-bindings/bindings/tests/save.py	2007-11-25 \
15:19:55 UTC (rev 10069) @@ -0,0 +1,16 @@
+#!/usr/bin/python
+
+import sys
+sys.path.append('.')
+sys.path.append('./.libs')
+
+try:
+	import PreludeEasy
+except Exception,e:
+	print "Import failed: ",e
+	print "Try 'cd ./.libs && ln -s libprelude_python.so _PreludeEasy.so'"
+	sys.exit(1)
+
+idmef = PreludeEasy.IDMEF()
+idmef.Set("alert.classification.text", "Bar")
+idmef.WriteToFile("foo.bin")


Property changes on: \
libprelude/branches/libprelude-easy-bindings/bindings/tests/save.py \
                ___________________________________________________________________
Name: svn:executable
   + *


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic