Hi all, this is my first post to this list, lets see if there are any knowledgable eager beavers out there.
I have a program that used to run fine (Compiled with Freepascal on Linux ix86 Slackware), but doesn't anymore - admittedly I am now running on a rebuilt machine, as the hard disk failed.
here's a snippet :
-------- 8<---------
lSock := Socket(af_inet, sock_stream, 0);
if lSock = -1 then SockError('Socket: ');
with sAddr do
begin
Family := af_inet;
Port := htons(ListenPort);
Addr := 0;
end;
Writeln('Listening on port ',ListenPort);
if not Bind(lSock, sAddr, sizeof(sAddr)) then SockError('Bind: ');
-------- 8<---------ListenPort is a word containing 7878
Which when compiled with -Sd gives an exception and with -S2 gives an error message :
(ppc386 -Sd program ; ./program)
An unhandled exception occurred at 0x08062E1D :
Access violation
0x08062E1D
0x0805E481
0x08064ECF
0x080480B0
(ppc386 -S2 program ; ./program)
Bind: Permission denied
Now, I am running as a normal user, but as root, the -S2 version runs without error, but does not answer on the port 7878, but on 198. (which explains why as a user I cannot bind to it, but why is it listening on 198?) The htons() is from inetaux.pas, the code for which is at the end of this email, but if I don't have it - and I think I should (the document that I have learned from provided the function) - the program doesn't error as a user, but even an nmap scan doesn't register any new ports open.
This is most confusing, as I'm sure you can appreciate, and any suggestions would be gratefully recieved.
htons() from inetaux.pas :
-------- 8<---------
function htons(i : Integer) : Integer;
begin
htons := lo(i) shl 8 or hi(i);
end;
-------- 8<---------Thanks all.
Martyn Ranyard
Free Software Advocate
jabber -
icq - 122500800
irc - Joran on oftc
msn -
y! - ranyardm
e -
