Commit 71e3beb10717c55cbee759b3faa57ec5039d5dbc
1 parent
019aa4ba
Exists in
master
and in
3 other branches
Fixing windows builds.
Showing
1 changed file
with
26 additions
and
19 deletions
Show diff stats
src/core/windows/event_dispatcher.c
| @@ -73,7 +73,7 @@ int lib3270_default_event_dispatcher(H3270 *hSession, int block) | @@ -73,7 +73,7 @@ int lib3270_default_event_dispatcher(H3270 *hSession, int block) | ||
| 73 | 73 | ||
| 74 | retry: | 74 | retry: |
| 75 | 75 | ||
| 76 | - hSession->inputs_changed = 0; | 76 | + hSession->input.changed = 0; |
| 77 | 77 | ||
| 78 | // If we've processed any input, then don't block again. | 78 | // If we've processed any input, then don't block again. |
| 79 | if(processed_any) | 79 | if(processed_any) |
| @@ -85,7 +85,7 @@ retry: | @@ -85,7 +85,7 @@ retry: | ||
| 85 | FD_ZERO(&wfds); | 85 | FD_ZERO(&wfds); |
| 86 | FD_ZERO(&xfds); | 86 | FD_ZERO(&xfds); |
| 87 | 87 | ||
| 88 | - for (ip = hSession->inputs; ip != (input_t *)NULL; ip = ip->next) | 88 | + for (ip = (input_t *) hSession->input.list.first; ip != (input_t *)NULL; ip = (input_t *) ip->next) |
| 89 | { | 89 | { |
| 90 | if(!ip->enabled) | 90 | if(!ip->enabled) |
| 91 | { | 91 | { |
| @@ -114,13 +114,13 @@ retry: | @@ -114,13 +114,13 @@ retry: | ||
| 114 | 114 | ||
| 115 | if (block) | 115 | if (block) |
| 116 | { | 116 | { |
| 117 | - if (hSession->timeouts != TN) | 117 | + if (hSession->timeouts.first) |
| 118 | { | 118 | { |
| 119 | ms_ts(&now); | 119 | ms_ts(&now); |
| 120 | - if (now > hSession->timeouts->ts) | 120 | + if (now > ((timeout_t *) hSession->timeouts.first)->ts) |
| 121 | tmo = 0; | 121 | tmo = 0; |
| 122 | else | 122 | else |
| 123 | - tmo = hSession->timeouts->ts - now; | 123 | + tmo = ((timeout_t *) hSession->timeouts.first)->ts - now; |
| 124 | } | 124 | } |
| 125 | else | 125 | else |
| 126 | { | 126 | { |
| @@ -152,29 +152,29 @@ retry: | @@ -152,29 +152,29 @@ retry: | ||
| 152 | } | 152 | } |
| 153 | else | 153 | else |
| 154 | { | 154 | { |
| 155 | - for (ip = hSession->inputs; ip != (input_t *) NULL; ip = ip->next) | 155 | + for (ip = (input_t *) hSession->input.list.first; ip != (input_t *)NULL; ip = (input_t *) ip->next) |
| 156 | { | 156 | { |
| 157 | if((ip->flag & LIB3270_IO_FLAG_READ) && FD_ISSET(ip->fd, &rfds)) | 157 | if((ip->flag & LIB3270_IO_FLAG_READ) && FD_ISSET(ip->fd, &rfds)) |
| 158 | { | 158 | { |
| 159 | - (*ip->call)(ip->session,ip->fd,LIB3270_IO_FLAG_READ,ip->userdata); | 159 | + (*ip->call)(hSession,ip->fd,LIB3270_IO_FLAG_READ,ip->userdata); |
| 160 | processed_any = True; | 160 | processed_any = True; |
| 161 | - if (hSession->inputs_changed) | 161 | + if (hSession->input.changed) |
| 162 | goto retry; | 162 | goto retry; |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | if ((ip->flag & LIB3270_IO_FLAG_WRITE) && FD_ISSET(ip->fd, &wfds)) | 165 | if ((ip->flag & LIB3270_IO_FLAG_WRITE) && FD_ISSET(ip->fd, &wfds)) |
| 166 | { | 166 | { |
| 167 | - (*ip->call)(ip->session,ip->fd,LIB3270_IO_FLAG_WRITE,ip->userdata); | 167 | + (*ip->call)(hSession,ip->fd,LIB3270_IO_FLAG_WRITE,ip->userdata); |
| 168 | processed_any = True; | 168 | processed_any = True; |
| 169 | - if (hSession->inputs_changed) | 169 | + if (hSession->input.changed) |
| 170 | goto retry; | 170 | goto retry; |
| 171 | } | 171 | } |
| 172 | 172 | ||
| 173 | if ((ip->flag & LIB3270_IO_FLAG_EXCEPTION) && FD_ISSET(ip->fd, &xfds)) | 173 | if ((ip->flag & LIB3270_IO_FLAG_EXCEPTION) && FD_ISSET(ip->fd, &xfds)) |
| 174 | { | 174 | { |
| 175 | - (*ip->call)(ip->session,ip->fd,LIB3270_IO_FLAG_EXCEPTION,ip->userdata); | 175 | + (*ip->call)(hSession,ip->fd,LIB3270_IO_FLAG_EXCEPTION,ip->userdata); |
| 176 | processed_any = True; | 176 | processed_any = True; |
| 177 | - if (hSession->inputs_changed) | 177 | + if (hSession->input.changed) |
| 178 | goto retry; | 178 | goto retry; |
| 179 | } | 179 | } |
| 180 | } | 180 | } |
| @@ -186,26 +186,33 @@ retry: | @@ -186,26 +186,33 @@ retry: | ||
| 186 | } | 186 | } |
| 187 | 187 | ||
| 188 | // See what's expired. | 188 | // See what's expired. |
| 189 | - if (hSession->timeouts != TN) | 189 | + if (hSession->timeouts.first) |
| 190 | { | 190 | { |
| 191 | struct timeout *t; | 191 | struct timeout *t; |
| 192 | ms_ts(&now); | 192 | ms_ts(&now); |
| 193 | 193 | ||
| 194 | - while ((t = hSession->timeouts) != TN) | 194 | + while(hSession->timeouts.first) |
| 195 | { | 195 | { |
| 196 | + t = (struct timeout *) hSession->timeouts.first; | ||
| 197 | + | ||
| 196 | if (t->ts <= now) | 198 | if (t->ts <= now) |
| 197 | { | 199 | { |
| 198 | - hSession->timeouts = t->next; | 200 | + |
| 199 | t->in_play = True; | 201 | t->in_play = True; |
| 200 | - (*t->proc)(t->session); | 202 | + (*t->proc)(hSession); |
| 201 | processed_any = True; | 203 | processed_any = True; |
| 202 | - lib3270_free(t); | ||
| 203 | - } else | 204 | + |
| 205 | + lib3270_linked_list_delete_node(&hSession->timeouts,t); | ||
| 206 | + | ||
| 207 | + } | ||
| 208 | + else | ||
| 209 | + { | ||
| 204 | break; | 210 | break; |
| 211 | + } | ||
| 205 | } | 212 | } |
| 206 | } | 213 | } |
| 207 | 214 | ||
| 208 | - if (hSession->inputs_changed) | 215 | + if (hSession->input.changed) |
| 209 | goto retry; | 216 | goto retry; |
| 210 | 217 | ||
| 211 | return processed_any; | 218 | return processed_any; |