On Fri, 14 Jul 2000, Sharon Stanton wrote:
> Compiling...
> diskio.c
> Linking...
> clan.obj : error LNK2001: unresolved external symbol _popen
> Debug/circle.exe : fatal error LNK1120: 1 unresolved externals
> Error executing link.exe.
Your problem is that somewhere clan.obj
(probably clan.c in source form) is a call to popen())
Now popen() forks and spawns an external program to either talk to or
listen to it with a pipe, in *ix; your problem here is that you are
compiling in windows which doesn't have this functionality [at least
not implemented through a function named 'popen'].
You need to disable the option/whatever in clan.c that calls
popen, this might take some doing depending on how it's being used --
there really isn't any good reason that a mud should ever be forking or
spawning an external program while in normal operation anyways, especially
at the request of the user [which is the only reason I can possibly imagine
it using popen rather than system()]; -- after all, a mud's a server, not a
login shell!
Calling popen() is particularly unsafe, especially if the arguments
to the command being spawned can be controlled in any way by a player or imm
for that matter; in either case, if a player can cause a popen() to happen
on demand, they might be able to bring the system to its needs by
hammering with requests or somethin'.
..blah..blah...<insert other admonishments about using popen in server
code here directed at whoever did it>
...blah...blah...
-Mysid
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 04/10/01 PDT