@@ -43,40 +43,41 @@ int handle_request(struct queue *sdq, int fd, char* raw_req, size_t size)
43
43
}
44
44
45
45
// Split and handle requests here
46
- struct is_prime_request * req = NULL , * it = NULL ;
47
- int r = is_prime_request_builder (& req , raw_req , size );
46
+ struct is_prime_request * req = NULL ;
47
+ int r = is_prime_request_builder (sdq , & req , raw_req , size );
48
48
if (r <= 0 ) {
49
49
log_warn ("recv_and_handle: is_prime_request_builder returned '%d'" , r );
50
50
return -1 ;
51
51
}
52
52
53
- int l = 0 , sl = 0 , res = 0 , mal = 0 ;
54
- for (it = req ; it != NULL ; it = it -> next ) {
55
- l = (int )strlen (it -> response );
56
- sl = l ;
57
- res = sendall (fd , it -> response , & l );
58
- if (res != 0 ) {
59
- log_error ("handle_request: failed during sendall function" );
60
- if (req != NULL )
61
- is_prime_free (& req );
62
- return -2 ;
63
- }
64
- if (sl != l ) {
65
- log_error ("handle_request: failed to sendall the data" );
66
- if (req != NULL )
67
- is_prime_free (& req );
68
- return -3 ;
69
- }
70
-
71
- if (it -> is_malformed ) {
72
- mal = 1 ;
73
- break ;
74
- }
75
- }
53
+ /* int l = 0, sl = 0, res = 0, mal = 0;*/
54
+ /* for (it = req; it != NULL; it = it->next) {*/
55
+ /* l = (int)strlen(it->response);*/
56
+ /* sl = l;*/
57
+ /* res = sendall(fd, it->response, &l);*/
58
+ /* if (res != 0) {*/
59
+ /* log_error("handle_request: failed during sendall function");*/
60
+ /* if (req != NULL)*/
61
+ /* is_prime_free(&req);*/
62
+ /* return -2;*/
63
+ /* }*/
64
+ /* if (sl != l) {*/
65
+ /* log_error("handle_request: failed to sendall the data");*/
66
+ /* if (req != NULL)*/
67
+ /* is_prime_free(&req);*/
68
+ /* return -3;*/
69
+ /* }*/
70
+ /**/
71
+ /* if (it->is_malformed) {*/
72
+ /* mal = 1;*/
73
+ /* break;*/
74
+ /* }*/
75
+ /*}*/
76
76
77
77
if (req != NULL )
78
78
is_prime_free (& req );
79
- return (mal == 1 ? 0 : 1 );
79
+ return 1 ;
80
+ /*return (mal == 1 ? 0 : 1);*/
80
81
}
81
82
82
83
int main ()
@@ -160,7 +161,7 @@ int main()
160
161
// Handle there's data to process
161
162
if (size > 0 ) {
162
163
log_trace ("main epoll loop: raw request(%d): '%s'" , fd , data );
163
- int result = handle_request (fd , data , (size_t )size );
164
+ int result = handle_request (sdqu , fd , data , (size_t )size );
164
165
if (result <= 0 ) {
165
166
if (result == 0 )
166
167
log_info ("main epoll loop: there was a malformed respoonse. need to close socket" );
@@ -172,6 +173,11 @@ int main()
172
173
}
173
174
continue ;
174
175
}
176
+ size = queue_pop_no_copy (sdqu , & data );
177
+ res = sendall (fd , data , & size );
178
+ if (res != 0 ) {
179
+ log_error ("handle_request: failed during sendall function" );
180
+ }
175
181
}
176
182
177
183
// Handle socket still open
0 commit comments