[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