PUD: fix a warning
[olsrd.git] / lib / pud / wireformat-java / src / main / c / org_olsr_plugin_pud_ClusterLeader.c
1 #include "org_olsr_plugin_pud_ClusterLeader.h"
2 #include "util.h"
3 #include <arpa/inet.h>
4 #include <stdbool.h>
5
6 /*
7  * Class:     org_olsr_plugin_pud_ClusterLeader
8  * Method:    getClusterLeaderVersion
9  * Signature: ()I
10  */
11 JNIEXPORT jint JNICALL Java_org_olsr_plugin_pud_ClusterLeader_getClusterLeaderVersion
12   (JNIEnv * env, jobject this) {
13         jobject dataObject;
14         jboolean isCopy;
15         UplinkMessage * uplinkMessage = getUplinkMessage(env, this, &dataObject,
16                         &isCopy);
17
18         uint8_t version = getClusterLeaderVersion(
19                         getClusterLeaderMessage(uplinkMessage));
20
21         releaseUplinkMessage(env, uplinkMessage, dataObject, isCopy, JNI_ABORT);
22
23         return (jint) version;
24 }
25
26 /*
27  * Class:     org_olsr_plugin_pud_ClusterLeader
28  * Method:    getClusterLeaderValidityTime
29  * Signature: ()J
30  */
31 JNIEXPORT jlong JNICALL Java_org_olsr_plugin_pud_ClusterLeader_getClusterLeaderValidityTime
32   (JNIEnv * env, jobject this) {
33         jobject dataObject;
34         jboolean isCopy;
35         UplinkMessage * uplinkMessage = getUplinkMessage(env, this, &dataObject,
36                         &isCopy);
37
38         unsigned long validityTime = getValidityTime(
39                         &getClusterLeaderMessage(uplinkMessage)->validityTime);
40
41         releaseUplinkMessage(env, uplinkMessage, dataObject, isCopy, JNI_ABORT);
42
43         return (jlong) validityTime;
44 }
45
46 /*
47  * Class:     org_olsr_plugin_pud_ClusterLeader
48  * Method:    getClusterLeaderDownlinkPort
49  * Signature: ()I
50  */
51 JNIEXPORT jint JNICALL Java_org_olsr_plugin_pud_ClusterLeader_getClusterLeaderDownlinkPort
52   (JNIEnv * env, jobject this) {
53         jobject dataObject;
54         jboolean isCopy;
55         UplinkMessage * uplinkMessage = getUplinkMessage(env, this, &dataObject,
56                         &isCopy);
57
58         unsigned short downlinkPort = ntohs(getClusterLeaderDownlinkPort(
59                         getClusterLeaderMessage(uplinkMessage)));
60
61         releaseUplinkMessage(env, uplinkMessage, dataObject, isCopy, JNI_ABORT);
62
63         return (jint) downlinkPort;
64 }
65
66 /*
67  * Class:     org_olsr_plugin_pud_ClusterLeader
68  * Method:    getClusterLeaderOriginator
69  * Signature: ()Ljava/net/InetAddress;
70  */
71 JNIEXPORT jobject JNICALL Java_org_olsr_plugin_pud_ClusterLeader_getClusterLeaderOriginator
72   (JNIEnv * env, jobject this) {
73         jobject dataObject;
74         jboolean isCopy;
75         UplinkMessage * uplinkMessage = getUplinkMessage(env, this, &dataObject,
76                         &isCopy);
77
78         jobject object;
79         bool ipv4 = !getUplinkMessageIPv6(&uplinkMessage->header);
80
81         union olsr_ip_addr * addr;
82         if (ipv4) {
83                 addr = (union olsr_ip_addr *) &uplinkMessage->msg.clusterLeader.leader.v4.originator;
84         } else {
85                 addr = (union olsr_ip_addr *) &uplinkMessage->msg.clusterLeader.leader.v6.originator;
86         }
87         constructIPAddress(env, ipv4, addr, &object);
88
89         releaseUplinkMessage(env, uplinkMessage, dataObject, isCopy, JNI_ABORT);
90
91         return object;
92 }
93
94 /*
95  * Class:     org_olsr_plugin_pud_ClusterLeader
96  * Method:    getClusterLeaderClusterLeader
97  * Signature: ()Ljava/net/InetAddress;
98  */
99 JNIEXPORT jobject JNICALL Java_org_olsr_plugin_pud_ClusterLeader_getClusterLeaderClusterLeader
100   (JNIEnv * env, jobject this) {
101         jobject dataObject;
102         jboolean isCopy;
103         UplinkMessage * uplinkMessage = getUplinkMessage(env, this, &dataObject,
104                         &isCopy);
105
106         jobject object;
107         bool ipv4 = !getUplinkMessageIPv6(&uplinkMessage->header);
108
109         union olsr_ip_addr * addr;
110         if (ipv4) {
111                 addr = (union olsr_ip_addr *) &uplinkMessage->msg.clusterLeader.leader.v4.clusterLeader;
112         } else {
113                 addr = (union olsr_ip_addr *) &uplinkMessage->msg.clusterLeader.leader.v6.clusterLeader;
114         }
115         constructIPAddress(env, ipv4, addr, &object);
116
117         releaseUplinkMessage(env, uplinkMessage, dataObject, isCopy, JNI_ABORT);
118
119         return object;
120 }