Win32 fixes: use CLOSESOCKET to close sockets
[olsrd.git] / gui / linux-gtk / src / common.h
1 /*
2  * OLSR ad-hoc routing table management protocol GUI front-end
3  * Copyright (C) 2003 Andreas Tonnesen (andreto@ifi.uio.no)
4  *
5  * This file is part of olsr.org.
6  *
7  * uolsrGUI is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * uolsrGUI is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with olsr.org; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20  *
21  */
22
23 /*
24  *Andreas Tonnesen
25  */
26
27 #ifndef _OLSRD_FORNTEND_COMMON
28 #define _OLSRD_FORNTEND_COMMON
29
30 #include <gtk/gtk.h>
31 #include <stdlib.h>
32 #include <netinet/in.h>
33 #include <stdio.h>
34 #include <string.h>
35
36 //#include "interface.h"
37 //#include "types.h"
38 #include "olsr_protocol.h"
39
40 #define olsrd_version "olsr.org GUI 0.2.7"
41 #define IPC_INTERVAL 500 //interval for IPC read timeout
42 #define MAXPACKS 20
43 #define BUFFSIZE 512
44
45
46 extern int connected;
47 extern struct timeval hold_time_nodes; /* Timeout for all nodes */
48 extern struct timeval now;
49
50
51 /* Our address */
52 union olsr_ip_addr main_addr;
53 union olsr_ip_addr null_addr;
54
55 int ipversion;
56 int ipsize;
57 char ipv6_buf[100];      /* buffer for IPv6 inet_htop */
58
59 int nodes_timeout;
60
61 int freeze_packets;
62 int display_dec;
63 extern int timeouts;
64
65 /*
66  *Node info
67  */
68
69
70 struct mid
71 {
72   union olsr_ip_addr alias;
73   struct mid *next;
74   struct mid *prev;
75 };
76
77 struct hna
78 {
79   union olsr_ip_addr net;
80   union olsr_ip_addr mask;
81   struct hna *next;
82   struct hna *prev;
83 };
84
85 struct mpr
86 {
87   union olsr_ip_addr addr;
88   struct timeval timer;
89   struct mpr *next;
90   struct mpr *prev;
91 };
92
93
94 struct node
95 {
96   union olsr_ip_addr addr;
97   union olsr_ip_addr gw_addr;
98   int hopcount;
99   int display;
100   char dev[5];
101   struct mid mid;
102   struct hna hna;
103   struct mpr mpr;
104   struct timeval timer;
105   struct node *next;
106   struct node *prev;
107 };
108
109
110
111
112
113
114 /*
115  *Interface public
116  */
117
118
119 GtkWidget *
120 create_main_window (void);
121
122
123 void
124 packet_list_add(char *, char *, char *);
125
126 void
127 route_list_add(char *, char *, char *, char *);
128
129 int
130 route_list_del(char *);
131
132 void
133 route_list_update(char *);
134
135
136 void
137 set_net_info(gchar *, int);
138
139 void
140 set_net_info_offline();
141
142 void
143 update_nodes_list(struct node *);
144
145 int
146 remove_nodes_list(union olsr_ip_addr *);
147
148 /*
149  *IPC public
150  */
151 int
152 ipc_connect();
153
154 void
155 ipc_close();
156
157 int
158 ipc_read();
159
160 int
161 ipc_send();
162
163
164 char *
165 ip_to_string(union olsr_ip_addr *);
166
167 int
168 gui_itoa(int, char *);
169
170
171 /*
172  *Packet.c public
173  */
174
175 int
176 add_packet_to_buffer(union olsr_message *, int);
177
178
179 union olsr_message *
180 get_packet(int);
181
182
183
184 /*
185  *Nodes.c public
186  */
187
188
189
190 void
191 init_nodes();
192
193 struct node *
194 find_node(char *);
195
196 struct node *
197 find_node_t(union olsr_ip_addr *);
198
199 int
200 update_timer_node(union olsr_ip_addr *, uint8_t);
201
202 int
203 add_hna_node(union olsr_ip_addr *, union olsr_ip_addr *, union olsr_ip_addr *, uint8_t);
204
205 int
206 add_mid_node(union olsr_ip_addr *, union olsr_ip_addr *, uint8_t);
207
208 void
209 init_timer(uint32_t, struct timeval *);
210
211 gint
212 time_out_nodes(gpointer);
213
214 int
215 add_node(union olsr_ip_addr *, uint8_t);
216
217 int
218 add_mpr(union olsr_ip_addr *, union olsr_ip_addr *, struct timeval *);
219
220 int
221 update_timer_mpr(union olsr_ip_addr *, union olsr_ip_addr *, uint8_t);
222
223 int
224 time_out_mprs(union olsr_ip_addr *);
225
226
227
228 #endif
229
230 /*
231  * Local Variables:
232  * c-basic-offset: 2
233  * indent-tabs-mode: nil
234  * End:
235  */