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

Reply via email to