ntripcaster 0.1.5 を使用してlinux鯖によるrtk配信サービスを構築するつもり。
”Lefebure NTRIP Client”での接続でローカル環境でのテストではOKなのにインターネット上のサーバーに接続すると認証エラーでつながらない。
ソースから main.c のinfo.logfiledebuglevel = 0 を 9にして全デバッグ情報を確認すると どういうわけか接続時の文字列の分解に失敗しているよう。
[Authorization] == [Basic XXXXXXXXXXXXXXXX] が取得できていない。
[Connectiotion] == [Basic XXXXXXXXXXXXXXXX]になってしまっているので client.c をいじって [Authorization]の取得に失敗していたら [Connectiotion]の値を使って認証させるように(場当たり的ではあるが)修正した。
AgLeaderではどうかと思い確認すると[Authorization] == [Basic XXXXXXXXXXXXXXXX]が無事取得できているのでまぁよし。
GET /AGS HTTP/1.0 User-Agent: NTRIP AgLeader/1.0 (InCommand) Host: 192.168.1.254 Authorization: Basic XXXXXXXXXXXX [16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Building request out of [GET /AGS HTTP/1.0] [16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Building clean request from [/AGS] [16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Adding varpair [User-Agent] == [NTRIP AgLeader/1.0 (InCommand)] [16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Building request out of [Host: 192.168.1.254] [16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Adding varpair [Authorization] == [Basic XXXXXXXXXXXX] [16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Checking need for authentication on mount /AGS
GET /AGS HTTP/1.0 User-Agent: NTRIP LefebureAndroidIntNTRIPClient/20200406 Accept: */* Connection: close Authorization: Basic XXXXXXXXXXXX [15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Building request out of [GET /AGS HTTP/1.0] [15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Building clean request from [/AGS] [15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Adding varpair [User-Agent] == [NTRIP LefebureAndroidIntNTRIPClient/20200406] [15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Adding varpair [Accept] == [*/*] [15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Adding varpair [Connectiotion] == [Basic XXXXXXXXXXXX] [15/Jan/2021:14:48:04] [3:Connection Handler] WARNING: Invalid header line [XXXXXXXXXXXX] without colon [15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Checking need for authentication on mount /AGS
簡単に修正できたように書いているが辿り着くまでは困難だった。
なにせローカルでは問題ないので苦もなく動くものと思いこんでいました。
それにしても[Connectiotion]って?再現性はあるのでもう少しスマートな修正もできるのでしょうが、C言語は不得手で。