Re: [twsocket] No fragmentation

2006-10-17 Thread Stadin, Benjamin

Great, thank you.


Arno Garrels schrieb:

 Stadin, Benjamin wrote:
  Hi,
 
  I need to send a tcp packet without fragentation (DF flag set in
  ethernet frame). Is that possible with ICS?

 optval := 1;
 WSocket_SetSockOpt(WSocket1.HSocket, IPPROTO_IP, IP_DONTFRAGMENT,
 @optval, SizeOf(optval));

 ---
 Arno Garrels [TeamICS]
 http://www.overbyte.be/eng/overbyte/teamics.html
  
 -- 
 To unsubscribe or change your settings for TWSocket mailing list
 please goto http://www.elists.org/mailman/listinfo/twsocket
 Visit our website at http://www.overbyte.be

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


[twsocket] No fragmentation

2006-10-16 Thread Stadin, Benjamin
Hi,

I need to send a tcp packet without fragentation (DF flag set in ethernet
frame). Is that possible with ICS?

Benjamin
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] THttpSrv supporting NTLM Beta (updated)

2006-09-15 Thread Stadin, Benjamin
You can rely on the NTLM message size. You can retrieve the message partly,
write it to the context struct bytewise and when the full message is
received process it and do the next step. That should be better than
Receive().


SZ wrote:

Because the 401 response could be sent before the POST data is fully here.
The same applies to all POST routines--you cannot simply rely on packet
boundaries--this is TCP! Here is my approach:

int ToPost = toBePostedDataLen - postedDataLen;

if(ToPost  8192)

ToPost = 8192;

int Len = Receive(postedDataBuffer, ToPost);

postedDataLen += Len;


toBePostedDataLen is determined is basically FRequestContentLength64 which
is 64-bit version of the same ICS variable. Also, IMO, all the ints such as
contentlength should be tranformed to __int64 to support file sizes  2GB!

Best Regards,

SZ 
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] Fw: Urgent (Another simple NTLM question)

2006-09-14 Thread Stadin, Benjamin
FS, can you try it with FF with the site added to the trusted URIs and NTLM
auto-login enabled?

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] Fw: Urgent (Another simple NTLM question)

2006-09-14 Thread Stadin, Benjamin
I don't think so. NTLM works fine for me in FF ever since. FF just fills
data into an NTLM context struct and if the message is complete it is used.
This has nothing to do with a state machine.

And btw, I've looked at the Pascal code of this pslib, I think it's more a
hack than a solution. Firefox doesn't use bloody hacks to access the
protected storage for Single-Sign-On. I've made a list with a short
description to function calls for the FF source code to show how it works
(propably ;-) ). FF has a function table for function calls to Windows' own
secure32.dll / security.dll to provide SSPI functionality (also a good
lesson in C programming, FF code is great but not easy to understand at
first).

Benjamin Stadin


Fastream Technologies schrieb:

 One last lesson: when NTLM POST is taking place, if you press too
frequently
 on Mozilla, the progress meter stalls. When you click on another link it
 works fine then. This does not happen with IE. I think this is a FF bug in
 their state machine!

 Best Regards,

 SZ
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] Fw: Urgent (Another simple NTLM question)

2006-09-14 Thread Stadin, Benjamin
I remember that there was the same problem in ICS-SSL with Firefox in the
beginning. I think the connection isn't closed when this happens. Check with
your network sniffer if that's the case and set a break point to check
whether the connection is closed in your code. I don't believe that this is
a Firefox problem.


Fastream Technologies schrieb:

 Hello,

 Perhaps you can check out POSTing with IQRP 1.2b1
 (http://www.fastream.net/beta/IQReverseProxy.exe) and let us know? All you
 need to do is,

 - define the web server IP/port in Servers
 - Go to URL Rules and assign the web server to Default (catch-all) URL
rule
 - Enable NTLM authentication on the same tabsheet

 I used our IQ Web server which works perfectly when on its own to test.
You
 will need to press the POST button (for example file upload in IQWF) very
 frequently.

 Regards,

 SZ

 - Original Message -
 From: Stadin, Benjamin [EMAIL PROTECTED]
 To: twsocket@elists.org
 Sent: Thursday, September 14, 2006 5:57 PM
 Subject: Re: [twsocket] Fw: Urgent (Another simple NTLM question)

 I don't think so. NTLM works fine for me in FF ever since. FF just fills
  data into an NTLM context struct and if the message is complete it is
  used.
  This has nothing to do with a state machine.
 
  And btw, I've looked at the Pascal code of this pslib, I think it's more
a
  hack than a solution. Firefox doesn't use bloody hacks to access the
  protected storage for Single-Sign-On. I've made a list with a short
  description to function calls for the FF source code to show how it
works
  (propably ;-) ). FF has a function table for function calls to Windows'
  own
  secure32.dll / security.dll to provide SSPI functionality (also a good
  lesson in C programming, FF code is great but not easy to understand at
  first).
 
  Benjamin Stadin
 
 
  Fastream Technologies schrieb:
 
  One last lesson: when NTLM POST is taking place, if you press too
  frequently
  on Mozilla, the progress meter stalls. When you click on another link
it
  works fine then. This does not happen with IE. I think this is a FF bug
  in
  their state machine!
 
  Best Regards,
 
  SZ
  --
  To unsubscribe or change your settings for TWSocket mailing list
  please goto http://www.elists.org/mailman/listinfo/twsocket
  Visit our website at http://www.overbyte.be

 -- 
 To unsubscribe or change your settings for TWSocket mailing list
 please goto http://www.elists.org/mailman/listinfo/twsocket
 Visit our website at http://www.overbyte.be

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] THttpSrv supporting NTLM Beta (updated)

2006-09-14 Thread Stadin, Benjamin
Fastream Technologies schrieb:

 I see why I did not face this problem before with other auth methods:
 because they (basic + digest) send 401 response only once per connection
and
 the first request most probably is a GET. However, NTLM requires each
 request to have its own 401!


That would be strange, I don't think that's the real deal. Maybe it works
only because the connection is closed on 401? Check in your ethereal log if
the connection isn't closed when FF's status bar hangs.

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] Fw: Urgent (Another simple NTLM question)

2006-09-13 Thread Stadin, Benjamin
Normally you won't have a reason to use another domain, the server
appplication uses the domain of the user account it is running with.
Make sure your application is running with the domain account you want to
use AND sufficent privileges (needed to query the user database).

You have to give a domain user using domain\user - if, an only if, the
server
you're sending this information to is in *another* domain (with domain
trustship) than the server application is working with.

So that's necessary when domains are set up to trust each other. The Outlook
web access I'm writing this email from prompts only for user name and
password. I use this webmailer for years and it has always be the same, it
looks the same with every browser that supports NTLM auth (IE, Firefox,
konqueror, countless others on Unix and Solaris).

I give you an example:
My user account is in the default domain g where the server is in, but
other users from a domain (ie d) that is trusted by domain g have to
write d\myusername. The difference is that Windows will query the trusted
domain instead to look in it's own user database. Only in this special case
you need to specify another domain.

- You will need hm... I don't remember ...years ago.. (not admin rights but
at least helper privileges) to be able to query for other domain users
than yourself. It's the credentials from the logged in (server) application
user, if you are running with a local account you won't be able to query the
domain controller.
- You can *not* just give specify another domain in the user field if the
serevrs are not set up to trust each other
- You can also *not* authenticate users of another trusted domain, if you
use trusted domains, without your application user having privileges in
every of the trusted domains

Benjamin Stadin



Fastream Technologies schrieb:

 Ok, thank you for tolerating my insistence. I am trying to understand.

 There is just one issue left: under IE6XP, when I log in, I am not asked
of
 any NTLM-domain name! And assuming that it is like IE-FTP client, I cannot
 find the log in change option in any menu! Does anybody know the logic
 behind this? I have seen the words of Francois but I am opting for just
the
 opposite--instead of auto logging in, I want the _option_ to be able to
 select the NTLM-domain.

 Best Regards,

 SZ

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


[twsocket] Using a Cookie in Http(s)Tst

2006-08-23 Thread Stadin, Benjamin
Hi all,

in the HttpTst demo I navigate to www.google.com. The output message shows

Cookie:
PREF=ID=64cd0e5f00d7a853:TM=1156389632:LM=1156389632:S=a7g_61J9fju4o_-X;
expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.de
Set-Cookie:
PREF=ID=64cd0e5f00d7a853:TM=1156389632:LM=1156389632:S=a7g_61J9fju4o_-X;
expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.de


But when I add a button to the form and check for SslHttpCli1.Cookie, it is
empty. Am I missing something?
What I want to do in the application is to change 1 value and use the cookie
to save the setting permanently.

Cheers
Benjamin
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] Enhancements for Thread Attach/Detach methods

2006-06-12 Thread Stadin, Benjamin

 I do not see how to map those numbers on a low level easily :( any idea?

I'm trying to follow. How do the old and the new message numbers differ?
What do the old and new numbers look like, can you maybe give a small
example list?
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] Enhancements for Thread Attach/Detach methods

2006-06-12 Thread Stadin, Benjamin
Francois PIETTE schrieb:

  I do not see how to map those numbers on a low level easily :( any
idea?
 
  I'm trying to follow. How do the old and the new message numbers differ?
  What do the old and new numbers look like, can you maybe give a small
  example list?

 There can be no relation at all between the two sets ! Of course with
simple
 case, the two sets will looks the same. But it will not be the case when
 component are destroyed and other created, specially when there are
several
 component types involeved, having each one a different number of message
 numbers.

So what kind of mapping are you looking for? Which relationship do you need
to preserve?
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] Enhancements for Thread Attach/Detach methods

2006-06-12 Thread Stadin, Benjamin
Francois PIETTE schrieb:

  So what kind of mapping are you looking for?
  Which relationship do you need to preserve?

 A component has allocated a number of message numbers (the messages are
now
 identified by variables since a lot of components share the same hidden
 window). When the component is attached to another thread, any message
still
 in the old message queue has to be pulled out and posted into the new
queue.
 Before being posted to the new queue, the old messages numbers have to be
 mapped to the new ones. See TCustomWSocket.AllocateMsgHandlers for
 reference.


Would it be possible to have one prime number per component, and the message
numbers the component allocates are a multiple of this prime?


 I think we don't have enough information saved to do this mapping.
Probably
 TIcsWndHandler.AllocateMsgHandler sould take one more argument to permit
the
 mapping. This argument would be saved in TIcsWndHandler.FMsgMap so that it
 is available afterward to do the mapping.

 -- 
 [EMAIL PROTECTED]
 http://www.overbyte.be

 - Original Message -
 From: Stadin, Benjamin [EMAIL PROTECTED]
 To: twsocket@elists.org
 Sent: Monday, June 12, 2006 8:58 PM
 Subject: Re: [twsocket] Enhancements for Thread Attach/Detach methods

  Francois PIETTE schrieb:
 
   I do not see how to map those numbers on a low level easily :( any
  idea?
  
   I'm trying to follow. How do the old and the new message numbers
   differ?
   What do the old and new numbers look like, can you maybe give a small
   example list?
 
  There can be no relation at all between the two sets ! Of course with
  simple
  case, the two sets will looks the same. But it will not be the case
when
  component are destroyed and other created, specially when there are
  several
  component types involeved, having each one a different number of
message
  numbers.
 
  So what kind of mapping are you looking for? Which relationship do you
  need
  to preserve?
  --
  To unsubscribe or change your settings for TWSocket mailing list
  please goto http://www.elists.org/mailman/listinfo/twsocket
  Visit our website at http://www.overbyte.be

 -- 
 To unsubscribe or change your settings for TWSocket mailing list
 please goto http://www.elists.org/mailman/listinfo/twsocket
 Visit our website at http://www.overbyte.be

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


[twsocket] ICS on Mac OS X

2006-02-25 Thread Stadin, Benjamin
Hi,

is ICS working on Mac OS X with Freepascal? I've just booted Mac OS X for
the first time in my life. 

Benjamin Stadin
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] [ICS] mmorpg capacity question

2005-10-31 Thread Stadin, Benjamin
[EMAIL PROTECTED] wrote:

 Would TWserversocket, when implemented correctly, be able to run an
 online game with +/- 1000 connection/players, using tcp/ip?

 The Mmorpg is semi-realtime where each connection send an average of
 6 short packets ( 50bytes/packet) per second.

 My server is a 2.8 Ghz 1mb ram and needs to runs a mysql database on the
 localhost as well, to store/autosave player data.


The database will become a bottleneck if you have that much concurrent
clients. You could  use an in-memory sql table like SqlMemTable
http://www.aidaim.com/articles/dbmemtests.php#Results. I've never tested it
myself.
But the best thing would be if you only write to the mysql database for long
term storage and use your own data structure alogorithm (like an AVL tree or
red-black tree for example) - if you can avoid to use SQL. You can expect it
to be as much 100 times faster than this in-memory sql table. For example an
AVL tree can insert 100,000 records in about 100 ms compared to the 9
seconds(!) SqlMemTable needs.

Benjamin Stadin

 vult
 www.endless-online.com
 -- 
 To unsubscribe or change your settings for TWSocket mailing list
 please goto http://www.elists.org/mailman/listinfo/twsocket
 Visit our website at http://www.overbyte.be


-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be


Re: [twsocket] TnEmulVT automation

2005-09-14 Thread Stadin, Benjamin
I've written something like this a few years ago. I don't advertise this any
longer, you can have a free copy or parts of the code if you wish.
Description is on http://homepages.fh-giessen.de/~hg12799
Contact me out of the list.

GetCmd below get's the position of a command within a script. I parse a
script line by line and when a command (html like in  brackets) is the
next part of the line, DoCmd is called which executes the command. 
I think you can exchange or add the string you wish to respond to in getcmd,
so just add a command without brackets if what you want is to just respnd to
a command line from the terminal. 

Looking back, it's propably the worst spaghetti code I've ever written ;-).
But it's surprisingly still working ok in the environment I've written it
for (backup of about 150 network devices several times a day and recovery)


Benjamin Stadin


function TBenScript.GetCmdPos(LineString: String): Integer;  // Führt
Kommando aus und liefert StringPosition des Kommandos
var CmdPos: Integer; // erstes Kommando in Zeile
ThisPos: Integer;  // aktuelle geparsetes Kommando
  //  FirstCommand parsed welches abgeklapperte Kommando das erste ist
begin
  CmdPos := 0; // Kein Vorgängerwert von Pos = logisch 0 für Result
  FirstCommand := '';
  NoReturn := False;
  CmdLength := 0;

if Pos('TELNET',Uppercase(LineString))  0 then begin
 CmdPos := Pos('TELNET',Uppercase(LineString));
 FirstCommand := 'TELNET';
 NoReturn := True; // NoReturn = dieser befehl braucht keinen return,
wird aus scriptline entfernt
end;

if Pos('WAIT',Uppercase(LineString))  0 then begin
 CmdPos := Pos('WAIT',Uppercase(LineString));
 FirstCommand := 'WAIT';
 NoReturn := True;
end;

if Pos('LINESTOFILE',Uppercase(LineString))  0 then begin
 CmdPos := Pos('LINESTOFILE',Uppercase(LineString));
 CmdLength := Pos('',ScriptLine);
 FirstCommand := 'LINESTOFILE';
 NoReturn := True;
end;

if Pos('/LINESTOFILE',Uppercase(LineString))  0 then begin
 CmdPos := Pos('/LINESTOFILE',Uppercase(LineString));
 FirstCommand := '/LINESTOFILE';
 hauptform.telnet.WriteStr(RetSeq);
  //   NoReturn := True;
  // hier nicht, weil emulvt erst nach zeichenübergabe FSave2File ändert 
end;

if Pos('FILETOLINE',Uppercase(LineString))  0 then begin
 CmdPos := Pos('FILETOLINE',Uppercase(LineString));
 CmdLength := Pos('',ScriptLine);
 FirstCommand := 'FILETOLINE';
 NoReturn := True;
end;

if Pos('NTINIT',Uppercase(LineString))  0 then begin
 CmdPos := Pos('NTINIT',Uppercase(LineString));
 FirstCommand := 'NTINIT';
 NoReturn := True;
end;

if Pos('/TELNET',Uppercase(LineString))  0  then begin
 ThisPos := Pos('/TELNET',Uppercase(LineString));
 if (ThisPos  CmdPos) or (CmdPos = 0) then begin
  CmdPos := Pos('/TELNET',LineString);
  FirstCommand := '/TELNET';
  NoReturn := True;
 end;
end;

if Pos('COMPORT',Uppercase(LineString))  0 then begin
 ThisPos := Pos('COMPORT',Uppercase(LineString));
 if (ThisPos  CmdPos) or (CmdPos = 0) then begin
  CmdPos := Pos('COMPORT',Uppercase(LineString));
  FirstCommand := 'COMPORT';
  NoReturn := True;
 end;
end;

if Pos('/COMPORT',Uppercase(LineString))  0 then begin
 ThisPos := Pos('/COMPORT',Uppercase(LineString));
 if (ThisPos  CmdPos) or (CmdPos = 0) then begin
  CmdPos := Pos('/COMPORT',Uppercase(LineString));
  FirstCommand := '/COMPORT';
  NoReturn := True;
 end;
end;

if Pos('LOCALIP',Uppercase(LineString))  0 then begin
 ThisPos := Pos('LOCALIP',Uppercase(LineString));
 if (ThisPos  CmdPos) or (CmdPos = 0) then begin
  CmdPos := Pos('LOCALIP',Uppercase(LineString));
  FirstCommand := 'LOCALIP';
 end;
end;

if Pos('LOCALSUBNET',Uppercase(LineString))  0 then begin
 ThisPos := Pos('LOCALSUBNET',Uppercase(LineString));
 if (ThisPos  CmdPos) or (CmdPos = 0) then begin
  CmdPos := Pos('LOCALSUBNET',Uppercase(LineString));
  FirstCommand := 'LOCALSUBNET';
 end;
end;

if Pos('RECOVERY',Uppercase(LineString))  0 then begin
 ThisPos := Pos('RECOVERY',Uppercase(LineString));
 if (ThisPos  CmdPos) or (CmdPos = 0) then begin
  CmdPos := Pos('RECOVERY',Uppercase(LineString));
  FirstCommand := 'RECOVERY';
  NoReturn := True;
 end;
end;

if Pos('CALCIP',Uppercase(LineString))  0 then begin
 ThisPos := Pos('CALCIP',Uppercase(LineString));
 if (ThisPos  CmdPos) or (CmdPos = 0) then begin
  CmdPos := Pos('CALCIP',Uppercase(LineString));
  FirstCommand := 'CALCIP';
 end;
end;

if Pos('PORT',Uppercase(LineString))  0 then begin
 ThisPos := Pos('PORT',Uppercase(LineString));
 if (ThisPos  CmdPos) or (CmdPos = 0) then begin
  CmdPos := Pos('PORT',Uppercase(LineString));
  FirstCommand := 'PORT';
  NoReturn := True;
 end;
end;

if 

Re: [twsocket] Address already in use (Error #10048)

2005-04-29 Thread Stadin, Benjamin

Just an idea, maybe it's related. The problem might be a curiosity in
Windows XP with Service Pack 2 installed. I have a similar Problem with Palm
OS Development Studio. It's a Java application (based on Eclipse) from which
you can call a external debugger, but the debugger throws the same error. I
found that the Java application is generating a random port number, then the
Java application checks if this port number is available and assigns it to
the debugger. 
The curious thing here is that although the port is freed again by the Java
app, the debugger app tries to bind to this address but fails. 

So just as an idea, maybe you're reassigning this address to fast for
Windows XP SP2 ;-)



Albert Wiersch wrote:


 I am using THTTPCli for link checking and a user reported this problem:

 I am getting a few of the following Error: Address already in use (Error
 #10048) while doing link checks. Most occurs while checking for the jpg,
 pdf, ppt links. I repeated a few times the same batch file and I am
getting
 a different # of these errors in the reports. Which means the reporting of
 these errors are not consistent.

 Any ideas? I have not seen this myself or had other reports of it. Could
it
 be caused by some firewall software the user is running?

 -- 
 Albert Wiersch
 AI Internet Solutions
 [EMAIL PROTECTED]
 http://www.htmlvalidator.com/

 -- 
 To unsubscribe or change your settings for TWSocket mailing list
 please goto http://www.elists.org/mailman/listinfo/twsocket
 Visit our website at http://www.overbyte.be



-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be