karthikkrishnan
-Interested User-
Posts: 22
Joined: Nov 4, 2015
|
Posted: Apr 7, 2020 01:56 PM
Msg. 1 of 4
I am using wine to run IQFeed and connect using python socket clients. When I run it first time, it connects and downloads the data. If I stop my client and relaunch again, it throws an error as below.
002d:fixme:msvcp:_Locinfo__Locinfo_ctor_cat_cstr (0x32e868 1 C) semi-stub 0032:err:ole:CoUninitialize Mismatched CoUninitialize 002d:err:winediag:IcmpCreateFile Failed to use ICMP (network ping), this requires special permissions. 002d:fixme:msvcrt:__clean_type_info_names_internal (0x1029f8fc) stub ^C0033:fixme:console:CONSOLE_DefaultHandler Terminating process 8 on event 0 0033:fixme:msvcrt:__clean_type_info_names_internal (0x1029f8fc) stub
Has anyone been successful to have a client connect and reconnect at will ? Now I am left to kill the IQfeed process and relaunch and do it all over again [Not a workable solution]. I am surprised we still don't have a good Linux solution.
|
DTN_Gary_Stephen
-DTN Guru-
Posts: 403
Joined: Jul 3, 2019
|
Posted: Apr 15, 2020 03:26 PM
Msg. 2 of 4
Are you using Wine to run IQConnect.exe? That type of error is usually a Wine error. Let me know, and we may have you turn on some logging, to see what the program is doing behind the scenes.
Sincerely, Gary Stephen DTN IQFeed API Support
Sincerely, Gary Stephen DTN IQFeed Implementation Support Specialist
|
karthikkrishnan
-Interested User-
Posts: 22
Joined: Nov 4, 2015
|
Posted: Apr 15, 2020 04:03 PM
Msg. 3 of 4
yes, I do use wine using command /opt/wine-stable/bin/wine "/home/ubuntu/.wine/drive_c/Program Files (x86)/DTN/IQFeed/IQLinkLauncher.exe"
This launches which needs a start button clicked manually.
How do I turn on more logging ?
|
jmv
-Interested User-
Posts: 19
Joined: May 31, 2011
|
Posted: Apr 21, 2020 03:12 PM
Msg. 4 of 4
Hi,
iqconnect.exe does a ping round trip against its DTN servers (you can see the ping results at IQConnect.log when you stop the feed and iqconnect.exe exits). Thing is, ping uses ICMP protocol, which in linux is somewhat privileged.
So, you need to give wine the appropiate permissions in order to be able to use ICMP. Running wine as root in order to circumvent this problem would be overkill (besides a very bad thing to do!), but fortunately you can use setcap in order to grant permissions in a much more granular way.
First, locate where your wine-preloader file is. In my case, it's on /usr/bin/wine-preloader . Then, type (yoo will need to sudo for this):
sudo setcap cap_net_raw+epi /usr/bin/wine-preloader
and that's all. Now wine is allowed to use ICMP protocol, which in turn will allow IQconnect.eze to make its "ping things" without complaining xD
trade well !
Jose,
|
|
|
|