Lines Matching defs:packet
81 radius_ensure_add_capacity(RADIUS_PACKET * packet, size_t capacity)
90 if (ntohs(packet->pdata->length) + capacity > 0xfe00)
93 if (ntohs(packet->pdata->length) + capacity > packet->capacity) {
94 newsize = ntohs(packet->pdata->length) + capacity +
96 newptr = realloc(packet->pdata, newsize);
99 packet->capacity = newsize;
100 packet->pdata = (RADIUS_PACKET_DATA *)newptr;
108 RADIUS_PACKET *packet;
110 packet = malloc(sizeof(RADIUS_PACKET));
111 if (packet == NULL)
113 packet->pdata = malloc(RADIUS_PACKET_CAPACITY_INITIAL);
114 if (packet->pdata == NULL) {
115 free(packet);
118 packet->capacity = RADIUS_PACKET_CAPACITY_INITIAL;
119 packet->request = NULL;
120 packet->pdata->code = code;
121 packet->pdata->id = radius_id_counter++;
122 packet->pdata->length = htons(sizeof(RADIUS_PACKET_DATA));
123 arc4random_buf(packet->pdata->authenticator,
124 sizeof(packet->pdata->authenticator));
126 return (packet);
132 RADIUS_PACKET *packet;
134 packet = radius_new_request_packet(code);
135 if (packet == NULL)
137 packet->request = request;
138 packet->pdata->id = request->pdata->id;
140 return (packet);
146 RADIUS_PACKET *packet;
151 packet = malloc(sizeof(RADIUS_PACKET));
152 if (packet == NULL)
154 packet->pdata = malloc(length);
155 packet->capacity = length;
156 packet->request = NULL;
157 if (packet->pdata == NULL) {
158 free(packet);
161 memcpy(packet->pdata, pdata, length);
163 return (packet);
167 radius_delete_packet(RADIUS_PACKET * packet)
169 free(packet->pdata);
170 free(packet);
175 radius_get_code(const RADIUS_PACKET * packet)
177 return (packet->pdata->code);
181 radius_get_id(const RADIUS_PACKET * packet)
183 return (packet->pdata->id);
187 radius_update_id(RADIUS_PACKET * packet)
189 packet->pdata->id = radius_id_counter++;
193 radius_set_id(RADIUS_PACKET * packet, uint8_t id)
195 packet->pdata->id = id;
199 radius_get_authenticator(const RADIUS_PACKET * packet, void *authenticator)
201 memcpy(authenticator, packet->pdata->authenticator, 16);
205 radius_get_authenticator_retval(const RADIUS_PACKET * packet)
207 return (packet->pdata->authenticator);
211 radius_get_request_authenticator_retval(const RADIUS_PACKET * packet)
213 if (packet->request == NULL)
214 return (packet->pdata->authenticator);
216 return (packet->request->pdata->authenticator);
220 radius_set_request_packet(RADIUS_PACKET * packet,
223 packet->request = request;
227 radius_get_request_packet(const RADIUS_PACKET * packet)
229 return (packet->request);
234 const RADIUS_PACKET * packet, const uint8_t * authenticator_src,
240 MD5_Update(&ctx, (unsigned char *)packet->pdata, 4);
243 (unsigned char *)packet->pdata->attributes,
244 radius_get_length(packet) - 20);
251 const RADIUS_PACKET * packet, const char *secret)
254 packet, packet->request->pdata->authenticator, secret);
258 radius_check_response_authenticator(const RADIUS_PACKET * packet,
263 radius_calc_response_authenticator(authenticator, packet, secret);
264 return (timingsafe_bcmp(authenticator, packet->pdata->authenticator,
269 radius_set_response_authenticator(RADIUS_PACKET * packet,
272 radius_calc_response_authenticator(packet->pdata->authenticator,
273 packet, secret);
278 const RADIUS_PACKET * packet, const char *secret)
284 packet, zero, secret);
288 radius_set_accounting_request_authenticator(RADIUS_PACKET * packet,
292 packet->pdata->authenticator, packet, secret);
296 radius_check_accounting_request_authenticator(const RADIUS_PACKET * packet,
301 radius_calc_accounting_request_authenticator(authenticator, packet,
303 return (timingsafe_bcmp(authenticator, packet->pdata->authenticator,
309 radius_get_length(const RADIUS_PACKET * packet)
311 return (ntohs(packet->pdata->length));
316 radius_get_data(const RADIUS_PACKET * packet)
318 return (packet->pdata);
335 radius_sendto(int s, const RADIUS_PACKET * packet,
340 n = sendto(s, packet->pdata, radius_get_length(packet), flags, sa,
342 if (n != radius_get_length(packet))
362 radius_send(int s, const RADIUS_PACKET * packet, int flags)
366 n = send(s, packet->pdata, radius_get_length(packet), flags);
367 if (n != radius_get_length(packet))
397 radius_sendmsg(int s, const RADIUS_PACKET * packet,
407 iov.iov_base = packet->pdata;
408 iov.iov_len = radius_get_length(packet);
413 if (n != radius_get_length(packet))