Wed, 25 Nov 2020 00:43:41 -0600
Use a GQueue for zephyr plus related cleanup
* Make `_Z_InputQ->complete` a boolean, as that's all it's used as.
* Use GLib allocation functions for `Z_InputQ` members.
* Use a `GQueue` for zephyr input.
* Use `*_find_custom` functions for input queue search.
Testing Done:
Compile only.
Reviewed at https://reviews.imfreedom.org/r/253/
| 2086 | 1 | /* This file is part of the Project Athena Zephyr Notification System. |
| 2 | * It contains source for ZReceiveNotice function. | |
| 3 | * | |
| 4 | * Created by: Robert French | |
| 5 | * | |
| 6 | * Copyright (c) 1987,1988 by the Massachusetts Institute of Technology. | |
| 7 | * For copying and distribution information, see the file | |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
15435
diff
changeset
|
8 | * "mit-copyright.h". |
| 2086 | 9 | */ |
| 10 | ||
|
8792
b0645c9dc276
[gaim-migrate @ 9554]
Christian Hammond <chipx86@chipx86.com>
parents:
2086
diff
changeset
|
11 | #include "internal.h" |
| 2086 | 12 | |
|
40166
811f82db29dd
zephyr: Modernize K&R function prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31294
diff
changeset
|
13 | Code_t |
|
811f82db29dd
zephyr: Modernize K&R function prototypes.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
31294
diff
changeset
|
14 | ZReceiveNotice(ZNotice_t *notice, struct sockaddr_in *from) |
| 2086 | 15 | { |
| 16 | char *buffer; | |
|
40628
4266008a7791
Use a GQueue for zephyr plus related cleanup
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents:
40166
diff
changeset
|
17 | Z_InputQ *nextq; |
| 2086 | 18 | int len, auth; |
| 19 | Code_t retval; | |
| 20 | ||
| 21 | if ((retval = Z_WaitForComplete()) != ZERR_NONE) | |
| 22 | return (retval); | |
| 23 | ||
| 24 | nextq = Z_GetFirstComplete(); | |
| 25 | ||
| 10690 | 26 | if (!nextq) |
| 27 | return (ENOMEM); | |
| 28 | ||
| 2086 | 29 | len = nextq->packet_len; |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
15435
diff
changeset
|
30 | |
| 2086 | 31 | if (!(buffer = (char *) malloc((unsigned) len))) |
| 32 | return (ENOMEM); | |
| 33 | ||
| 34 | if (from) | |
| 35 | *from = nextq->from; | |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
15435
diff
changeset
|
36 | |
| 2086 | 37 | (void) memcpy(buffer, nextq->packet, len); |
| 38 | ||
| 39 | auth = nextq->auth; | |
| 40 | Z_RemQueue(nextq); | |
|
31294
73607ab89c6f
Remove trailing whitespace
Richard Laager <rlaager@pidgin.im>
parents:
15435
diff
changeset
|
41 | |
| 2086 | 42 | if ((retval = ZParseNotice(buffer, len, notice)) != ZERR_NONE) |
| 43 | return (retval); | |
| 44 | notice->z_checked_auth = auth; | |
| 45 | return ZERR_NONE; | |
| 46 | } |