author | erik <erik> | 2007-01-24 19:57:51 (UTC) |
---|---|---|
committer | erik <erik> | 2007-01-24 19:57:51 (UTC) |
commit | 48d9219a96096cf44df8ac24413b36d1b718b1d5 (patch) (side-by-side diff) | |
tree | ef49f0d2b778283221ebbb8634f1a59710ddd108 /noncore/todayplugins | |
parent | 89e81059e832ff77c2f0ac8b9db12f80eafa03fc (diff) | |
download | opie-48d9219a96096cf44df8ac24413b36d1b718b1d5.zip opie-48d9219a96096cf44df8ac24413b36d1b718b1d5.tar.gz opie-48d9219a96096cf44df8ac24413b36d1b718b1d5.tar.bz2 |
Each file in this commit has the issue where a function can return a
negative result but the result is used in a context that can only be
positive.
-rw-r--r-- | noncore/todayplugins/stockticker/libstocks/http.c | 95 |
1 files changed, 47 insertions, 48 deletions
diff --git a/noncore/todayplugins/stockticker/libstocks/http.c b/noncore/todayplugins/stockticker/libstocks/http.c index cc78ab7..155ce4b 100644 --- a/noncore/todayplugins/stockticker/libstocks/http.c +++ b/noncore/todayplugins/stockticker/libstocks/http.c @@ -75,37 +75,36 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) #ifdef DEBUG printf("*http_get\n"); #endif /* get host info by name :*/ if ((host = gethostbyname( http_proxy_server ? http_proxy_server : http_server))) { memset((char *) &server,0, sizeof(server)); memmove((char *) &server.sin_addr, host->h_addr, host->h_length); server.sin_family = host->h_addrtype; server.sin_port = (unsigned short) htons( http_proxy_server ? http_proxy_port : 80 ); - } else - { - + } + else + { #ifdef DEBUG - printf(" gethostbyname : NOK\n"); + printf(" gethostbyname : NOK\n"); #endif - return ERRHOST; - } + return ERRHOST; + } /* create socket */ if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) { - #ifdef DEBUG printf(" create socket : NOK\n"); #endif return ERRSOCK; } setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, 0, 0); /* connect to server */ if (connect(s, &server, sizeof(server)) < 0) { #ifdef DEBUG @@ -115,142 +114,142 @@ libstocks_return_code http_get(char *http_file, char *http_server, char **pdata) #ifdef __UNIX__ close(s); #elif __WINDOWS__ closesocket(s); #endif return ERRCONN; } /* create header */ if (http_proxy_server) { sprintf(header,"GET http://%.128s:80%.256s HTTP/1.0\015\012\015\012", - http_server, http_file); + http_server, http_file); } else { sprintf(header,"GET %s HTTP/1.0\015\012\015\012",http_file); } hlg=strlen(header); /* send header */ #ifdef __UNIX__ if (write(s,header,hlg)!=hlg) #elif __WINDOWS__ if (send(s,header,hlg, 0)!=hlg) #endif { #ifdef DEBUG - printf(" send header : NOK\n"); + printf(" send header : NOK\n"); #endif return ERRWHEA; } data_lgr = 0; r=1; while(r) { /* Clear Buffer */ memset(buf,0,BUF_SIZE+1); #ifdef __UNIX__ r=read(s,buf,BUF_SIZE); #elif __WINDOWS__ r=recv(s,buf,BUF_SIZE,0); #endif - if (r) - { - if(!data_lgr) - { - if((data = malloc(r+1))==NULL) - { - fprintf(stderr,"Memory allocating error (%s line %d)\n" - ,__FILE__, __LINE__); - exit(1); - } + if (r > 0) + { + if(!data_lgr) + { + if((data = malloc(r+1))==NULL) + { + fprintf(stderr,"Memory allocating error (%s line %d)\n", + __FILE__, __LINE__); + exit(1); + } - memcpy(data,buf,r); - data_lgr = r; - data[r]=0; - } - else - { - if((temp = malloc(r+data_lgr+1))==NULL) - { - fprintf(stderr,"Memory allocating error (%s line %d)\n" - ,__FILE__, __LINE__); - exit(1); - } - memcpy(temp, data, data_lgr); - memcpy(temp+data_lgr, buf, r); - temp[r+data_lgr]=0; - data_lgr += r; - free(data); - data = temp; - } - } + memcpy(data,buf,r); + data_lgr = r; + data[r]=0; + } + else + { + if((temp = malloc(r+data_lgr+1))==NULL) + { + fprintf(stderr,"Memory allocating error (%s line %d)\n", + __FILE__, __LINE__); + exit(1); + } + memcpy(temp, data, data_lgr); + memcpy(temp+data_lgr, buf, r); + temp[r+data_lgr]=0; + data_lgr += r; + free(data); + data = temp; + } + } } /* close socket */ #ifdef __UNIX__ close(s); #elif __WINDOWS__ closesocket(s); #endif #ifdef DEBUG printf("%s\n", data); #endif /* get headers to test status line */ /* and to split headers and content */ temp = data; header_founded = 0; while( !header_founded ) { if (!temp || *temp==0) return ERRRHEA; if( *temp==0x0A ) - { - /* test if it is the header end */ - temp ++; - if (*temp == 0x0D) temp++; - if (*temp == 0x0A) header_founded = 1; - } + { + /* test if it is the header end */ + temp ++; + if (*temp == 0x0D) temp++; + if (*temp == 0x0A) header_founded = 1; + } else - temp++; + temp++; } *temp = 0; temp++; sscanf(data,"HTTP/1.%*d %03d",&error_code); if (error_code != 200) { #ifdef DEBUG printf(" HTTP error code : %d\n", error_code); #endif free(data); return ERRPAHD; } if ((csv_ptr = malloc(strlen(temp)+1))==NULL) { free(data); - fprintf(stderr,"Memory allocating error (%s line %d)\n" - ,__FILE__, __LINE__); + fprintf(stderr,"Memory allocating error (%s line %d)\n", + __FILE__, __LINE__); exit(1); } memcpy(csv_ptr, temp, strlen(temp)+1); free(data); #ifdef DEBUG printf(" CSV\n"); printf("%s,\n", csv_ptr); #endif *pdata = csv_ptr; |