Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int scrapesocket( SOCKET sock, const char* searchfor, char* buffer, int len )
- {
- char* t = (char*) searchfor;
- int argc = 0;
- int tr = 0;
- int trm = 0;
- while( !(*(t + 1) == 0 && *t == 0) ) {
- if( *(t+1) == 0 ) {
- argc++;
- trm = tr > trm ? tr : trm;
- tr = 0;
- }
- t++;
- tr++;
- }
- printf("%i", argc );
- int* lens = (int*) malloc( sizeof( int ) * (argc+1));
- char** values = (char**) malloc( argc * sizeof( char*) );
- t = (char*) searchfor;
- char* track = t;
- int i = 0;
- while( !(*(t + 1) == 0 && *t == 0) && i < argc ) {
- if( *(t+1) == 0 ){
- values[i] = track;
- lens[i++] = strlen( track );
- track = t + 2;
- }
- t++;
- }
- char* buff = (char*) malloc( (trm + 1) * 2 );
- memset( buff, 0, (trm)*2);
- int bpos = trm-1;
- char a;
- int y = 0;
- printf("mallocing\n");
- while( recv( sock, &a, 1, 0 ) > 0 ){
- for( i = bpos+1; i <= trm; i ++ )
- buff[i-1] = buff[i];
- if( buffer != 0 ){
- *(buffer++) = a;
- y++;
- if( y >= len ){
- free( values ); free( lens ); free( buff );
- return -2;
- }
- }
- buff[trm] = a;
- if( bpos > 0 ) bpos--;
- for( i = 0; i < argc; i ++ ){
- //char seat = *(buff+trm-lens[i]+lens[i]);
- //*(buff+trm-lens[i]+lens[i]) = 0;
- //printf("%s\n", buff+trm-lens[i]+1);
- if( strcmp( values[i], buff+trm-lens[i]+1 ) == 0 ){
- if( buffer != 0 ){
- buffer -= lens[i];
- *buffer = 0;
- }
- printf("freeing2\n");
- free( values );
- printf("freeing3\n");
- free( lens );
- printf("freeing4\n");
- free( buff );
- printf("returning\n");
- return i;
- }
- //*(buff+bpos+lens[i]) = seat;
- }
- }
- printf("freeing01111\n");
- free( values );
- printf("freeing3\n");
- free( lens );
- printf("freeing4\n");
- free( buff );
- printf("returning\n");
- return -1;
- }
- int scrapesockettobuf( SOCKET sock, const char* searchfor, char* buffer, int len )
- {
- return scrapesocket( sock, searchfor, buffer, len);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement