Change the sockets. This is what I use:
int setblock(fd, mode)
int fd;
int mode; /* True - blocking, False - non blocking */
{
int flags;
int prevmode;
flags = fcntl(fd, F_GETFL, 0);
prevmode = !(flags & O_NDELAY);
if (mode)
flags &= ~O_NDELAY; /* turn blocking on */
else
flags |= O_NDELAY; /* turn blocking off */
fcntl(fd, F_SETFL, flags);
return prevmode;
}
Since it returns the existing mode you can use as such:
prevmode = setblock(fd,0) /* turn of blocking */
/* do your thing */
(void)setblock(fd,prevmode); /* restore to
original condition */
At 04:15 PM 5/6/2011, you wrote:
Thanks for the reply Gayathri.
Do you mean to changing the sockets to non blocking, or when i
create bio for ssl to make that as non blocking?
Thanks.
On Fri, May 6, 2011 at 6:03 PM, Gayathri Sundar
<<mailto:suraj...@gmail.com>suraj...@gmail.com> wrote:
Harsh,
Okay from what I can understand, if you make ur underlying fd non
blocking then it would work fine. Blocking FDs, unless and until one
client is finished with its processing the other client will not be
able to communicate with the server as the previous fd is blocked.
The server is waiting on the 1st client to finish. When you have 3
ports and 3 clients then ofcourse it will work.
thanks
--Gayathri
On Fri, May 6, 2011 at 5:50 PM, Harshvir Sidhu
<<mailto:hvssi...@gmail.com>hvssi...@gmail.com> wrote:
Gayatri,
My server code is single threaded and i am using blocking sockets, i
am using fd_set and select to wait for event on socket, and then
performing operation based on the event that acts on a socket.
I have an array of sockets to listen. So if i start listening on 3
different ports and from my client machien, i try to connect on them
at different ports then it works fine, but when i use 1 listen port
then it dont work properly. What i mean to say by work properly is
that the connection is established, but when i am waiting for select
to return event, then it dont show any activity when i send data
from client, only 1 of them works, 2 dont work.
In addition to that, when i use WireShark to see packets, then it
shows that machine has received the packet from client. But server
dont show that alert.
Thats why i think it could be some socket option which is affecting it.
// Harshvir
On Fri, May 6, 2011 at 5:37 PM, Gayathri Sundar
<<mailto:suraj...@gmail.com>suraj...@gmail.com> wrote:
Harshvir,
SO_REUSEADDR sock option has noting to do with ur problem, please go
thro the socket ops man page to get a better understanding. First
find out if ur server code is a blocking i/o or non blocking I/O..if
former then connections will be handled sequentially..only after the
1st client is finished will the server be able to respond to the 2nd
connect request. If non blocking then there should be no problem.
Check the code if you see and O_NONBLOCK flag set in some fcntl call
or check for FIONBIO flag.
Thanks
--Gayathri
On Fri, May 6, 2011 at 5:29 PM, Harshvir Sidhu
<<mailto:hvssi...@gmail.com>hvssi...@gmail.com> wrote:
Well i think this link is for my question.
I have already done 1-5 from the Before you ask list.
Number 6, i dont know anyone who use openssl.
Number 7, it will take a lot of time to go through all the code, i
was just trying to save some time. I thought user discussion forums
are for this only. I apologize for my understanding.
On Fri, May 6, 2011 at 5:18 PM, Jeremy Farrell
<<mailto:jfarr...@pillardata.com>jfarr...@pillardata.com> wrote:
From: Harshvir Sidhu
Hi,
I have a server application, which accepts normal sockets and
ssl socket connections. I am trying to make 3 connections to server
from 1 client machine, on same server port.
When i connect on normal sockets then it works with any number
of connections.
When i tried to connect SSL then they dont work. If i connect 1
client then it works.
In my listen socket, I have SO_REUSEADDR socket option, at first
i thought might be this is causing issue, but i tried to use
SO_EXCLUSIVEADDRUSE even then it dont work.
Has someone seen some issue like this, any possible suggestion for this?
Thanks,
// Harshvir
<http://www.catb.org/~esr/faqs/smart-questions.html>http://www.catb.org/~esr/faqs/smart-questions.html
Eric S. Eberhard
(928) 567-3727 Voice
(928) 567-6122 Fax
(928) 301-7537 Cell
Vertical Integrated Computer Systems, LLC
Metropolis Support, LLC
For Metropolis support and VICS MBA Support!!!! http://www.vicsmba.com
Pictures of Snake in Spring
http://www.facebook.com/album.php?aid=115547&id=1409661701&l=1c375e1f49
Pictures of Camp Verde
http://www.facebook.com/album.php?aid=12771&id=1409661701&l=fc0e0a2bcf
Pictures of Land Cruiser in Sedona
http://www.facebook.com/album.php?aid=50953&id=1409661701
Pictures of Flagstaff area near our cabin
http://www.facebook.com/album.php?aid=12750&id=1409661701
Pictures of Cheryl in a Horse Show
http://www.facebook.com/album.php?aid=32484&id=1409661701
Pictures of the AZ Desert
http://www.facebook.com/album.php?aid=58827&id=1409661701
(You can see why we love this state :-) )
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List openssl-users@openssl.org
Automated List Manager majord...@openssl.org