You can subscribe to this list here.
2000 |
Jan
(2) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(10) |
Oct
|
Nov
(7) |
Dec
(11) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(32) |
Feb
(2) |
Mar
|
Apr
(8) |
May
|
Jun
(7) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2002 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: Miguel C. <ren...@gm...> - 2005-09-29 17:23:17
|
Hello list I was looking for a related site for the icq protocol, visited an old site but it is not working anymore and found icqlib, it may be what I need to create a basic icq client, but didn't find documentation on how to use it. In 2001 I programmed a basic client with v2 and v3 protocol support but have not the code and documentation anymore. Want to use icqlib and save time, but anybody can help me to find some docs? Thanks!! |
From: Matt T. <mat...@gm...> - 2005-06-05 20:23:00
|
Hi, I'm working on writing a native ICQ client for SkyOS (http://www.skyos.org/). I've successfully ported icqlib and am working on the layout of the frontend currently. The last release of icqlib was almost 5 full years ago. I assume that it isn't being maintained anymore. My question is this: Since it obviously isn't being maintained, should I find a different ICQ library to base my client off of? And if so, which? Thanks in advance, Matt |
From: Ratnakar P. <Rat...@PL...> - 2002-01-02 11:41:51
|
Hi all, Need some help for usage of icqlib on win NT, for a simple icq client (that only sends messages to any uin)i'm developing. This is the sequence of events: 1.call WinSock init(WSAStartup) 2.icq_Init() 3.icq_UnsetProxy(); 4.icq_Connect() 5.icq_Login() 6. icq_SendMessage() 7.icq_HandleServerResponse(); 8. icq_Logout(&link); 9. icq_Disconnect(&link); 10. icq_Done(&link); 11. WSACleanup(); The Client is able to login fine but the messages that I send dont seem to be going through to the mentioned uins. I tried both ICQ_SEND_DIRECT,ICQ_SEND_THRUSERVER. Any help would be appreciated. Also please reply to the email address mentioned as I am not subscribed to the mailing list... pai |
From: Ratnakar P. <Rat...@PL...> - 2002-01-02 11:35:19
|
Hi all, Need some help for usage of icqlib on win NT, for a simple icq client (that only sends messages to any uin)i'm developing. This is the sequence of events: 1.call WinSock init(WSAStartup) 2.icq_Init() 3.icq_UnsetProxy(); 4.icq_Connect() 5.icq_Login() 6. icq_SendMessage() 7.icq_HandleServerResponse(); 8. icq_Logout(&link); 9. icq_Disconnect(&link); 10. icq_Done(&link); 11. WSACleanup(); The Client is able to login fine but the messages that I send dont seem to be going through to the mentioned uins. I tried both ICQ_SEND_DIRECT,ICQ_SEND_THRUSERVER. Any help would be appreciated. Also please reply to the email address mentioned as I am not subscribed to the mailing list... ratnakar |
From: David S. <fes...@bt...> - 2001-06-09 05:06:30
|
Just writing to say patched together a small CLI client using icqlib. It does all the things you'd expect it to do find it at, http://dave.buhrer.net/gimbicq/ , and if you find it useful in some way then please let me know. |
From: Peter M. L. <pe...@le...> - 2001-06-08 11:50:31
|
<Grin> Well, when I started writing picq, I was just a student who didn't know anything about open source software and application development. Then I got a job and writing picq became even less oriented to writing something for others. Maybe I should look into making a bit more documentation and submitting it to freshmeat or something. :-) Regards, Peter. -----Original Message----- From: icq...@li... [mailto:icq...@li...]On Behalf Of Denis V. Dmitrienko Sent: donderdag 7 juni 2001 21:33 To: icq...@li... Subject: Re: [icqlib-users] Timeout and Logging in. "Peter M. Lemmen" <pe...@le...> writes: > As to the 'picq' name being taken... Hmm, well, I started on my client back > in the spring of 1999 (Heh, if you look at the epad and opad files, I've not > even touched them since november 1999...) and the first web page was up even > back then. So I'm not sure why I should even bother changing it. But if I > come up with a better name (or anyone else has a good suggestion) I'll think > about it. :-) There was no PICQ entries on the search engines back to the fall of 2000... ;) And right now search request on this word for example on Google returns DataNaut's PICQ pages and not yours. But this is ok and you shouldn't really worry about it since first of all, your PICQ is for Unix platform and DataNaut's one is for Palm; and second, PICQ was a code name for that project and supposed to be changed. -- Denis V. Dmitrienko | E-mail: de...@de... | ICQ#: 5538614 Home page: http://denix.org | de...@kd... History became legend... Legend became myth. And some things that should not have been forgotten ...were lost. _______________________________________________ icqlib-users mailing list icq...@li... http://lists.sourceforge.net/lists/listinfo/icqlib-users |
From: Denis V. D. <de...@nu...> - 2001-06-07 19:28:43
|
"Peter M. Lemmen" <pe...@le...> writes: > As to the 'picq' name being taken... Hmm, well, I started on my client back > in the spring of 1999 (Heh, if you look at the epad and opad files, I've not > even touched them since november 1999...) and the first web page was up even > back then. So I'm not sure why I should even bother changing it. But if I > come up with a better name (or anyone else has a good suggestion) I'll think > about it. :-) There was no PICQ entries on the search engines back to the fall of 2000... ;) And right now search request on this word for example on Google returns DataNaut's PICQ pages and not yours. But this is ok and you shouldn't really worry about it since first of all, your PICQ is for Unix platform and DataNaut's one is for Palm; and second, PICQ was a code name for that project and supposed to be changed. -- Denis V. Dmitrienko | E-mail: de...@de... | ICQ#: 5538614 Home page: http://denix.org | de...@kd... History became legend... Legend became myth. And some things that should not have been forgotten ...were lost. |
From: Peter M. L. <pe...@le...> - 2001-06-07 19:01:40
|
Hello, Ok, thanks for the advice on icq_Login. I've been changing around the synchronising of the contact list and I'll try adding the contacts before logging in. As to the 'picq' name being taken... Hmm, well, I started on my client back in the spring of 1999 (Heh, if you look at the epad and opad files, I've not even touched them since november 1999...) and the first web page was up even back then. So I'm not sure why I should even bother changing it. But if I come up with a better name (or anyone else has a good suggestion) I'll think about it. :-) Regards, Peter. -----Original Message----- From: icq...@li... [mailto:icq...@li...]On Behalf Of Denis V. Dmitrienko Sent: donderdag 7 juni 2001 20:07 To: icq...@li... Cc: icqlib-dev mailing list Subject: Re: [icqlib-users] Timeout and Logging in. "Peter M. Lemmen" <le...@ho...> writes: > I've been having an odd problem since using Icqlib 1.0.0 in my icq client. > I've added support for handling Timeouts which works on the following logic: > > When a icq_SetTimeout event is generated... > If the interval is -1, the current Timeout is cleared. > If the interval is 0, the current Timeout is cleared. > If the interval is larger then 0, the current Timeout is changed to Now() > + interval. > > When the Timeout passes... > icq_HandleTimeout is called. > And the Timeout is cleared. Everything is fine so far. > My login sequence is as follows: > > icq_Init is called to initialize the link. > Callbacks are registered with the link. > icq_Connect is called to create the UDP connection. > icq_Login is called to send the login information to the server. > The icq contacts are added to the link. > icq_SendContactList is called. > icq_SendVisibleList is called. And this is wrong. Move "The icq contacts are added to the link" step before "icq_Login is called to send the login information to the server" because icq_Login() sends all your contact information itself. It means you send your contact list twice, that's why you experience timeouts. In other words, you shouldn't call icq_SendContactList(), icq_SendVisibleList() & icq_SendInvisibleList() functions manually on login. Just populate those lists before calling icq_Login(). If you change your contact list after login (add new buddy), call icq_SendNewUser() function (subject to rename!!!). Call icq_SendVisibleList() & icq_SendInvisibleList() functions on any changes in those lists as usual - there is no special functions to send single new user added to them. > I believe the icq_Login and/or the contact list calls generate a (15 second) > Timeout event. Within those 15 seconds the user is logged in and all the > UserOnline events are received. > The timeout is not cleared however, and when the 15 seconds are up, > HandleTimeout is called. A few seconds after that we get the whole list of > UserOnline messages again, as if the contact list packets were resent. It happens because ICQ server has special "feature" to drop packets when they come too fast from the client, i.e. to prevent flood. Login procedure generates a lot of the packets and some of them could be lost, that's why we need Timeout manager - to resend unacknowledged (potentially lost) packets. > I think the Ack messages for the Contact list and Visible List get lost > somewhere so icqlib is unable to match them up with the original sent > packets. Or just there was no Ack packets from the server at all... > Is my handling logic of the Timeouts correct? Especially the double-clear > case with a zero interval. Yes, that is correct. > Why is the contact list not acknowledged properly? Would it help if I moved > the sending of the contact and visible lists into the icq_Logged event? (Ie, > after the login was properly handled.) Try to implement it like I said before. > ---------------------------------------------------------------- > Peter M. Lemmen Peter's ICQ Client > www.outreach.nl www.outreach.nl/picq > pe...@le... pi...@ou... > ---------------------------------------------------------------- As I already mentioned on the icqlib forum picq name is already taken: http://www.datanaut.com/picq -- Denis V. Dmitrienko | E-mail: de...@de... | ICQ#: 5538614 Home page: http://denix.org | de...@kd... History became legend... Legend became myth. And some things that should not have been forgotten ...were lost. _______________________________________________ icqlib-users mailing list icq...@li... http://lists.sourceforge.net/lists/listinfo/icqlib-users |
From: Denis V. D. <de...@nu...> - 2001-06-07 18:02:23
|
"Peter M. Lemmen" <le...@ho...> writes: > I've been having an odd problem since using Icqlib 1.0.0 in my icq client. > I've added support for handling Timeouts which works on the following logic: > > When a icq_SetTimeout event is generated... > If the interval is -1, the current Timeout is cleared. > If the interval is 0, the current Timeout is cleared. > If the interval is larger then 0, the current Timeout is changed to Now() > + interval. > > When the Timeout passes... > icq_HandleTimeout is called. > And the Timeout is cleared. Everything is fine so far. > My login sequence is as follows: > > icq_Init is called to initialize the link. > Callbacks are registered with the link. > icq_Connect is called to create the UDP connection. > icq_Login is called to send the login information to the server. > The icq contacts are added to the link. > icq_SendContactList is called. > icq_SendVisibleList is called. And this is wrong. Move "The icq contacts are added to the link" step before "icq_Login is called to send the login information to the server" because icq_Login() sends all your contact information itself. It means you send your contact list twice, that's why you experience timeouts. In other words, you shouldn't call icq_SendContactList(), icq_SendVisibleList() & icq_SendInvisibleList() functions manually on login. Just populate those lists before calling icq_Login(). If you change your contact list after login (add new buddy), call icq_SendNewUser() function (subject to rename!!!). Call icq_SendVisibleList() & icq_SendInvisibleList() functions on any changes in those lists as usual - there is no special functions to send single new user added to them. > I believe the icq_Login and/or the contact list calls generate a (15 second) > Timeout event. Within those 15 seconds the user is logged in and all the > UserOnline events are received. > The timeout is not cleared however, and when the 15 seconds are up, > HandleTimeout is called. A few seconds after that we get the whole list of > UserOnline messages again, as if the contact list packets were resent. It happens because ICQ server has special "feature" to drop packets when they come too fast from the client, i.e. to prevent flood. Login procedure generates a lot of the packets and some of them could be lost, that's why we need Timeout manager - to resend unacknowledged (potentially lost) packets. > I think the Ack messages for the Contact list and Visible List get lost > somewhere so icqlib is unable to match them up with the original sent > packets. Or just there was no Ack packets from the server at all... > Is my handling logic of the Timeouts correct? Especially the double-clear > case with a zero interval. Yes, that is correct. > Why is the contact list not acknowledged properly? Would it help if I moved > the sending of the contact and visible lists into the icq_Logged event? (Ie, > after the login was properly handled.) Try to implement it like I said before. > ---------------------------------------------------------------- > Peter M. Lemmen Peter's ICQ Client > www.outreach.nl www.outreach.nl/picq > pe...@le... pi...@ou... > ---------------------------------------------------------------- As I already mentioned on the icqlib forum picq name is already taken: http://www.datanaut.com/picq -- Denis V. Dmitrienko | E-mail: de...@de... | ICQ#: 5538614 Home page: http://denix.org | de...@kd... History became legend... Legend became myth. And some things that should not have been forgotten ...were lost. |
From: Peter M. L. <pe...@le...> - 2001-06-06 17:05:51
|
Hello everyone, I've been working on adding support for the TCP part of ICQLib to my client. (Most notably, File transfers. :-) However I keep getting Segmentation faults whenever any of the TCP stuff gets used. From sending direct messages, to just receiving a file transfer request (and immediately refusing it). In the screenshot below I've tried to send a file from a windows client (99b) to my client. It accepts the tcp connection and receives the file request. Internally the file request is refused and the refusal message is displayed properly by the windows client, so that works. However, about a minute later, icqlib says it receives an unknown packet command '2050', and again one minute later the client crashes on a segmentation fault. (Note, there's two sets of Keepalive debug messages in there that are unrelated I think, each from Timeout updated to Timeout stopped.) Changing debug level to 10. 18:31:00 Debug[4] Icqlib: accepting tcp connection from 192.168.1.17:1160 18:31:01 Debug[4] Icqlib: hello packet received from 119893112 { version=6 } 18:31:01 rghost Received File Request. Filename : ALInvCont.wav Description: Testing, 1, 2, 3. 18:31:23 Debug[3] Timeout updated, Now() + 15. 18:31:23 Debug[4] Icqlib: Send Keep Alive packet to the server 18:31:23 Debug[2] Sending Keepalive. 18:31:23 Debug[4] Icqlib: The server acknowledged the command 18:31:23 Debug[2] Server Acknowledged sequence 20650. 18:31:23 Debug[3] Timeout stopped on -1. 18:31:50 Debug[3] Icqlib: unknown packet command 2050! 18:32:23 Debug[3] Timeout updated, Now() + 15. 18:32:23 Debug[4] Icqlib: Send Keep Alive packet to the server 18:32:23 Debug[2] Sending Keepalive. 18:32:23 Debug[4] Icqlib: The server acknowledged the command 18:32:23 Debug[2] Server Acknowledged sequence 20651. 18:32:23 Debug[3] Timeout stopped on -1. 18:32:54 Awaiting user Command ============================ Onl == 000 == ./rt: line 3: 29112 Segmentation fault ./picq ~/.picqrc-rts1 2>>rt.out peter@ghost:~/dev/picq/current$ The same thing happens when I try to send a Message or Url direct, or anything else related to TCP happens. The icq_TCPMain handler is called about 4 times per second from within the main loop and I don't think I do anything particularly weird with it. Is there, apart from calling icq_TCPMain and registering the callbacks, anything that needs to be done to initialize TCP handling properly? Regards, Peter. ------------------------------------------------------------ Peter M. Lemmen Peter's ICQ Client www.outreach.nl www.outreach.nl/picq pe...@le... pi...@ou... ------------------------------------------------------------ |
From: Peter M. L. <le...@ho...> - 2001-06-05 13:55:36
|
Hello, I've been having an odd problem since using Icqlib 1.0.0 in my icq client. I've added support for handling Timeouts which works on the following logic: When a icq_SetTimeout event is generated... If the interval is -1, the current Timeout is cleared. If the interval is 0, the current Timeout is cleared. If the interval is larger then 0, the current Timeout is changed to Now() + interval. When the Timeout passes... icq_HandleTimeout is called. And the Timeout is cleared. This seems to work pretty well, and I've not noticed a single dropped message or status change since. However, it produces a slightly weird effect on login. My login sequence is as follows: icq_Init is called to initialize the link. Callbacks are registered with the link. icq_Connect is called to create the UDP connection. icq_Login is called to send the login information to the server. The icq contacts are added to the link. icq_SendContactList is called. icq_SendVisibleList is called. Then the program enters the main loop and starts handling server (and user) response. I believe the icq_Login and/or the contact list calls generate a (15 second) Timeout event. Within those 15 seconds the user is logged in and all the UserOnline events are received. The timeout is not cleared however, and when the 15 seconds are up, HandleTimeout is called. A few seconds after that we get the whole list of UserOnline messages again, as if the contact list packets were resent. I think the Ack messages for the Contact list and Visible List get lost somewhere so icqlib is unable to match them up with the original sent packets. My questions: Is my handling logic of the Timeouts correct? Especially the double-clear case with a zero interval. Why is the contact list not acknowledged properly? Would it help if I moved the sending of the contact and visible lists into the icq_Logged event? (Ie, after the login was properly handled.) Regards, Peter. ---------------------------------------------------------------- Peter M. Lemmen Peter's ICQ Client www.outreach.nl www.outreach.nl/picq pe...@le... pi...@ou... ---------------------------------------------------------------- |
From: Ron P. <ic...@th...> - 2001-04-15 11:27:08
|
Michael Hudson wrote: > > So I've been attempting to get ICQLIB in my software. > > Fair warning; I don't really know all that much about iclib (though I did > get Python bindings written & got them to work). NP. > > It connects, then the hard drive gets accessed wildly. > > Are you running out of memory (ie. is the hard disk access VM thrashing)? > What OS? Nah, my contact list counter (for sending the list) was overrunning the end of the list. So icqlib was storing loads of useless entries in its own list and that was using up tonnes of swap space. Heh heh. FIXEd. > AFAIK, icqlib doesn't touch the hard drive (except for file transfer > stuff, obviously). Yeah. So far it's working nicely. Have a temporary ICQ account created for testing and debugging (don't know how to create accounts with icqlib yet); logging in and out work, the userlist looks good. > > 6) continuously call icq_Main in a loop, no delays > > You don't really want to do that; you want to call icq_Main every 10 ms or > so (try usleep or nanosleep). Yeah, but that was a moot detail for the purposes at the time. I've got a usleep() working, but I'd rather use SIGALRM tuned to microseconds, and delay for 50,000 of those. (50ms). > Could your callbacks be leaking memory? That's about all I can think of. Checking out the icqlib source, I noted that all callbacks are nullified, so anything I don't use won't crash my program. <Phew.> > No, I think you can just implement the one's you're interested in; icqlib > checks for NULLs before calling the callbacks. > > HTH, but it might be better if someone with more iclib knowledge/intuition > spoke up... Your memory leak thing is always good to check out. No one's written up a decent icqlib tutorial, so I'm taking that task on. Once the basics are known, the whole development process is pretty simple. Save the user interface, of course. Heh. Still racking my brain about the best way to do that under console. (I'm thinking something like zicq would be nice, but have the userlist on the left hand side of the screen and have scrolling and filtering caps.) -- .--------------------------------------------. | Ron Poulton Caffeinate. | | EMail: thok at technologist.com Code. | | Web: http://www.thok.net Compute. | `--------------------------------------------' Zymurgy's Law of Volunteer Labor: People are always available for work in the past tense. |
From: Ron P. <th...@te...> - 2001-04-15 11:23:42
|
On Sun, 15 Apr 2001, Michael Hudson wrote: > > So I've been attempting to get ICQLIB in my software. > > Fair warning; I don't really know all that much about iclib (though I did > get Python bindings written & got them to work). NP. > > It connects, then the hard drive gets accessed wildly. > > Are you running out of memory (ie. is the hard disk access VM thrashing)? > What OS? Nah, my contact list counter (for sending the list) was overrunning the end of the list. So icqlib was storing loads of useless entries in its own list and that was using up tonnes of swap space. Heh heh. FIXEd. > AFAIK, icqlib doesn't touch the hard drive (except for file transfer > stuff, obviously). Yeah. So far it's working nicely. Have a temporary ICQ account created for testing and debugging (don't know how to create accounts with icqlib yet); logging in and out work, the userlist looks good. > > 6) continuously call icq_Main in a loop, no delays > > You don't really want to do that; you want to call icq_Main every 10 ms or > so (try usleep or nanosleep). Yeah, but that was a moot detail for the purposes at the time. I've got a usleep() working, but I'd rather use SIGALRM tuned to microseconds, and delay for 50,000 of those. (50ms). > Could your callbacks be leaking memory? That's about all I can think of. Checking out the icqlib source, I noted that all callbacks are nullified, so anything I don't use won't crash my program. <Phew.> > No, I think you can just implement the one's you're interested in; icqlib > checks for NULLs before calling the callbacks. > > HTH, but it might be better if someone with more iclib knowledge/intuition > spoke up... Your memory leak thing is always good to check out. No one's written up a decent icqlib tutorial, so I'm taking that task on. Once the basics are known, the whole development process is pretty simple. Save the user interface, of course. Heh. Still racking my brain about the best way to do that under console. (I'm thinking something like zicq would be nice, but have the userlist on the left hand side of the screen and have scrolling and filtering caps.) -- .--------------------------------------------. | Ron Poulton Caffeinate. | | EMail: thok at technologist.com Code. | | Web: http://www.thok.net Compute. | `--------------------------------------------' Zymurgy's Law of Volunteer Labor: People are always available for work in the past tense. |
From: Michael H. <mw...@ca...> - 2001-04-15 11:10:21
|
On Sat, 14 Apr 2001, Ron Poulton wrote: > So I've been attempting to get ICQLIB in my software. Fair warning; I don't really know all that much about iclib (though I did get Python bindings written & got them to work). > It connects, then the hard drive gets accessed wildly. Are you running out of memory (ie. is the hard disk access VM thrashing)? What OS? AFAIK, icqlib doesn't touch the hard drive (except for file transfer stuff, obviously). > I did make a modification, but for contrast purposes, I was originally > coding the ICQ prog to: > > 1) icq_Init > 2) set up callbacks > 3) icq_UnsetProxy > 4) icq_Connect > 5) icq_Login if icq_Connect did not return -1 > 6) continuously call icq_Main in a loop, no delays You don't really want to do that; you want to call icq_Main every 10 ms or so (try usleep or nanosleep). > Suepecting that icq_Main may have been getting overloaded, I modified the > above structure such that: > > 6) alarm(SIGALRM,bkgfuncs) > 7) alarm(1) > 8) the main loop would just check for a "Q" from the keyboard > > The bkgfuncs, called once per second in theory, would call icq_Main and, > after icq_Main was finished, rearm the system for a 1 second delay until > the next call. > > Now, the hard drive is still being accessed (it takes longer for it to > become violent). Could your callbacks be leaking memory? That's about all I can think of. > Is there something I'm missing in all of this? Do I need to reference > ALL callbacks, or is there a core set I need for just basic messaging > and user databasing? No, I think you can just implement the one's you're interested in; icqlib checks for NULLs before calling the callbacks. HTH, but it might be better if someone with more iclib knowledge/intuition spoke up... Cheers, M. |
From: Ron P. <ic...@th...> - 2001-04-15 01:45:29
|
So I've been attempting to get ICQLIB in my software. It connects, then the hard drive gets accessed wildly. I did make a modification, but for contrast purposes, I was originally coding the ICQ prog to: 1) icq_Init 2) set up callbacks 3) icq_UnsetProxy 4) icq_Connect 5) icq_Login if icq_Connect did not return -1 6) continuously call icq_Main in a loop, no delays Suepecting that icq_Main may have been getting overloaded, I modified the above structure such that: 6) alarm(SIGALRM,bkgfuncs) 7) alarm(1) 8) the main loop would just check for a "Q" from the keyboard The bkgfuncs, called once per second in theory, would call icq_Main and, after icq_Main was finished, rearm the system for a 1 second delay until the next call. Now, the hard drive is still being accessed (it takes longer for it to become violent). Is there something I'm missing in all of this? Do I need to reference ALL callbacks, or is there a core set I need for just basic messaging and user databasing? -- .--------------------------------------------. | Ron Poulton Caffeinate. | | EMail: thok at technologist.com Code. | | Web: http://www.thok.net Compute. | `--------------------------------------------' Pushing 40 is exercise enough. |
From: Ron P. <th...@te...> - 2001-04-15 01:40:02
|
So I've been attempting to get ICQLIB in my software. It connects, then the hard drive gets accessed wildly. I did make a modification, but for contrast purposes, I was originally coding the ICQ prog to: 1) icq_Init 2) set up callbacks 3) icq_UnsetProxy 4) icq_Connect 5) icq_Login if icq_Connect did not return -1 6) continuously call icq_Main in a loop, no delays Suepecting that icq_Main may have been getting overloaded, I modified the above structure such that: 6) alarm(SIGALRM,bkgfuncs) 7) alarm(1) 8) the main loop would just check for a "Q" from the keyboard The bkgfuncs, called once per second in theory, would call icq_Main and, after icq_Main was finished, rearm the system for a 1 second delay until the next call. Now, the hard drive is still being accessed (it takes longer for it to become violent). Is there something I'm missing in all of this? Do I need to reference ALL callbacks, or is there a core set I need for just basic messaging and user databasing? -- .--------------------------------------------. | Ron Poulton Caffeinate. | | EMail: thok at technologist.com Code. | | Web: http://www.thok.net Compute. | `--------------------------------------------' So, what's with this guy Gideon, anyway? And why can't he ever remember his Bible? |
From: Ron P. <ic...@th...> - 2001-04-03 13:17:56
|
On 3 Apr 2001, Denis V. Dmitrienko wrote: > Ron Poulton writes: > > > I just decided to check out icqlib. > > > > I download zicq in order to gain some ground in utilizing the package, and > > it looked good. Connected, logged in just fine. > > As I can see zicq has nothing to do with icqlib. So, everything you said is > zicq problem and not icqlib, unless I missed something. WHUPS, sorry about that. "kicq" is what I was checking out. "zicq" probably came from some far reach of my synapses that have yet to be clear cut. What I'm looking for is an example of how to login and logout and interpreting callbacks - some basic rules and such. My understanding so far is that the icq_Init routine is called, the callbacks are all set up, the client calls icq_Connect and icq_Login, interprets the callbacks, and either calls icq_Logout or icq_Disconnect in order to remove itself from the ICQ network. Anything I'm missing? -- They spell it "da Vinci" and pronounce it "da Vinchy". Foreigners always spell better than they pronounce. -- Mark Twain |
From: Denis V. D. <de...@nu...> - 2001-04-03 04:10:49
|
ic...@th... writes: > I just decided to check out icqlib. > > I download zicq in order to gain some ground in utilizing the package, and > it looked good. Connected, logged in just fine. As I can see zicq has nothing to do with icqlib. So, everything you said is zicq problem and not icqlib, unless I missed something. -- Denis V. Dmitrienko | E-mail: de...@de... | ICQ#: 5538614 Home page: http://denix.org | de...@kd... History became legend... Legend became myth. And some things that should not have been forgotten ...were lost. |
From: <ic...@th...> - 2001-04-03 02:27:35
|
I just decided to check out icqlib. I download zicq in order to gain some ground in utilizing the package, and it looked good. Connected, logged in just fine. After a second, the program just stops and the hard drive goes wild. The computer pauses (keyboard still works - LEDs toggle, can switch from console to console), but everything else lags. Even my MP3s just stop playing. This took an actual reset, as Ctrl-Alt-Del from terminal 1 wouldn't even work. Now, what am I missing? This is almost as though something's recursing, and eating up all the memory and process time. |
From: Bill S. <we...@ri...> - 2001-02-03 03:09:00
|
On Thu, 1 Feb 2001, David B wrote: > >2. Use the icq_Log callback to capture a log. Log everything that > >comes across the callback, try to send a TCP message to your program. > >Send me the resulting output. > > I did this, and the log was working fine, logging everything. However > when sending a TCP message, nothing is logged, it just plain doesn't > see it. So I didn't bother attaching the log as it shows nothing about > the tcp message or any errors about it. Let me know if you still want > it however. Sure, send it along, I can at least look at it, maybe something will jump out at me. > >3. Give me a quick description of your system, running uname -a at a > >shell prompt is fine. > > I probably should have mentioned this is a win32 machine and not a unix > machine, and there no doubt lies the problem. Aha! Yes, this is important... we didn't do the win32 port ourselves, and I know nothing about win32 development, so I'm afraid I won't be much help :( > In the headers I have, accept is defined as: > > SOCKET PASCAL accept(SOCKET,struct sockaddr *,int *); > > Hence why I changed socklen_t for int. However I guess this wasn't a > good thing to do. Ah, actually you probably made the correct change. I doubt that's the reason accept isn't working. > However I had the same tcp problem with icqlib1.0 and don't remember > any socklen_t changing in there. Or in fact changing anything. I > guess it's a winsock problem if it's working ok for you on a unix based > system. Most likely. If you can debug the problem and provide a patch, we'd gladly accept it. If you have any questions about our code, I'll be more than happy to help. Bil |
From: David B <de...@so...> - 2001-02-01 19:30:28
|
Sorry for the delay in replying. >> Hi, I'm having a problem with the tcp part of icqlib. >> >> I can do everything on the UDP side of things, receive msg's, send >> messages (through the server) etc. However if I enable tcp, messages >> sent to me just time out and never appear. However if I message the >> person (ICQ_SEND_DIRECT) then I can get msg's from the person. >> >> I have the socket handler stuff set up and it seems to be working ok. >> >> I also have the same problem if I call icq_Main on a 100ms timer. >> >> Have I not set up something vital? > >It sounds like you're doing everything correctly. The socket handler >callback is only there as an option - icqlib should work the same as it >used to if you're using the timer method to call icq_Main, it's just >going through my new socket manager code. > >I've been getting a number of different reports for this lately, but >on my local system here, everything appears to work fine in both >directions. If you could, please do the following: > >1. Ensure you've updated to the most recent CVS version - I put a few >fixes in for the socket manager code after my initial checkin. Yep it's the latest. > >2. Use the icq_Log callback to capture a log. Log everything that >comes across the callback, try to send a TCP message to your program. >Send me the resulting output. I did this, and the log was working fine, logging everything. However when sending a TCP message, nothing is logged, it just plain doesn't see it. So I didn't bother attaching the log as it shows nothing about the tcp message or any errors about it. Let me know if you still want it however. > >3. Give me a quick description of your system, running uname -a at a >shell prompt is fine. I probably should have mentioned this is a win32 machine and not a unix machine, and there no doubt lies the problem. I do however remember something that is no doubt the cause of this (and therefore my fault). When compiling icqlib (socketmanager.c to be precise) I got an error about no socklen_t. I quickly checked the winsock headers and saw that the function being passes a socklen_t variable was 'int' in the headers and so I changed it to int and everything compiled fine, I didn't think much of it. However looking again, the function is what ACCEPTS connections in the first place I believe. int icq_SocketAccept(int listens, struct sockaddr *addr, socklen_t *addrlen) { int s = accept(listens, addr, addrlen); icq_SocketAlloc(s); return s; } In the headers I have, accept is defined as: SOCKET PASCAL accept(SOCKET,struct sockaddr *,int *); Hence why I changed socklen_t for int. However I guess this wasn't a good thing to do. However I had the same tcp problem with icqlib1.0 and don't remember any socklen_t changing in there. Or in fact changing anything. I guess it's a winsock problem if it's working ok for you on a unix based system. David |
From: Bill S. <we...@ri...> - 2001-01-31 18:53:20
|
On Wed, 31 Jan 2001, David B wrote: > Hi, I'm having a problem with the tcp part of icqlib. > > I can do everything on the UDP side of things, receive msg's, send > messages (through the server) etc. However if I enable tcp, messages > sent to me just time out and never appear. However if I message the > person (ICQ_SEND_DIRECT) then I can get msg's from the person. > > I have the socket handler stuff set up and it seems to be working ok. > I also have the same problem if I call icq_Main on a 100ms timer. > > Have I not set up something vital? It sounds like you're doing everything correctly. The socket handler callback is only there as an option - icqlib should work the same as it used to if you're using the timer method to call icq_Main, it's just going through my new socket manager code. I've been getting a number of different reports for this lately, but on my local system here, everything appears to work fine in both directions. If you could, please do the following: 1. Ensure you've updated to the most recent CVS version - I put a few fixes in for the socket manager code after my initial checkin. 2. Use the icq_Log callback to capture a log. Log everything that comes across the callback, try to send a TCP message to your program. Send me the resulting output. 3. Give me a quick description of your system, running uname -a at a shell prompt is fine. Thanks, Bill |
From: David B <de...@so...> - 2001-01-31 13:32:30
|
Hi, I'm having a problem with the tcp part of icqlib. I can do everything on the UDP side of things, receive msg's, send messages (through the server) etc. However if I enable tcp, messages sent to me just time out and never appear. However if I message the person (ICQ_SEND_DIRECT) then I can get msg's from the person. I have the socket handler stuff set up and it seems to be working ok. I also have the same problem if I call icq_Main on a 100ms timer. Have I not set up something vital? David |
From: Bill S. <we...@ri...> - 2001-01-28 20:22:46
|
On Sun, 28 Jan 2001, Roland Rabien wrote: > I have been using icqlib and having no problems, today I upgraded to the > latest version of the code (i hadn't upgraded for maybe 4 months) and I > changed my code to fit the changes to the API, and then when I try and > connect it crashes on this line: > > memset(link->d->icq_UDPServMess, FALSE, sizeof(link->d->icq_UDPServMess)); > > in icq_Login() > > link->d is null > > what am I doing wrong? (i am using win32) Are you still allocating your ICQLINK struct manually? The newest API requires you to use the new icq_ICQLINKNew function to do this - which will set up the icqlink->d pointer for you. See the CHANGES_SINCE_1.0 file for more details. Bill |
From: Roland R. <rr...@gu...> - 2001-01-28 17:32:22
|
I have been using icqlib and having no problems, today I upgraded to the latest version of the code (i hadn't upgraded for maybe 4 months) and I changed my code to fit the changes to the API, and then when I try and connect it crashes on this line: memset(link->d->icq_UDPServMess, FALSE, sizeof(link->d->icq_UDPServMess)); in icq_Login() link->d is null what am I doing wrong? (i am using win32) Thank You |