Changeset 14286


Ignore:
Timestamp:
07/25/12 17:22:52 (12 years ago)
Author:
tbretz
Message:
Updated to v19r37
Location:
trunk/FACT++/dim
Files:
5 edited

Legend:

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

    r13995 r14286  
    11
    2                     DIM version 19.35 Release Notes
     2                    DIM version 19.37 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 1935.
     19NOTE 3: The Version Number service provided by servers is now set to 1937.
     20
     2127/06/2012
     22Changes for version 19.37:
     23    - DIM DNS crashed for servers with a task name bigger than 80 characters - Fixed.
     24
     25
     2622/06/2012
     27Changes for version 19.36:
     28    - The internal "DIS_DNS/KILL_SERVERS" command can now be used to pass a user defined exit_code to
     29      the servers. The servers will get this exit_code in their exit_handler.
     30      Although the exit_code passed to the "DIS_DNS/KILL_SERVERS" command is an integer, only the lower
     31      16 bits can be used, i.e. only these bits are passed to the servers.
     32
    2033
    213424/05/2012
  • trunk/FACT++/dim/dim/dim.h

    r13995 r14286  
    1414#include "dim_common.h"
    1515
    16 #define DIM_VERSION_NUMBER 1935
     16#define DIM_VERSION_NUMBER 1937
    1717
    1818
     
    187187*/
    188188typedef enum { DNS_DIS_REGISTER, DNS_DIS_KILL, DNS_DIS_STOP,
    189                            DNS_DIS_EXIT } DNS_DIS_TYPES;
     189                           DNS_DIS_EXIT, DNS_DIS_SOFT_EXIT } DNS_DIS_TYPES;
    190190typedef enum { RD_HDR, RD_DATA, RD_DUMMY } CONN_STATE;
    191191typedef enum { NOSWAP, SWAPS, SWAPL, SWAPD} SWAP_TYPE;
     
    442442        TIMR_ENT *timr_ent;
    443443        int already;
    444         char long_task_name[MAX_TASK_NAME*2];
     444        char long_task_name[MAX_TASK_NAME*10];
    445445} DNS_CONNECTION;
    446446
  • trunk/FACT++/dim/src/did/did.c

    r12585 r14286  
    18441844                return;
    18451845        }
    1846         if ((tag == DID_SEL_NODE) || (tag == DID_SEL_SERVICE))
     1846    if ((tag == DID_SEL_NODE) || (tag == DID_SEL_SERVICE))
    18471847        {
    18481848                strcpy(Curr_view_opt_par, str);
     
    18501850                XtFree(str);
    18511851        }
    1852         if(tag == DID_SERVICES)
     1852    if(tag == DID_SERVICES)
    18531853        {
    18541854          pstr = strchr(str,' ');
     
    19081908          XtFree(str);
    19091909        }
    1910         if(tag == DID_COMMAND)
     1910    if(tag == DID_COMMAND)
    19111911        {
    19121912          did_prepare_command(str);
  • trunk/FACT++/dim/src/dis.c

    r13995 r14286  
    253253                strcpy(str,"Service name too long: ");
    254254                strcat(str,name);
    255                 error_handler(0, DIM_ERROR, DIMSVCTOOLG, str);
     255                error_handler(0, DIM_ERROR, DIMSVCTOOLG, str, -1);
    256256                ENABLE_AST
    257257                return((unsigned) 0);
     
    261261                strcpy(str,"Duplicate Service: ");
    262262                strcat(str,name);
    263                 error_handler(0, DIM_ERROR, DIMSVCDUPLC, str);
     263                error_handler(0, DIM_ERROR, DIMSVCDUPLC, str, -1);
    264264                ENABLE_AST
    265265                return((unsigned) 0);
     
    273273                        strcpy(str,"Format String Too Long: ");
    274274                        strcat(str,name);
    275                         error_handler(0, DIM_ERROR, DIMSVCFORMT, str);
     275                        error_handler(0, DIM_ERROR, DIMSVCFORMT, str, -1);
    276276                        free(new_serv);
    277277                        ENABLE_AST
     
    282282                        strcpy(str,"Bad Format String: ");
    283283                        strcat(str,name);
    284                         error_handler(0, DIM_ERROR, DIMSVCFORMT, str);
     284                        error_handler(0, DIM_ERROR, DIMSVCFORMT, str, -1);
    285285                        free(new_serv);
    286286                        ENABLE_AST
     
    431431                strcpy(str,"Command name too long: ");
    432432                strcat(str,name);
    433                 error_handler(0, DIM_ERROR, DIMSVCTOOLG, str);
     433                error_handler(0, DIM_ERROR, DIMSVCTOOLG, str, -1);
    434434                ENABLE_AST
    435435                return((unsigned) 0);
     
    648648        extern void do_dis_stop_serving_dns(DIS_DNS_CONN *);
    649649        DIS_DNS_CONN *dnsp;
     650        int type, exit_code;
    650651
    651652        if(size){}
     
    672673                                        DIS_DNS_TMOUT_MIN, DIS_DNS_TMOUT_MAX, SRC_DIS );
    673674                        if(dnsp->dns_dis_conn_id == -2)
    674                                 error_handler(0, DIM_FATAL, DIMDNSUNDEF, "DIM_DNS_NODE undefined");
     675                                error_handler(0, DIM_FATAL, DIMDNSUNDEF, "DIM_DNS_NODE undefined", -1);
    675676                }
    676677                break;
     
    694695                if(vtohl(packet->size) != DNS_DIS_HEADER)
    695696                        break;
    696                 switch( vtohl(packet->type) )
     697                type = vtohl(packet->type);
     698                exit_code = (type >> 16) & 0xFFFF;
     699                type &= 0xFFFF;
     700                switch(type)
    697701                {
    698702                case DNS_DIS_REGISTER :
     
    700704                                "%s: Watchdog Timeout, DNS requests registration",
    701705                                dnsp->task_name);
    702                         error_handler(0, DIM_WARNING, DIMDNSTMOUT, str);
     706                        error_handler(0, DIM_WARNING, DIMDNSTMOUT, str, -1);
    703707                        register_services(dnsp, ALL, 0);
    704708                        break;
     
    711715                        */
    712716                        Serving = -1;
    713                         error_handler(0, DIM_FATAL, DIMDNSDUPLC, str);
     717                        error_handler(0, DIM_FATAL, DIMDNSDUPLC, str, -1);
    714718                        /*
    715719                        do_dis_stop_serving_dns(dnsp);
     
    730734*/
    731735                        Serving = -1;
    732                         error_handler(0, DIM_FATAL, DIMDNSREFUS, str);
     736                        error_handler(0, DIM_FATAL, DIMDNSREFUS, str, -1);
    733737                        /*
    734738                        do_dis_stop_serving_dns(dnsp);
     
    748752                        Serving = -1;
    749753*/
    750                         error_handler(0, DIM_FATAL, DIMDNSEXIT, str);
     754                        error_handler(0, DIM_FATAL, DIMDNSEXIT, str, -1);
     755                        break;
     756                case DNS_DIS_SOFT_EXIT :
     757                        sprintf(str,
     758                                "%s: DNS requests Exit(%d)",dnsp->task_name, exit_code);
     759/*
     760                        Serving = -1;
     761*/
     762                        error_handler(0, DIM_FATAL, DIMDNSEXIT, str, exit_code);
    751763                        break;
    752764                }
     
    12071219                                        DIS_DNS_TMOUT_MIN, DIS_DNS_TMOUT_MAX, SRC_DIS );
    12081220                        if(dnsp->dns_dis_conn_id == -2)
    1209                                 error_handler(0, DIM_FATAL, DIMDNSUNDEF, "DIM_DNS_NODE undefined");
     1221                                error_handler(0, DIM_FATAL, DIMDNSUNDEF, "DIM_DNS_NODE undefined", -1);
    12101222                }
    12111223        }
     
    17201732        {
    17211733                sprintf(str, "Update Service - Invalid service id");
    1722                 error_handler(0, DIM_ERROR, DIMSVCINVAL, str);
     1734                error_handler(0, DIM_ERROR, DIMSVCINVAL, str, -1);
    17231735                ENABLE_AST
    17241736                return(found);
     
    18611873        {
    18621874                sprintf(str, "Service Has Clients- Invalid service id");
    1863                 error_handler(0, DIM_ERROR, DIMSVCINVAL, str);
     1875                error_handler(0, DIM_ERROR, DIMSVCINVAL, str, -1);
    18641876                ENABLE_AST
    18651877                return(found);
     
    18951907        {
    18961908                sprintf(str,"Get Timeout - Invalid service id");
    1897                 error_handler(0, DIM_ERROR, DIMSVCINVAL, str);
     1909                error_handler(0, DIM_ERROR, DIMSVCINVAL, str, -1);
    18981910                return(-1);
    18991911        }
     
    19221934        {
    19231935                sprintf(str,"Set Quality - Invalid service id");
    1924                 error_handler(0, DIM_ERROR, DIMSVCINVAL, str);
     1936                error_handler(0, DIM_ERROR, DIMSVCINVAL, str, -1);
    19251937            ENABLE_AST
    19261938                return;
     
    19561968        {
    19571969                sprintf(str,"Set Timestamp - Invalid service id");
    1958                 error_handler(0, DIM_ERROR, DIMSVCINVAL, str);
     1970                error_handler(0, DIM_ERROR, DIMSVCINVAL, str, -1);
    19591971            ENABLE_AST
    19601972                return(0);
     
    20072019        {
    20082020                sprintf(str,"Get Timestamp - Invalid service id");
    2009                 error_handler(0, DIM_ERROR, DIMSVCINVAL, str);
     2021                error_handler(0, DIM_ERROR, DIMSVCINVAL, str, -1);
    20102022            ENABLE_AST
    20112023                return(0);
     
    20502062        if( !service_id ) {
    20512063                sprintf(str,"Send Service - Invalid service id");
    2052                 error_handler(0, DIM_ERROR, DIMSVCINVAL, str);
     2064                error_handler(0, DIM_ERROR, DIMSVCINVAL, str, -1);
    20532065                ENABLE_AST
    20542066                return;
     
    21142126        {
    21152127                sprintf(str,"Remove Service - Invalid service id");
    2116                 error_handler(0, DIM_ERROR, DIMSVCINVAL, str);
     2128                error_handler(0, DIM_ERROR, DIMSVCINVAL, str, -1);
    21172129                ENABLE_AST
    21182130                return(found);
     
    31843196}
    31853197
    3186 static void error_handler(int conn_id, int severity, int errcode, char *reason)
     3198static void error_handler(int conn_id, int severity, int errcode, char *reason, int exit)
    31873199{
    31883200        int exit_tag, exit_code, exit_size;
     
    32053217        {
    32063218                exit_tag = 0;
    3207                 exit_code = errcode;
     3219                if(exit == -1)
     3220                        exit_code = errcode;
     3221                else
     3222                        exit_code = exit;
    32083223                exit_size = sizeof(int);
    32093224                exit_handler(&exit_tag, &exit_code, &exit_size);
  • trunk/FACT++/dim/src/dns.c

    r13135 r14286  
    525525                                {
    526526                                        strncpy(Dns_conns[conn_id].long_task_name, packet->services[i].service_name,
    527                                                 MAX_TASK_NAME*2);
     527                                                MAX_TASK_NAME*10);
    528528                                        ptrt = strstr(Dns_conns[conn_id].long_task_name,"/CLIENT_LIST");
    529529                                        *ptrt = '\0';
     
    14551455        dis_add_cmnd( "DIS_DNS/DEBUG_ON", 0, set_debug_on, 0 );
    14561456        dis_add_cmnd( "DIS_DNS/DEBUG_OFF", 0, set_debug_off, 0 );
    1457         dis_add_cmnd( "DIS_DNS/KILL_SERVERS", 0, kill_servers, 0 );
     1457        dis_add_cmnd( "DIS_DNS/KILL_SERVERS", "I", kill_servers, 0 );
    14581458        dis_add_cmnd( "DIS_DNS/PRINT_HASH_TABLE", 0, print_hash_table, 0 );
    14591459        dis_add_cmnd( "DIS_DNS/SERVICE_INFO/RpcIn", "C", set_rpc_info, 0 );
     
    15631563
    15641564
    1565 void kill_servers()
     1565void kill_servers(int *tag, int *code, int *size)
    15661566{
    15671567        int i;
    15681568        DNS_DIS_PACKET dis_packet;
    1569 
     1569        int soft_code = 0, soft_size = 0;
     1570        int type;
     1571       
     1572        if(size)
     1573        {
     1574                soft_size = *size;
     1575                if(code)
     1576                {
     1577                        soft_code = *code;
     1578                }
     1579        }
    15701580        for(i = 0; i< Curr_N_Conns; i++)
    15711581        {
     
    15741584                        if(!strcmp(Dns_conns[i].task_name,"DIS_DNS"))
    15751585                                continue;
    1576                         dim_print_date_time();
    1577                         printf(" Killing server %s@%s\n",
    1578                                 Dns_conns[i].task_name, Dns_conns[i].node_name);
    15791586                        fflush(stdout);
    1580                         dis_packet.type = htovl(DNS_DIS_EXIT);
     1587                        type = DNS_DIS_EXIT;
     1588                        if(soft_size)
     1589                        {
     1590                                type = DNS_DIS_SOFT_EXIT;
     1591                                type |= (soft_code << 16) & 0xFFFF0000;
     1592                                dim_print_date_time();
     1593                                printf(" Killing server %s@%s with exit code %d\n",
     1594                                        Dns_conns[i].task_name, Dns_conns[i].node_name, soft_code);
     1595                        }
     1596                        else
     1597                        {
     1598                                dim_print_date_time();
     1599                                printf(" Killing server %s@%s\n",
     1600                                        Dns_conns[i].task_name, Dns_conns[i].node_name);
     1601                        }
     1602                        dis_packet.type = htovl(type);
    15811603                        dis_packet.size = htovl(DNS_DIS_HEADER);
    15821604                        if( !dna_write_nowait(i, &dis_packet, DNS_DIS_HEADER) )
Note: See TracChangeset for help on using the changeset viewer.