Changeset 14730


Ignore:
Timestamp:
03/17/12 18:17:32 (12 years ago)
Author:
nit
Message:

[titan] add compression to rgui client

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/plugins/rgui/rgui.h

    r14650 r14730  
    77int screenrgui(char* ip)
    88{
    9         int rcret = -1, sock = -1, ret = 0;
     9        int rcret = -1, sock = -1, ret = 0, zlen = 0;
    1010        unsigned char* tmpstr = NULL, *buf = NULL;
    1111
     
    2727        }
    2828
    29         buf = malloc(6);
     29        buf = malloc(10);
    3030        if(buf == NULL)
    3131        {
     
    3333                return 1;
    3434        }
    35         memset(buf, 0, 6);
     35        memset(buf, 0, 10);
    3636
    3737        status.spinnertime = 99999999;
     
    5454                                ret = socksend(&sock, buf, 6, 1000 * 1000);
    5555                                free(tmpstr); tmpstr = NULL;
    56                                 memset(buf, 0, 6);
     56                                memset(buf, 0, 10);
    5757                                if(ret != 0)
    5858                                {
     
    6464                else
    6565                {
    66                         ret = sockread(sock, rguiskinfb->fb, 0, rguiskinfb->varfbsize, 500 * 1000, 1);
     66                        ret = sockread(sock, buf, 0, 10, 500 * 1000, 1);
     67                       
     68                        if(ret >= 0)
     69                        {
     70                                int count = atoi((char*)buf);
     71                                memset(buf, 0, 10);
     72                                if(count <= rguiskinfb->varfbsize)
     73                                {
     74                                        ret = sockread(sock, rguiskinfb->fb + rguiskinfb->varfbsize, 0, count, 500 * 1000, 1);
     75                                        if(ret >= 0)
     76                                        {
     77                                                char* zbuf = (char*)rguiskinfb->fb;
     78                                                ret = ounzip((char*)rguiskinfb->fb + rguiskinfb->varfbsize, count, &zbuf, &zlen, rguiskinfb->varfbsize, 1);
     79                                                if(ret == 0)
     80                                                        blitfb2(rguiskinfb, 0);
    6781
    68                         if(ret >= 0) blitfb2(rguiskinfb, 0);
     82                                                zlen = 0;
     83                                        }
     84                                }
     85                                else
     86                                        ret = -1;
     87                        }
    6988
    7089                        if(ret < 0)
Note: See TracChangeset for help on using the changeset viewer.