Ignore:
Timestamp:
03/18/12 20:53:49 (13 years ago)
Author:
tbretz
Message:
Updated to v19r30
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/dim/src/dis.c

    r12757 r13135  
    13881388        register SERVICE *servp;
    13891389        char str[80], def[MAX_NAME];
    1390         register char *ptr;
    1391         int last_conn_id;
     1390        int conn_id, last_conn_id;
    13921391        int *pkt_buffer, header_size, aux;
    13931392#ifdef WIN32
     
    14061405        reqp->delay_delete++;
    14071406        servp = reqp->service_ptr;
     1407        conn_id = reqp->conn_id;
     1408
     1409if(Debug_on)
     1410{
     1411dim_print_date_time();
     1412printf("Updating %s for %s@%s (req_id = %d)\n",
     1413           servp->name,
     1414           Net_conns[conn_id].task, Net_conns[conn_id].node,
     1415           reqp->req_id);
     1416}
     1417
    14081418        last_conn_id = Curr_conn_id;
    1409         Curr_conn_id = reqp->conn_id;
    1410         ptr = servp->def;
     1419        Curr_conn_id = conn_id;
    14111420        if(servp->type == COMMAND)
    14121421        {
     
    14151424                size = 26;
    14161425                sprintf(def,"c:26");
    1417                 ptr = def;
    14181426        }
    14191427        else if( servp->user_routine != 0 )
     
    14911499                buffp, size);
    14921500        Dis_packet->size = htovl(header_size + size);
    1493         if( !dna_write_nowait(reqp->conn_id, Dis_packet, header_size + size) )
    1494         {
     1501        if( !dna_write_nowait(conn_id, Dis_packet, header_size + size) )
     1502        {
     1503                if(Net_conns[conn_id].write_timedout)
     1504                {
     1505                        dim_print_date_time();
     1506                        if(reqp->delay_delete > 1)
     1507                        {
     1508                                printf(" Server (Explicitly) Updating Service %s: Couldn't write to Conn %3d : Client %s@%s\n",
     1509                                        servp->name, conn_id,
     1510                                        Net_conns[conn_id].task, Net_conns[conn_id].node);
     1511                        }
     1512                        else
     1513                        {
     1514                                printf(" Server Updating Service %s: Couldn't write to Conn %3d : Client %s@%s\n",
     1515                                        servp->name, conn_id,
     1516                                        Net_conns[conn_id].task, Net_conns[conn_id].node);
     1517                        }
     1518                }
     1519                fflush(stdout);
    14951520                if(reqp->delay_delete > 1)
    14961521                {
     
    15001525                {
    15011526                        reqp->delay_delete = 0;
    1502                         release_conn(reqp->conn_id, 1, 0);
     1527                        release_conn(conn_id, 1, 0);
    15031528                }
    15041529        }
     
    15131538        }
    15141539*/
    1515         reqp->delay_delete--;
     1540        if(reqp->delay_delete > 0)
     1541                reqp->delay_delete--;
    15161542        return(1);
    15171543}
     
    15201546{
    15211547        register REQUEST *reqp;
    1522         register SERVICE *servp;
    15231548        static DIS_PACKET *dis_packet;
    15241549        static int packet_size = 0;
     
    15281553        if(!reqp)
    15291554                return;
    1530         servp = reqp->service_ptr;
    15311555        if( !packet_size ) {
    15321556                dis_packet = (DIS_PACKET *)malloc(DIS_HEADER);
     
    17081732                (DLL *) reqp)) )
    17091733        {
     1734/*
    17101735if(Debug_on)
    17111736{
     
    17151740           Net_conns[reqp->conn_id].task, Net_conns[reqp->conn_id].node, reqp->req_id, (unsigned long)reqp);
    17161741}
     1742*/
    17171743                if(check_client(reqp, client_ids))
    17181744                {
     
    20512077                if( !dna_write_nowait(conn_id, dis_packet, size + DIS_HEADER) )
    20522078                {
     2079                        dim_print_date_time();
     2080                        printf(" Server Sending Service: Couldn't write to Conn %3d : Client %s@%s\n",conn_id,
     2081                                Net_conns[conn_id].task, Net_conns[conn_id].node);
     2082                        fflush(stdout);
    20532083                        release_conn(conn_id, 1, 0);
    20542084                }
     
    21422172        n_services = dnsp->dis_n_services;
    21432173
    2144         ENABLE_AST
    21452174        if(dnsp->serving)
    21462175        {
    21472176                if(n_services == 5)
    21482177                {
     2178                        if(Dis_conn_id)
     2179                        {
     2180                                dna_close(Dis_conn_id);
     2181                                Dis_conn_id = 0;
     2182                        }
     2183                        ENABLE_AST
    21492184/*
    21502185                        dis_stop_serving();
     
    21522187                        do_dis_stop_serving_dns(dnsp);
    21532188                }
     2189                else
     2190                {
     2191                        ENABLE_AST
     2192                }
     2193        }
     2194        else
     2195        {
     2196                ENABLE_AST
    21542197        }
    21552198        return(found);
     
    22812324register SERVICE *servp, *prevp;
    22822325void dim_stop_threads(void);
     2326int dis_find_client_conns();
    22832327int hash_index;
    22842328
     
    23352379        if(Serving != -1)
    23362380*/
    2337         dim_stop_threads();
     2381        if(!dis_find_client_conns())
     2382                dim_stop_threads();
     2383}
     2384
     2385int dis_find_client_conns()
     2386{
     2387        int i;
     2388        int n = 0;
     2389
     2390        for( i = 0; i< Curr_N_Conns; i++ )
     2391        {
     2392                if(Net_conns[i].channel != 0)
     2393                {
     2394                        if(Dna_conns[i].read_ast == dis_insert_request)
     2395                        {
     2396                                dna_close(i);
     2397                        }
     2398                        else
     2399                        {
     2400                                n++;
     2401                        }
     2402                }
     2403        }
     2404        return(n);
    23382405}
    23392406
Note: See TracChangeset for help on using the changeset viewer.