Lines Matching +full:remote +full:- +full:pid

1 /*-
4 * SPDX-License-Identifier: BSD-2-Clause
6 * Copyright (c) 2001-2002 Maksim Yevmenkin <m_evmenkin@yahoo.com>
80 while ((n = getopt(argc, argv, "df:h")) != -1) { in main()
125 bit_set(filter.event_mask, NG_HCI_EVENT_PIN_CODE_REQ - 1); in main()
126 bit_set(filter.event_mask, NG_HCI_EVENT_LINK_KEY_REQ - 1); in main()
127 bit_set(filter.event_mask, NG_HCI_EVENT_LINK_KEY_NOTIFICATION - 1); in main()
142 FILE *pid = NULL; in main() local
144 if ((pid = fopen(HCSECD_PIDFILE, "w")) == NULL) { in main()
145 syslog(LOG_ERR, "Could not create PID file %s. %s (%d)", in main()
150 fprintf(pid, "%d", getpid()); in main()
151 fclose(pid); in main()
168 if (event->type != NG_HCI_EVENT_PKT) { in main()
170 "type=%#x", event->type); in main()
174 switch (event->event) { in main()
192 "event=%#x", event->event); in main()
199 syslog(LOG_ERR, "Could not remove PID file %s. %s (%d)", in main()
218 "remote bdaddr %s", addr->hci_node, in process_pin_code_request_event()
223 "remote bdaddr %s, name '%s', PIN code %s", in process_pin_code_request_event()
224 bt_ntoa(&key->bdaddr, NULL), in process_pin_code_request_event()
225 (key->name != NULL)? key->name : "No name", in process_pin_code_request_event()
226 (key->pin != NULL)? "exists" : "doesn't exist"); in process_pin_code_request_event()
228 return (send_pin_code_reply(sock, addr, bdaddr, key->pin)); in process_pin_code_request_event()
231 syslog(LOG_DEBUG, "Could not PIN code for remote bdaddr %s", in process_pin_code_request_event()
245 "remote bdaddr %s", addr->hci_node, in process_link_key_request_event()
250 "remote bdaddr %s, name '%s', link key %s", in process_link_key_request_event()
251 bt_ntoa(&key->bdaddr, NULL), in process_link_key_request_event()
252 (key->name != NULL)? key->name : "No name", in process_link_key_request_event()
253 (key->key != NULL)? "exists" : "doesn't exist"); in process_link_key_request_event()
255 return (send_link_key_reply(sock, addr, bdaddr, key->key)); in process_link_key_request_event()
258 syslog(LOG_DEBUG, "Could not find link key for remote bdaddr %s", in process_link_key_request_event()
275 cmd->type = NG_HCI_CMD_PKT; in send_pin_code_reply()
280 cmd->opcode = htole16(NG_HCI_OPCODE(NG_HCI_OGF_LINK_CONTROL, in send_pin_code_reply()
282 cmd->length = sizeof(*cp); in send_pin_code_reply()
285 memcpy(&cp->bdaddr, bdaddr, sizeof(cp->bdaddr)); in send_pin_code_reply()
286 strncpy((char *) cp->pin, pin, sizeof(cp->pin)); in send_pin_code_reply()
287 cp->pin_size = strlen((char const *) cp->pin); in send_pin_code_reply()
290 "for remote bdaddr %s", in send_pin_code_reply()
291 addr->hci_node, bt_ntoa(bdaddr, NULL)); in send_pin_code_reply()
295 cmd->opcode = htole16(NG_HCI_OPCODE(NG_HCI_OGF_LINK_CONTROL, in send_pin_code_reply()
297 cmd->length = sizeof(*cp); in send_pin_code_reply()
300 memcpy(&cp->bdaddr, bdaddr, sizeof(cp->bdaddr)); in send_pin_code_reply()
303 "for remote bdaddr %s", in send_pin_code_reply()
304 addr->hci_node, bt_ntoa(bdaddr, NULL)); in send_pin_code_reply()
308 if (sendto(sock, buffer, sizeof(*cmd) + cmd->length, 0, in send_pin_code_reply()
314 "for remote bdaddr %s. %s (%d)", in send_pin_code_reply()
315 addr->hci_node, bt_ntoa(bdaddr, NULL), in send_pin_code_reply()
317 return (-1); in send_pin_code_reply()
334 cmd->type = NG_HCI_CMD_PKT; in send_link_key_reply()
339 cmd->opcode = htole16(NG_HCI_OPCODE(NG_HCI_OGF_LINK_CONTROL, in send_link_key_reply()
341 cmd->length = sizeof(*cp); in send_link_key_reply()
344 memcpy(&cp->bdaddr, bdaddr, sizeof(cp->bdaddr)); in send_link_key_reply()
345 memcpy(&cp->key, key, sizeof(cp->key)); in send_link_key_reply()
348 "for remote bdaddr %s", in send_link_key_reply()
349 addr->hci_node, bt_ntoa(bdaddr, NULL)); in send_link_key_reply()
353 cmd->opcode = htole16(NG_HCI_OPCODE(NG_HCI_OGF_LINK_CONTROL, in send_link_key_reply()
355 cmd->length = sizeof(*cp); in send_link_key_reply()
358 memcpy(&cp->bdaddr, bdaddr, sizeof(cp->bdaddr)); in send_link_key_reply()
361 "for remote bdaddr %s", in send_link_key_reply()
362 addr->hci_node, bt_ntoa(bdaddr, NULL)); in send_link_key_reply()
366 if (sendto(sock, buffer, sizeof(*cmd) + cmd->length, 0, in send_link_key_reply()
372 "for remote bdaddr %s. %s (%d)", in send_link_key_reply()
373 addr->hci_node, bt_ntoa(bdaddr, NULL), in send_link_key_reply()
375 return (-1); in send_link_key_reply()
389 "remote bdaddr %s", addr->hci_node, in process_link_key_notification_event()
390 bt_ntoa(&ep->bdaddr, NULL)); in process_link_key_notification_event()
392 if ((key = get_key(&ep->bdaddr, 1)) == NULL) { in process_link_key_notification_event()
393 syslog(LOG_ERR, "Could not find entry for remote bdaddr %s", in process_link_key_notification_event()
394 bt_ntoa(&ep->bdaddr, NULL)); in process_link_key_notification_event()
395 return (-1); in process_link_key_notification_event()
399 "remote bdaddr %s, name '%s', link key %s", in process_link_key_notification_event()
400 bt_ntoa(&key->bdaddr, NULL), in process_link_key_notification_event()
401 (key->name != NULL)? key->name : "No name", in process_link_key_notification_event()
402 (key->key != NULL)? "exists" : "doesn't exist"); in process_link_key_notification_event()
404 if (key->key == NULL) { in process_link_key_notification_event()
405 key->key = (uint8_t *) malloc(NG_HCI_KEY_SIZE); in process_link_key_notification_event()
406 if (key->key == NULL) { in process_link_key_notification_event()
412 memcpy(key->key, &ep->key, NG_HCI_KEY_SIZE); in process_link_key_notification_event()
440 "Usage: %s [-d] -f config_file [-h]\n" \ in usage()
442 "\t-d do not detach from terminal\n" \ in usage()
443 "\t-f config_file use <config_file>\n" \ in usage()
444 "\t-h display this message\n", HCSECD_IDENT); in usage()