Small fixes for TCP socket file transfer.
authorHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Tue, 23 Jun 2015 14:42:29 +0000 (16:42 +0200)
committerHenning Rogge <henning.rogge@fkie.fraunhofer.de>
Tue, 23 Jun 2015 14:42:29 +0000 (16:42 +0200)
Add readme to netjson_viewer.

files/netjson_viewer/README [new file with mode: 0644]
files/netjson_viewer/netjson_view.html
src-plugins/subsystems/oonf_stream_socket.c

diff --git a/files/netjson_viewer/README b/files/netjson_viewer/README
new file mode 100644 (file)
index 0000000..f257e6c
--- /dev/null
@@ -0,0 +1,21 @@
+The netjson viewer is a minimal way to visualize the live-topology of olsrd2.
+
+It uses the vis.js API (http://visjs.or) and an XMLHttpRequest to load data from
+olsrd2 during runtime from the netjsoninfo plugin.
+
+As a minimal solution to use this plugin put vis.js, vis.css, netjson_view.js
+on a webserver and adapt the links in netjson_view.html to it.
+
+Put netjson_view.html in the /tmp/www directory of your node. It needs to be on
+the same IP as the olsrd2, because otherwise the XMLHttpRequest will be blocked
+as a crosssite-script attack.
+
+Compile olsrd2 with http plugin and allow it to publish the content of /tmp/www.
+
+[http]
+    bindto        0.0.0.0
+    webserver     /tmp/www
+
+After this you should get the viewer by accessing
+
+http://<ip-of-olsrd2-node>:1980/www/netjson_view.html
index 1402aea..7ccbd39 100644 (file)
@@ -46,7 +46,7 @@
         /* settings */
         var common_edge_postfix = "bit/s";
         var common_node_prefix  = "192.168.0.";
-        var netjsonurl = "http://169.254.0.101/cgi/netjson.cgi";
+        var netjsonurl = "/telnet/netjsoninfo graph";
 
         var selectedColor = {
             border:     '#2BE97C',
index 66a4989..c31e035 100644 (file)
@@ -825,13 +825,13 @@ _cb_parse_connection(int fd, void *data, bool event_read, bool event_write) {
 
   /* send file if necessary */
   if (session->state == STREAM_SESSION_SEND_AND_QUIT
-      && abuf_getlen(&session->out) == 0 && session->copy_fd != 0) {
+      && abuf_getlen(&session->out) == 0 && session->copy_fd != -1) {
     if (event_write) {
       len = os_socket_sendfile(fd, session->copy_fd, session->copy_bytes_sent,
           session->copy_total_size - session->copy_bytes_sent);
       if (len <= 0) {
-        OONF_WARN(LOG_STREAM, "Error while copying file to output stream: %s (%d)",
-            strerror(errno), errno);
+        OONF_WARN(LOG_STREAM, "Error while copying file to output stream (%d/%d): %s (%d)",
+            fd, session->copy_fd, strerror(errno), errno);
         session->state = STREAM_SESSION_CLEANUP;
       }
       else {