Changeset 18058


Ignore:
Timestamp:
01/03/15 18:26:23 (10 years ago)
Author:
tbretz
Message:
Updated to v20r11
Location:
trunk/FACT++/dim
Files:
20 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/dim/README_v20.txt

    r15282 r18058  
    11
    2                     DIM version 20r7 Release Notes
     2                    DIM version 20r11 Release Notes
    33
    44Notes 1 and 2 for Unix Users only
     
    1717                Dns </dev/null >& dns.log &
    1818
    19 NOTE 3: The Version Number service provided by servers is now set to 2007.
     19NOTE 3: The Version Number service provided by servers is now set to 2011.
     20
     2124/10/2014
     22Changes for version 2011:
     23    - Increased the Max. num of connections for DNS and servers to 16384 (from 8192)
     24    - Increased also slightly the DNS hash table
     25
     26
     2717/09/2014
     28Changes for version 2010:
     29    - When a client connects to a server using the IP Address, instead of IP name,
     30      a reverse lookup "validity" test is no longer performed.
     31    - Fixed the Error reporting for tcpip connections, messages like:
     32      "(ERROR) Client Connecting to XXX on YYY: Success"
     33      should no longer exist.
     34    - The "C" version can now be called directly from C++ using only dis.h or dic.h
     35      instead of dis.hxx or dic.hxx.
     36      (several const definitions and "extern "C" added in included prototypes)
     37
     38
     3917/07/2014
     40Changes for version 2009:
     41    - Tried to fix more "Invalid Service ID" messages when creating/deleting services/commands in a server.
     42      (By protecting the service/command creation/destruction in C++)
     43    - Fixed a problem for Raspberry Pi (where "char" is "unsigned char" by default)
     44    - The feature of increasing the maximum nember of connections stopped working with glibc 2.19.
     45      Fixed.
     46
    2047
    214805/04/2013
  • trunk/FACT++/dim/WebDID/did.js

    r14939 r18058  
    9999    {
    100100        storeServices.load();
    101         serviceInfo.setVisible(1);
     101        serviceInfoArea.setVisible(1);
    102102        commandInfoArea.setVisible(0);
    103         serviceInfo.update("");
     103        serviceInfoArea.update("");
    104104    }
    105105 
    106     var serviceInfo = Ext.create('Ext.Panel', {
     106    var serviceInfoArea = Ext.create('Ext.Panel', {
    107107        layout: 'fit',
    108108        id: 'details-panel',
     
    112112        autoScroll: true,
    113113        border: false,
    114         html: ''
    115     });
    116 
     114        html: '',
     115        tools: [{
     116                type: 'gear',
     117                id: 'update',
     118                handler: function(e, toolEl, panel, tc) {
     119                        UpdateButton = tc;
     120                        if(UpdateService)
     121                        {
     122                                UpdateService = 0;
     123                                tc.setType('refresh');
     124//                              tc.show();
     125//console.log("changed icon 1", UpdateService);
     126                        }
     127                        else
     128                        {
     129                                UpdateService = 1;
     130                                tc.setType('gear');
     131//                              tc.show();
     132//console.log("changed icon 2", UpdateService);
     133                        }
     134                }
     135        }]
     136    });
     137
     138    var serviceButton = Ext.create('Ext.Button', {
     139        text: 'Stop Updating',
     140        margin: '5 5 5 5',
     141        handler: function() {
     142//console.log('changed icon');
     143//          var pattern = commandData.getRawValue();
     144//          query(pattern, -1);
     145        }
     146    });
     147/*
     148    var serviceInfoArea = Ext.create('Ext.form.Panel', {
     149        layout: 'vbox',
     150        id: 'svc-details-panel',
     151        title: 'Service Info',
     152        width: 580,
     153//      flex: 3,
     154//        autoScroll: true,
     155        border: false,
     156//        html: 'Command test'
     157        align:'stretch',
     158        tools: [{
     159                type: 'gear',
     160                handler: function(e, toolEl, panel, tc) {
     161                        UpdateButton = tc;
     162                        if(UpdateService)
     163                        {
     164                                UpdateService = 0;
     165                                tc.setType('refresh');
     166//                              tc.show();
     167//console.log("changed icon 1", UpdateService);
     168                        }
     169                        else
     170                        {
     171                                UpdateService = 1;
     172                                tc.setType('gear');
     173//                              tc.show();
     174                                doGetService();
     175//console.log("changed icon 2", UpdateService);
     176                        }
     177                }
     178        }],
     179        items: [serviceButton,serviceInfo]     
     180    });
     181*/
    117182    var commandInfo = Ext.create('Ext.Panel', {
    118183        layout: 'fit',
     
    164229    });
    165230
    166     var serviceInfoArea = Ext.create('Ext.form.Panel', {
     231    var serviceCommandArea = Ext.create('Ext.form.Panel', {
    167232        layout: 'vbox',
    168233//        title: 'Service Info',
     
    170235        region: 'east',
    171236        align:'stretch',
    172         items: [serviceInfo, commandInfoArea]   
     237        items: [serviceInfoArea, commandInfoArea]       
    173238    });
    174239/*
     
    200265    var OldNnodes = 0;
    201266    var OldNSearch = -1;
     267    var UpdateService = 1;
     268    var UpdateButton = 0;
     269
     270
    202271    function poll()
    203272    {
     
    274343    function doGetService()
    275344    {
    276         getService(LastService, LastId);
     345        if(LastService != "")
     346                getService(LastService, LastId);
    277347    }
    278348    function getService(name, id)
     
    285355        {
    286356                forceUpdate = 1;
     357                UpdateService = 1;
     358                if(UpdateButton)
     359                        UpdateButton.setType('gear');
    287360                LastService = name;
    288361                LastId = id;
     
    304377                CurrService = name1;
    305378        requestNumber = requestNumber + 1;
    306         HTTPPacket.open( "GET", "/didServiceData.json/src?dimservice="+name1+"&id=src&reqNr="+requestNumber+"&reqId="+randomNumber+"&force="+forceUpdate, true );
    307         HTTPPacket.send( null );
     379        if(UpdateService)
     380        {
     381                HTTPPacket.open( "GET", "/didServiceData.json/src?dimservice="+name1+"&id=src&reqNr="+requestNumber+"&reqId="+randomNumber+"&force="+forceUpdate, true );
     382                HTTPPacket.send( null );
     383        }
    308384    }
    309385    function process()
    310386    {
    311         serviceInfo.update("Updating - state "+HTTPPacket.readyState+"...");
     387        serviceInfoArea.update("Updating - state "+HTTPPacket.readyState+"...");
    312388        if ( HTTPPacket.readyState != 4 )
    313389                return;
     
    320396        if(forceUpdate != -1)
    321397        {
    322                 serviceInfo.update(HTTPPacket.responseText);
    323                 serviceInfo.setVisible(1);
    324                 commandInfoArea.setVisible(0);
     398//              if(UpdateService)
     399//              {
     400                        serviceInfoArea.update(HTTPPacket.responseText);
     401                        serviceInfoArea.setVisible(1);
     402                        commandInfoArea.setVisible(0);
     403//              }
    325404        }
    326405        else
    327406        {
    328407                commandInfo.update(HTTPPacket.responseText);
    329                 serviceInfo.setVisible(0);
     408                serviceInfoArea.setVisible(0);
    330409                commandInfoArea.setVisible(1);
    331410        }
     
    526605            minSize: 100,
    527606            maxSize: 600,
    528             items: [serviceInfoArea]
     607            items: [serviceCommandArea]
    529608        }
    530609        ],
  • trunk/FACT++/dim/WebDID/index.html

    r14939 r18058  
    55<link rel="icon" href="favicon.ico" type="image/x-icon">
    66<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    7 <link rel="stylesheet" type="text/css" href="ext-4.1.1a/resources/css/ext-all.css" />
     7<link rel="stylesheet" type="text/css" href="ext-4.2.1.883/resources/css/ext-all.css" />
    88
    99    <!-- GC -->
    1010
    11 <script type="text/javascript" src="ext-4.1.1a/ext-all.js"></script>
     11<script type="text/javascript" src="ext-4.2.1.883/ext-all.js"></script>
    1212<script type="text/javascript" src="did.js"></script>
    1313</head>
  • trunk/FACT++/dim/dim/dic.h

    r14575 r18058  
    2121
    2222/* Routine definition */
     23#ifdef __cplusplus
     24extern "C" {
     25#define __CXX_CONST const
     26#else
     27#define __CXX_CONST
     28#endif
    2329
    24 _DIM_PROTOE( unsigned dic_info_service, (char *service_name, int req_type,
     30_DIM_PROTOE( unsigned dic_info_service, (__CXX_CONST char *service_name, int req_type,
    2531                                    int req_timeout, void *service_address,
    2632                                    int service_size, void (*usr_routine)(void*, void*, int*),
    2733                                    dim_long tag, void *fill_addr, int fill_size) );
    28 _DIM_PROTOE( unsigned dic_info_service_stamped, (char *service_name, int req_type,
     34_DIM_PROTOE( unsigned dic_info_service_stamped, (__CXX_CONST char *service_name, int req_type,
    2935                                    int req_timeout, void *service_address,
    3036                                    int service_size, void (*usr_routine)(void*, void*, int*),
    3137                                    dim_long tag, void *fill_addr, int fill_size) );
    32 _DIM_PROTOE( int dic_cmnd_callback,      (char *service_name, void *service_address,
     38_DIM_PROTOE( int dic_cmnd_callback,      (__CXX_CONST char *service_name, void *service_address,
    3339                                    int service_size, void (*usr_routine)(void*, int*),
    3440                                    dim_long tag) );
    35 _DIM_PROTOE( int dic_cmnd_service,      (char *service_name, void *service_address,
     41_DIM_PROTOE( int dic_cmnd_service,      (__CXX_CONST char *service_name, void *service_address,
    3642                                    int service_size) );
    3743_DIM_PROTOE( void dic_change_address,  (unsigned service_id, void *service_address,
    3844                                    int service_size) );
    3945_DIM_PROTOE( void dic_release_service,  (unsigned service_id) );
    40 _DIM_PROTOE( int dic_find_service,      (char *service_name) );
    41 _DIM_PROTOE( int dic_get_id,                    (char *name) );
     46_DIM_PROTOE( int dic_find_service,      (__CXX_CONST char *service_name) );
     47_DIM_PROTOE( int dic_get_id,                    (__CXX_CONST char *name) );
    4248_DIM_PROTOE( int dic_get_quality,               (unsigned service_id) );
    4349_DIM_PROTOE( int dic_get_timestamp,  (unsigned service_id, int *secs, int *milisecs) );
     
    5359_DIM_PROTOE( int dic_get_server_pid,       (int *pid ) );
    5460
     61#ifdef __cplusplus
     62#undef __CXX_CONST
     63}
     64#endif
     65
    5566#endif
    5667
  • trunk/FACT++/dim/dim/dim.h

    r15282 r18058  
    1414#include "dim_common.h"
    1515
    16 #define DIM_VERSION_NUMBER 2007
     16#define DIM_VERSION_NUMBER 2011
    1717
    1818
     
    483483
    484484/* PROTOTYPES */
     485#ifdef __cplusplus
     486extern "C" {
     487#define __CXX_CONST const
     488#else
     489#define __CXX_CONST
     490#endif
    485491
    486492/* DNA */
    487493_DIM_PROTOE( int dna_start_read,    (int conn_id, int size) );
    488494_DIM_PROTOE( void dna_test_write,   (int conn_id) );
    489 _DIM_PROTOE( int dna_write,         (int conn_id, void *buffer, int size) );
    490 _DIM_PROTOE( int dna_write_nowait,  (int conn_id, void *buffer, int size) );
    491 _DIM_PROTOE( int dna_open_server,   (char *task, void (*read_ast)(), int *protocol,
     495_DIM_PROTOE( int dna_write,         (int conn_id, __CXX_CONST void *buffer, int size) );
     496_DIM_PROTOE( int dna_write_nowait,  (int conn_id, __CXX_CONST void *buffer, int size) );
     497_DIM_PROTOE( int dna_open_server,   (__CXX_CONST char *task, void (*read_ast)(), int *protocol,
    492498                                int *port, void (*error_ast)()) );
    493499_DIM_PROTOE( int dna_get_node_task, (int conn_id, char *node, char *task) );
    494 _DIM_PROTOE( int dna_open_client,   (char *server_node, char *server_task, int port,
     500_DIM_PROTOE( int dna_open_client,   (__CXX_CONST char *server_node, __CXX_CONST char *server_task, int port,
    495501                                int server_protocol, void (*read_ast)(), void (*error_ast)(), SRC_TYPES src_type ));
    496502_DIM_PROTOE( int dna_close,         (int conn_id) );
     
    582588_DIM_PROTO( void _swaps_buffer, (short *sout, short *sin, int n) );
    583589
     590#ifdef __cplusplus
     591#undef __CXX_CONST
     592}
     593#endif
     594
     595
    584596#define SIZEOF_CHAR 1
    585597#define SIZEOF_SHORT 2
  • trunk/FACT++/dim/dim/dim_common.h

    r15282 r18058  
    153153#include <pthread.h>
    154154
     155#ifdef __cplusplus
     156extern "C" {
     157#endif
     158
    155159_DIM_PROTOE( void dim_lock,             () );
    156160_DIM_PROTOE( void dim_unlock,   () );
    157161_DIM_PROTOE( void dim_wait_cond,                () );
    158162_DIM_PROTOE( void dim_signal_cond,      () );
     163#ifdef __cplusplus
     164}
     165#endif
    159166
    160167#define DIM_LOCK        dim_lock();
     
    175182#endif
    176183
     184#ifdef __cplusplus
     185extern "C" {
     186#define __CXX_CONST const
     187#else
     188#define __CXX_CONST
     189#endif
    177190
    178191_DIM_PROTOE( int id_get,           (void *ptr, int type) );
     
    187200_DIM_PROTOE( void dna_set_test_write,   (int conn_id, int time) );
    188201_DIM_PROTOE( void dna_rem_test_write,   (int conn_id) );
    189 _DIM_PROTOE( int dim_set_dns_node,              (char *node) );
     202_DIM_PROTOE( int dim_set_dns_node,              (__CXX_CONST char *node) );
    190203_DIM_PROTOE( int dim_get_dns_node,              (char *node) );
    191204_DIM_PROTOE( int dim_set_dns_port,              (int port) );
     
    193206_DIM_PROTOE( void dic_set_debug_on,             () );
    194207_DIM_PROTOE( void dic_set_debug_off,    () );
    195 _DIM_PROTOE( void dim_print_msg,                (char *msg, int severity) );
     208_DIM_PROTOE( void dim_print_msg,                (__CXX_CONST char *msg, int severity) );
    196209_DIM_PROTOE( void dim_print_date_time,          () );
    197210_DIM_PROTOE( void dim_set_write_timeout,                (int secs) );
     
    204217_DIM_PROTOE( int dim_get_scheduler_class,               (int *sched_class) );
    205218_DIM_PROTOE( dim_long dim_start_thread,    (void(*rout)(void*), void *tag) );
    206 _DIM_PROTOE( int dic_set_dns_node,              (char *node) );
     219_DIM_PROTOE( int dic_set_dns_node,              (__CXX_CONST char *node) );
    207220_DIM_PROTOE( int dic_get_dns_node,              (char *node) );
    208221_DIM_PROTOE( int dic_set_dns_port,              (int port) );
    209222_DIM_PROTOE( int dic_get_dns_port,              () );
    210 _DIM_PROTOE( int dis_set_dns_node,              (char *node) );
     223_DIM_PROTOE( int dis_set_dns_node,              (__CXX_CONST char *node) );
    211224_DIM_PROTOE( int dis_get_dns_node,              (char *node) );
    212225_DIM_PROTOE( int dis_set_dns_port,              (int port) );
     
    214227_DIM_PROTOE( void dim_stop,                             () );
    215228_DIM_PROTOE( int dim_stop_thread,               (dim_long tid) );
    216 _DIM_PROTOE( dim_long dis_add_dns,              (char *node, int port) );
    217 _DIM_PROTOE( dim_long dic_add_dns,              (char *node, int port) );
    218 _DIM_PROTOE( int dim_get_env_var,               (char *env_var, char *value, int value_size) );
     229_DIM_PROTOE( dim_long dis_add_dns,              (__CXX_CONST char *node, int port) );
     230_DIM_PROTOE( dim_long dic_add_dns,              (__CXX_CONST char *node, int port) );
     231_DIM_PROTOE( int dim_get_env_var,               (__CXX_CONST char *env_var, char *value, int value_size) );
    219232_DIM_PROTOE( int dim_set_write_buffer_size,             (int bytes) );
    220233_DIM_PROTOE( int dim_get_write_buffer_size,             () );
     
    246259#endif
    247260
     261#ifdef __cplusplus
     262}
     263#undef __CXX_CONST
     264#endif
     265
    248266_DIM_PROTOE( void dim_print_date_time_millis,           () );
    249267
  • trunk/FACT++/dim/dim/dim_tcpip.h

    r11071 r18058  
    66
    77#ifdef WIN32
    8 #define FD_SETSIZE      8192
     8#define FD_SETSIZE      16384
    99#else
    1010#ifdef linux
    1111#ifndef NOMORECONNS
    1212/* CG: Copied here bits/typesizes.h */
    13 #ifndef _BITS_TYPESIZES_H
    14 #define _BITS_TYPESIZES_H       1
     13#ifndef _BITS_TYPESIZES_H
     14#define _BITS_TYPESIZES_H   1
    1515
    1616/* See <bits/types.h> for the meaning of these macros.  This file exists so
    17    that <bits/types.h> need not vary across different GNU platforms.  */
     17that <bits/types.h> need not vary across different GNU platforms.  */
    1818
    19 #define __DEV_T_TYPE            __UQUAD_TYPE
    20 #define __UID_T_TYPE            __U32_TYPE
    21 #define __GID_T_TYPE            __U32_TYPE
    22 #define __INO_T_TYPE            __ULONGWORD_TYPE
    23 #define __INO64_T_TYPE          __UQUAD_TYPE
    24 #define __MODE_T_TYPE           __U32_TYPE
    25 #define __NLINK_T_TYPE          __UWORD_TYPE
    26 #define __OFF_T_TYPE            __SLONGWORD_TYPE
    27 #define __OFF64_T_TYPE          __SQUAD_TYPE
    28 #define __PID_T_TYPE            __S32_TYPE
    29 #define __RLIM_T_TYPE           __ULONGWORD_TYPE
    30 #define __RLIM64_T_TYPE         __UQUAD_TYPE
    31 #define __BLKCNT_T_TYPE         __SLONGWORD_TYPE
    32 #define __BLKCNT64_T_TYPE       __SQUAD_TYPE
    33 #define __FSBLKCNT_T_TYPE       __ULONGWORD_TYPE
    34 #define __FSBLKCNT64_T_TYPE     __UQUAD_TYPE
    35 #define __FSFILCNT_T_TYPE       __ULONGWORD_TYPE
    36 #define __FSFILCNT64_T_TYPE     __UQUAD_TYPE
    37 #define __ID_T_TYPE             __U32_TYPE
    38 #define __CLOCK_T_TYPE          __SLONGWORD_TYPE
    39 #define __TIME_T_TYPE           __SLONGWORD_TYPE
    40 #define __USECONDS_T_TYPE       __U32_TYPE
    41 #define __SUSECONDS_T_TYPE      __SLONGWORD_TYPE
    42 #define __DADDR_T_TYPE          __S32_TYPE
     19#define __DEV_T_TYPE        __UQUAD_TYPE
     20#define __UID_T_TYPE        __U32_TYPE
     21#define __GID_T_TYPE        __U32_TYPE   
     22#define __INO_T_TYPE        __ULONGWORD_TYPE   
     23#define __INO64_T_TYPE      __UQUAD_TYPE
     24#define __MODE_T_TYPE       __U32_TYPE
     25#define __NLINK_T_TYPE      __UWORD_TYPE
     26#define __OFF_T_TYPE        __SLONGWORD_TYPE
     27#define __OFF64_T_TYPE      __SQUAD_TYPE
     28#define __PID_T_TYPE        __S32_TYPE
     29#define __RLIM_T_TYPE       __ULONGWORD_TYPE
     30#define __RLIM64_T_TYPE     __UQUAD_TYPE
     31#define __BLKCNT_T_TYPE     __SLONGWORD_TYPE
     32#define __BLKCNT64_T_TYPE   __SQUAD_TYPE
     33#define __FSBLKCNT_T_TYPE   __ULONGWORD_TYPE
     34#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE
     35#define __FSFILCNT_T_TYPE   __ULONGWORD_TYPE
     36#define __FSFILCNT64_T_TYPE __UQUAD_TYPE
     37#define __FSWORD_T_TYPE     __SWORD_TYPE
     38#define __ID_T_TYPE     __U32_TYPE
     39#define __CLOCK_T_TYPE      __SLONGWORD_TYPE
     40#define __TIME_T_TYPE       __SLONGWORD_TYPE
     41#define __USECONDS_T_TYPE   __U32_TYPE
     42#define __SUSECONDS_T_TYPE  __SLONGWORD_TYPE
     43#define __DADDR_T_TYPE      __S32_TYPE
    4344#define __SWBLK_T_TYPE          __SLONGWORD_TYPE
    44 #define __KEY_T_TYPE            __S32_TYPE
    45 #define __CLOCKID_T_TYPE        __S32_TYPE
    46 #define __TIMER_T_TYPE          __S32_TYPE
    47 #define __BLKSIZE_T_TYPE        __SLONGWORD_TYPE
    48 #define __FSID_T_TYPE           struct { int __val[2]; }
    49 #define __SSIZE_T_TYPE          __SWORD_TYPE
     45#define __KEY_T_TYPE        __S32_TYPE
     46#define __CLOCKID_T_TYPE    __S32_TYPE
     47#define __TIMER_T_TYPE      void *
     48#define __BLKSIZE_T_TYPE    __SLONGWORD_TYPE
     49#define __FSID_T_TYPE       struct { int __val[2]; }
     50#define __SSIZE_T_TYPE      __SWORD_TYPE
     51#define __SYSCALL_SLONG_TYPE    __SLONGWORD_TYPE
     52#define __SYSCALL_ULONG_TYPE    __ULONGWORD_TYPE
     53
     54#ifdef __LP64__
     55/* Tell the libc code that off_t and off64_t are actually the same type
     56for all ABI purposes, even if possibly expressed as different base types   
     57for C type-checking purposes.  */
     58# define __OFF_T_MATCHES_OFF64_T    1
     59
     60/* Same for ino_t and ino64_t.  */
     61# define __INO_T_MATCHES_INO64_T    1
     62#endif
    5063
    5164/* Number of descriptors that can fit in an `fd_set'.  */
    52 #define __FD_SETSIZE            8192
     65#define __FD_SETSIZE        16384
    5366
    54 #endif /* bits/typesizes.h */
     67
     68#endif /* bits/typesizes.h */
    5569
    5670/* CG: Copied here linux/posix_types.h */
     
    6478
    6579#undef __FD_SETSIZE
    66 #define __FD_SETSIZE    8192
     80#define __FD_SETSIZE    16384
    6781
    6882#undef __FDSET_LONGS
     
    8498/* Type of a SYSV IPC key.  */
    8599typedef int __kernel_key_t;
     100typedef int __kernel_mqd_t;
    86101
    87102#include <asm/posix_types.h>
  • trunk/FACT++/dim/dim/dis.h

    r14575 r18058  
    2525#define dis_get_timestamp dis_get_timestamp_
    2626
    27 _DIM_PROTOE( int dis_start_serving,    (char *task_name) );
     27#ifdef __cplusplus
     28extern "C" {
     29#define __CXX_CONST const
     30#else
     31#define __CXX_CONST
     32#endif
     33
     34_DIM_PROTOE( int dis_start_serving,    (__CXX_CONST char *task_name) );
    2835_DIM_PROTOE( void dis_stop_serving,    () );
    2936_DIM_PROTOE( int dis_get_next_cmnd,    (dim_long *tag, int *buffer, int *size ) );
    3037_DIM_PROTOE( int dis_get_client,       (char *name ) );
    3138_DIM_PROTOE( int dis_get_conn_id,      () );
    32 _DIM_PROTOE( unsigned dis_add_service, (char *service_name, char *service_type,
     39_DIM_PROTOE( unsigned dis_add_service, (__CXX_CONST char *service_name, __CXX_CONST char *service_type,
    3340                                   void *service_address, int service_size,
    3441                                   void (*usr_routine)(void*,void**,int*,int*), dim_long tag) );
    35 _DIM_PROTOE( unsigned dis_add_cmnd,        (char *service_name, char *service_type,
     42_DIM_PROTOE( unsigned dis_add_cmnd,        (__CXX_CONST char *service_name, __CXX_CONST char *service_type,
    3643                                   void (*usr_routine)(void*,void*,int*), dim_long tag) );
    3744_DIM_PROTOE( void dis_add_client_exit_handler,(void (*usr_routine)(int*)) );
     
    3946_DIM_PROTOE( void dis_add_exit_handler,(void (*usr_routine)(int*)) );
    4047_DIM_PROTOE( void dis_add_error_handler,(void (*usr_routine)(int, int, char*)) );
    41 _DIM_PROTOE( void dis_report_service,  (char *service_name) );
     48_DIM_PROTOE( void dis_report_service,  (__CXX_CONST char *service_name) );
    4249_DIM_PROTOE( int dis_update_service,   (unsigned service_id) );
    4350_DIM_PROTOE( int dis_remove_service,   (unsigned service_id) );
     
    5461_DIM_PROTOE( char *dis_get_error_services,      () );
    5562_DIM_PROTOE( char *dis_get_client_services,     (int conn_id) );
    56 _DIM_PROTOE( int dis_start_serving_dns,         (dim_long dns_id, char *task_name/*, int *id_list*/) );
     63_DIM_PROTOE( int dis_start_serving_dns,         (dim_long dns_id, __CXX_CONST char *task_name/*, int *id_list*/) );
    5764_DIM_PROTOE( void dis_stop_serving_dns,         (dim_long dns_id) );
    58 _DIM_PROTOE( unsigned dis_add_service_dns,      (dim_long dns_id, char *service_name, char *service_type,
     65_DIM_PROTOE( unsigned dis_add_service_dns,      (dim_long dns_id, __CXX_CONST char *service_name, __CXX_CONST char *service_type,
    5966                                   void *service_address, int service_size,
    6067                                   void (*usr_routine)(void*,void**,int*,int*), dim_long tag) );
    61 _DIM_PROTOE( unsigned dis_add_cmnd_dns,         (dim_long dns_id, char *service_name, char *service_type,
     68_DIM_PROTOE( unsigned dis_add_cmnd_dns,         (dim_long dns_id, __CXX_CONST char *service_name, __CXX_CONST char *service_type,
    6269                               void (*usr_routine)(void*,void*,int*), dim_long tag) );
    6370_DIM_PROTOE( int dis_get_n_clients,     (unsigned service_id) );
    6471_DIM_PROTOE( int dis_get_timestamp,     (unsigned service_id,
    6572                                        int *secs, int *millisecs) );
     73#ifdef __cplusplus
     74#undef __CXX_CONST
     75}
     76#endif
    6677
    6778#endif
  • trunk/FACT++/dim/src/benchmark/benchClient.cxx

    r14936 r18058  
    3535
    3636        if(argc){}
    37         if(argc){}
     37        if(argv){}
    3838        br.getServices("BENCH_SERVICE_*");
    3939
  • trunk/FACT++/dim/src/dic.c

    r15282 r18058  
    13631363        }
    13641364        node_name = packet->node_name;
    1365         if(node_name[0] == -1)
     1365        if(node_name[0] == (char)0xFF)
    13661366        {
    13671367                error_handler(0, DIM_FATAL, DIMDNSREFUS, "DIM_DNS refuses connection");
  • trunk/FACT++/dim/src/discpp.cxx

    r15282 r18058  
    8383void DimService::storeIt(void *data, int size)
    8484{
    85 
     85        DISABLE_AST
     86        if(!itsId)
     87        {
     88                ENABLE_AST
     89                return;
     90        }
    8691        if(!itsDataSize)
    8792        {
     
    97102        memcpy(itsData, data, (size_t)size);
    98103        itsSize = size;
     104        ENABLE_AST
    99105}
    100106
     
    131137{
    132138//      itsTagId = 0;
     139        itsId = 0;
    133140        itsDns = dns;
    134141        itsName = new char[(int)strlen(name)+1];
     
    241248{
    242249//      itsTagId = 0;
     250        itsIdIn = 0;
     251        itsIdOut = 0;
    243252        itsDns = dns;
    244253        itsName = new char[(int)strlen(name)+1];
     
    287296void DimRpc::storeIt(void *data, int size)
    288297{
    289 
     298        DISABLE_AST
     299        if(!itsIdIn)
     300        {
     301                ENABLE_AST
     302                return;
     303        }
    290304        if(!itsDataOutSize)
    291305        {
     
    301315        memcpy(itsDataOut, data, (size_t)size);
    302316        itsSizeOut = size;
     317        ENABLE_AST
    303318}
    304319
     
    776791{
    777792//      itsTagId = 0;
     793        itsId = 0;
     794        itsName = 0;
    778795}
    779796
    780797DimService::DimService(const char *name, int &value)
    781798{
     799        itsId = 0;
     800        itsName = 0;
    782801        itsData = &value;
    783802        itsSize = sizeof(int);
     
    788807DimService::DimService(const char *name, float &value)
    789808{
     809        itsId = 0;
     810        itsName = 0;
    790811        itsData = &value;
    791812        itsSize = sizeof(float);
     
    796817DimService::DimService(const char *name, double &value)
    797818{
     819        itsId = 0;
     820        itsName = 0;
    798821        itsData = &value;
    799822        itsSize = sizeof(double);
     
    804827DimService::DimService(const char *name, longlong &value)
    805828{
     829        itsId = 0;
     830        itsName = 0;
    806831        itsData = &value;
    807832        itsSize = sizeof(longlong);
     
    812837DimService::DimService(const char *name, short &value)
    813838{
     839        itsId = 0;
     840        itsName = 0;
    814841        itsData = &value;
    815842        itsSize = sizeof(short);
     
    820847DimService::DimService(const char *name, char *string)
    821848{
     849        itsId = 0;
     850        itsName = 0;
    822851        itsData = string;
    823852        itsSize = (int)strlen(string)+1;
     
    828857DimService::DimService(const char *name, char *format, void *structure, int size)
    829858{
     859        itsId = 0;
     860        itsName = 0;
    830861        itsData = structure;
    831862        itsSize = size;
     
    836867DimService::DimService(const char *name, char *format, DimServiceHandler *handler)
    837868{
     869        itsId = 0;
     870        itsName = 0;
    838871        itsData = 0;
    839872        itsSize = 0;
     
    844877DimService::DimService(const char *name, const char *format, void *structure, int size)
    845878{
     879        itsId = 0;
     880        itsName = 0;
    846881        itsData = structure;
    847882        itsSize = size;
     
    852887DimService::DimService(const char *name, const char *format, DimServiceHandler *handler)
    853888{
     889        itsId = 0;
     890        itsName = 0;
    854891        itsData = 0;
    855892        itsSize = 0;
     
    862899DimService::DimService(DimServerDns *dns, const char *name, int &value)
    863900{
     901        itsId = 0;
     902        itsName = 0;
    864903        itsData = &value;
    865904        itsSize = sizeof(int);
     
    870909DimService::DimService(DimServerDns *dns, const char *name, float &value)
    871910{
     911        itsId = 0;
     912        itsName = 0;
    872913        itsData = &value;
    873914        itsSize = sizeof(float);
     
    878919DimService::DimService(DimServerDns *dns, const char *name, double &value)
    879920{
     921        itsId = 0;
     922        itsName = 0;
    880923        itsData = &value;
    881924        itsSize = sizeof(double);
     
    886929DimService::DimService(DimServerDns *dns, const char *name, longlong &value)
    887930{
     931        itsId = 0;
     932        itsName = 0;
    888933        itsData = &value;
    889934        itsSize = sizeof(longlong);
     
    894939DimService::DimService(DimServerDns *dns, const char *name, short &value)
    895940{
     941        itsId = 0;
     942        itsName = 0;
    896943        itsData = &value;
    897944        itsSize = sizeof(short);
     
    902949DimService::DimService(DimServerDns *dns, const char *name, char *string)
    903950{
     951        itsId = 0;
     952        itsName = 0;
    904953        itsData = string;
    905954        itsSize = (int)strlen(string)+1;
     
    910959DimService::DimService(DimServerDns *dns, const char *name, char *format, void *structure, int size)
    911960{
     961        itsId = 0;
     962        itsName = 0;
    912963        itsData = structure;
    913964        itsSize = size;
     
    918969DimService::DimService(DimServerDns *dns, const char *name, char *format, DimServiceHandler *handler)
    919970{
     971        itsId = 0;
     972        itsName = 0;
    920973        itsData = 0;
    921974        itsSize = 0;
     
    927980DimService::DimService(DimServerDns *dns, const char *name, const char *format, void *structure, int size)
    928981{
     982        itsId = 0;
     983        itsName = 0;
    929984        itsData = structure;
    930985        itsSize = size;
     
    935990DimService::DimService(DimServerDns *dns, const char *name, const char *format, DimServiceHandler *handler)
    936991{
     992        itsId = 0;
     993        itsName = 0;
    937994        itsData = 0;
    938995        itsSize = 0;
     
    9441001DimService::~DimService()
    9451002{
    946         delete[] itsName;
     1003        DISABLE_AST
     1004        if(itsName)
     1005                delete[] itsName;
    9471006        if(itsDataSize)
    9481007                delete[] (char *)itsData;
    9491008//      if(itsTagId)
    9501009//              id_free(itsTagId, SRC_DIS);
    951         dis_remove_service( itsId );
     1010        if(itsId)
     1011                dis_remove_service( itsId );
     1012        itsId = 0;
     1013        ENABLE_AST
    9521014}
    9531015
    9541016int DimService::updateService()
    9551017{
     1018        if(!itsId)
     1019                return 0;
    9561020        return dis_update_service( itsId );
    9571021}
     
    9591023int DimService::updateService( int &value )
    9601024{
     1025        if(!itsId)
     1026                return 0;
    9611027        if( itsType == DisINT)
    9621028        {
     
    9691035int DimService::updateService( float &value )
    9701036{
     1037        if(!itsId)
     1038                return 0;
    9711039        if( itsType == DisFLOAT) {
    9721040                itsData = &value;
     
    9781046int DimService::updateService( double &value )
    9791047{
     1048        if(!itsId)
     1049                return 0;
    9801050        if( itsType == DisDOUBLE) {
    9811051                itsData = &value;
     
    9871057int DimService::updateService( longlong &value )
    9881058{
     1059        if(!itsId)
     1060                return 0;
    9891061        if( itsType == DisXLONG)
    9901062        {
     
    9971069int DimService::updateService( short &value )
    9981070{
     1071        if(!itsId)
     1072                return 0;
    9991073        if( itsType == DisSHORT)
    10001074        {
     
    10071081int DimService::updateService( char *string )
    10081082{
     1083        if(!itsId)
     1084                return 0;
    10091085        if( itsType == DisSTRING)
    10101086        {
     
    10181094int DimService::updateService( void *structure, int size )
    10191095{
     1096        if(!itsId)
     1097                return 0;
    10201098        if( itsType == DisPOINTER)
    10211099        {
     
    10291107int DimService::selectiveUpdateService(int *cids)
    10301108{
     1109        if(!itsId)
     1110                return 0;
    10311111        if( cids == 0)
    10321112        {
     
    10411121int DimService::selectiveUpdateService( int &value, int *cids)
    10421122{
     1123        if(!itsId)
     1124                return 0;
    10431125        if( itsType == DisINT)
    10441126        {
     
    10581140int DimService::selectiveUpdateService( float &value, int *cids )
    10591141{
     1142        if(!itsId)
     1143                return 0;
    10601144        if( itsType == DisFLOAT)
    10611145        {
     
    10751159int DimService::selectiveUpdateService( double &value, int *cids )
    10761160{
     1161        if(!itsId)
     1162                return 0;
    10771163        if( itsType == DisDOUBLE)
    10781164        {
     
    10921178int DimService::selectiveUpdateService( longlong &value, int *cids )
    10931179{
     1180        if(!itsId)
     1181                return 0;
    10941182        if( itsType == DisXLONG)
    10951183        {
     
    11091197int DimService::selectiveUpdateService( short &value, int *cids )
    11101198{
     1199        if(!itsId)
     1200                return 0;
    11111201        if( itsType == DisSHORT)
    11121202        {
     
    11261216int DimService::selectiveUpdateService( char *string, int *cids )
    11271217{
     1218        if(!itsId)
     1219                return 0;
    11281220        if( itsType == DisSTRING)
    11291221        {
     
    11441236int DimService::selectiveUpdateService( void *structure, int size, int *cids )
    11451237{
     1238        if(!itsId)
     1239                return 0;
    11461240        if( itsType == DisPOINTER)
    11471241        {
     
    11621256void DimService::setQuality(int quality)
    11631257{
     1258        if(!itsId)
     1259                return;
    11641260        dis_set_quality( itsId, quality );
    11651261}
     
    11671263void DimService::setTimestamp(int secs, int millisecs)
    11681264{
     1265        if(!itsId)
     1266                return;
    11691267        dis_set_timestamp( itsId, secs, millisecs );
    11701268}
     
    13571455
    13581456        if(secs == 0)
    1359                 dis_get_timestamp(itsId, &secs, &millisecs);
     1457        {
     1458                DISABLE_AST
     1459                if(itsId)
     1460                        dis_get_timestamp(itsId, &secs, &millisecs);
     1461                ENABLE_AST
     1462        }
    13601463        return(secs);
    13611464}
     
    13841487DimCommand::~DimCommand()
    13851488{
     1489        DISABLE_AST
    13861490        delete[] itsName;
    13871491        delete[] itsFormat;
    13881492//      if(itsTagId)
    13891493//              id_free(itsTagId, SRC_DIS);
    1390         dis_remove_service( itsId );
     1494        if(itsId)
     1495                dis_remove_service( itsId );
     1496        itsId = 0;
     1497        ENABLE_AST
    13911498}
    13921499
     
    14071514DimRpc::~DimRpc()
    14081515{
     1516        DISABLE_AST
    14091517        delete[] itsName;
    14101518        delete[] itsNameIn;
     
    14121520//      if(itsTagId)
    14131521//              id_free(itsTagId, SRC_DIS);
    1414         dis_remove_service( itsIdIn );
    1415         dis_remove_service( itsIdOut );
     1522        if(itsIdIn)
     1523                dis_remove_service( itsIdIn );
     1524        if(itsIdOut)
     1525                dis_remove_service( itsIdOut );
     1526        itsIdIn = 0;
     1527        itsIdOut = 0;
     1528        ENABLE_AST
    14161529}
    14171530
  • trunk/FACT++/dim/src/dns.c

    r15282 r18058  
    2121#define MAX_HASH_ENTRIES 5000
    2222*/
    23 #define MAX_HASH_ENTRIES 20000
     23#define MAX_HASH_ENTRIES 25000
    2424FILE    *foutptr;
    2525
     
    260260                {
    261261                        if(!get_dns_accepted_domains(DNS_accepted_domains))
    262                                 DNS_accepted_domains[0] = -1;
    263                 }
    264                 if((DNS_accepted_domains[0] != -1) && (strcmp(Dns_conns[conn_id].task_name,"DIS_DNS")))
     262                                DNS_accepted_domains[0] = (char)0xFF;
     263                }
     264                if((DNS_accepted_domains[0] != (char)0xFF) && (strcmp(Dns_conns[conn_id].task_name,"DIS_DNS")))
    265265                {
    266266                        ptr = DNS_accepted_domains;
     
    683683        {
    684684                if(!get_dns_accepted_nodes(DNS_accepted_nodes))
    685                         DNS_accepted_nodes[0] = -1;
    686         }
    687         if(DNS_accepted_nodes[0] != -1)
     685                        DNS_accepted_nodes[0] = (char)0xFF;
     686        }
     687        if(DNS_accepted_nodes[0] != (char)0xFF)
    688688        {
    689689                ptr = DNS_accepted_nodes;
     
    712712                {
    713713                        dic_packet.service_id = serv_regp->service_id;
    714                         dic_packet.node_name[0] = -1;
     714                        dic_packet.node_name[0] = (char)0xFF;
    715715                        dic_packet.task_name[0] = 0;
    716716                        dic_packet.node_addr[0] = 0;
  • trunk/FACT++/dim/src/examples/pvss_dim_client.cxx

    r11071 r18058  
    1919        }
    2020public :
    21         SimpleService(char *name) : DimInfo(name, -1.0) {};
     21        SimpleService(const char *name) : DimInfo(name, -1.0) {};
    2222};
    2323
     
    3939        }
    4040public :
    41         DimDoubleArray(char *name) : DimInfo(name, no_link_darray, 8*sizeof(double)) {};
     41        DimDoubleArray(const char *name) : DimInfo(name, no_link_darray, 8*sizeof(double)) {};
    4242};
    4343
     
    7676        }
    7777public :
    78         ComplexService(char *name) : DimInfo(name, -1.0) {};
     78        ComplexService(const char *name) : DimInfo(name, -1.0) {};
    7979};
    8080
     
    8888                cout << "RPC Service received: " << value << "\n" << endl;
    8989        }
    90         RpcService(char *name, int timeout) :   DimRpcInfo(name, timeout, -1) {};
     90        RpcService(const char *name, int timeout) :     DimRpcInfo(name, timeout, -1) {};
    9191};
    9292
  • trunk/FACT++/dim/src/examples/pvss_dim_server.cxx

    r15282 r18058  
    3131        }
    3232public :
    33         RecvCommand(char *name) : DimCommand(name,"C") {reset_flag = 0;};
     33        RecvCommand(const char *name) : DimCommand(name,"C") {reset_flag = 0;};
    3434        int isReset() {return reset_flag;};
    3535        void clearReset() {reset_flag = 0;};
     
    4747        }
    4848public :
    49         RecvCommandComplex(char *name) : DimCommand(name,"I:1;C:1;I:1;F:1;C") {};
     49        RecvCommandComplex(const char *name) : DimCommand(name,"I:1;C:1;I:1;F:1;C") {};
    5050};
    5151/*
     
    9595        }
    9696public:
    97         RpcService(char *name): DimRpc(name,"I","I") {val = 0;};
     97        RpcService(const char *name): DimRpc(name,"I","I") {val = 0;};
    9898};
    9999
  • trunk/FACT++/dim/src/examples/rpc_client.cxx

    r14575 r18058  
    22#include <iostream>
    33using namespace std;
     4#include <stdio.h>
    45
    56class Rpc : public DimRpcInfo
     
    1011                cout << "Callback RPC Received : " << getInt() << endl;
    1112        }
    12         Rpc(char *name) :       DimRpcInfo(name, 1, -1) {};
     13        Rpc(const char *name) : DimRpcInfo(name, 1, -1) {};
    1314};
    1415
     
    3132                cout << val->str1 << " " << val->str2 << " " << val->int1 << endl;
    3233        }
    33         RpcStruct(char *name) : DimRpcInfo(name, "dead") {};
     34        RpcStruct(const char *name) :   DimRpcInfo(name, (char *)"dead") {};
    3435};
    3536
     
    4142        int out, in;
    4243       
    43         sprintf(name,"TESTRPC%d/INT",(dim_long)tag);
     44        sprintf(name,"TESTRPC%ld/INT",(dim_long)tag);
    4445        myRpc = new DimRpcInfo(name, 10, -1);
    4546//      myRpc = new Rpc(name);
     
    6566        Rpc *myRpc;
    6667        char name[64];
    67         int out, in;
     68        int out;
    6869       
    6970        sprintf(name,"TESTRPC/INT");
  • trunk/FACT++/dim/src/examples/rpc_server.cxx

    r15282 r18058  
    33#include <iostream>
    44using namespace std;
     5#include <stdio.h>
    56
    67class RpcInt : public DimRpc
     
    2021        }
    2122public:
    22         RpcInt(char *name): DimRpc(name,"I","I") {val = 0;};
     23        RpcInt(const char *name): DimRpc(name,"I","I") {val = 0;};
    2324};
    2425
     
    5657        }
    5758public:
    58         RpcStruct(char *name): DimRpc(name,"C:16;I:5;C:18;F:4;I:1;F:16",
     59        RpcStruct(const char *name): DimRpc(name,"C:16;I:5;C:18;F:4;I:1;F:16",
    5960                "C:16;I:5;C:18;F:4;I:1;F:16") {val = 0;};
    6061};
     
    7576        }
    7677public:
    77         JeffRpcStruct(char *name): DimRpc(name,"C:1;C:1;C:1;C",
     78        JeffRpcStruct(const char *name): DimRpc(name,"C:1;C:1;C:1;C",
    7879                "I:1;C:1;C") {counter = 0;};
    7980};
  • trunk/FACT++/dim/src/tcpip.c

    r15282 r18058  
    436436        return(1);
    437437}
     438
     439#ifdef __linux__
     440int tcpip_get_send_space(int conn_id)
     441{
     442        int ret, n_bytes;
     443               
     444        ret = ioctl(Net_conns[conn_id].channel, TIOCOUTQ, &n_bytes );
     445        if(ret == -1)
     446        {
     447#ifdef DEBUG
     448                printf("Couln't get send buffer free size, ret =  %d\n", ret);
     449#endif
     450                return(0);
     451        }
     452/*
     453        printf("tcpip_get_send_space %d\n", Write_buffer_size - n_bytes);
     454*/
     455        return(Write_buffer_size - n_bytes);
     456}
     457#endif
    438458
    439459/*
     
    905925            ipaddr[3] = (unsigned char)d;
    906926            host_number = 1;
     927/*
    907928#ifndef VxWorks
    908929                if( gethostbyaddr(ipaddr, sizeof(ipaddr), AF_INET) == (struct hostent *)0 )
     
    913934                        ret = WSAGetLastError();
    914935#endif
    915                         if((ret == HOST_NOT_FOUND) || (ret == NO_DATA))
    916                         {
    917                                 if(!check_node_addr(node, ipaddr))
    918                                         return(0);
    919                         }
    920                 }
    921 #endif
     936//                      if((ret == HOST_NOT_FOUND) || (ret == NO_DATA))
     937//                      {
     938//                              if(!check_node_addr(node, ipaddr))
     939//                                      return(0);
     940//                      }
     941                }
     942#endif
     943*/
    922944        }
    923945#ifndef VxWorks
     
    13061328       
    13071329        set_non_blocking(Net_conns[conn_id].channel);
     1330/*
     1331#ifdef __linux__
     1332        tcpip_get_send_space(conn_id);
     1333#endif
     1334*/
    13081335        wrote = (int)writesock( Net_conns[conn_id].channel, buffer, (size_t)size, 0 );
    13091336#ifndef WIN32
     
    16961723#ifndef WIN32
    16971724        if(code){}
    1698         if((errno == ENOENT) && (h_errno == HOST_NOT_FOUND))
     1725        if((errno == 0) && (h_errno == HOST_NOT_FOUND))
    16991726                strcpy(str,"Host not found");
    17001727        else
  • trunk/FACT++/dim/src/util/dim_get_service.c

    r11071 r18058  
    4646        else
    4747        {
    48                 sprintf(str,argv[1]);
     48                sprintf(str,"%s",argv[1]);
    4949        }
    5050        dic_info_service(str,ONCE_ONLY,60,0,0,rout,0,&no_link,4);
  • trunk/FACT++/dim/src/webDid/webDid.c

    r15282 r18058  
    4646CURR_SERVICE *Curr_service_head = (CURR_SERVICE *)0;
    4747
     48typedef struct objstate{
     49        char name[MAX_NAME];
     50        char state[512];
     51        int sid;
     52        int mode_index;
     53        void *browserp;
     54}OBJSTATE;
     55/*
     56typedef struct domainitem{
     57        char name[MAX_NAME];
     58        OBJSTATE objs[1];
     59}CURR_SMIDOMAIN;
     60*/
    4861typedef struct bitem{
    4962    struct bitem *next;
     
    5366        time_t last_updated;
    5467        time_t last_polled;
     68        time_t last_changed;
    5569        int conn_id;
    5670        int n_services;
     
    6074        char *JSONBuffer;
    6175        int JSONBufferSize;
     76        char *JSONSmiBuffer;
     77        int JSONSmiBufferSize;
    6278        char pattern[256];
    6379        char curr_command[MAX_NAME];
    6480        char *service_format_ptr;
     81        int isSMI;
     82        int n_domains;
     83        char curr_smidomain[MAX_NAME];
     84        int curr_smidomain_size;
     85        int curr_smidomain_nobjs;
     86        OBJSTATE *smidomainp;
    6587}BROWSER;
    6688BROWSER *Browser_head = (BROWSER *)0;
     
    6991int JSONBufferSize = 0;
    7092char JSONHeader[256] = {'\0'};
     93char JSONSmiHeader[256] = {'\0'};
     94
     95char *JSONSmiBuffer = 0;
     96int JSONSmiBufferSize = 0;
    7197
    7298int First_time = 1;
     
    80106int N_services = 0;     
    81107static char no_link = -1;
     108static char no_link_str[5] = "DEAD";
    82109int no_link_int = -1;
    83110FILE    *fptr;
     
    424451        NODE *nodep;
    425452        SERVER *servp;
    426         char *ptr;
     453        char *ptr = 0;
    427454        BROWSER *browserp;
    428455        char *prepareJSONServiceList();
     
    441468                {
    442469                        ptr = prepareJSONServiceList(servp, node, pid, browserp);
     470                }
     471        }
     472        return ptr;
     473}
     474
     475void got_update_smi_objects(BROWSER **tag, char *buffer, int *size)
     476{
     477        BROWSER *browserp;
     478
     479        if(size){}
     480        browserp = (BROWSER *)*tag;
     481        if(browserp->service_format_ptr)
     482                free(browserp->service_format_ptr);
     483        browserp->service_format_ptr = (char *)malloc(strlen(buffer)+1);
     484        strcpy(browserp->service_format_ptr, buffer);
     485}
     486
     487char *update_smi_objects(char *node, char *server, int pid, int browser)
     488{
     489        char str[MAX_NAME];
     490        NODE *nodep;
     491        SERVER *servp;
     492        char *ptr = 0;
     493        BROWSER *browserp;
     494        char *prepareJSONSmiObjectList();
     495        BROWSER *create_browser();
     496
     497        if(!(browserp = find_browser(browser)))
     498        {
     499                browserp = create_browser(browser);
     500                browserp->isSMI = 1;
     501        }
     502        if(server){}
     503        sprintf(str,"%s/SERVICE_LIST",server);
     504        dic_info_service(str,ONCE_ONLY,20,0,0,
     505                got_update_smi_objects,(dim_long)browserp,"None",5);
     506        if((nodep = find_node(node)))
     507        {
     508            if((servp = find_server(nodep, pid)))
     509                {
     510                        ptr = prepareJSONSmiObjectList(servp, node, pid, browserp);
    443511                }
    444512        }
     
    604672        browserp = (BROWSER *)malloc(sizeof(BROWSER));
    605673        browserp->id = id;
    606         browserp->last_subscribed = 0;
     674    browserp->last_subscribed = 0;
    607675        browserp->last_updated = 0;
    608676        browserp->last_polled = 0;
     677    browserp->last_changed = 0;
    609678        browserp->n_nodes = 0;
    610679        browserp->n_servers = 0;
     
    613682        browserp->JSONBuffer = 0;
    614683        browserp->JSONBufferSize = 0;
     684        browserp->JSONSmiBuffer = 0;
     685        browserp->JSONSmiBufferSize = 0;
    615686        browserp->pattern[0] = '\0';
    616687        browserp->service_format_ptr = 0;
    617688        browserp->curr_command[0] = '\0';
     689        browserp->curr_smidomain[0] = '\0';
     690        browserp->smidomainp = 0;
    618691        sll_insert_queue((SLL *)Browser_head,(SLL *)browserp);
    619692        dtq_start_timer(10, check_browser, browserp);
     
    744817                                }
    745818                        }
     819                }
     820        }
     821        if(browserp->isSMI)
     822        {
     823                if((browserp->last_changed >= browserp->last_polled) || (force))
     824                {
     825                                service_changed = 1;
    746826                }
    747827        }
     
    11771257                                if(isprint(asc[j]))
    11781258                                {
    1179                                         sprintf(str,"%c",asc[j]);
     1259                                        if(asc[j] == ' ')
     1260                                                sprintf(str,"&nbsp");
     1261                                        else if(asc[j] == '<')
     1262                                                sprintf(str,"&lt");
     1263                                        else if(asc[j] == '>')
     1264                                                sprintf(str,"&gt");
     1265                                        else if(asc[j] == '&')
     1266                                                sprintf(str,"&amp");
     1267                                        else
     1268                                                sprintf(str,"%c",asc[j]);
    11801269                                        strcat(tmp,str);
    11811270                                }
     
    13451434}
    13461435
    1347 char *getJSONHeader()
     1436char *getJSONSmiBuffer(char *node, int browser)
     1437{
     1438        BROWSER *browserp;
     1439        int prepareJSONSmiTree();
     1440
     1441        if(!(browserp = find_browser(browser)))
     1442        {
     1443                browserp = create_browser(browser);
     1444                browserp->isSMI = 1;
     1445                strcpy(browserp->pattern,"SMI/");
     1446        }
     1447        if(browser)
     1448        {
     1449            if((browserp = find_browser(browser)))
     1450                {
     1451                        if(browserp->pattern[0] != '\0')
     1452                        {
     1453                          prepareJSONSmiTree(node, browserp);
     1454                          return(browserp->JSONSmiBuffer);
     1455                        }
     1456//                      browserp->n_services = 0;
     1457//                      browserp->n_servers = 0;
     1458//                      browserp->n_nodes = 0;
     1459                }
     1460        }
     1461        prepareJSONSmiTree(node, 0);
     1462        return(JSONSmiBuffer);
     1463}
     1464
     1465char *getJSONHeader(int isSMI)
    13481466{
    13491467  int prepareJSONHeader();
    13501468
     1469  if(isSMI){}
    13511470  if(JSONHeader[0] == '\0')
    13521471    prepareJSONHeader();
     
    15261645printf(" Nodes&Servers %s\n",browserp->JSONBuffer);
    15271646        */
     1647        return(1);
     1648}
     1649
     1650int prepareJSONSmiTree(char *node, BROWSER *browserp)
     1651{
     1652        char *ptr;
     1653        NODE *nodep;
     1654        SERVER *servp;
     1655        char str[256], aux[128];
     1656        int selective = 0;
     1657        int n_nodes, tot_n_nodes;
     1658        int n_servers, tot_n_servers;
     1659        int ret, n_found = 0;
     1660        char pattern[256] = {'\0'};
     1661        char *sptr;
     1662
     1663        if(browserp)
     1664        {
     1665                if(browserp->pattern[0] != '\0')
     1666                {
     1667                        selective = 1;
     1668                        strcpy(pattern, browserp->pattern);
     1669                }
     1670//              else
     1671//                      return(0);
     1672        }
     1673//      selective = 1;
     1674//      strcpy(pattern,"SMI/*");
     1675        if(!selective)
     1676        {
     1677                if(JSONSmiBufferSize == 0)
     1678                {
     1679                        JSONSmiBuffer = malloc((size_t)(N_nodes*128+N_servers*128));
     1680                }
     1681                else if (JSONSmiBufferSize < N_nodes*128+N_servers*128)
     1682                {
     1683                        free(JSONSmiBuffer);
     1684                        JSONSmiBuffer = malloc((size_t)(N_nodes*128+N_servers*128));
     1685                }
     1686                ptr = JSONSmiBuffer;
     1687        }
     1688        else
     1689        {
     1690                if(browserp->JSONSmiBufferSize == 0)
     1691                {
     1692                        browserp->JSONSmiBuffer = malloc((size_t)(N_nodes*128+N_servers*128));
     1693                }
     1694                else if (browserp->JSONSmiBufferSize < N_nodes*128+N_servers*128)
     1695                {
     1696                        free(browserp->JSONSmiBuffer);
     1697                        browserp->JSONSmiBuffer = malloc((size_t)(N_nodes*128+N_servers*128));
     1698                }
     1699                ptr = browserp->JSONSmiBuffer;
     1700        }
     1701        *ptr = '\0';
     1702        if(!strcmp(node, "src"))
     1703        {
     1704        ptr = addJSONStart(ptr);
     1705        ptr = addJSONNodeStart(ptr,"children");
     1706                sprintf(str,"text: \"%s\", id: \"Nodes\", expanded: false", Title);
     1707                        ptr = addJSONChildStart(ptr,str,1);
     1708                ptr = addJSONNodeStart(ptr,"children");
     1709        nodep = Node_head;
     1710        tot_n_nodes = 0;
     1711        while( (nodep = (NODE *)sll_get_next((SLL *)nodep)) )
     1712        {
     1713                nodep->match = 1;
     1714                if(selective)
     1715                {
     1716                        if(!(ret = find_service_pattern(nodep, 0, pattern, &tot_n_servers)))
     1717                        {
     1718                                nodep->match = 0;
     1719                                continue;
     1720                        }
     1721                        else
     1722                        {
     1723                                n_found += ret;
     1724                        }
     1725                }
     1726                tot_n_nodes++;
     1727        }
     1728        n_nodes = 0;
     1729        nodep = Node_head;
     1730        while( (nodep = (NODE *)sll_get_next((SLL *)nodep)) )
     1731        {
     1732                if(!nodep->match)
     1733                        continue;
     1734                getNodeLabel(nodep->name, aux);
     1735                sprintf(str,"text: \"%s\", id: \"%s\", qtip: \"%s\"",
     1736                        aux, nodep->name, nodep->name);
     1737                ptr = addJSONChildStart(ptr,str,0);
     1738                n_nodes++;
     1739if(WebDID_Debug)
     1740                printf("adding %s %d %d\n",nodep->name, n_nodes, tot_n_nodes);
     1741                if(n_nodes < tot_n_nodes)
     1742                        ptr = addJSONChildEnd(ptr,1);
     1743                else
     1744                        ptr = addJSONChildEnd(ptr,0);
     1745        }
     1746                ptr = addJSONNodeEnd(ptr);
     1747                ptr = addJSONChildEnd(ptr,0);
     1748        ptr = addJSONNodeEnd(ptr);
     1749        ptr = addJSONEnd(ptr);
     1750        if(selective)
     1751        {
     1752                browserp->n_services = n_found;
     1753                browserp->n_servers = tot_n_servers;
     1754                browserp->n_nodes = tot_n_nodes;
     1755        }
     1756        }
     1757        else
     1758        {
     1759          if((nodep = find_node(node)))
     1760          {
     1761        ptr = addJSONStart(ptr);
     1762        ptr = addJSONNodeStart(ptr,"children");
     1763                servp = nodep->server_head;
     1764                tot_n_servers = 0;
     1765                while( (servp = (SERVER *)sll_get_next((SLL *)servp)) )
     1766                {
     1767                        servp->match = 1;
     1768                        if(servp->busy != 1)
     1769                        {
     1770                                servp->match = 0;
     1771                                continue;
     1772                        }
     1773                        if(selective)
     1774                        {
     1775                                if(!(ret = find_service_pattern(nodep, servp, pattern, 0)))
     1776                                {
     1777                                        servp->match = 0;
     1778                                        continue;
     1779                                }
     1780                                else
     1781                                {
     1782                                        n_found += ret;
     1783                                }
     1784                        }
     1785                        tot_n_servers++;
     1786                }
     1787                n_servers = 0;
     1788                servp = nodep->server_head;
     1789                while( (servp = (SERVER *)sll_get_next((SLL *)servp)) )
     1790                {
     1791                        if(!servp->match)
     1792                                continue;
     1793                        strcpy(aux, servp->name);
     1794                        sptr = strstr(aux,"_SMI");
     1795                        if(sptr)
     1796                                *sptr = '\0';
     1797                        sprintf(str,"text: \"%s\", id: \"%d\", leaf: true, icon: \"server.png\", name: \"%s\"",aux, servp->server.pid, servp->name);
     1798                        ptr = addJSONChildStart(ptr,str,0);
     1799                        n_servers++;
     1800                        if(n_servers < tot_n_servers)
     1801                                ptr = addJSONChildEnd(ptr,1);
     1802                        else
     1803                                ptr = addJSONChildEnd(ptr,0);
     1804                }
     1805        ptr = addJSONNodeEnd(ptr);
     1806        ptr = addJSONEnd(ptr);
     1807          }
     1808        }
     1809        /*
     1810if(!selective)
     1811printf(" Nodes&Servers %s\n",JSONBuffer);
     1812else
     1813printf(" Nodes&Servers %s\n",browserp->JSONBuffer);
     1814        */
     1815printf("%s\n",browserp->JSONSmiBuffer);
    15281816        return(1);
    15291817}
     
    15661854        if(JSONServicesSize == 0)
    15671855        {
    1568                 JSONServices = malloc((size_t)(n_services*256));
     1856                JSONServicesSize = n_services*256;
     1857                JSONServices = malloc((size_t)JSONServicesSize);
    15691858        }
    15701859        else if (JSONServicesSize < n_services*256)
    15711860        {
    15721861                free(JSONServices);
    1573                 JSONServices = malloc((size_t)(n_services*256));
     1862                JSONServicesSize = n_services*256;
     1863                JSONServices = malloc((size_t)JSONServicesSize);
    15741864        }
    15751865        if(browserp)
     
    16261916        ptr = addJSONEnd(ptr);
    16271917        return JSONServices;
     1918}
     1919
     1920char *JSONSmiServices = 0;
     1921int JSONSmiServicesSize = 0;
     1922
     1923char *prepareJSONSmiObjectList(SERVER *servp, char *node, int pid, BROWSER *browserp)
     1924{
     1925        DNS_SERVICE_INFO *servicep;
     1926        char *ptr;
     1927        int n_services, i;
     1928        char str[512], type_str[512];
     1929        int selective = 0;
     1930        int n_found = 0, n, mode_index;
     1931        char aux[512], *sptr, state[512], *stptr;
     1932        OBJSTATE *smidomainp;
     1933        int findSmiServices();
     1934
     1935printf("prepareJSONSmiObjectList name %s\n", servp->name);
     1936        servicep = servp->service_ptr;
     1937        n_services = servp->server.n_services;
     1938        if(JSONSmiServicesSize == 0)
     1939        {
     1940                JSONSmiServicesSize = n_services*512;
     1941                JSONSmiServices = malloc((size_t)JSONSmiServicesSize);
     1942        }
     1943        else if (JSONSmiServicesSize < n_services*512)
     1944        {
     1945                free(JSONSmiServices);
     1946                JSONSmiServicesSize = n_services*512;
     1947                JSONSmiServices = malloc((size_t)JSONSmiServicesSize);
     1948        }
     1949        if(browserp)
     1950        {
     1951                if(browserp->pattern[0] != '\0')
     1952                        selective = 1;
     1953        }
     1954        n_found = n_services;
     1955        /*
     1956        if(selective)
     1957        {
     1958                n_found = find_server_service_pattern(servp, browserp->pattern);
     1959        }
     1960        */
     1961
     1962        n_found = findSmiServices(browserp, servp);
     1963        smidomainp = browserp->smidomainp;
     1964
     1965printf("prepareJSONSmiObjectList1 name %s\n", servp->name);
     1966
     1967
     1968        ptr = JSONSmiServices;
     1969        *ptr = '\0';
     1970        ptr = addJSONStart(ptr);
     1971        ptr = addJSONNodeStart(ptr,"children");
     1972        /*
     1973        if(selective)
     1974                sprintf(str,"name: \"%s (%d/%d services, pid %d)\"",servp->name, n_found, n_services, servp->server.pid);
     1975        else
     1976                sprintf(str,"name: \"%s (%d services, pid %d)\"",servp->name, n_services, servp->server.pid);
     1977        */
     1978        sprintf(str,"name: \"%s (%d objects, pid %d)\"",servp->name, n_found, servp->server.pid);
     1979    ptr = addJSONChildStart(ptr,str,1);
     1980        ptr = addJSONNodeStart(ptr,"children");
     1981        servicep = servp->service_ptr;
     1982        n = 0;
     1983        for(i = 0; i < n_services; i++)
     1984        {
     1985/*
     1986printf("Service type = %d\n",servicep->type);
     1987*/
     1988printf("prepareJSONSmiObjectList2 obj name %s\n", servicep->name);
     1989                if((!selective) || (strstr(servicep->name, browserp->pattern)))
     1990                {
     1991/*
     1992                        if(servicep->type == 1)
     1993                        {
     1994                                sprintf(type_str,"%d@%s|%s|CMD", pid, node, servicep->name);
     1995                                sprintf(str,"name: \"%s\", id: \"%s\", leaf: true, icon: \"leaf_cmd.gif\"",servicep->name, type_str);
     1996                        }
     1997                        else
     1998                        {
     1999                                sprintf(type_str,"%d@%s|%s", pid, node, servicep->name);
     2000                                sprintf(str,"name: \"%s\", state: \"RUNNING\", id: \"%s\", leaf: true",servicep->name, type_str);
     2001                        }
     2002*/
     2003                        if(servicep->status == 2)
     2004                        {
     2005                                sprintf(type_str,"%d@%s|%s", pid, node, servicep->name);
     2006                                strcpy(aux, servicep->name);
     2007                                sptr = strchr(aux,'/');
     2008                                if(sptr)
     2009                                {
     2010                                        sptr++;
     2011                                        sptr = strchr(sptr,'/');
     2012                                        if(sptr)
     2013                                                sptr++;
     2014                                }
     2015                                strcpy(state, smidomainp[i].state);
     2016                                stptr = strchr(state,'/');
     2017                                if(stptr)
     2018                                {
     2019                                        *stptr = '\0';
     2020                                }
     2021                                mode_index = smidomainp[i].mode_index;
     2022//                              sprintf(str,"name: \"%s\", state: \"%s\", id: \"%s\", leaf: true, fname: \"%s\"",sptr, state, type_str, servicep->name);
     2023                                sprintf(str,"name: \"%s\", state: \"%s\", mode: \"%s\",id: \"%s\", leaf: true, fname: \"%s\"",
     2024                                        sptr, state, smidomainp[mode_index].state, type_str, servicep->name);
     2025                       
     2026                                ptr = addJSONChildStart(ptr,str,0);
     2027                                n++;
     2028                                if(n < n_found)
     2029                                        ptr = addJSONChildEnd(ptr,1);
     2030                                else
     2031                                        ptr = addJSONChildEnd(ptr,0);
     2032                        }
     2033                }
     2034                servicep++;
     2035        }
     2036        ptr = addJSONNodeEnd(ptr);
     2037        ptr = addJSONChildEnd(ptr,0);
     2038        ptr = addJSONNodeEnd(ptr);
     2039        ptr = addJSONEnd(ptr);
     2040printf("%s\n",JSONSmiServices);
     2041        return JSONSmiServices;
     2042}
     2043
     2044void update_smi_state(OBJSTATE **tag, char *data, int *size)
     2045{
     2046        OBJSTATE *servicep;
     2047        time_t tsecs;
     2048
     2049        if(*size){}
     2050        servicep = *tag;
     2051
     2052        if(strcmp(servicep->state, data))
     2053        {
     2054                strcpy(servicep->state, data);
     2055                tsecs = time((time_t *)0);
     2056                ((BROWSER *)(servicep->browserp))->last_changed = tsecs;
     2057        }
     2058//printf("SMI State %s %s %08x\n", servicep->name, servicep->state, (unsigned int)servicep);
     2059}
     2060
     2061int findSmiServices(BROWSER *browserp, SERVER *servp)
     2062{
     2063        DNS_SERVICE_INFO *servicep;
     2064        int n_services, i, index;
     2065        int n_found = 0, sid;
     2066        int checkSmiObjName();
     2067        int findSmiModeObj();
     2068
     2069        n_services = servp->server.n_services;
     2070        if(strcmp(browserp->curr_smidomain,servp->name))
     2071        {
     2072                if(browserp->curr_smidomain[0] != '\0')
     2073                {
     2074// unsubscribe; free
     2075                        for(i = 0; i < browserp->curr_smidomain_size; i++)
     2076                        {
     2077                                if(browserp->smidomainp[i].sid)
     2078                                        dic_release_service(browserp->smidomainp[i].sid);
     2079                        }
     2080                        free(browserp->smidomainp);
     2081                        browserp->curr_smidomain[0] = '\0';
     2082                        browserp->curr_smidomain_size = 0;
     2083                }
     2084                strcpy(browserp->curr_smidomain, servp->name);
     2085                browserp->smidomainp = malloc(n_services * sizeof(OBJSTATE));
     2086                browserp->curr_smidomain_size = n_services;
     2087        }
     2088        else
     2089                return browserp->curr_smidomain_nobjs;
     2090        servicep = servp->service_ptr;
     2091        for(i = 0; i < n_services; i++)
     2092        {
     2093                browserp->smidomainp[i].sid = 0;
     2094                browserp->smidomainp[i].state[0] = '\0';
     2095                if(checkSmiObjName(servicep))
     2096                {
     2097                        strcpy(browserp->smidomainp[i].name, servicep->name);
     2098//                      strcpy(browserp->smidomainp[i].state, "");
     2099                        browserp->smidomainp[i].browserp = browserp;
     2100//printf("address %s %08x\n",browserp->smidomainp[i].name, (unsigned int)&(browserp->smidomainp[i]));
     2101                        sid = dic_info_service(servicep->name,MONITORED,0,0,0,update_smi_state, &(browserp->smidomainp[i]),
     2102                                                no_link_str, 5);
     2103                        browserp->smidomainp[i].sid = sid;
     2104                        if(servicep->status == 2)
     2105                                n_found++;
     2106                }
     2107                servicep++;
     2108        }
     2109        servicep = servp->service_ptr;
     2110        for(i = 0; i < n_services; i++)
     2111        {
     2112                if(servicep->status == 2)
     2113                {
     2114                        index = findSmiModeObj(servp->service_ptr, n_services, servicep->name);
     2115                        browserp->smidomainp[i].mode_index = index;
     2116                }
     2117                servicep++;
     2118        }
     2119        browserp->curr_smidomain_nobjs = n_found;
     2120        return n_found;
     2121}
     2122
     2123int findSmiModeObj(DNS_SERVICE_INFO *serviceptr, int n_services, char *name)
     2124{
     2125        int i;
     2126        DNS_SERVICE_INFO *servicep;
     2127        char mode_name[256], *ptr, *ptr1, *ptr2;
     2128
     2129        servicep = serviceptr;
     2130        strcpy(mode_name, name);
     2131        ptr1 = mode_name;
     2132        if((ptr = strstr(mode_name,"::")))
     2133        {
     2134                *ptr = '\0';
     2135                ptr2 = ptr1;
     2136                while((ptr1 = strchr(ptr1,'/')))
     2137                {
     2138                        ptr1++;
     2139                        ptr2 = ptr1;
     2140                }
     2141                if(strcmp(ptr2, ptr+2))
     2142                        *ptr = ':';
     2143        }
     2144        strcat(mode_name,"_FWM");
     2145printf("Find SMI Mode %s %s\n",name, mode_name);
     2146        for(i = 0; i < n_services; i++)
     2147        {
     2148                if(servicep->status == 3)
     2149                {
     2150                        if(!strcmp(servicep->name, mode_name))
     2151                        {
     2152printf("Find SMI Mode index %s %s %d\n",mode_name, servicep->name, i);
     2153                                return i;
     2154                        }
     2155                }
     2156                servicep++;
     2157        }
     2158        return 0;
     2159}
     2160
     2161int checkSmiObjName(DNS_SERVICE_INFO *servicep)
     2162{
     2163        int ismode = 0, ret = 0;
     2164        char *name;
     2165        int matchString();
     2166
     2167        name = servicep->name;
     2168        if(matchString(name,"SMI/*"))
     2169        {
     2170                ret = 1;
     2171                if(matchString(name,"*&ALLOC*"))
     2172                        ret = 0;
     2173                else if(matchString(name,"*/ACTIONS&PARS"))
     2174                        ret = 0;
     2175                else if(matchString(name,"*/BUSY"))
     2176                        ret = 0;
     2177                else if(matchString(name,"*/CMD"))
     2178                        ret = 0;
     2179                else if(matchString(name,"*/OBJECTSET_LIST"))
     2180                        ret = 0;
     2181                else if(matchString(name,"*/OBJECT_LIST"))
     2182                        ret = 0;
     2183                else if(matchString(name,"*/SMI_VERSION_NUMBER"))
     2184                        ret = 0;
     2185                else if(matchString(name,"*/SET/*"))
     2186                        ret = 0;
     2187// If JCOP framework
     2188                else if(matchString(name,"*_FWDM"))
     2189                        ret = 0;
     2190                else if(matchString(name,"*_FWCNM"))
     2191                        ret = 0;
     2192                else if(matchString(name,"*_FWM"))
     2193                {
     2194                        ismode = 1;
     2195                        if(matchString(name,"*::*"))
     2196                                ret = 0;
     2197                }
     2198        }
     2199        if(ret)
     2200        {
     2201                if(ismode)
     2202                        servicep->status = 3;
     2203                else
     2204                        servicep->status = 2;
     2205        }
     2206        return ret;
    16282207}
    16292208
  • trunk/FACT++/dim/src/webDid/webServer.c

    r15282 r18058  
    257257        if(type == 0)
    258258        {
    259           ptr = getJSONHeader();
     259          ptr = getJSONHeader(0);
    260260        }
    261261        else if(type == 1)
     
    350350        char node[128], server[256], service[256];
    351351        int pid, ret, req, browser, force;
    352         extern char *update_services();
     352        extern char *update_services(), *update_smi_objects();
    353353        extern char *update_service_data();
    354354        extern char *getJSONHeader();
    355         extern char *getJSONBuffer();
     355        extern char *getJSONBuffer(), *getJSONSmiBuffer();
    356356        char datatype[128];
    357357        char *conv_buffer;
     
    361361        if(type == 0)
    362362        {
    363           ptr = getJSONHeader();
     363          ptr = getJSONHeader(1);
    364364        }
    365365        else if(type == 1)
    366366        {
    367367            ret = getNodeParameters(conv_buffer, node, &browser);
    368                 ptr = getJSONBuffer(node, browser);
     368                ptr = getJSONSmiBuffer(node, browser);
    369369        }
    370370        else if(type == 2)
     
    378378                else
    379379                {
    380                         ptr = update_services(node, server, pid, browser);
     380                        ptr = update_smi_objects(node, server, pid, browser);
    381381                }
    382382        }
     
    550550                                return;
    551551                        }
    552                         else if(!strncmp(&buffer[5],"smiObjects",11))
     552                        else if(!strncmp(&buffer[5],"smiData",7))
     553                        {
     554                                sendSmiData(conn_id, &buffer[5], 1);
     555                                return;
     556                        }
     557                        else if(!strncmp(&buffer[5],"smiObjects",10))
    553558                        {
    554559                                sendSmiData(conn_id, &buffer[5], 2);
Note: See TracChangeset for help on using the changeset viewer.