017-mesh-use-right-interface-context-to-send-DFS-event-m.patch 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. From d3201adfe7d2219217a07ef16ef365ad59c1a89b Mon Sep 17 00:00:00 2001
  2. From: Peter Oh <[email protected]>
  3. Date: Tue, 29 May 2018 14:39:21 -0700
  4. Subject: [PATCH 17/18] mesh: use right interface context to send DFS event
  5. messages
  6. use mesh interface context to send DFS event messages when
  7. DFS events are on mesh interface.
  8. Signed-off-by: Peter Oh <[email protected]>
  9. Signed-off-by: Masashi Honma <[email protected]>
  10. ---
  11. src/ap/dfs.c | 27 +++++++++++++++++++--------
  12. 1 file changed, 19 insertions(+), 8 deletions(-)
  13. --- a/src/ap/dfs.c
  14. +++ b/src/ap/dfs.c
  15. @@ -637,6 +637,17 @@ static unsigned int dfs_get_cac_time(str
  16. }
  17. +static void *get_message_ctx(struct hostapd_iface *iface)
  18. +{
  19. +#ifdef CONFIG_MESH
  20. + if (iface->mconf)
  21. + return iface->owner;
  22. +#endif /* CONFIG_MESH */
  23. +
  24. + return iface->bss[0]->msg_ctx;
  25. +}
  26. +
  27. +
  28. /*
  29. * Main DFS handler
  30. * 1 - continue channel/ap setup
  31. @@ -719,7 +730,7 @@ int hostapd_handle_dfs(struct hostapd_if
  32. /* Finally start CAC */
  33. hostapd_set_state(iface, HAPD_IFACE_DFS);
  34. wpa_printf(MSG_DEBUG, "DFS start CAC on %d MHz", iface->freq);
  35. - wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_START
  36. + wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_CAC_START
  37. "freq=%d chan=%d sec_chan=%d, width=%d, seg0=%d, seg1=%d, cac_time=%ds",
  38. iface->freq,
  39. iface->conf->channel, iface->conf->secondary_channel,
  40. @@ -768,7 +779,7 @@ int hostapd_dfs_complete_cac(struct host
  41. int ht_enabled, int chan_offset, int chan_width,
  42. int cf1, int cf2)
  43. {
  44. - wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_COMPLETED
  45. + wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_CAC_COMPLETED
  46. "success=%d freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
  47. success, freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
  48. @@ -810,7 +821,7 @@ int hostapd_dfs_pre_cac_expired(struct h
  49. int ht_enabled, int chan_offset, int chan_width,
  50. int cf1, int cf2)
  51. {
  52. - wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_PRE_CAC_EXPIRED
  53. + wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_PRE_CAC_EXPIRED
  54. "freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
  55. freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
  56. @@ -848,7 +859,7 @@ static int hostapd_dfs_start_channel_swi
  57. wpa_printf(MSG_DEBUG, "DFS will switch to a new channel %d",
  58. channel->chan);
  59. - wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NEW_CHANNEL
  60. + wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_NEW_CHANNEL
  61. "freq=%d chan=%d sec_chan=%d", channel->freq,
  62. channel->chan, secondary_channel);
  63. @@ -935,7 +946,7 @@ static int hostapd_dfs_start_channel_swi
  64. wpa_printf(MSG_DEBUG, "DFS will switch to a new channel %d",
  65. channel->chan);
  66. - wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NEW_CHANNEL
  67. + wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_NEW_CHANNEL
  68. "freq=%d chan=%d sec_chan=%d", channel->freq,
  69. channel->chan, secondary_channel);
  70. @@ -997,7 +1008,7 @@ int hostapd_dfs_radar_detected(struct ho
  71. {
  72. int res;
  73. - wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_RADAR_DETECTED
  74. + wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_RADAR_DETECTED
  75. "freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
  76. freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
  77. @@ -1028,7 +1039,7 @@ int hostapd_dfs_nop_finished(struct host
  78. int ht_enabled, int chan_offset, int chan_width,
  79. int cf1, int cf2)
  80. {
  81. - wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NOP_FINISHED
  82. + wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_NOP_FINISHED
  83. "freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d",
  84. freq, ht_enabled, chan_offset, chan_width, cf1, cf2);
  85. @@ -1078,7 +1089,7 @@ int hostapd_dfs_start_cac(struct hostapd
  86. int ht_enabled, int chan_offset, int chan_width,
  87. int cf1, int cf2)
  88. {
  89. - wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_START
  90. + wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_CAC_START
  91. "freq=%d chan=%d chan_offset=%d width=%d seg0=%d "
  92. "seg1=%d cac_time=%ds",
  93. freq, (freq - 5000) / 5, chan_offset, chan_width, cf1, cf2, 60);