fix: UDP-logged QSOs adopt the active profile's station callsign (Club Log upload blocked)
MSHV/WSJT-X often stamp a personal STATION_CALLSIGN (e.g. F4BPO) that differs from the special-event/contest profile you're running in OpsLog (e.g. TM74TFR). The QSO then failed the extsvc station-callsign guard and was never uploaded to the (matching) Club Log logbook. Live UDP logging now stamps the active profile's callsign when the base call genuinely differs (portable variants left alone).
This commit is contained in:
@@ -9567,6 +9567,22 @@ func (a *App) LogUDPLoggedADIF(adifText string) (int64, error) {
|
||||
// MY_RIG / MY_ANTENNA) from the active profile. Without this a UDP /
|
||||
// WSJT-X auto-logged QSO carried none of the operator's own data.
|
||||
a.applyStationDefaults(&q, true)
|
||||
// Live UDP logging belongs to the STATION you're operating in OpsLog right now:
|
||||
// adopt the active profile's callsign even when the sender (MSHV/WSJT-X, often
|
||||
// configured with a personal call) stamped a different STATION_CALLSIGN. Without
|
||||
// this, a special-event/contest QSO (profile TM74TFR) kept MSHV's F4BPO and was
|
||||
// then BLOCKED from uploading to the TM74TFR Club Log logbook by the mismatch
|
||||
// guard. Portable variants of the same call are already fine, so only override
|
||||
// when the base call genuinely differs.
|
||||
if a.profiles != nil {
|
||||
if p, err := a.profiles.Active(a.ctx); err == nil {
|
||||
pc := strings.ToUpper(strings.TrimSpace(p.Callsign))
|
||||
if pc != "" && !extsvc.SameBaseCall(q.StationCallsign, pc) {
|
||||
applog.Printf("udp log: station callsign %q → active profile %q", q.StationCallsign, pc)
|
||||
q.StationCallsign = pc
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ── DXCC# + QSL defaults ──
|
||||
// applyDXCCNumber stamps the contacted-station DXCC# from the
|
||||
|
||||
Reference in New Issue
Block a user