Changeset 11121 for trunk/FACT++/dim


Ignore:
Timestamp:
06/22/11 22:18:02 (14 years ago)
Author:
tbretz
Message:
Updated from v19r21 to v19r22
Location:
trunk/FACT++/dim
Files:
9 edited

Legend:

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

    r11071 r11121  
    11
    2                     DIM version 19.21 Release Notes
     2                    DIM version 19.22 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 1921.
     19NOTE 3: The Version Number service provided by servers is now set to 1922.
     20
     2121/06/2011
     22Changes for version 19.22:
     23    - DIM servers would hang when tring to exit due to "Services already declared", if the user
     24      exitHandler() didn't directly call exit (instead tried to exit later in the main program).
     25      Fixed.
     26    - Servers accept now also 'B' or 'V' as format, they are both equivalent to 'C'.
     27    - In Linux when a server printed "Write timeout, disconecting from XXX", it didn't always
     28      disconnect properly, so the client would not always reconnect afterwards. Fixed.
     29
    2030
    213131/05/2011
  • trunk/FACT++/dim/dim/dim.h

    r11071 r11121  
    1414#include "dim_common.h"
    1515
    16 #define DIM_VERSION_NUMBER 1921
     16#define DIM_VERSION_NUMBER 1922
    1717
    1818#define MY_LITTLE_ENDIAN        0x1
     
    399399        char *buffer;
    400400        int size;
     401/*
    401402        unsigned short *iosb_r;
    402403        unsigned short *iosb_w;
     404*/
    403405        char node[MAX_NODE_NAME];
    404406        char task[MAX_TASK_NAME];
     
    406408        int reading;
    407409        int timeout;
     410        int write_timedout;
    408411        TIMR_ENT *timr_ent;
    409412        time_t last_used;
  • trunk/FACT++/dim/src/dic.c

    r11071 r11121  
    517517        register DIC_SERVICE *servp;
    518518       
     519/*
     520dim_print_date_time();
     521printf("In service tmout\n");
     522*/
    519523        servp=(DIC_SERVICE *)id_get_ptr(serv_id, SRC_DIC);
    520524        if(!servp)
     
    522526        if(servp->tmout_done)
    523527                return;
     528/*
     529dim_print_date_time();
     530printf("In service tmout %s\n", servp->serv_name);
     531*/
    524532        servp->tmout_done = 1;
    525533        Curr_conn_id = servp->conn_id;
     
    16891697                                case 'c':
    16901698                                case 'C':
     1699                                case 'b':
     1700                                case 'B':
     1701                                case 'v':
     1702                                case 'V':
    16911703                                        formatp->par_bytes = SIZEOF_CHAR;
    16921704                                        formatp->flags |= NOSWAP;
  • trunk/FACT++/dim/src/dis.c

    r11071 r11121  
    242242        {
    243243        DISABLE_AST
     244        if(Serving == -1)
     245        {
     246                ENABLE_AST
     247                return((unsigned) 0);
     248        }
    244249        if(!check_service_name(name))
    245250        {
     
    415420        {
    416421        DISABLE_AST
     422        if(Serving == -1)
     423        {
     424                ENABLE_AST
     425                return((unsigned) 0);
     426        }
    417427        if(!check_service_name(name))
    418428        {
     
    582592                                case 'c':
    583593                                case 'C':
     594                                case 'b':
     595                                case 'B':
     596                                case 'v':
     597                                case 'V':
    584598                                        format_data->par_bytes = SIZEOF_CHAR;
    585599                                        format_data->flags |= NOSWAP;
     
    649663                if(dnsp->dns_dis_conn_id > 0)
    650664                        dna_close(dnsp->dns_dis_conn_id);
     665                if(Serving == -1)
     666                        return;
    651667                if(dnsp->serving)
    652668                {
     
    692708                        exit(2);
    693709                        */
     710                        Serving = -1;
    694711                        error_handler(0, DIM_FATAL, DIMDNSDUPLC, str);
     712                        /*
    695713                        do_dis_stop_serving_dns(dnsp);
    696714                        dis_stop_serving();
     715                        */
    697716/*
    698717                        exit_tag = 0;
     
    708727                        exit(2);
    709728*/
     729                        Serving = -1;
    710730                        error_handler(0, DIM_FATAL, DIMDNSREFUS, str);
     731                        /*
    711732                        do_dis_stop_serving_dns(dnsp);
    712733                        dis_stop_serving();
     734                        */
    713735/*
    714736                        exit_tag = 0;
     
    721743                        sprintf(str,
    722744                                "%s: DNS requests Exit",dnsp->task_name);
     745/*
     746                        Serving = -1;
     747*/
    723748                        error_handler(0, DIM_FATAL, DIMDNSEXIT, str);
    724749                        break;
     
    10631088        {
    10641089        DISABLE_AST
     1090        if(Serving == -1)
     1091        {
     1092                ENABLE_AST
     1093                return(0);
     1094        }
    10651095          /*
    10661096#ifdef VxWorks
     
    14601490        if( !dna_write_nowait(reqp->conn_id, Dis_packet, header_size + size) )
    14611491        {
    1462                 reqp->to_delete = 1;
     1492                if(reqp->delay_delete > 1)
     1493                {
     1494                        reqp->to_delete = 1;
     1495                }
     1496                else
     1497                {
     1498                        reqp->delay_delete = 0;
     1499                        release_conn(reqp->conn_id, 1, 0);
     1500                }
    14631501        }
    14641502/*
     
    16391677
    16401678        DISABLE_AST
     1679        if(Serving == -1)
     1680        {
     1681                ENABLE_AST
     1682                return(found);
     1683        }
    16411684        if(!service_id)
    16421685        {
     
    22332276int hash_index;
    22342277
     2278/*
     2279        if(Serving != -1)
     2280*/
    22352281        Serving = 0;
    22362282        dis_init();
     
    22792325        dtq_delete(Dis_timer_q);
    22802326        Dis_timer_q = 0;
     2327/*
     2328        if(Serving != -1)
     2329*/
    22812330        dim_stop_threads();
    22822331}
     
    25172566/* Would do it too early, the client will disconnect anyway
    25182567*/
    2519         if((remove) && (!Serving))
     2568        if((remove) && (Serving == 0))
    25202569        {
    25212570                clip = find_client(conn_id);
  • trunk/FACT++/dim/src/dns.c

    r11071 r11121  
    7474static int Last_conn_id;
    7575/*
    76 static int Debug = TRUE;
    77 */
    78 static int Debug = FALSE;
     76static int Debug = 2;
     77*/
     78static int Debug = 0;
    7979
    8080static int Timer_q;
     
    9393_DIM_PROTO( void send_dns_server_info,   (int conn_id, int **bufp, int *size) );
    9494_DIM_PROTO( void print_stats,            (void) );
    95 _DIM_PROTO( void set_debug_on,           (void) );
     95_DIM_PROTO( void set_debug_on,           (int level) );
    9696_DIM_PROTO( void set_debug_off,          (void) );
    9797_DIM_PROTO( void kill_servers,           (void) );
     
    207207                                rem_only = 1;
    208208                }
     209/*
    209210    if( Debug )
    210211        {
     
    217218                        fflush(stdout);
    218219        }
     220*/
    219221                if(rem_only)
    220222                        return 0;
  • trunk/FACT++/dim/src/examples/test_client.c

    r11071 r11121  
    5454}
    5555*/
     56
     57void version_rout( int *tag, int *buf, int *size)
     58{
     59        printf("Received VERSION %x, %d\n", buf, *size);
     60}
    5661
    5762void rout( tag, buf, size )
     
    124129                          &no_link, 4 );
    125130
     131        sprintf(str,"%s/VERSION_NUMBER",argv[2]);
     132        dic_info_service( str, MONITORED, 0, 0, 0, version_rout, 0,
     133                          NULL, 0 );
    126134/*     
    127135        sprintf(aux,"%s/TestMem",argv[2]);
  • trunk/FACT++/dim/src/examples/test_server.c

    r11071 r11121  
    145145                printf("client %s\n",name);
    146146        }
     147/*
     148        for(i = 0; i < 5; i++)
     149        {
     150                sleep(10);
     151
     152        }
     153        dis_stop_serving();
     154        sleep(59);
     155*/
    147156        while(1)
    148157        {
     
    183192                }
    184193*/
     194                /*
    185195                if(new_dns)
    186196                {
     
    195205                                }
    196206                                NewIds[10] = 0;
    197                                 dis_start_serving_dns(dnsid, "xx_new"/*, NewIds*/);
     207                                dis_start_serving_dns(dnsid, "xx_new");
    198208                                on = 1;
    199209                        }
     
    208218                        }
    209219                }
     220                */
    210221        }
    211222        return 1;
  • trunk/FACT++/dim/src/tcpip.c

    r11071 r11121  
    3434#else
    3535/*
    36 #define closesock(s) shutdown(s,2);
    37 */
    38 #define closesock close
     36#define closesock(s) shutdown(s,2)
     37*/
     38#define closesock(s) close(s)
    3939#define readsock(a,b,c,d) read(a,b,c)
    4040
     
    990990        Net_conns[conn_id].reading = -1;
    991991        Net_conns[conn_id].timr_ent = NULL;
     992        Net_conns[conn_id].write_timedout = 0;
    992993        return(1);
    993994}
     
    11141115        Net_conns[conn_id].reading = -1;
    11151116        Net_conns[conn_id].timr_ent = NULL;
     1117        Net_conns[conn_id].write_timedout = 0;
    11161118        return(1);
    11171119}
     
    11881190        Net_conns[conn_id].reading = -1;
    11891191        Net_conns[conn_id].timr_ent = NULL;
     1192        Net_conns[conn_id].write_timedout = 0;
    11901193        return(1);
    11911194}
     
    12791282                }
    12801283                else
     1284                {
    12811285                        return(0);
     1286                }
     1287        }
     1288        if(wrote == -1)
     1289        {
     1290                Net_conns[conn_id].write_timedout = 1;
    12821291        }
    12831292        return(wrote);
     
    13001309        Net_conns[conn_id].task[0] = 0;
    13011310        if(channel)
     1311        {
     1312                if(Net_conns[conn_id].write_timedout)
     1313                {
     1314                        Net_conns[conn_id].write_timedout = 0;
     1315#if defined(__linux__) && !defined (darwin)
     1316                        shutdown(channel, 2);
     1317#endif
     1318                }
    13021319                closesock(channel);
     1320        }
    13031321        return(1);
    13041322}
Note: See TracChangeset for help on using the changeset viewer.